@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
27 lines • 1.41 kB
JavaScript
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