import React from "react"; import { matchResourceFromRoute, useBreadcrumb, useLink, useResourceParams, } from "@refinedev/core"; import type { RefineBreadcrumbProps } from "@refinedev/ui-types"; import Breadcrumbs from "@mui/material/Breadcrumbs"; import Typography from "@mui/material/Typography"; import { Link as MuiLink } from "@mui/material"; import Grid from "@mui/material/Grid2"; import type { BreadcrumbsProps as MuiBreadcrumbProps } from "@mui/material/Breadcrumbs"; import type { LinkProps } from "@mui/material/Link"; import HomeOutlined from "@mui/icons-material/HomeOutlined"; export type BreadcrumbProps = RefineBreadcrumbProps; export const Breadcrumb: React.FC = ({ breadcrumbProps, showHome = true, hideIcons = false, meta, minItems = 2, }) => { const { breadcrumbs } = useBreadcrumb({ meta }); const Link = useLink(); const { resources } = useResourceParams(); const rootRouteResource = matchResourceFromRoute("/", resources); if (breadcrumbs.length < minItems) return null; const LinkRouter = (props: LinkProps & { to?: string }) => { const { to, children, ...restProps } = props; return ( {children} ); }; return ( {showHome && rootRouteResource.found && ( {rootRouteResource?.resource?.meta?.icon ?? ( )} )} {breadcrumbs.map(({ label, icon, href }) => { return ( {!hideIcons && icon} {href ? ( {label} ) : ( {label} )} ); })} ); };