import React, { useMemo, useRef } from "react"; import clsx from "clsx"; import Link from "@docusaurus/Link"; import { useSidebarBreadcrumbs, useHomePageRoute, } from "@docusaurus/theme-common/internal"; import { translate } from "@docusaurus/Translate"; import { HomeIcon } from "./icons/home"; import { ChevronRightIcon } from "./icons/chevron-right"; import { useTWBreakpoints } from "../hooks/use-tw-breakpoints"; const hiddenBreadcrumbText = "..."; export const DocBreadcrumbs = () => { const breakpoints = useTWBreakpoints(); const breadcrumbs = useSidebarBreadcrumbs(); const homePageRoute = useHomePageRoute(); if (!breadcrumbs) { return null; } const [breadcrumbList, renderDots] = useMemo(() => { const shouldRenderDotdotdot = breadcrumbs.length > 3 && !breakpoints.sm; return [ (breadcrumbs as any[]).map((item, index, array) => ({ ...item, hideOnMobile: shouldRenderDotdotdot && index > 0 && index < array.length - 2, })), shouldRenderDotdotdot, ]; }, [breadcrumbs]); return ( ); };