import { redirect } from "next/navigation"; import AllLists from "@/components/dashboard/sidebar/AllLists"; import MobileSidebar from "@/components/shared/sidebar/MobileSidebar"; import Sidebar from "@/components/shared/sidebar/Sidebar"; import SidebarLayout from "@/components/shared/sidebar/SidebarLayout"; import { Separator } from "@/components/ui/separator"; import { UserSettingsContextProvider } from "@/lib/userSettings"; import { api } from "@/server/api/client"; import { getServerAuthSession } from "@/server/auth"; import { TFunction } from "i18next"; import { Archive, ClipboardList, Highlighter, Home, Search, Tag, } from "lucide-react"; import serverConfig from "@karakeep/shared/config"; export default async function Dashboard({ children, modal, }: Readonly<{ children: React.ReactNode; modal: React.ReactNode; }>) { const session = await getServerAuthSession(); if (!session) { redirect("/"); } const [lists, userSettings] = await Promise.all([ api.lists.list(), api.users.settings(), ]); const items = (t: TFunction) => [ { name: t("common.home"), icon: , path: "/dashboard/bookmarks", }, serverConfig.search.meilisearch ? [ { name: t("common.search"), icon: , path: "/dashboard/search", }, ] : [], { name: t("common.tags"), icon: , path: "/dashboard/tags", }, { name: t("common.highlights"), icon: , path: "/dashboard/highlights", }, { name: t("common.archive"), icon: , path: "/dashboard/archive", }, ].flat(); const mobileSidebar = (t: TFunction) => [ ...items(t), { name: t("lists.all_lists"), icon: , path: "/dashboard/lists", }, ]; return ( } /> } mobileSidebar={} modal={modal} > {children} ); }