From 1bceeb0418a010a336ef43d275c2204fab2d8128 Mon Sep 17 00:00:00 2001 From: Randall Stillwell Date: Thu, 16 Apr 2026 21:43:15 -0500 Subject: [PATCH] Move onboarding to auth layout for consistent setup experience The onboarding wizard was wrapped in the dashboard layout (sidebar + topbar), which felt jarring when coming from the clean workspace-setup page. Moved it to the (auth) layout so the entire setup flow stays in the same centered, chrome-free experience. Widened the auth layout to max-w-3xl and added max-w-md to each narrow auth page individually. Made-with: Cursor --- src/app/(auth)/invite/[token]/page.tsx | 6 ++--- src/app/(auth)/layout.tsx | 2 +- src/app/(auth)/login/page.tsx | 2 +- .../onboarding/page.tsx | 26 +++++++++---------- src/app/(auth)/setup/page.tsx | 2 +- src/app/(auth)/signup/page.tsx | 2 +- src/app/(auth)/workspace-setup/page.tsx | 2 +- 7 files changed, 20 insertions(+), 22 deletions(-) rename src/app/{(dashboard) => (auth)}/onboarding/page.tsx (98%) diff --git a/src/app/(auth)/invite/[token]/page.tsx b/src/app/(auth)/invite/[token]/page.tsx index 0258064..73a8968 100644 --- a/src/app/(auth)/invite/[token]/page.tsx +++ b/src/app/(auth)/invite/[token]/page.tsx @@ -29,7 +29,7 @@ export default function InvitePage() { if (status === "loading") { return ( -
+

Verifying invitation...

@@ -38,7 +38,7 @@ export default function InvitePage() { if (status === "invalid") { return ( -
+

Invalid Invitation

@@ -56,7 +56,7 @@ export default function InvitePage() { } return ( -

+
diff --git a/src/app/(auth)/layout.tsx b/src/app/(auth)/layout.tsx index 6eac8cf..8301279 100644 --- a/src/app/(auth)/layout.tsx +++ b/src/app/(auth)/layout.tsx @@ -6,7 +6,7 @@ export default function AuthLayout({ return (
-
{children}
+
{children}
); } diff --git a/src/app/(auth)/login/page.tsx b/src/app/(auth)/login/page.tsx index baf717d..8f55335 100644 --- a/src/app/(auth)/login/page.tsx +++ b/src/app/(auth)/login/page.tsx @@ -53,7 +53,7 @@ function LoginForm() { } return ( -
+
diff --git a/src/app/(dashboard)/onboarding/page.tsx b/src/app/(auth)/onboarding/page.tsx similarity index 98% rename from src/app/(dashboard)/onboarding/page.tsx rename to src/app/(auth)/onboarding/page.tsx index 5873144..8bbe6af 100644 --- a/src/app/(dashboard)/onboarding/page.tsx +++ b/src/app/(auth)/onboarding/page.tsx @@ -1,7 +1,6 @@ "use client"; import { useEffect, useState, useCallback } from "react"; -import { useRouter } from "next/navigation"; import { Building2, MapPin, @@ -60,7 +59,6 @@ const TIMEZONES = [ ]; export default function OnboardingPage() { - const router = useRouter(); const [currentStep, setCurrentStep] = useState(0); const [loading, setLoading] = useState(true); const [submitting, setSubmitting] = useState(false); @@ -97,14 +95,14 @@ export default function OnboardingPage() { .then((r) => r.json()) .then((data) => { if (data.onboardingComplete) { - router.replace("/"); + window.location.href = "/"; return; } setCurrentStep(data.currentStep || 0); }) .catch(() => {}) .finally(() => setLoading(false)); - }, [router]); + }, []); const submitStep = useCallback( async (step: number, data: Record) => { @@ -141,7 +139,7 @@ export default function OnboardingPage() { setSubmitting(false); } }, - [router] + [] ); function handleOrgSubmit(e: React.FormEvent) { @@ -943,8 +941,8 @@ export default function OnboardingPage() {