Skip to content

Commit f75b358

Browse files
Disable buttons instead of hiding them
1 parent e82bfb4 commit f75b358

2 files changed

Lines changed: 45 additions & 42 deletions

File tree

extensions/ql-vscode/src/view/data-extensions-editor/KindInput.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ type Props = {
1313
kinds: Array<ModeledMethod["kind"]>;
1414

1515
value: ModeledMethod["kind"] | undefined;
16+
disabled?: boolean;
1617
onChange: (value: ModeledMethod["kind"]) => void;
1718
};
1819

19-
export const KindInput = ({ kinds, value, onChange }: Props) => {
20+
export const KindInput = ({ kinds, value, disabled, onChange }: Props) => {
2021
const handleInput = useCallback(
2122
(e: InputEvent) => {
2223
const target = e.target as HTMLSelectElement;
@@ -37,7 +38,7 @@ export const KindInput = ({ kinds, value, onChange }: Props) => {
3738
}, [value, kinds, onChange]);
3839

3940
return (
40-
<Dropdown value={value} onInput={handleInput}>
41+
<Dropdown value={value} disabled={disabled} onInput={handleInput}>
4142
{kinds.map((kind) => (
4243
<VSCodeOption key={kind} value={kind}>
4344
{kind}

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

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -171,52 +171,54 @@ export const MethodRow = ({
171171
<VSCodeLink onClick={jumpToUsage}>View</VSCodeLink>
172172
</ApiOrMethodCell>
173173
<VSCodeDataGridCell gridColumn={2}>
174-
{showModelTypeCell && (
175-
<Dropdown
176-
value={modeledMethod?.type ?? "none"}
177-
onInput={handleTypeInput}
178-
>
179-
<VSCodeOption value="none">Unmodeled</VSCodeOption>
180-
<VSCodeOption value="source">Source</VSCodeOption>
181-
<VSCodeOption value="sink">Sink</VSCodeOption>
182-
<VSCodeOption value="summary">Flow summary</VSCodeOption>
183-
<VSCodeOption value="neutral">Neutral</VSCodeOption>
184-
</Dropdown>
185-
)}
174+
<Dropdown
175+
value={showModelTypeCell && (modeledMethod?.type ?? "none")}
176+
disabled={!showModelTypeCell}
177+
onInput={handleTypeInput}
178+
>
179+
<VSCodeOption value="none">Unmodeled</VSCodeOption>
180+
<VSCodeOption value="source">Source</VSCodeOption>
181+
<VSCodeOption value="sink">Sink</VSCodeOption>
182+
<VSCodeOption value="summary">Flow summary</VSCodeOption>
183+
<VSCodeOption value="neutral">Neutral</VSCodeOption>
184+
</Dropdown>
186185
</VSCodeDataGridCell>
187186
<VSCodeDataGridCell gridColumn={3}>
188-
{showInputCell && (
189-
<Dropdown value={modeledMethod?.input} onInput={handleInputInput}>
190-
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
191-
{argumentsList.map((argument, index) => (
192-
<VSCodeOption key={argument} value={`Argument[${index}]`}>
193-
Argument[{index}]: {argument}
194-
</VSCodeOption>
195-
))}
196-
</Dropdown>
197-
)}
187+
<Dropdown
188+
value={showInputCell && modeledMethod?.input}
189+
disabled={!showInputCell}
190+
onInput={handleInputInput}
191+
>
192+
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
193+
{argumentsList.map((argument, index) => (
194+
<VSCodeOption key={argument} value={`Argument[${index}]`}>
195+
Argument[{index}]: {argument}
196+
</VSCodeOption>
197+
))}
198+
</Dropdown>
198199
</VSCodeDataGridCell>
199200
<VSCodeDataGridCell gridColumn={4}>
200-
{showOutputCell && (
201-
<Dropdown value={modeledMethod?.output} onInput={handleOutputInput}>
202-
<VSCodeOption value="ReturnValue">ReturnValue</VSCodeOption>
203-
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
204-
{argumentsList.map((argument, index) => (
205-
<VSCodeOption key={argument} value={`Argument[${index}]`}>
206-
Argument[{index}]: {argument}
207-
</VSCodeOption>
208-
))}
209-
</Dropdown>
210-
)}
201+
<Dropdown
202+
value={showOutputCell && modeledMethod?.output}
203+
disabled={!showOutputCell}
204+
onInput={handleOutputInput}
205+
>
206+
<VSCodeOption value="ReturnValue">ReturnValue</VSCodeOption>
207+
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
208+
{argumentsList.map((argument, index) => (
209+
<VSCodeOption key={argument} value={`Argument[${index}]`}>
210+
Argument[{index}]: {argument}
211+
</VSCodeOption>
212+
))}
213+
</Dropdown>
211214
</VSCodeDataGridCell>
212215
<VSCodeDataGridCell gridColumn={5}>
213-
{showKindCell && (
214-
<KindInput
215-
kinds={predicate?.supportedKinds || []}
216-
value={modeledMethod?.kind}
217-
onChange={handleKindChange}
218-
/>
219-
)}
216+
<KindInput
217+
kinds={predicate?.supportedKinds || []}
218+
value={showKindCell && modeledMethod?.kind}
219+
disabled={!showKindCell}
220+
onChange={handleKindChange}
221+
/>
220222
</VSCodeDataGridCell>
221223
</VSCodeDataGridRow>
222224
);

0 commit comments

Comments
 (0)