// __SDEFILE__ - This file is a dependency for the stand-alone environment import { useContext } from 'react' import { NavigationContext } from 'shared/context/navigation-context.mjs' import { isSlugPart } from 'shared/utils.mjs' import get from 'lodash.get' import { HomeIcon, RightIcon, BulletIcon } from 'shared/components/icons.mjs' import { Link, PageLink } from 'shared/components/link.mjs' import orderBy from 'lodash.orderby' import { icons } from 'shared/components/navigation/primary.mjs' import { useTranslation } from 'next-i18next' import { ReadMore } from 'shared/components/mdx/read-more.mjs' export const ns = ['sections'] /* * This returns only those children that are main sections. Specifically: * - Key length needs to be longer than 1 * - Child pages cannot have m set (main section) * - Title may not be 'spacer' (header spacer) * * It also takes care of ordering them, and returns an array * * @params tree {object} - A navigation object as returned by useNavigation => siteNav */ const onlyMainSections = (tree) => orderBy(tree, ['o', 't'], ['asc', 'asc']).filter((entry) => entry.m) /* * A React component to render breadcrumbs to the current page * * @param lead {string} - A lead to display before the cumbs (eg: You are here) */ export const Breadcrumbs = ({ lead = false }) => { // Grab siteNav and slug from the navigation context const { siteNav, slug } = useContext(NavigationContext) const { t } = useTranslation(['common']) if (slug === false) { console.log('No slug passed to Breadcrumbs') return null } // Start with the home crumb const crumbs = [] // Do we need a lead? if (lead) crumbs.push(