- Show profile avatar and formatted name in top nav - Add product icon to left of brand name in top nav - Add blue border to ProfileAvatar, add xs size - Add protected /specificatie page with 5 chapter summaries - Replace planning button with CV link on about page - Add Specificatie button on about page - Show app version + git SHA on about page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
949 B
TypeScript
31 lines
949 B
TypeScript
import type { ReactNode } from "react";
|
|
import { getAuthState } from "@/lib/auth/session";
|
|
import { getNavProfileForCurrentUser } from "@/lib/profile/service";
|
|
import { BottomNav } from "@/components/navigation/bottom-nav";
|
|
import { TopNav } from "@/components/navigation/top-nav";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
type AppShellProps = {
|
|
children: ReactNode;
|
|
contentClassName?: string;
|
|
};
|
|
|
|
export async function AppShell({
|
|
children,
|
|
contentClassName,
|
|
}: AppShellProps) {
|
|
const authState = await getAuthState();
|
|
const navProfile = authState.userId
|
|
? await getNavProfileForCurrentUser(authState.userId)
|
|
: null;
|
|
|
|
return (
|
|
<main className="app-page">
|
|
<div className="mx-auto flex min-h-screen w-full max-w-6xl flex-col gap-8">
|
|
<TopNav authState={authState} navProfile={navProfile} />
|
|
<div className={cn("flex-1", contentClassName)}>{children}</div>
|
|
<BottomNav />
|
|
</div>
|
|
</main>
|
|
);
|
|
}
|