import React, { Fragment } from 'react'; import { useQuery } from 'react-query'; import { getProductCategoryBreadcrumb } from '~/services/product'; import Link from 'next/link'; import { createSlug } from '~/libs/slug'; type Props = { id: number; name: string; }; const MAX_VISIBLE_CATEGORIES = 2; // tampilkan 2 level terakhir const Breadcrumb = ({ id, name }: Props) => { const { data: breadcrumbs = [] } = useQuery({ queryKey: ['product-category-breadcrumb', id], // penting: ikutkan id queryFn: () => getProductCategoryBreadcrumb(id), refetchOnWindowFocus: false, }); const total = breadcrumbs.length; const showEllipsis = total > MAX_VISIBLE_CATEGORIES; const visible = showEllipsis ? breadcrumbs.slice(total - MAX_VISIBLE_CATEGORIES) : breadcrumbs; const hiddenText = showEllipsis ? breadcrumbs .slice(0, total - MAX_VISIBLE_CATEGORIES) .map((c) => c.name) .join(' / ') : ''; return (
Home / {showEllipsis && ( <> / )} {visible.map((category, index) => ( {category.name} / ))} {name}
); }; export default Breadcrumb;