"use client"; import * as React from "react"; import { Home, Map } from "lucide-react"; import { NavUser } from "@/components/nav-user"; import { Avatar, AvatarImage } from "./ui/avatar"; import { useState, useEffect } from "react"; import { usePathname, useRouter } from "next/navigation"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarHeader, SidebarInput, SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, } from "@/components/ui/sidebar"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { Button } from "@/components/ui/button"; import { XIcon } from "lucide-react"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" const data = { user: { name: "shadcn", email: "m@example.com", avatar: "/avatars/shadcn.jpg", }, navMain: [ { title: "Dashboard", page: "dashboard", url: "/dashboard", icon: Home, isActive: true, isVisible: true, }, { title: "Map", page: "map", url: "/map", icon: Map, isActive: false, isVisible: true, }, { title: "Dettaglio cliente", page: "client", url: "/client", icon: Home, isVisible: false, } ], clienti: [ { name: "Savoldi Ettore", email: "savoldi.ettore@gmail.com", ragione_sociale: "Acconciature Uomo", p_iva: "13407520172", telefono: "0301547854", sede: "Via Umberto I 60/T, Flero (BS)", sede_url: "https://maps.app.goo.gl/9uNbw2a62ZCCjkQc7", contratto: "https://google.com", registratori: [ { seriale: "80E100548745", acquisto: "15/10/2019", ultima_verifica: "15/10/2025", prossima_verifica: "15/10/2026", interventi: [ { data: "15/10/2025", lavoro: "VERIFICA FISCALE - AGGIORNAMENTO FIRMWARE", fattura: true, }, { data: "28/05/2025", lavoro: "SOSTITUZIONE DGFE", fattura: false, }, { data: "08/10/2024", lavoro: "VERIFICA FISCALE", fattura: true, }, ], }, ], }, { name: "Forno Tagliaferri", email: "info@tagliaferri.it", ragione_sociale: "Forno Tagliaferri", p_iva: "12901475639", telefono: "0309183573", sede: "Via Corso dei Martiri 11, Brescia (BS)", sede_url: "https://maps.app.goo.gl/9uNbw2a62ZCCjkQc7", contratto: "https://google.com", registratori: [ { seriale: "80E1002587545", acquisto: "24/02/2020", ultima_verifica: "24/02/2025", prossima_verifica: "24/02/2026", interventi: [ { data: "24/02/2025", lavoro: "VERIFICA FISCALE", fattura: true, }, { data: "06/04/2025", lavoro: "SOSTITUZIONE DGFE", fattura: false, }, { data: "24/02/2025", lavoro: "VERIFICA FISCALE - AGGIORNAMENTO FIRMWARE", fattura: true, }, ], }, ], }, ], }; export function AppSidebar({ ...props }: React.ComponentProps) { const pathname = usePathname(); const router = useRouter(); const [clientPathname, setClientPathname] = useState(""); const [clienti, setClienti] = React.useState(data.clienti); const { setOpen } = useSidebar(); useEffect(() => { setClientPathname(pathname); }, [pathname]); useEffect(() => { console.log(); }, [clientPathname]); return (
PC SHOP Brescia
{data.navMain.map((item) => { if (!item.isVisible) { return; } return ( { const clienti = data.clienti.sort( () => Math.random() - 0.5, ); setClienti( clienti.slice( 0, Math.max(5, Math.floor(Math.random() * 10) + 1), ), ); setOpen(true); if (clientPathname != item.url) { router.push(item.url); } }} isActive={clientPathname === item.url} className="px-2.5 md:px-2" > {item.title} ); })}
{clientPathname.startsWith("/client") ? "Dettaglio cliente" : data.navMain.find((entry) => entry.url == clientPathname) ?.title}

Resetta ricerca

Aggiungi cliente {/* Make changes to your profile here. Click save when you're done. */}
{clienti.map((cliente) => ( { let path = clientPathname.split("/")[1]; if (path == "dashboard") { path = "client" } router.push(`/${path}?client=${cliente.name}`) }} key={cliente.name} className="hover:cursor-pointer w-11/12 mx-auto rounded-md hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex flex-col items-start gap-2 border-b p-4 text-sm leading-tight whitespace-nowrap last:border-b-0" > {cliente.name}
{cliente.sede}
{cliente.registratori[0].prossima_verifica}
))}
); }