Breadcrumbs.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { Link } from '@inertiajs/react';
  2. import { Fragment } from 'react';
  3. import { type BreadcrumbItem as BreadcrumbItemType } from '@/common/types';
  4. import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from '@/shadcn/breadcrumb';
  5. export function Breadcrumbs({ breadcrumbs }: { breadcrumbs: BreadcrumbItemType[] }) {
  6. return (
  7. <>
  8. {breadcrumbs.length > 0 && (
  9. <Breadcrumb>
  10. <BreadcrumbList>
  11. {breadcrumbs.map((item, index) => {
  12. const isLast = index === breadcrumbs.length - 1;
  13. return (
  14. <Fragment key={index}>
  15. <BreadcrumbItem>
  16. {isLast ? (
  17. <BreadcrumbPage>{item.title}</BreadcrumbPage>
  18. ) : (
  19. <BreadcrumbLink asChild>
  20. <Link href={item.href}>{item.title}</Link>
  21. </BreadcrumbLink>
  22. )}
  23. </BreadcrumbItem>
  24. {!isLast && <BreadcrumbSeparator />}
  25. </Fragment>
  26. );
  27. })}
  28. </BreadcrumbList>
  29. </Breadcrumb>
  30. )}
  31. </>
  32. );
  33. }