import { DeviceCartDrawer } from "@/components/device-cart"; import { Wallet } from "@/components/wallet"; import { ModeToggle } from "@/components/theme-toggle"; import { AppSidebar } from "@/components/ui/app-sidebar"; import { getProfile } from "@/actions/payment"; import { authOptions } from "@/app/auth"; import { Separator } from "@/components/ui/separator"; import { SidebarInset, SidebarProvider, SidebarTrigger, } from "@/components/ui/sidebar"; import { tryCatch } from "@/utils/tryCatch"; import { getServerSession } from "next-auth"; import { redirect } from "next/navigation"; import { AccountPopover } from "./account-popver"; export async function ApplicationLayout({ children, }: { children: React.ReactNode }) { const session = await getServerSession(authOptions); if (!session) return redirect("/auth/signin"); const [userError, userProfile] = await tryCatch(getProfile()); if (userError) { if (userError.message === "Invalid token.") redirect("/auth/signin"); return null; } return (
Logged in as,{" "} {session?.user?.first_name} {session?.user?.last_name}
{children}
); }