feat: post-signup onboarding wizard (dietary/allergen prefs, notifications, skippable) (v0.77.0)

New accounts land on a 3-step wizard after signup — welcome, dietary preferences & allergens, notification opt-in — skippable at every step, shown once via a users.onboardingCompletedAt gate in the (app) layout. Existing accounts are backfilled as already-onboarded.

Also gives the allergen-preferences step a real write path: user_allergens previously only had a GDPR-export read.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-24 11:46:07 +02:00
parent 003e8abe22
commit 4aa47ca61d
17 changed files with 6628 additions and 6 deletions
+14 -1
View File
@@ -1,6 +1,19 @@
import { headers } from "next/headers";
import { redirect } from "next/navigation";
import { Nav } from "@/components/layout/nav";
import { auth } from "@/lib/auth/server";
import { db, users, eq } from "@epicure/db";
export default async function AppLayout({ children }: { children: React.ReactNode }) {
const session = await auth.api.getSession({ headers: await headers() });
if (session) {
const dbUser = await db.query.users.findFirst({
where: eq(users.id, session.user.id),
columns: { onboardingCompletedAt: true },
});
if (!dbUser?.onboardingCompletedAt) redirect("/onboarding");
}
export default function AppLayout({ children }: { children: React.ReactNode }) {
return (
<>
<Nav />