ultisuite-client/lib/compte-settings/settings-nav.ts
R3D347HR4Y 3bbf3691b0
Some checks failed
E2E / Playwright e2e (push) Has been cancelled
bordel c'est beau
2026-06-11 10:10:39 +02:00

60 lines
1.5 KiB
TypeScript

import type { LucideIcon } from "lucide-react"
import { Home, ShieldCheck, UserRound } from "lucide-react"
export type CompteSettingsSectionId = "home" | "personal-info" | "security"
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: "/compte",
icon: Home,
},
{
id: "personal-info",
label: "Informations personnelles",
description: "Nom, adresse e-mail et identifiant",
href: "/compte/informations",
icon: UserRound,
},
{
id: "security",
label: "Sécurité",
description: "Mot de passe, sessions et appareils",
href: "/compte/securite",
icon: ShieldCheck,
},
]
export function isCompteSettingsNavActive(
pathname: string | null,
item: CompteSettingsNavItem
): boolean {
if (item.href === "/compte") {
return pathname === "/compte" || pathname === "/compte/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"
}