@@ -16,6 +16,7 @@ import { vscode } from "../vscode-api";
1616
1717import type { Method } from "../../model-editor/method" ;
1818import type { ModeledMethod } from "../../model-editor/modeled-method" ;
19+ import { isModelPending } from "../../model-editor/modeled-method" ;
1920import { ModelKindDropdown } from "./ModelKindDropdown" ;
2021import { Mode } from "../../model-editor/shared/mode" ;
2122import { MethodClassifications } from "./MethodClassifications" ;
@@ -255,88 +256,95 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
255256 ) }
256257 { ! props . modelingInProgress && (
257258 < >
258- { modeledMethods . map ( ( modeledMethod , index ) => (
259- < DataGridRow key = { index } focused = { focusedIndex === index } >
260- < DataGridCell >
261- < ModelTypeDropdown
262- language = { viewState . language }
263- method = { method }
264- modeledMethod = { modeledMethod }
265- modelingStatus = { modelingStatus }
266- onChange = { modeledMethodChangedHandlers [ index ] }
267- />
268- </ DataGridCell >
269- < DataGridCell >
270- { inputAccessPathSuggestions === undefined ? (
271- < ModelInputDropdown
259+ { modeledMethods . map ( ( modeledMethod , index ) => {
260+ const modelPending = isModelPending (
261+ modeledMethod ,
262+ modelingStatus ,
263+ ) ;
264+
265+ return (
266+ < DataGridRow key = { index } focused = { focusedIndex === index } >
267+ < DataGridCell >
268+ < ModelTypeDropdown
272269 language = { viewState . language }
273270 method = { method }
274271 modeledMethod = { modeledMethod }
275- modelingStatus = { modelingStatus }
272+ modelPending = { modelPending }
276273 onChange = { modeledMethodChangedHandlers [ index ] }
277274 />
278- ) : (
279- < ModelInputSuggestBox
280- modeledMethod = { modeledMethod }
281- suggestions = { inputAccessPathSuggestions }
282- typePathSuggestions = { outputAccessPathSuggestions ?? [ ] }
283- onChange = { modeledMethodChangedHandlers [ index ] }
284- />
285- ) }
286- </ DataGridCell >
287- < DataGridCell >
288- { outputAccessPathSuggestions === undefined ? (
289- < ModelOutputDropdown
275+ </ DataGridCell >
276+ < DataGridCell >
277+ { inputAccessPathSuggestions === undefined ? (
278+ < ModelInputDropdown
279+ language = { viewState . language }
280+ method = { method }
281+ modeledMethod = { modeledMethod }
282+ modelPending = { modelPending }
283+ onChange = { modeledMethodChangedHandlers [ index ] }
284+ />
285+ ) : (
286+ < ModelInputSuggestBox
287+ modeledMethod = { modeledMethod }
288+ suggestions = { inputAccessPathSuggestions }
289+ typePathSuggestions = { outputAccessPathSuggestions ?? [ ] }
290+ onChange = { modeledMethodChangedHandlers [ index ] }
291+ />
292+ ) }
293+ </ DataGridCell >
294+ < DataGridCell >
295+ { outputAccessPathSuggestions === undefined ? (
296+ < ModelOutputDropdown
297+ language = { viewState . language }
298+ method = { method }
299+ modeledMethod = { modeledMethod }
300+ modelPending = { modelPending }
301+ onChange = { modeledMethodChangedHandlers [ index ] }
302+ />
303+ ) : (
304+ < ModelOutputSuggestBox
305+ modeledMethod = { modeledMethod }
306+ suggestions = { outputAccessPathSuggestions }
307+ onChange = { modeledMethodChangedHandlers [ index ] }
308+ />
309+ ) }
310+ </ DataGridCell >
311+ < DataGridCell >
312+ < ModelKindDropdown
290313 language = { viewState . language }
291- method = { method }
292314 modeledMethod = { modeledMethod }
293- modelingStatus = { modelingStatus }
315+ modelPending = { modelPending }
294316 onChange = { modeledMethodChangedHandlers [ index ] }
295317 />
296- ) : (
297- < ModelOutputSuggestBox
298- modeledMethod = { modeledMethod }
299- suggestions = { outputAccessPathSuggestions }
300- onChange = { modeledMethodChangedHandlers [ index ] }
301- />
302- ) }
303- </ DataGridCell >
304- < DataGridCell >
305- < ModelKindDropdown
306- language = { viewState . language }
307- modeledMethod = { modeledMethod }
308- modelingStatus = { modelingStatus }
309- onChange = { modeledMethodChangedHandlers [ index ] }
310- />
311- </ DataGridCell >
312- < DataGridCell >
313- { index === 0 ? (
314- < CodiconRow
315- appearance = "icon"
316- aria-label = "Add new model"
317- onClick = { ( event : React . MouseEvent ) => {
318- event . stopPropagation ( ) ;
319- handleAddModelClick ( ) ;
320- } }
321- disabled = { addModelButtonDisabled }
322- >
323- < Codicon name = "add" />
324- </ CodiconRow >
325- ) : (
326- < CodiconRow
327- appearance = "icon"
328- aria-label = "Remove model"
329- onClick = { ( event : React . MouseEvent ) => {
330- event . stopPropagation ( ) ;
331- removeModelClickedHandlers [ index ] ( ) ;
332- } }
333- >
334- < Codicon name = "trash" />
335- </ CodiconRow >
336- ) }
337- </ DataGridCell >
338- </ DataGridRow >
339- ) ) }
318+ </ DataGridCell >
319+ < DataGridCell >
320+ { index === 0 ? (
321+ < CodiconRow
322+ appearance = "icon"
323+ aria-label = "Add new model"
324+ onClick = { ( event : React . MouseEvent ) => {
325+ event . stopPropagation ( ) ;
326+ handleAddModelClick ( ) ;
327+ } }
328+ disabled = { addModelButtonDisabled }
329+ >
330+ < Codicon name = "add" />
331+ </ CodiconRow >
332+ ) : (
333+ < CodiconRow
334+ appearance = "icon"
335+ aria-label = "Remove model"
336+ onClick = { ( event : React . MouseEvent ) => {
337+ event . stopPropagation ( ) ;
338+ removeModelClickedHandlers [ index ] ( ) ;
339+ } }
340+ >
341+ < Codicon name = "trash" />
342+ </ CodiconRow >
343+ ) }
344+ </ DataGridCell >
345+ </ DataGridRow >
346+ ) ;
347+ } ) }
340348 { validationErrors . map ( ( error , index ) => (
341349 < DataGridCell gridColumn = "span 5" key = { index } >
342350 < ModeledMethodAlert
0 commit comments