// CÓDIGO COMPLETO PARA: components/secretary-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"; import { api } from "@/services/api.mjs"; 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 } from "lucide-react"; import { Badge } from "./ui/badge"; export default function SecretaryLayout({ children }: { children: React.ReactNode }) { const { user, isLoading } = useAuthLayout({ requiredRole: 'secretaria' }); 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("/"); }; const menuItems = [ { href: "/secretary/dashboard", icon: Home, label: "Dashboard" }, { href: "/secretary/appointments", icon: Calendar, label: "Consultas" }, { href: "/secretary/schedule", icon: Clock, label: "Agendar Consulta" }, { href: "/secretary/pacientes", icon: User, label: "pacientes" }, ]; if (isLoading || !user) { return
Carregando...
; } return (
{!sidebarCollapsed && (
MediConnect
)}
{user.name.split(" ").map((n) => n[0]).join("")} {!sidebarCollapsed && (

{user.name}

{user.email}

)}
{children}
Confirmar SaídaDeseja realmente sair do sistema?
); }