@@ -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