aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/app/dashboard/settings/page.tsx
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-10-05 16:35:47 +0000
committerMohamedBassem <me@mbassem.com>2024-10-05 17:15:36 +0000
commit3a8d197437868ca10d294f0174afa013f138ec33 (patch)
treea78f8957cbb04b3f38727a6d8842f3749528b0ed /apps/web/app/dashboard/settings/page.tsx
parent03e938a903f520ff4c6976d873355a0f44278a9e (diff)
downloadkarakeep-3a8d197437868ca10d294f0174afa013f138ec33.tar.zst
feature(web): Change the settings page to be tabbed
Diffstat (limited to 'apps/web/app/dashboard/settings/page.tsx')
-rw-r--r--apps/web/app/dashboard/settings/page.tsx70
1 files changed, 49 insertions, 21 deletions
diff --git a/apps/web/app/dashboard/settings/page.tsx b/apps/web/app/dashboard/settings/page.tsx
index 97048657..c116fb86 100644
--- a/apps/web/app/dashboard/settings/page.tsx
+++ b/apps/web/app/dashboard/settings/page.tsx
@@ -1,32 +1,60 @@
-import Link from "next/link";
+import AISettings from "@/components/dashboard/settings/AISettings";
import ApiKeySettings from "@/components/dashboard/settings/ApiKeySettings";
import { ChangePassword } from "@/components/dashboard/settings/ChangePassword";
import ImportExport from "@/components/dashboard/settings/ImportExport";
import UserDetails from "@/components/dashboard/settings/UserDetails";
-import { ExternalLink } from "lucide-react";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { Download, KeyRound, Sparkle, User } from "lucide-react";
export default async function Settings() {
return (
- <>
- <div className="rounded-md border bg-background p-4">
- <UserDetails />
- <ChangePassword />
- </div>
- <div className="mt-4 rounded-md border bg-background p-4">
- <Link
- className="flex items-center gap-2 text-lg font-medium"
- href="/dashboard/settings/ai"
- >
+ <Tabs
+ defaultValue="info"
+ orientation="horizontal"
+ className="flex flex-col gap-1"
+ >
+ <TabsList className="flex justify-start">
+ <TabsTrigger className="flex items-center gap-2 p-3" value="info">
+ <User className="size-4" />
+ User Info
+ </TabsTrigger>
+ <TabsTrigger className="flex items-center gap-2 p-3" value="ai">
+ <Sparkle className="size-4" />
AI Settings
- <ExternalLink />
- </Link>
- </div>
- <div className="mt-4 rounded-md border bg-background p-4">
- <ImportExport />
- </div>
- <div className="mt-4 rounded-md border bg-background p-4">
- <ApiKeySettings />
+ </TabsTrigger>
+ <TabsTrigger
+ className="flex items-center gap-2 p-3"
+ value="importexport"
+ >
+ <Download className="size-4" />
+ Import / Export
+ </TabsTrigger>
+ <TabsTrigger className="flex items-center gap-2 p-3" value="apikeys">
+ <KeyRound className="size-4" />
+ API Keys
+ </TabsTrigger>
+ </TabsList>
+ <div className="w-full">
+ <TabsContent value="info">
+ <div className="rounded-md border bg-background p-4">
+ <UserDetails />
+ <ChangePassword />
+ </div>
+ </TabsContent>
+ <TabsContent value="ai">
+ <AISettings />
+ </TabsContent>
+ <TabsContent value="importexport">
+ <div className="rounded-md border bg-background p-4">
+ <ImportExport />
+ </div>
+ </TabsContent>
+ <TabsContent value="apikeys">
+ <div className="rounded-md border bg-background p-4">
+ <ApiKeySettings />
+ </div>
+ </TabsContent>
</div>
- </>
+ </Tabs>
);
}