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 5d6148deb..75e874213 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx @@ -18,6 +18,13 @@ import { ModeledMethodsList } from "./ModeledMethodsList"; import { percentFormatter } from "./formatters"; import { Mode } from "../../data-extensions-editor/shared/mode"; +const LoadingContainer = styled.div` + text-align: center; + padding: 1em; + font-size: x-large; + font-weight: 600; +`; + const DataExtensionsEditorContainer = styled.div` margin-top: 1rem; `; @@ -223,6 +230,10 @@ export function DataExtensionsEditor({ }); }, [viewState?.mode]); + if (viewState === undefined) { + return Loading...; + } + return ( {progress.maxStep > 0 && ( @@ -236,25 +247,21 @@ export function DataExtensionsEditor({ <> Data extensions editor - {viewState?.extensionPack && ( - <> - - - {viewState.extensionPack.name} - - - )} + + + {viewState.extensionPack.name} +
{percentFormatter.format(modeledPercentage / 100)} modeled
{percentFormatter.format(unModeledPercentage / 100)} unmodeled
- {viewState?.enableFrameworkMode && ( + {viewState.enableFrameworkMode && ( <>
Mode:{" "} - {viewState?.mode === Mode.Framework + {viewState.mode === Mode.Framework ? "Framework" : "Application"}
@@ -274,17 +281,17 @@ export function DataExtensionsEditor({ Apply - {viewState?.enableFrameworkMode && ( + {viewState.enableFrameworkMode && ( Refresh )} - {viewState?.mode === Mode.Framework + {viewState.mode === Mode.Framework ? "Generate" : "Download and generate"} - {viewState?.showLlmButton && ( + {viewState.showLlmButton && ( <> Generate using LLM @@ -297,7 +304,7 @@ export function DataExtensionsEditor({ unsavedModels={unsavedModels} modeledMethods={modeledMethods} viewState={viewState} - mode={viewState?.mode ?? Mode.Application} + mode={viewState.mode} 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 58d8f16cf..7335e6b19 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/LibraryRow.tsx @@ -70,7 +70,7 @@ type Props = { title: string; externalApiUsages: ExternalApiUsage[]; modeledMethods: Record; - viewState: DataExtensionEditorViewState | undefined; + viewState: DataExtensionEditorViewState; mode: Mode; hasUnsavedChanges: boolean; onChange: ( @@ -166,7 +166,7 @@ export const LibraryRow = ({ {hasUnsavedChanges ? UNSAVED : null} - {viewState?.showLlmButton && ( + {viewState.showLlmButton && (  Model with AI @@ -176,8 +176,8 @@ export const LibraryRow = ({  Model from source - {viewState?.enableFrameworkMode && - viewState?.mode === Mode.Application && ( + {viewState.enableFrameworkMode && + viewState.mode === Mode.Application && (  Model dependency 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 18ff58709..bca7b610e 100644 --- a/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx +++ b/extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodsList.tsx @@ -14,7 +14,7 @@ type Props = { externalApiUsages: ExternalApiUsage[]; unsavedModels: Set; modeledMethods: Record; - viewState: DataExtensionEditorViewState | undefined; + viewState: DataExtensionEditorViewState; mode: Mode; onChange: ( modelName: string,