import React, { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { UserInfos } from "./utils/Functions-Endpoints/General"; import { useAuth } from "./utils/AuthProvider"; import "./TrocardePerfis.css"; const ToggleIcon = ({ isOpen }) => ( ); const TrocardePerfis = () => { const navigate = useNavigate(); const { getAuthorizationHeader } = useAuth(); const [showProfiles, setShowProfiles] = useState([]); const [isOpen, setIsOpen] = useState(false); useEffect(() => { const fetchData = async () => { const authHeader = getAuthorizationHeader(); try { const userInfo = await UserInfos(authHeader); setShowProfiles(userInfo?.roles || []); } catch (error) { console.error("Erro ao buscar informações do usuário:", error); setShowProfiles([]); } }; fetchData(); }, [getAuthorizationHeader]); const handleProfileClick = (route) => { if (route) { navigate(route); setIsOpen(false); } }; const handleToggle = () => { setIsOpen(prev => !prev); }; const options = [ { key: "secretaria", label: "Secretaria", route: "/secretaria" }, { key: "medico", label: "Médico", route: "/medico" }, { key: "financeiro", label: "Financeiro", route: "/financeiro" }, { key: "admin", label: "Administração", route: "/admin" }, { key: "paciente", label: "Paciente", route: "/paciente" }, ].filter( (opt) => showProfiles?.includes(opt.key) || showProfiles?.includes("admin") ); return (
{ if (e.key === 'Enter' || e.key === ' ') { handleToggle(); } }} > Acesso aos módulos
{isOpen && (
{options.length > 0 ? ( options.map((opt) => (
handleProfileClick(opt.route)} role="button" tabIndex={0} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { handleProfileClick(opt.route); } }} > {opt.label}
)) ) : (

Nenhum perfil disponível.

)}
)}
); }; export default TrocardePerfis;