"use client"; import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu"; import Link from "next/link"; import { Fragment, useState } from "react"; import { z } from "zod"; import { Schema_Breadcrumb } from "~/schema"; import Icon from "~/components/Icon"; import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from "~/components/ui/breadcrumb"; import { Button } from "~/components/ui/button"; import { Drawer, DrawerClose, DrawerContent, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, } from "~/components/ui/drawer"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, } from "~/components/ui/dropdown-menu"; import { Separator } from "~/components/ui/separator"; import { Skeleton } from "~/components/ui/skeleton"; import useMediaQuery from "~/hooks/useMediaQuery"; import config from "~/config/gIndex.config"; type Props = { data: z.infer[]; loading?: boolean; }; export default function HeaderBreadcrumb({ data, loading }: Props) { const [open, setOpen] = useState(false); const isDesktop = useMediaQuery("(min-width: 768px)"); if (loading) return ; return (
~
{!!data.length ? ( <> {data.length > config.siteConfig.breadcrumbMax ? ( <> {isDesktop ? ( {data .slice(0, -config.siteConfig.breadcrumbMax + 1) .map((item, _, array) => ( item.href) .join("/")}`} className='w-full' > {item.label} ))} ) : ( Navigate to parent directories
{data .slice(0, -config.siteConfig.breadcrumbMax + 1) .map((item, _, array) => ( item.href) .join("/")}`} className='w-full py-1.5' > {item.label} ))}
)} ) : null} {data.slice(-config.siteConfig.breadcrumbMax + 1).map((item) => ( {item.href ? ( <> item.href) .join("/") .replace(/\/\//g, "/")}`} > {item.label} ) : ( {item.label} )} {item.href && } ))} ) : null}
); }