import React, { Fragment } from 'react'; import { useQuery } from 'react-query'; import Link from 'next/link'; import { getProductCategoryBreadcrumb } from '~/services/product'; import { createSlug } from '~/libs/slug'; import useDevice from '@/core/hooks/useDevice'; type Props = { id: number; name: string }; const Breadcrumb = ({ id, name }: Props) => { const { isDesktop, isMobile } = useDevice(); const { data } = useQuery({ queryKey: ['product-category-breadcrumb', id], queryFn: () => getProductCategoryBreadcrumb(id), refetchOnWindowFocus: false, }); const breadcrumbs = data ?? []; const total = breadcrumbs.length; const lastCat = total ? breadcrumbs[total - 1] : null; const prevCat = total > 1 ? breadcrumbs[total - 2] : null; const hasHidden = total > 1; const hiddenText = hasHidden ? breadcrumbs .slice(0, total - 1) .map((c) => c.name) .join(' / ') : ''; if (isMobile) { const crumbsMobile: React.ReactNode[] = []; crumbsMobile.push( Home ); if (hasHidden && prevCat) { // Jadikan ".." sebuah tautan ke kategori sebelumnya crumbsMobile.push( .. ); } // Kategori terakhir if (lastCat) { crumbsMobile.push( {lastCat.name} ); } // Nama produk (dipotong kalau gk muat) crumbsMobile.push( {name} ); return (