// CÓDIGO COMPLETO PARA: components/finance-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, User, LogOut, ChevronLeft, ChevronRight, Bell } from "lucide-react"; import { Badge } from "./ui/badge"; export default function FinancierLayout({ children }: { children: React.ReactNode }) { const { user, isLoading } = useAuthLayout({ requiredRole: 'finance' }); 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: "#", icon: Home, label: "Dashboard" }, { href: "#", icon: Calendar, label: "Relatórios financeiros" }, { href: "#", icon: User, label: "Finanças Gerais" }, { href: "#", icon: Calendar, label: "Configurações" }, ]; if (isLoading || !user) { return
Carregando...
; } return (
{!sidebarCollapsed && (
MediConnect
)}
{user.name.split(" ").map((n) => n[0]).join("")} {!sidebarCollapsed && (

{user.name}

{user.roles.join(', ')}

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