UNPKG

@keycloakify/keycloak-admin-ui

Version:
27 lines 1.41 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { Breadcrumb, BreadcrumbItem } from "@patternfly/react-core"; import { uniqBy } from "lodash-es"; import { isValidElement } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import useBreadcrumbs from "use-react-router-breadcrumbs"; import { useRealm } from "../../context/realm-context/RealmContext"; import { routes } from "../../routes"; export const PageBreadCrumbs = () => { const { t } = useTranslation(); const { realm } = useRealm(); const elementText = (crumb) => isValidElement(crumb.breadcrumb) && crumb.breadcrumb.props.children; const routesWithCrumbs = routes.map((route) => { var _a; return ({ ...route, breadcrumb: (_a = route.breadcrumb) === null || _a === void 0 ? void 0 : _a.call(route, t), }); }); const crumbs = uniqBy(useBreadcrumbs(routesWithCrumbs, { disableDefaults: true, excludePaths: ["/", `/${realm}`, `/${realm}/page-section`], }), elementText); return crumbs.length > 1 ? (_jsx(Breadcrumb, { children: crumbs.map(({ match, breadcrumb: crumb }, i) => (_jsx(BreadcrumbItem, { isActive: crumbs.length - 1 === i, children: crumbs.length - 1 !== i ? (_jsx(Link, { to: match.pathname, children: crumb })) : (crumb) }, i))) })) : null; }; //# sourceMappingURL=PageBreadCrumbs.js.map