import { redirect } from "next/navigation"; import { ReaderSettingsProvider } from "@/lib/readerSettings"; import { UserSettingsContextProvider } from "@/lib/userSettings"; import { api } from "@/server/api/client"; import { getServerAuthSession } from "@/server/auth"; import { TRPCError } from "@trpc/server"; import { tryCatch } from "@karakeep/shared/tryCatch"; export default async function ReaderLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const session = await getServerAuthSession(); if (!session) { redirect("/"); } const userSettings = await tryCatch(api.users.settings()); if (userSettings.error) { if (userSettings.error instanceof TRPCError) { if ( userSettings.error.code === "NOT_FOUND" || userSettings.error.code === "UNAUTHORIZED" ) { redirect("/logout"); } } throw userSettings.error; } return ( {children} ); }