Implment onClick handlers for add/remove model buttons

This commit is contained in:
Robert
2023-10-16 15:07:44 +01:00
parent fca68edbb3
commit 1d0a1f56b1

View File

@@ -126,6 +126,35 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
[method, modeledMethods, onChange],
);
const removeModelClickedHandlers = useMemo(
() =>
modeledMethods
.slice(0, modeledMethods.length - 1)
.map((_, index) => () => {
const newModeledMethods = [...modeledMethods];
newModeledMethods.splice(index, 1);
onChange(method.signature, newModeledMethods);
}),
[method, modeledMethods, onChange],
);
const handleAddModelClick = useCallback(() => {
const newModeledMethod: ModeledMethod = {
type: "none",
input: "",
output: "",
kind: "",
provenance: "manual",
signature: method.signature,
packageName: method.packageName,
typeName: method.typeName,
methodName: method.methodName,
methodParameters: method.methodParameters,
};
const newModeledMethods = [...modeledMethods, newModeledMethod];
onChange(method.signature, newModeledMethods);
}, [method, modeledMethods, onChange]);
const jumpToMethod = useCallback(
() => sendJumpToMethodMessage(method),
[method],
@@ -228,6 +257,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
key={index}
appearance="icon"
aria-label="Add new model"
onClick={handleAddModelClick}
disabled={addModelButtonDisabled}
>
<Codicon name="add" />
@@ -237,6 +267,7 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
key={index}
appearance="icon"
aria-label="Remove model"
onClick={removeModelClickedHandlers[index]}
>
<Codicon name="trash" />
</CodiconRow>