Skip to content

Commit e75eccb

Browse files
Change MethodRow to accept ModelEditorViewState object instead of just Mode
1 parent 17947fb commit e75eccb

5 files changed

Lines changed: 33 additions & 12 deletions

File tree

extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export const LibraryRow = ({
235235
modeledMethods={modeledMethods}
236236
modifiedSignatures={modifiedSignatures}
237237
inProgressMethods={inProgressMethods}
238-
mode={viewState.mode}
238+
viewState={viewState}
239239
hideModeledMethods={hideModeledMethods}
240240
revealedMethodSignature={revealedMethodSignature}
241241
onChange={onChange}

extensions/ql-vscode/src/view/model-editor/MethodRow.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { MethodName } from "./MethodName";
2121
import { ModelTypeDropdown } from "./ModelTypeDropdown";
2222
import { ModelInputDropdown } from "./ModelInputDropdown";
2323
import { ModelOutputDropdown } from "./ModelOutputDropdown";
24+
import { ModelEditorViewState } from "../../model-editor/shared/view-state";
2425

2526
const ApiOrMethodCell = styled(VSCodeDataGridCell)`
2627
display: flex;
@@ -58,7 +59,7 @@ export type MethodRowProps = {
5859
modeledMethod: ModeledMethod | undefined;
5960
methodIsUnsaved: boolean;
6061
modelingInProgress: boolean;
61-
mode: Mode;
62+
viewState: ModelEditorViewState;
6263
revealedMethodSignature: string | null;
6364
onChange: (modeledMethod: ModeledMethod) => void;
6465
};
@@ -90,7 +91,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
9091
method,
9192
modeledMethod,
9293
methodIsUnsaved,
93-
mode,
94+
viewState,
9495
revealedMethodSignature,
9596
onChange,
9697
} = props;
@@ -112,7 +113,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
112113
<ModelingStatusIndicator status={modelingStatus} />
113114
<MethodClassifications method={method} />
114115
<MethodName {...props.method} />
115-
{mode === Mode.Application && (
116+
{viewState.mode === Mode.Application && (
116117
<UsagesButton onClick={jumpToUsage}>
117118
{method.usages.length}
118119
</UsagesButton>
@@ -178,7 +179,7 @@ const UnmodelableMethodRow = forwardRef<
178179
HTMLElement | undefined,
179180
MethodRowProps
180181
>((props, ref) => {
181-
const { method, mode, revealedMethodSignature } = props;
182+
const { method, viewState, revealedMethodSignature } = props;
182183

183184
const jumpToUsage = useCallback(
184185
() => sendJumpToUsageMessage(method),
@@ -194,7 +195,7 @@ const UnmodelableMethodRow = forwardRef<
194195
<ApiOrMethodCell gridColumn={1}>
195196
<ModelingStatusIndicator status="saved" />
196197
<MethodName {...props.method} />
197-
{mode === Mode.Application && (
198+
{viewState.mode === Mode.Application && (
198199
<UsagesButton onClick={jumpToUsage}>
199200
{method.usages.length}
200201
</UsagesButton>

extensions/ql-vscode/src/view/model-editor/ModeledMethodDataGrid.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import { MethodRow } from "./MethodRow";
88
import { Method } from "../../model-editor/method";
99
import { ModeledMethod } from "../../model-editor/modeled-method";
1010
import { useMemo } from "react";
11-
import { Mode } from "../../model-editor/shared/mode";
1211
import { sortMethods } from "../../model-editor/shared/sorting";
1312
import { InProgressMethods } from "../../model-editor/shared/in-progress-methods";
1413
import { HiddenMethodsRow } from "./HiddenMethodsRow";
14+
import { ModelEditorViewState } from "../../model-editor/shared/view-state";
1515

1616
export const GRID_TEMPLATE_COLUMNS = "0.5fr 0.125fr 0.125fr 0.125fr 0.125fr";
1717

@@ -21,7 +21,7 @@ export type ModeledMethodDataGridProps = {
2121
modeledMethods: Record<string, ModeledMethod>;
2222
modifiedSignatures: Set<string>;
2323
inProgressMethods: InProgressMethods;
24-
mode: Mode;
24+
viewState: ModelEditorViewState;
2525
hideModeledMethods: boolean;
2626
revealedMethodSignature: string | null;
2727
onChange: (modeledMethod: ModeledMethod) => void;
@@ -33,7 +33,7 @@ export const ModeledMethodDataGrid = ({
3333
modeledMethods,
3434
modifiedSignatures,
3535
inProgressMethods,
36-
mode,
36+
viewState,
3737
hideModeledMethods,
3838
revealedMethodSignature,
3939
onChange,
@@ -95,7 +95,7 @@ export const ModeledMethodDataGrid = ({
9595
packageName,
9696
method.signature,
9797
)}
98-
mode={mode}
98+
viewState={viewState}
9999
revealedMethodSignature={revealedMethodSignature}
100100
onChange={onChange}
101101
/>

extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { Mode } from "../../../model-editor/shared/mode";
99
import { MethodRow, MethodRowProps } from "../MethodRow";
1010
import { ModeledMethod } from "../../../model-editor/modeled-method";
1111
import userEvent from "@testing-library/user-event";
12+
import { ModelEditorViewState } from "../../../model-editor/shared/view-state";
13+
import { createMockExtensionPack } from "../../../../test/factories/model-editor/extension-pack";
1214

1315
describe(MethodRow.name, () => {
1416
const method = createMethod({
@@ -31,6 +33,14 @@ describe(MethodRow.name, () => {
3133
};
3234
const onChange = jest.fn();
3335

36+
const viewState: ModelEditorViewState = {
37+
mode: Mode.Application,
38+
showFlowGeneration: false,
39+
showLlmButton: false,
40+
showMultipleModels: false,
41+
extensionPack: createMockExtensionPack(),
42+
};
43+
3444
const render = (props: Partial<MethodRowProps> = {}) =>
3545
reactRender(
3646
<MethodRow
@@ -40,7 +50,7 @@ describe(MethodRow.name, () => {
4050
methodIsUnsaved={false}
4151
modelingInProgress={false}
4252
revealedMethodSignature={null}
43-
mode={Mode.Application}
53+
viewState={viewState}
4454
onChange={onChange}
4555
{...props}
4656
/>,

extensions/ql-vscode/src/view/model-editor/__tests__/ModeledMethodDataGrid.spec.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import {
77
ModeledMethodDataGrid,
88
ModeledMethodDataGridProps,
99
} from "../ModeledMethodDataGrid";
10+
import { ModelEditorViewState } from "../../../model-editor/shared/view-state";
11+
import { createMockExtensionPack } from "../../../../test/factories/model-editor/extension-pack";
1012

1113
describe(ModeledMethodDataGrid.name, () => {
1214
const method1 = createMethod({
@@ -41,6 +43,14 @@ describe(ModeledMethodDataGrid.name, () => {
4143
});
4244
const onChange = jest.fn();
4345

46+
const viewState: ModelEditorViewState = {
47+
mode: Mode.Application,
48+
showFlowGeneration: false,
49+
showLlmButton: false,
50+
showMultipleModels: false,
51+
extensionPack: createMockExtensionPack(),
52+
};
53+
4454
const render = (props: Partial<ModeledMethodDataGridProps> = {}) =>
4555
reactRender(
4656
<ModeledMethodDataGrid
@@ -58,7 +68,7 @@ describe(ModeledMethodDataGrid.name, () => {
5868
}}
5969
modifiedSignatures={new Set([method1.signature])}
6070
inProgressMethods={new InProgressMethods()}
61-
mode={Mode.Application}
71+
viewState={viewState}
6272
hideModeledMethods={false}
6373
revealedMethodSignature={null}
6474
onChange={onChange}

0 commit comments

Comments
 (0)