"use client"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { cn } from "@/lib/utils"; import { SigningPanel } from "@/components/settings/settings-billing"; import { CareTeamPanel } from "@/components/settings/settings-care-team"; import { DevelopersPanel } from "@/components/settings/settings-developers"; import { ProfilePanel } from "@/components/settings/settings-preferences"; import { RecordsPanel } from "@/components/settings/settings-records"; 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"]; 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" && }
); }