@@ -126,6 +126,35 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
126126 [ method , modeledMethods , onChange ] ,
127127 ) ;
128128
129+ const removeModelClickedHandlers = useMemo (
130+ ( ) =>
131+ modeledMethods
132+ . slice ( 0 , modeledMethods . length - 1 )
133+ . map ( ( _ , index ) => ( ) => {
134+ const newModeledMethods = [ ...modeledMethods ] ;
135+ newModeledMethods . splice ( index , 1 ) ;
136+ onChange ( method . signature , newModeledMethods ) ;
137+ } ) ,
138+ [ method , modeledMethods , onChange ] ,
139+ ) ;
140+
141+ const handleAddModelClick = useCallback ( ( ) => {
142+ const newModeledMethod : ModeledMethod = {
143+ type : "none" ,
144+ input : "" ,
145+ output : "" ,
146+ kind : "" ,
147+ provenance : "manual" ,
148+ signature : method . signature ,
149+ packageName : method . packageName ,
150+ typeName : method . typeName ,
151+ methodName : method . methodName ,
152+ methodParameters : method . methodParameters ,
153+ } ;
154+ const newModeledMethods = [ ...modeledMethods , newModeledMethod ] ;
155+ onChange ( method . signature , newModeledMethods ) ;
156+ } , [ method , modeledMethods , onChange ] ) ;
157+
129158 const jumpToMethod = useCallback (
130159 ( ) => sendJumpToMethodMessage ( method ) ,
131160 [ method ] ,
@@ -228,6 +257,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
228257 key = { index }
229258 appearance = "icon"
230259 aria-label = "Add new model"
260+ onClick = { handleAddModelClick }
231261 disabled = { addModelButtonDisabled }
232262 >
233263 < Codicon name = "add" />
@@ -237,6 +267,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
237267 key = { index }
238268 appearance = "icon"
239269 aria-label = "Remove model"
270+ onClick = { removeModelClickedHandlers [ index ] }
240271 >
241272 < Codicon name = "trash" />
242273 </ CodiconRow >
0 commit comments