import React, { useState } from 'react'; import { useEstablishment } from '@/context/EstablishmentContext'; import DropdownMenu from '@/components/DropdownMenu'; import { getRightStr } from '@/utils/rights'; import { ChevronDown } from 'lucide-react'; // Import de l'icône const ProfileSelector = ({ onRoleChange, className = '' }) => { const { establishments, selectedRoleId, setSelectedRoleId, setSelectedEstablishmentId, setProfileRole, user, } = useEstablishment(); const [dropdownOpen, setDropdownOpen] = useState(false); const handleRoleChange = (roleId) => { // Pas bon quand on a plusieur role pour le même établissement const role = user.roles[roleId].role_type; const establishmentId = user.roles[roleId].establishment__id; setProfileRole(role); setSelectedEstablishmentId(establishmentId); setSelectedRoleId(roleId); if (onRoleChange) { onRoleChange(roleId); } setDropdownOpen(false); // Fermer le menu après sélection }; // Si on a pas de rôle ou un seul rôle, on n'affiche pas le sélecteur if ( !establishments || establishments.length === 0 || establishments.length === 1 ) { return null; } const selectedEstablishment = establishments.find( (est) => est.role_id === selectedRoleId ); return (
{getRightStr(selectedEstablishment?.role_type) || ''}
{selectedEstablishment?.name || 'Sélectionnez un établissement'}
{/* Icône ChevronDown avec rotation conditionnelle */}
} items={establishments.map((establishment) => ({ type: 'item', label: (
{getRightStr(establishment.role_type)}
{establishment.name}
), onClick: () => handleRoleChange(establishment.role_id), }))} buttonClassName="w-full" menuClassName="absolute mt-2 w-full bg-white border border-gray-200 rounded shadow-lg z-10" dropdownOpen={dropdownOpen} setDropdownOpen={setDropdownOpen} /> ); }; export default ProfileSelector;