Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1x 1x 1x 1x 1x | import React from "react"; import { Link } from "react-router-dom"; import type Breadcrumb from "src/typings/breadcrumb"; import type Breadcrumbs from "src/typings/breadcrumbs"; import BreadcrumbSeparator from "./breadcrumb-separator"; export function createList(breadcrumbs: Breadcrumbs, withoutSeparators?: "without-separators"): JSX.Element[] { const items: JSX.Element[] = []; const entries = Object.entries(breadcrumbs); if (entries.length) { const [ lastKey, lastBreadcrumb ] = entries.pop()!; for (const [ key, breadcrumb ] of entries) { items.push(<BreadcrumbItem key={key} {...breadcrumb} />); if (!withoutSeparators) items.push(<BreadcrumbSeparator key={key + " separator"} />); } // last item should represent current path // and therefore should never be clickable items.push(<BreadcrumbItem key={lastKey} text={lastBreadcrumb.text} />); } return items; } /** @private */ type Props = Breadcrumb; export default function BreadcrumbItem({ link, text }: Props): JSX.Element { if (link != null) return <Link to={link}>{text}</Link> return <span>{text}</span>; } |