import React, { useState, useEffect, useCallback } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import "./style/ProfilePage.css"; const ROLES = { ADMIN: "Administrador", SECRETARY: "Secretária", DOCTOR: "Médico", FINANCIAL: "Financeiro" }; const ProfilePage = () => { const location = useLocation(); const navigate = useNavigate(); const getRoleFromPath = useCallback(() => { const path = location.pathname; if (path.includes("/admin")) return ROLES.ADMIN; if (path.includes("/secretaria")) return ROLES.SECRETARY; if (path.includes("/medico")) return ROLES.DOCTOR; if (path.includes("/financeiro")) return ROLES.FINANCIAL; return "Usuário"; }, [location.pathname]); const userRole = getRoleFromPath(); const [userName, setUserName] = useState("Admin Padrão"); const [userEmail, setUserEmail] = useState("admin@squad23.com"); const [avatarUrl, setAvatarUrl] = useState(null); const [isEditingName, setIsEditingName] = useState(false); const [error, setError] = useState(null); useEffect(() => { const handleEscKey = (event) => { if (event.keyCode === 27) handleClose(); }; document.addEventListener('keydown', handleEscKey); return () => document.removeEventListener('keydown', handleEscKey); }, []); useEffect(() => { const loadProfileData = () => { const localAvatar = localStorage.getItem('user_avatar'); if (localAvatar) { setAvatarUrl(localAvatar); } }; loadProfileData(); const handleStorageChange = () => { loadProfileData(); }; window.addEventListener('storage', handleStorageChange); return () => window.removeEventListener('storage', handleStorageChange); }, []); const handleNameSave = () => { if (userName.trim() === "") { setError("Nome não pode estar vazio"); return; } setIsEditingName(false); setError(null); }; const handleNameKeyDown = (event) => { if (event.key === "Enter") handleNameSave(); if (event.key === "Escape") { setUserName("Admin Padrão"); setIsEditingName(false); setError(null); } }; const handleClose = () => navigate(-1); return (
Gerencie seu avatar no menu do perfil acima
Email: {userEmail}
Cargo: {userRole}