analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
1 lines • 2.87 kB
Source Map (JSON)
{"version":3,"sources":["../src/components/BreadcrumbMenu/BreadcrumbMenu.tsx"],"sourcesContent":["import { Menu, MenuContent, MenuItem } from '../Menu/Menu';\nimport { useNavigate } from 'react-router-dom';\nimport { type BreadcrumbItem } from './breadcrumbStore';\n\n/**\n * Props do componente BreadcrumbMenu\n */\nexport interface BreadcrumbMenuProps {\n /** Lista de breadcrumbs a serem exibidos */\n breadcrumbs: BreadcrumbItem[];\n /** Callback quando um breadcrumb é clicado */\n onBreadcrumbClick?: (breadcrumb: BreadcrumbItem, index: number) => void;\n /** Classes CSS adicionais */\n className?: string;\n}\n\n/**\n * Componente reutilizável para renderizar um menu de breadcrumbs\n *\n * @example\n * ```tsx\n * <BreadcrumbMenu\n * breadcrumbs={breadcrumbs}\n * onBreadcrumbClick={(breadcrumb, index) => {\n * console.log('Clicked:', breadcrumb, 'at index:', index);\n * }}\n * />\n * ```\n */\nexport const BreadcrumbMenu = ({\n breadcrumbs,\n onBreadcrumbClick,\n className = '!px-0 py-4 flex-wrap w-full',\n}: BreadcrumbMenuProps) => {\n const navigate = useNavigate();\n\n const handleClick = (breadcrumb: BreadcrumbItem, index: number) => {\n if (onBreadcrumbClick) {\n onBreadcrumbClick(breadcrumb, index);\n }\n navigate(breadcrumb.url);\n };\n\n return (\n <Menu\n value={`breadcrumb-${breadcrumbs.length - 1}`}\n defaultValue=\"breadcrumb-0\"\n variant=\"breadcrumb\"\n className={className}\n >\n <MenuContent className=\"w-full flex flex-row flex-wrap gap-2 !px-0\">\n {breadcrumbs.map((breadcrumb, index) => {\n const isLast = index === breadcrumbs.length - 1;\n const hasSeparator = !isLast;\n\n return (\n <MenuItem\n key={breadcrumb.id}\n variant=\"breadcrumb\"\n value={`breadcrumb-${index}`}\n className=\"!p-0 whitespace-nowrap\"\n onClick={() => handleClick(breadcrumb, index)}\n separator={hasSeparator}\n >\n {breadcrumb.name}\n </MenuItem>\n );\n })}\n </MenuContent>\n </Menu>\n );\n};\n"],"mappings":";;;;;;;AACA,SAAS,mBAAmB;AAuDhB;AA3BL,IAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,YAAY;AACd,MAA2B;AACzB,QAAM,WAAW,YAAY;AAE7B,QAAM,cAAc,CAAC,YAA4B,UAAkB;AACjE,QAAI,mBAAmB;AACrB,wBAAkB,YAAY,KAAK;AAAA,IACrC;AACA,aAAS,WAAW,GAAG;AAAA,EACzB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,cAAc,YAAY,SAAS,CAAC;AAAA,MAC3C,cAAa;AAAA,MACb,SAAQ;AAAA,MACR;AAAA,MAEA,8BAAC,eAAY,WAAU,8CACpB,sBAAY,IAAI,CAAC,YAAY,UAAU;AACtC,cAAM,SAAS,UAAU,YAAY,SAAS;AAC9C,cAAM,eAAe,CAAC;AAEtB,eACE;AAAA,UAAC;AAAA;AAAA,YAEC,SAAQ;AAAA,YACR,OAAO,cAAc,KAAK;AAAA,YAC1B,WAAU;AAAA,YACV,SAAS,MAAM,YAAY,YAAY,KAAK;AAAA,YAC5C,WAAW;AAAA,YAEV,qBAAW;AAAA;AAAA,UAPP,WAAW;AAAA,QAQlB;AAAA,MAEJ,CAAC,GACH;AAAA;AAAA,EACF;AAEJ;","names":[]}