feat(web): onboarding wizard (MS22-P1f) (#616)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #616.
This commit is contained in:
9
apps/web/src/app/onboarding/layout.tsx
Normal file
9
apps/web/src/app/onboarding/layout.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
export default function OnboardingLayout({ children }: { children: ReactNode }): React.JSX.Element {
|
||||
return (
|
||||
<main className="flex min-h-screen items-center justify-center bg-gradient-to-b from-slate-50 to-white p-4 sm:p-6">
|
||||
<div className="w-full max-w-3xl">{children}</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
36
apps/web/src/app/onboarding/page.tsx
Normal file
36
apps/web/src/app/onboarding/page.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import { OnboardingWizard } from "@/components/onboarding/OnboardingWizard";
|
||||
import { API_BASE_URL } from "@/lib/config";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
|
||||
interface OnboardingStatusResponse {
|
||||
completed: boolean;
|
||||
}
|
||||
|
||||
async function getOnboardingStatus(): Promise<OnboardingStatusResponse> {
|
||||
try {
|
||||
const response = await fetch(`${API_BASE_URL}/api/onboarding/status`, {
|
||||
method: "GET",
|
||||
cache: "no-store",
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
return { completed: false };
|
||||
}
|
||||
|
||||
return (await response.json()) as OnboardingStatusResponse;
|
||||
} catch {
|
||||
return { completed: false };
|
||||
}
|
||||
}
|
||||
|
||||
export default async function OnboardingPage(): Promise<React.JSX.Element> {
|
||||
const status = await getOnboardingStatus();
|
||||
|
||||
if (status.completed) {
|
||||
redirect("/");
|
||||
}
|
||||
|
||||
return <OnboardingWizard />;
|
||||
}
|
||||
Reference in New Issue
Block a user