import type { LucideIcon } from "lucide-react" import { Home, ShieldCheck, Sparkles, UserRound } from "lucide-react" export type CompteSettingsSectionId = "home" | "personal-info" | "security" | "usage-ia" export const ACCOUNT_SETTINGS_BASE_PATH = "/account" export type CompteSettingsNavItem = { id: CompteSettingsSectionId label: string description: string href: string icon: LucideIcon } export const COMPTE_SETTINGS_NAV: CompteSettingsNavItem[] = [ { id: "home", label: "Accueil", description: "Vue d'ensemble de votre compte Ulti", href: ACCOUNT_SETTINGS_BASE_PATH, icon: Home, }, { id: "personal-info", label: "Informations personnelles", description: "Nom, adresse e-mail et identifiant", href: `${ACCOUNT_SETTINGS_BASE_PATH}/informations`, icon: UserRound, }, { id: "usage-ia", label: "Usage IA", description: "Consommation LLM et clés API personnelles", href: `${ACCOUNT_SETTINGS_BASE_PATH}/usage-ia`, icon: Sparkles, }, { id: "security", label: "Sécurité", description: "Mot de passe, sessions et appareils", href: `${ACCOUNT_SETTINGS_BASE_PATH}/securite`, icon: ShieldCheck, }, ] export function isAccountSettingsPath(pathname: string | null): boolean { return ( pathname === ACCOUNT_SETTINGS_BASE_PATH || pathname?.startsWith(`${ACCOUNT_SETTINGS_BASE_PATH}/`) === true ) } export function isCompteSettingsNavActive( pathname: string | null, item: CompteSettingsNavItem ): boolean { if (item.href === ACCOUNT_SETTINGS_BASE_PATH) { return ( pathname === ACCOUNT_SETTINGS_BASE_PATH || pathname === `${ACCOUNT_SETTINGS_BASE_PATH}/accueil` ) } return ( pathname === item.href || Boolean(pathname?.startsWith(`${item.href}/`)) ) } export function resolveCompteSettingsSection( segments: string[] | undefined ): CompteSettingsSectionId { const slug = segments?.[0] const match = COMPTE_SETTINGS_NAV.find((item) => { if (item.id === "home") return !slug || slug === "accueil" return item.href.endsWith(`/${slug}`) }) return match?.id ?? "home" }