diff --git a/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx b/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx index eaeab65b19d..37fd5605a43 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx @@ -91,6 +91,8 @@ export function DataExtensionsEditor({ new Set(), ); + const [hideModeledApis, setHideModeledApis] = useState(true); + const [modeledMethods, setModeledMethods] = useState< Record >(initialModeledMethods); @@ -252,6 +254,10 @@ export function DataExtensionsEditor({ }); }, [viewState?.mode]); + const onHideModeledApis = useCallback(() => { + setHideModeledApis((oldHideModeledApis) => !oldHideModeledApis); + }, []); + if (viewState === undefined || externalApiUsages.length === 0) { return Loading...; } @@ -292,7 +298,12 @@ export function DataExtensionsEditor({ - Hide modeled APIs + + Hide modeled APIs + @@ -320,6 +331,7 @@ export function DataExtensionsEditor({ modeledMethods={modeledMethods} modifiedSignatures={modifiedSignatures} viewState={viewState} + hideModeledApis={hideModeledApis} onChange={onChange} onSaveModelClick={onSaveModelClick} onGenerateFromLlmClick={onGenerateFromLlmClick} diff --git a/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx b/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx index a4706924bbd..c9393e19d71 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx @@ -73,6 +73,7 @@ type Props = { modeledMethods: Record; modifiedSignatures: Set; viewState: DataExtensionEditorViewState; + hideModeledApis: boolean; onChange: ( modelName: string, externalApiUsage: ExternalApiUsage, @@ -97,6 +98,7 @@ export const LibraryRow = ({ modeledMethods, modifiedSignatures, viewState, + hideModeledApis, onChange, onSaveModelClick, onGenerateFromLlmClick, @@ -208,6 +210,7 @@ export const LibraryRow = ({ modeledMethods={modeledMethods} modifiedSignatures={modifiedSignatures} mode={viewState.mode} + hideModeledApis={hideModeledApis} onChange={onChangeWithModelName} /> diff --git a/extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx b/extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx index 5e75fe4e1d7..ca20eb7e297 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx @@ -56,6 +56,7 @@ type Props = { modeledMethod: ModeledMethod | undefined; methodIsUnsaved: boolean; mode: Mode; + hideModeledApis: boolean; onChange: ( externalApiUsage: ExternalApiUsage, modeledMethod: ModeledMethod, @@ -63,7 +64,8 @@ type Props = { }; export const MethodRow = (props: Props) => { - const { externalApiUsage, modeledMethod, methodIsUnsaved } = props; + const { externalApiUsage, modeledMethod, methodIsUnsaved, hideModeledApis } = + props; const methodCanBeModeled = !externalApiUsage.supported || @@ -72,6 +74,8 @@ export const MethodRow = (props: Props) => { if (methodCanBeModeled) { return ; + } else if (hideModeledApis) { + return null; } else { return ; } diff --git a/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodDataGrid.tsx b/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodDataGrid.tsx index 36b1ebc615a..7b3645bc263 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodDataGrid.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodDataGrid.tsx @@ -16,6 +16,7 @@ type Props = { modeledMethods: Record; modifiedSignatures: Set; mode: Mode; + hideModeledApis: boolean; onChange: ( externalApiUsage: ExternalApiUsage, modeledMethod: ModeledMethod, @@ -27,6 +28,7 @@ export const ModeledMethodDataGrid = ({ modeledMethods, modifiedSignatures, mode, + hideModeledApis, onChange, }: Props) => { const sortedExternalApiUsages = useMemo( @@ -60,6 +62,7 @@ export const ModeledMethodDataGrid = ({ modeledMethod={modeledMethods[externalApiUsage.signature]} methodIsUnsaved={modifiedSignatures.has(externalApiUsage.signature)} mode={mode} + hideModeledApis={hideModeledApis} onChange={onChange} /> ))} diff --git a/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx b/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx index 3eb33175c40..780fc5a3670 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx @@ -15,6 +15,7 @@ type Props = { modeledMethods: Record; modifiedSignatures: Set; viewState: DataExtensionEditorViewState; + hideModeledApis: boolean; onChange: ( modelName: string, externalApiUsage: ExternalApiUsage, @@ -41,6 +42,7 @@ export const ModeledMethodsList = ({ modeledMethods, modifiedSignatures, viewState, + hideModeledApis, onChange, onSaveModelClick, onGenerateFromLlmClick, @@ -83,6 +85,7 @@ export const ModeledMethodsList = ({ modeledMethods={modeledMethods} modifiedSignatures={modifiedSignatures} viewState={viewState} + hideModeledApis={hideModeledApis} onChange={onChange} onSaveModelClick={onSaveModelClick} onGenerateFromLlmClick={onGenerateFromLlmClick}