import MobileSidebar from "@/components/shared/sidebar/MobileSidebar"; import Sidebar from "@/components/shared/sidebar/Sidebar"; import SidebarLayout from "@/components/shared/sidebar/SidebarLayout"; import { UserSettingsContextProvider } from "@/lib/userSettings"; import { api } from "@/server/api/client"; import { TFunction } from "i18next"; import { ArrowLeft, BarChart3, CreditCard, Download, GitBranch, Image, KeyRound, Link, Rss, Sparkles, User, Webhook, } from "lucide-react"; import serverConfig from "@karakeep/shared/config"; const settingsSidebarItems = ( t: TFunction, ): { name: string; icon: React.ReactElement; path: string; }[] => { return [ { name: t("settings.back_to_app"), icon: , path: "/dashboard/bookmarks", }, { name: t("settings.info.user_info"), icon: , path: "/settings/info", }, { name: t("settings.stats.usage_statistics"), icon: , path: "/settings/stats", }, ...(serverConfig.stripe.isConfigured ? [ { name: t("settings.subscription.subscription"), icon: , path: "/settings/subscription", }, ] : []), ...(serverConfig.inference.isConfigured ? [ { name: t("settings.ai.ai_settings"), icon: , path: "/settings/ai", }, ] : []), { name: t("settings.feeds.rss_subscriptions"), icon: , path: "/settings/feeds", }, { name: t("settings.import.import_export"), icon: , path: "/settings/import", }, { name: t("settings.api_keys.api_keys"), icon: , path: "/settings/api-keys", }, { name: t("settings.broken_links.broken_links"), icon: , path: "/settings/broken-links", }, { name: t("settings.webhooks.webhooks"), icon: , path: "/settings/webhooks", }, { name: t("settings.rules.rules"), icon: , path: "/settings/rules", }, { name: t("settings.manage_assets.manage_assets"), icon: , path: "/settings/assets", }, ]; }; export default async function SettingsLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const userSettings = await api.users.settings(); return ( } mobileSidebar={} > {children} ); }