{user?.name}
{user?.email}
import React, { useState, useRef, useEffect } from 'react'; const AppLayout = ({ user, onLogout, onSettingsClick, notifications = [], onSosClick, navItems, activeNavId, children }) => { const [showProfile, setShowProfile] = useState(false); const [registeredRoles, setRegisteredRoles] = useState([]); const profileRef = useRef(null); useEffect(() => { if (user?.email) { const token = user.token || localStorage.getItem('token'); fetch(`/api/users/roles?email=${encodeURIComponent(user.email)}`, { headers: { 'Authorization': `Bearer ${token}` } }) .then(res => { if (!res.ok) throw new Error('Network response was not ok'); return res.json(); }) .then(data => { if (Array.isArray(data)) setRegisteredRoles(data); }) .catch(err => console.error('Failed to fetch user roles', err)); } }, [user?.email]); useEffect(() => { const handleClickOutside = (event) => { if (profileRef.current && !profileRef.current.contains(event.target)) { setShowProfile(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); return (
{user?.name}
{user?.email}