"use client"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { cn } from "@/lib/utils"; import { SettingsCard, SettingsSection, } from "@/components/settings/settings-parts"; import { SigningPanel } from "@/components/settings/settings-billing"; import { CareTeamPanel } from "@/components/settings/settings-care-team"; import { ProfilePanel } from "@/components/settings/settings-preferences"; import { useActiveRole } from "@/lib/roles"; const TABS = [ { id: "profile", labelKey: "settings.tabs.profile" }, { id: "records", labelKey: "settings.tabs.records" }, { id: "signing", labelKey: "settings.tabs.signing" }, { id: "careTeam", labelKey: "settings.tabs.careTeam" }, { id: "developers", labelKey: "settings.tabs.developers" }, ] as const; type Tab = (typeof TABS)[number]["id"]; function PlaceholderPanel({ title, description, }: { title: string; description: string; }) { const { t } = useTranslation(); return (

{t("settings.empty")}

); } export function SettingsView() { const { t } = useTranslation(); const role = useActiveRole(); const [tab, setTab] = useState("profile"); // Only clinic owners/admins manage clinic-wide settings (care team, records, // signing, developers). Everyone else gets their own profile only. const isAdmin = role === "owner" || role === "admin"; const visibleTabs = isAdmin ? TABS : TABS.filter((item) => item.id === "profile"); const activeTab = visibleTabs.some((item) => item.id === tab) ? tab : "profile"; return (

{t(`settings.tabs.${activeTab}`)}

{activeTab === "profile" && } {activeTab === "records" && ( )} {activeTab === "signing" && } {activeTab === "careTeam" && } {activeTab === "developers" && ( )}
); }