Skip to content

Commit 1d0a1f5

Browse files
Implment onClick handlers for add/remove model buttons
1 parent fca68ed commit 1d0a1f5

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)