blob: b0c27c84b7cd3c7fd4fef81f45c8c4f497fc7893 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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 (
<UserSettingsContextProvider userSettings={userSettings.data}>
<ReaderSettingsProvider>{children}</ReaderSettingsProvider>
</UserSettingsContextProvider>
);
}
|