import { Link, NavLink } from 'react-router-dom'; import { useAuth } from '@/auth/AuthProvider'; /** * Navigation d'un projet. * * Les entrées réservées aux administrateurs ne sont pas grisées : elles sont * ABSENTES. Un menu plein d'options inaccessibles apprend à l'utilisateur que * l'interface ne le concerne pas — c'est exactement l'inverse du but recherché. * * Le rôle n'est pas encore exposé par l'API de projet ; en attendant, on affiche * l'administration aux comptes qui ont un rôle global élevé, et le serveur reste * l'autorité — chaque endpoint refuse ce qu'il doit refuser. */ export function ProjectNav({ projectUuid, canAdminister }: { projectUuid: string; canAdminister: boolean }) { const { user, logout } = useAuth(); const item = (to: string, label: string) => ( `rounded px-2.5 py-1 text-sm transition-colors ${ isActive ? 'bg-accent-soft font-medium text-accent' : 'text-ink-600 hover:bg-ink-100' }` } > {label} ); return (
TQ-Slator
{item(`/p/${projectUuid}/editor`, 'Éditeur')} {canAdminister && item(`/p/${projectUuid}/members`, 'Membres')} {canAdminister && item(`/p/${projectUuid}/platforms`, 'Plateformes')} {canAdminister && item(`/p/${projectUuid}/integration`, 'Intégration')} {user?.name}
); }