Skip to content

Commit 451b8d1

Browse files
committed
Scope supervisor intro to desktop dialog
1 parent 4b3977b commit 451b8d1

4 files changed

Lines changed: 60 additions & 9 deletions

File tree

packages/web/src/features/supervisor/components/objective-dialog.test.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,19 @@ describe("ObjectiveDialog", () => {
199199
);
200200

201201
const dialog = screen.getByRole("dialog");
202+
const header = dialog.querySelector(".dialog-header");
202203
const intro = dialog.querySelector(".supervisor-dialog-intro");
203204
const introIcon = dialog.querySelector(".supervisor-dialog-intro__icon");
204205
const introCopy = dialog.querySelector(".supervisor-dialog-intro__copy");
205206
const firstFormGroup = dialog.querySelector(".form-group");
206207

208+
expect(header).toBeTruthy();
207209
expect(intro).toBeTruthy();
208210
expect(introIcon).toBeTruthy();
209211
expect(introCopy).toBeTruthy();
210212
expect(intro?.querySelector(".supervisor-dialog-intro__icon")).toBe(introIcon);
211213
expect(intro?.querySelector(".supervisor-dialog-intro__copy")).toBe(introCopy);
214+
expect(header?.contains(intro as Node)).toBe(false);
212215
expect(firstFormGroup).toBeTruthy();
213216
expect(intro?.compareDocumentPosition(firstFormGroup as Node)).toBe(
214217
Node.DOCUMENT_POSITION_FOLLOWING

packages/web/src/features/supervisor/views/shared/objective-dialog-content.test.tsx

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ afterEach(() => {
2727
});
2828

2929
describe("ObjectiveDialogContent", () => {
30-
it("renders a flat supervisor intro strip for enable and edit modes", () => {
30+
it("does not render the supervisor intro strip by default for enable and edit modes", () => {
3131
const { rerender } = render(
3232
<ObjectiveDialogContent
3333
mode="enable"
@@ -45,6 +45,47 @@ describe("ObjectiveDialogContent", () => {
4545
/>
4646
);
4747

48+
expect(document.querySelector(".supervisor-dialog-intro")).toBeNull();
49+
50+
rerender(
51+
<ObjectiveDialogContent
52+
mode="edit"
53+
draftObjective="Investigate regressions"
54+
draftEvaluatorProviderId="claude"
55+
draftEvaluatorModel=""
56+
draftMaxSupervisionCount="0"
57+
draftScheduledAt=""
58+
disableObjective=""
59+
onDraftObjectiveChange={vi.fn()}
60+
onDraftEvaluatorProviderChange={vi.fn()}
61+
onDraftEvaluatorModelChange={vi.fn()}
62+
onDraftMaxSupervisionCountChange={vi.fn()}
63+
onDraftScheduledAtChange={vi.fn()}
64+
/>
65+
);
66+
67+
expect(document.querySelector(".supervisor-dialog-intro")).toBeNull();
68+
});
69+
70+
it("renders a flat supervisor intro strip when showIntro is true for enable and edit modes", () => {
71+
const { rerender } = render(
72+
<ObjectiveDialogContent
73+
mode="enable"
74+
showIntro
75+
draftObjective="Investigate regressions"
76+
draftEvaluatorProviderId="claude"
77+
draftEvaluatorModel=""
78+
draftMaxSupervisionCount="0"
79+
draftScheduledAt=""
80+
disableObjective=""
81+
onDraftObjectiveChange={vi.fn()}
82+
onDraftEvaluatorProviderChange={vi.fn()}
83+
onDraftEvaluatorModelChange={vi.fn()}
84+
onDraftMaxSupervisionCountChange={vi.fn()}
85+
onDraftScheduledAtChange={vi.fn()}
86+
/>
87+
);
88+
4889
let intro = document.querySelector(".supervisor-dialog-intro");
4990
let introIcon = document.querySelector(".supervisor-dialog-intro__icon");
5091
let introCopy = document.querySelector(".supervisor-dialog-intro__copy");
@@ -69,6 +110,7 @@ describe("ObjectiveDialogContent", () => {
69110
rerender(
70111
<ObjectiveDialogContent
71112
mode="edit"
113+
showIntro
72114
draftObjective="Investigate regressions"
73115
draftEvaluatorProviderId="claude"
74116
draftEvaluatorModel=""
@@ -300,6 +342,7 @@ describe("ObjectiveDialogContent", () => {
300342
render(
301343
<ObjectiveDialogContent
302344
mode="disable"
345+
showIntro
303346
draftObjective=""
304347
draftEvaluatorProviderId="codex"
305348
draftEvaluatorModel=""

packages/web/src/features/supervisor/views/shared/objective-dialog-content.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const evaluatorOptions: ReadonlyArray<SelectOption<ObjectiveDialogEvaluatorProvi
2222

2323
interface ObjectiveDialogContentProps {
2424
mode: ObjectiveDialogMode;
25+
showIntro?: boolean;
2526
draftObjective: string;
2627
draftEvaluatorProviderId: ObjectiveDialogEvaluatorProviderId;
2728
draftEvaluatorModel: string;
@@ -44,6 +45,7 @@ export function ObjectiveDialogModeIcon({ mode }: { mode: ObjectiveDialogMode })
4445

4546
export function ObjectiveDialogContent({
4647
mode,
48+
showIntro = false,
4749
draftObjective,
4850
draftEvaluatorProviderId,
4951
draftEvaluatorModel,
@@ -92,15 +94,17 @@ export function ObjectiveDialogContent({
9294

9395
return (
9496
<>
95-
<div className="supervisor-dialog-intro">
96-
<div className="supervisor-dialog-intro__icon" aria-hidden="true">
97-
<ObjectiveDialogModeIcon mode={mode} />
98-
</div>
99-
<div className="supervisor-dialog-intro__copy">
100-
<p className="supervisor-dialog-intro__title">{introTitle}</p>
101-
<p className="supervisor-dialog-intro__description">{introDescription}</p>
97+
{showIntro ? (
98+
<div className="supervisor-dialog-intro">
99+
<div className="supervisor-dialog-intro__icon" aria-hidden="true">
100+
<ObjectiveDialogModeIcon mode={mode} />
101+
</div>
102+
<div className="supervisor-dialog-intro__copy">
103+
<p className="supervisor-dialog-intro__title">{introTitle}</p>
104+
<p className="supervisor-dialog-intro__description">{introDescription}</p>
105+
</div>
102106
</div>
103-
</div>
107+
) : null}
104108

105109
<div className="form-group">
106110
<label htmlFor="objective">{t("supervisor.field.objective")}</label>

packages/web/src/features/supervisor/views/shared/objective-dialog.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export function ObjectiveDialog({ workspaceId, sessionId }: ObjectiveDialogProps
6262
<ModalBody>
6363
<ObjectiveDialogContent
6464
mode={mode}
65+
showIntro
6566
draftObjective={dialog.draftObjective}
6667
draftEvaluatorProviderId={dialog.draftEvaluatorProviderId}
6768
draftEvaluatorModel={dialog.draftEvaluatorModel}

0 commit comments

Comments
 (0)