diff --git a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx index 7befebdad..2053b0be3 100644 --- a/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { useCallback, useMemo, useState } from "react"; +import { useCallback, useState } from "react"; import { Method } from "../../model-editor/method"; import { ModeledMethod } from "../../model-editor/modeled-method"; import { styled } from "styled-components"; @@ -100,13 +100,6 @@ export const MultipleModeledMethodsPanel = ({ setSelectedIndex(newSelectedIndex); }, [onChange, modeledMethods, selectedIndex]); - const anyUnmodeled = useMemo( - () => - modeledMethods.length === 0 || - modeledMethods.some((m) => m.type === "none"), - [modeledMethods], - ); - const handleChange = useCallback( (modeledMethod: ModeledMethod) => { if (modeledMethods.length > 0) { @@ -186,7 +179,10 @@ export const MultipleModeledMethodsPanel = ({ appearance="icon" aria-label="Add modeling" onClick={handleAddClick} - disabled={anyUnmodeled} + disabled={ + modeledMethods.length === 0 || + (modeledMethods.length === 1 && modeledMethods[0].type === "none") + } > diff --git a/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx b/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx index 06e4ca560..529ce86ae 100644 --- a/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx +++ b/extensions/ql-vscode/src/view/method-modeling/__tests__/MultipleModeledMethodsPanel.spec.tsx @@ -536,7 +536,7 @@ describe(MultipleModeledMethodsPanel.name, () => { }), ]; - it("cannot add modeling", () => { + it("can add modeling", () => { render({ method, modeledMethods, @@ -545,7 +545,7 @@ describe(MultipleModeledMethodsPanel.name, () => { expect( screen.getByLabelText("Add modeling").getElementsByTagName("input")[0], - ).toBeDisabled(); + ).toBeEnabled(); }); it("can delete first modeling", async () => {