import { Link, useLocation, useParams } from "react-router-dom"; import { findElementInFlatRoutes } from "../utils/RoutingTableUtils"; import { capitalizeFirstLetter } from "../utils/StringTransformationUtils"; const BREADCRUMB_BAR_CLASSES = "text-sm breadcrumbs max-w pl-6 shadow-neutral-focus shadow-sm sticky top-2 z-10 bg-neutral transition-all rounded-md m-2 w-auto"; const Breadcrumbs = () => { const location = useLocation(); const pathnames = location.pathname.split("/").filter((x) => x); const pathParams = useParams(); const hideBreadcrumbBar = (path: string) => { // if (Object.keys(pathParams).length !== 0) return true; const _route = findElementInFlatRoutes(path); return _route?.disableBreadcrumbBar || false; }; const findRouteNameByPath = (path: string) => { const _route = findElementInFlatRoutes(path); return _route?.name || path; }; const renderLinkBreadcrumb = ( value: string, index: number, pathnames: string[], ) => { if (value === pathParams.id) return null; const to = `/${pathnames.slice(0, index + 1).join("/")}`; const routeName = capitalizeFirstLetter(findRouteNameByPath(value)); return (
  • {routeName}
  • ); }; const renderTextBreadcrumb = (value: string) => { if (value === pathParams.id) return null; const routeName = capitalizeFirstLetter(findRouteNameByPath(value)); return (
  • {routeName}
  • ); }; if (hideBreadcrumbBar(location.pathname)) { return (
    {pathnames[0].toUpperCase()}
    ); } return (
    ); }; export default Breadcrumbs;