diff --git a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/ImportPresetsPage/ImportPresetsPage.tsx b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/ImportPresetsPage/ImportPresetsPage.tsx
index 5b6b2bc6a93..988caad0cef 100644
--- a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/ImportPresetsPage/ImportPresetsPage.tsx
+++ b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/ImportPresetsPage/ImportPresetsPage.tsx
@@ -29,8 +29,12 @@ export function ImportPresetsPage({ organizationId }: ImportPresetsPageProps) {
[collections],
);
- const importedV1Ids = useMemo(
- () => new Set(v2Presets.map((p) => p.id)),
+ const importedAgentIds = useMemo(
+ () => new Set(v2Presets.flatMap((p) => (p.agentId ? [p.agentId] : []))),
+ [v2Presets],
+ );
+ const importedNames = useMemo(
+ () => new Set(v2Presets.flatMap((p) => (p.agentId ? [] : [p.name]))),
[v2Presets],
);
@@ -56,15 +60,28 @@ export function ImportPresetsPage({ organizationId }: ImportPresetsPageProps) {
onRefresh={refresh}
isRefreshing={isRefreshing}
>
- {presets.map((preset, index) => (
-
- ))}
+ {presets.map((preset, index) => {
+ const linkedAgentId = BUILTIN_AGENT_IDS.has(preset.name)
+ ? (preset.name as AgentType)
+ : undefined;
+ const v2Name = linkedAgentId
+ ? AGENT_LABELS[linkedAgentId]
+ : preset.name;
+ const alreadyImported = linkedAgentId
+ ? importedAgentIds.has(linkedAgentId)
+ : importedNames.has(v2Name);
+ return (
+
+ );
+ })}
);
}
@@ -72,6 +89,8 @@ export function ImportPresetsPage({ organizationId }: ImportPresetsPageProps) {
interface PresetRowProps {
preset: TerminalPreset;
tabOrder: number;
+ linkedAgentId: AgentType | undefined;
+ v2Name: string;
alreadyImported: boolean;
organizationId: string;
}
@@ -79,6 +98,8 @@ interface PresetRowProps {
function PresetRow({
preset,
tabOrder,
+ linkedAgentId,
+ v2Name,
alreadyImported,
organizationId,
}: PresetRowProps) {
@@ -90,15 +111,9 @@ function PresetRow({
setRunning(true);
setErrorMessage(null);
try {
- const linkedAgentId: AgentType | undefined = BUILTIN_AGENT_IDS.has(
- preset.name,
- )
- ? (preset.name as AgentType)
- : undefined;
-
const row: V2TerminalPresetRow = {
- id: preset.id,
- name: linkedAgentId ? AGENT_LABELS[linkedAgentId] : preset.name,
+ id: crypto.randomUUID(),
+ name: v2Name,
description: preset.description,
cwd: preset.cwd,
commands: preset.commands,
@@ -137,7 +152,7 @@ function PresetRow({
return (
}
- primary={preset.name}
+ primary={v2Name}
secondary={preset.description ?? preset.commands[0]}
action={action}
/>
diff --git a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/V1ImportModal.tsx b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/V1ImportModal.tsx
index d0f4ef9033d..c04aaea9697 100644
--- a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/V1ImportModal.tsx
+++ b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/V1ImportModal.tsx
@@ -14,6 +14,7 @@ import {
V1_IMPORT_PAGE_ORDER,
} from "renderer/stores/v1-import-modal";
import { MOCK_ORG_ID } from "shared/constants";
+import { IntroPage } from "./components/IntroPage";
import { WelcomePage } from "./components/WelcomePage";
import { ImportPresetsPage } from "./ImportPresetsPage";
import { ImportProjectsPage } from "./ImportProjectsPage";
@@ -51,15 +52,20 @@ export function V1ImportModal() {
onInteractOutside={(event) => event.preventDefault()}
>
- {page === "welcome" ? "Welcome to Superset v2" : "Import from v1"}
+ {page === "welcome"
+ ? "Welcome to Superset v2"
+ : page === "intro"
+ ? "Let's get you started"
+ : "Import from v1"}
- Bring projects, workspaces, and terminal presets from Superset v1 into
- v2.
+ Let's get your workspaces and projects ported over. Terminal sessions
+ won't be carried over, but you can still access v1 at any time.
{page === "welcome" &&
}
+ {page === "intro" &&
}
{(page === "projects" || page === "workspaces") && !activeHostUrl && (
Host service is not ready yet. This window will populate as soon
diff --git a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/IntroPage.tsx b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/IntroPage.tsx
new file mode 100644
index 00000000000..f696f66063c
--- /dev/null
+++ b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/IntroPage.tsx
@@ -0,0 +1,13 @@
+export function IntroPage() {
+ return (
+
+
+ Let's get you started
+
+
+ Let's get your workspaces and projects ported over. Terminal sessions
+ won't be carried over, but you can still access v1 at any time.
+
+
+ );
+}
diff --git a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/index.ts b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/index.ts
new file mode 100644
index 00000000000..5818ce93dae
--- /dev/null
+++ b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/IntroPage/index.ts
@@ -0,0 +1 @@
+export { IntroPage } from "./IntroPage";
diff --git a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/WelcomePage/WelcomePage.tsx b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/WelcomePage/WelcomePage.tsx
index dda654d2eb9..74cd443566b 100644
--- a/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/WelcomePage/WelcomePage.tsx
+++ b/apps/desktop/src/renderer/routes/_authenticated/components/V1ImportModal/components/WelcomePage/WelcomePage.tsx
@@ -26,10 +26,6 @@ export function WelcomePage() {
Welcome to Superset v2
-
- Bring your v1 projects, workspaces, and terminal presets over. Import
- each one with a single click — nothing happens automatically.
-
);
diff --git a/apps/desktop/src/renderer/stores/v1-import-modal.ts b/apps/desktop/src/renderer/stores/v1-import-modal.ts
index 50ed7408d87..5658a756bc6 100644
--- a/apps/desktop/src/renderer/stores/v1-import-modal.ts
+++ b/apps/desktop/src/renderer/stores/v1-import-modal.ts
@@ -1,10 +1,16 @@
import { create } from "zustand";
import { devtools } from "zustand/middleware";
-export type V1ImportPage = "welcome" | "projects" | "workspaces" | "presets";
+export type V1ImportPage =
+ | "welcome"
+ | "intro"
+ | "projects"
+ | "workspaces"
+ | "presets";
export const V1_IMPORT_PAGE_ORDER: V1ImportPage[] = [
"welcome",
+ "intro",
"projects",
"workspaces",
"presets",