// Caminho: app/(doctor)/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 DoctorLayoutProps { children: React.ReactNode; } export default function DoctorLayout({ children }: DoctorLayoutProps) { const [userProfile, setUserProfile] = useState(null); const [isLoading, setIsLoading] = useState(true); const router = useRouter(); useEffect(() => { const checkAuthentication = async () => { try { // Busca o usuário logado const userData = await usuariosApi.getCurrentUser(); // Pega a configuração específica do "doctor" const config = dashboardConfig.doctor; // Formata os dados para o perfil setUserProfile(config.getUserProfile(userData)); } catch (error) { // Se falhar, redireciona para o login router.push("/login"); } finally { setIsLoading(false); } }; checkAuthentication(); }, [router]); // Enquanto verifica, mostra uma tela de carregamento if (isLoading) { return (

Verificando autenticação...

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