// Caminho: app/(secretary)/layout.tsx "use client"; import type React from "react"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; // Nossas importações centralizadas import { usuariosApi } from "@/services/usuariosApi"; import DashboardLayout, { UserProfile } from "@/components/layout/DashboardLayout"; import { dashboardConfig } from "@/config/dashboard.config"; interface SecretaryLayoutProps { children: React.ReactNode; } export default function SecretaryLayout({ children }: SecretaryLayoutProps) { const [userProfile, setUserProfile] = useState(null); const [isLoading, setIsLoading] = useState(true); const router = useRouter(); useEffect(() => { const checkAuthentication = async () => { try { // 1. Busca o usuário logado via API const userData = await usuariosApi.getCurrentUser(); // 2. Pega a configuração específica da "secretária" const config = dashboardConfig.secretary; if (!config) { throw new Error("Configuração para o perfil 'secretary' não encontrada."); } // 3. Formata os dados para o perfil setUserProfile(config.getUserProfile(userData)); } catch (error) { // 4. Se falhar, redireciona para o login console.error("Falha na autenticação para secretária:", error); router.push("/login"); } finally { setIsLoading(false); } }; checkAuthentication(); }, [router]); // Enquanto a verificação estiver em andamento, mostra uma tela de carregamento if (isLoading) { return (

Verificando autenticação...

); } // Se não tiver perfil (redirect em andamento), não renderiza nada para evitar erros if (!userProfile) { return null; } // Pega os itens de menu da configuração const menuItems = dashboardConfig.secretary.menuItems; // Renderiza o layout genérico com as props corretas return ( {children} ); }