diff options
| author | MohamedBassem <me@mbassem.com> | 2024-10-05 16:35:47 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-10-05 17:15:36 +0000 |
| commit | 3a8d197437868ca10d294f0174afa013f138ec33 (patch) | |
| tree | a78f8957cbb04b3f38727a6d8842f3749528b0ed /apps/web/app/dashboard/settings/page.tsx | |
| parent | 03e938a903f520ff4c6976d873355a0f44278a9e (diff) | |
| download | karakeep-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.tsx | 70 |
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> ); } |
