// CÓDIGO REATORADO PARA: components/doctor-layout.tsx "use client"; import type React from "react"; import { useState } from "react"; import { useRouter, usePathname } from "next/navigation"; import Link from "next/link"; import { useAuthLayout } from "@/hooks/useAuthLayout"; // 1. Importamos nosso novo hook import { api } from "@/services/api.mjs"; // Componentes da UI import { Button } from "@/components/ui/button"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Home, Calendar, Clock, User, LogOut, ChevronLeft, ChevronRight, Bell, FileText } from "lucide-react"; import { Badge } from "./ui/badge"; export default function DoctorLayout({ children }: { children: React.ReactNode }) { // 2. Usamos o hook para buscar o usuário e controlar o acesso para 'medico' const { user, isLoading } = useAuthLayout({ requiredRole: 'medico' }); const [sidebarCollapsed, setSidebarCollapsed] = useState(false); const [showLogoutDialog, setShowLogoutDialog] = useState(false); const router = useRouter(); const pathname = usePathname(); const confirmLogout = async () => { await api.logout(); setShowLogoutDialog(false); router.push("/"); }; // ESTA PARTE É ÚNICA DE CADA LAYOUT E DEVE SER MANTIDA const menuItems = [ { href: "/doctor/dashboard", icon: Home, label: "Dashboard" }, { href: "/doctor/consultas", icon: Calendar, label: "Consultas" }, { href: "/doctor/medicos/editorlaudo", icon: Clock, label: "Editor de Laudo" }, { href: "/doctor/medicos", icon: User, label: "patientes" }, { href: "/doctor/disponibilidade", icon: Calendar, label: "Disponibilidade" }, ]; // 3. Adicionamos o estado de carregamento if (isLoading || !user) { return
{user.name}
{user.roles.join(', ')}