diff --git a/apps/desktop/src/renderer/src/routes.tsx b/apps/desktop/src/renderer/src/routes.tsx index 8fa6b5385..61ae74f5c 100644 --- a/apps/desktop/src/renderer/src/routes.tsx +++ b/apps/desktop/src/renderer/src/routes.tsx @@ -20,7 +20,7 @@ import { DaemonRuntimeCard } from "./components/daemon-runtime-card"; import { AgentsPage } from "@multica/views/agents"; import { InboxPage } from "@multica/views/inbox"; import { SettingsPage } from "@multica/views/settings"; -import { CreateWorkspaceForm } from "@multica/views/workspace/create-workspace-form"; +import { NewWorkspacePage } from "@multica/views/workspace/new-workspace-page"; import { InvitePage } from "@multica/views/invite"; import { useNavigation } from "@multica/views/navigation"; import { paths } from "@multica/core/paths"; @@ -62,21 +62,9 @@ function PageShell() { function NewWorkspaceRoute() { const nav = useNavigation(); return ( -
-
-
-

- Welcome to Multica -

-

- Create your workspace to get started. -

-
- nav.push(paths.workspace(ws.slug).issues())} - /> -
-
+ nav.push(paths.workspace(ws.slug).issues())} + /> ); } diff --git a/apps/web/app/(auth)/new-workspace/page.tsx b/apps/web/app/(auth)/new-workspace/page.tsx index f39039c62..9107512b3 100644 --- a/apps/web/app/(auth)/new-workspace/page.tsx +++ b/apps/web/app/(auth)/new-workspace/page.tsx @@ -4,9 +4,9 @@ import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { useAuthStore } from "@multica/core/auth"; import { paths } from "@multica/core/paths"; -import { CreateWorkspaceForm } from "@multica/views/workspace/create-workspace-form"; +import { NewWorkspacePage } from "@multica/views/workspace/new-workspace-page"; -export default function NewWorkspacePage() { +export default function Page() { const router = useRouter(); const user = useAuthStore((s) => s.user); const isLoading = useAuthStore((s) => s.isLoading); @@ -18,20 +18,8 @@ export default function NewWorkspacePage() { if (isLoading || !user) return null; return ( -
-
-
-

- Welcome to Multica -

-

- Create your workspace to get started. -

-
- router.push(paths.workspace(ws.slug).issues())} - /> -
-
+ router.push(paths.workspace(ws.slug).issues())} + /> ); } diff --git a/packages/views/package.json b/packages/views/package.json index 0fffc1ac0..71ee90261 100644 --- a/packages/views/package.json +++ b/packages/views/package.json @@ -30,6 +30,7 @@ "./workspace/workspace-avatar": "./workspace/workspace-avatar.tsx", "./workspace/create-workspace-form": "./workspace/create-workspace-form.tsx", "./workspace/no-access-page": "./workspace/no-access-page.tsx", + "./workspace/new-workspace-page": "./workspace/new-workspace-page.tsx", "./workspace/use-workspace-seen": "./workspace/use-workspace-seen.ts", "./layout": "./layout/index.ts", "./auth": "./auth/index.ts", diff --git a/packages/views/workspace/new-workspace-page.tsx b/packages/views/workspace/new-workspace-page.tsx new file mode 100644 index 000000000..a5ccca43c --- /dev/null +++ b/packages/views/workspace/new-workspace-page.tsx @@ -0,0 +1,32 @@ +"use client"; + +import type { Workspace } from "@multica/core/types"; +import { CreateWorkspaceForm } from "./create-workspace-form"; + +/** + * Full-page shell for the /new-workspace route. Shared between web + * (Next.js) and desktop (react-router) so the two apps can't drift. + * Callers provide the onSuccess handler — that's the only app-specific + * piece, because each app uses its own navigation primitive. + */ +export function NewWorkspacePage({ + onSuccess, +}: { + onSuccess: (workspace: Workspace) => void; +}) { + return ( +
+
+
+

+ Welcome to Multica +

+

+ Create your workspace to get started. +

+
+ +
+
+ ); +}