import { Link, useRouterState } from "@tanstack/react-router"; import { CalendarCheck, Wallet, UserRound, Bell, LogOut, Menu, Sparkles, Ticket } from "lucide-react"; import { useState, type ReactNode } from "react"; import { cn } from "@/lib/utils"; import { useAppState } from "@/lib/store"; import { notificar, pedirPermisoNotificaciones } from "@/lib/notificaciones"; import { BrandLogo, BrandMark } from "@/components/BrandLogo"; import { useInstalarPWA } from "@/lib/pwa-install"; const NAV = [ { to: "/vuelos", label: "Vuelos", icon: Sparkles }, { to: "/reserva", label: "Reservar", icon: Ticket }, { to: "/reservaciones", label: "Reservas", icon: CalendarCheck }, { to: "/comisiones", label: "Comisiones", icon: Wallet }, { to: "/perfil", label: "Perfil", icon: UserRound }, ] as const; export function AppShell({ title, subtitle, children, }: { title: string; subtitle?: string; children: ReactNode; }) { const { pathname } = useRouterState({ select: (s) => s.location }); const { socio } = useAppState(); const [sidebarAbierto, setSidebarAbierto] = useState(true); const { instalada, instalar } = useInstalarPWA(); const activarNotificaciones = async () => { const estado = await pedirPermisoNotificaciones(); notificar( "Notificaciones activas", estado === "granted" ? "Te avisaremos de reservaciones confirmadas y comisiones acreditadas." : "Verás los avisos dentro de la app.", ); }; return (
{subtitle}
)}