"use client"; import React from "react"; import { User, Palette, Key, Settings, Users, FolderGit2 } from "lucide-react"; import { Tabs, TabsList, TabsTrigger, TabsContent } from "@multica/ui/components/ui/tabs"; import { useCurrentWorkspace } from "@multica/core/paths"; import { AccountTab } from "./account-tab"; import { AppearanceTab } from "./appearance-tab"; import { TokensTab } from "./tokens-tab"; import { WorkspaceTab } from "./workspace-tab"; import { MembersTab } from "./members-tab"; import { RepositoriesTab } from "./repositories-tab"; const accountTabs = [ { value: "profile", label: "Profile", icon: User }, { value: "appearance", label: "Appearance", icon: Palette }, { value: "tokens", label: "API Tokens", icon: Key }, ]; const workspaceTabs = [ { value: "workspace", label: "General", icon: Settings }, { value: "repositories", label: "Repositories", icon: FolderGit2 }, { value: "members", label: "Members", icon: Users }, ]; export interface ExtraSettingsTab { value: string; label: string; icon: React.ComponentType<{ className?: string }>; content: React.ReactNode; } interface SettingsPageProps { /** Additional tabs injected by platform (e.g. desktop daemon settings) */ extraAccountTabs?: ExtraSettingsTab[]; } export function SettingsPage({ extraAccountTabs }: SettingsPageProps = {}) { const workspaceName = useCurrentWorkspace()?.name; return ( {/* Left nav */}

Settings

{/* My Account group */} My Account {accountTabs.map((tab) => ( {tab.label} ))} {extraAccountTabs?.map((tab) => ( {tab.label} ))} {/* Workspace group */} {workspaceName ?? "Workspace"} {workspaceTabs.map((tab) => ( {tab.label} ))}
{/* Right content */}
{extraAccountTabs?.map((tab) => ( {tab.content} ))}
); }