Skip to content

Commit e82bfb4

Browse files
Pull out booleans controlling visibility of each cell
1 parent 8708270 commit e82bfb4

1 file changed

Lines changed: 33 additions & 27 deletions

File tree

  • extensions/ql-vscode/src/view/data-extensions-editor

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

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,15 @@ export const MethodRow = ({
145145
? extensiblePredicateDefinitions[modeledMethod.type]
146146
: undefined;
147147

148+
const showModelTypeCell =
149+
!externalApiUsage.supported ||
150+
(modeledMethod && modeledMethod?.type !== "none");
151+
const showInputCell =
152+
modeledMethod?.type && ["sink", "summary"].includes(modeledMethod?.type);
153+
const showOutputCell =
154+
modeledMethod?.type && ["source", "summary"].includes(modeledMethod?.type);
155+
const showKindCell = predicate?.supportedKinds;
156+
148157
return (
149158
<VSCodeDataGridRow>
150159
<ApiOrMethodCell gridColumn={1}>
@@ -162,8 +171,7 @@ export const MethodRow = ({
162171
<VSCodeLink onClick={jumpToUsage}>View</VSCodeLink>
163172
</ApiOrMethodCell>
164173
<VSCodeDataGridCell gridColumn={2}>
165-
{(!externalApiUsage.supported ||
166-
(modeledMethod && modeledMethod?.type !== "none")) && (
174+
{showModelTypeCell && (
167175
<Dropdown
168176
value={modeledMethod?.type ?? "none"}
169177
onInput={handleTypeInput}
@@ -177,36 +185,34 @@ export const MethodRow = ({
177185
)}
178186
</VSCodeDataGridCell>
179187
<VSCodeDataGridCell gridColumn={3}>
180-
{modeledMethod?.type &&
181-
["sink", "summary"].includes(modeledMethod?.type) && (
182-
<Dropdown value={modeledMethod?.input} onInput={handleInputInput}>
183-
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
184-
{argumentsList.map((argument, index) => (
185-
<VSCodeOption key={argument} value={`Argument[${index}]`}>
186-
Argument[{index}]: {argument}
187-
</VSCodeOption>
188-
))}
189-
</Dropdown>
190-
)}
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+
)}
191198
</VSCodeDataGridCell>
192199
<VSCodeDataGridCell gridColumn={4}>
193-
{modeledMethod?.type &&
194-
["source", "summary"].includes(modeledMethod?.type) && (
195-
<Dropdown value={modeledMethod?.output} onInput={handleOutputInput}>
196-
<VSCodeOption value="ReturnValue">ReturnValue</VSCodeOption>
197-
<VSCodeOption value="Argument[this]">Argument[this]</VSCodeOption>
198-
{argumentsList.map((argument, index) => (
199-
<VSCodeOption key={argument} value={`Argument[${index}]`}>
200-
Argument[{index}]: {argument}
201-
</VSCodeOption>
202-
))}
203-
</Dropdown>
204-
)}
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+
)}
205211
</VSCodeDataGridCell>
206212
<VSCodeDataGridCell gridColumn={5}>
207-
{predicate?.supportedKinds && (
213+
{showKindCell && (
208214
<KindInput
209-
kinds={predicate.supportedKinds}
215+
kinds={predicate?.supportedKinds || []}
210216
value={modeledMethod?.kind}
211217
onChange={handleKindChange}
212218
/>

0 commit comments

Comments
 (0)