UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

51 lines (46 loc) 1.65 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _chunkS76F5KLPjs = require('./chunk-S76F5KLP.js'); // src/components/BreadcrumbMenu/useBreadcrumbBuilder.ts var _react = require('react'); var isBreadcrumbWithData = (level) => { return "data" in level; }; var useBreadcrumbBuilder = (config) => { const { namespace, root, levels } = config; const { breadcrumbs, setBreadcrumbs, sliceBreadcrumbs } = _chunkS76F5KLPjs.useBreadcrumb.call(void 0, namespace); const levelDependencies = levels.map( (level) => isBreadcrumbWithData(level) ? level.data : null ); const levelUrlIds = levels.map((level) => level.urlId); _react.useEffect.call(void 0, () => { const newBreadcrumbs = [root]; const previousIds = []; for (const level of levels) { const { urlId } = level; if (isBreadcrumbWithData(level)) { const { data, getId, getName, getUrl } = level; if (!data) break; const dataId = getId(data); if (urlId === void 0 || dataId !== urlId) break; newBreadcrumbs.push({ id: dataId, name: getName(data), url: getUrl(data, previousIds) }); previousIds.push(dataId); } else { const { breadcrumb } = level; if (urlId === void 0) break; newBreadcrumbs.push(breadcrumb); previousIds.push(breadcrumb.id); } } setBreadcrumbs(newBreadcrumbs); }, [namespace, ...levelDependencies, ...levelUrlIds, root.id]); return { breadcrumbs, sliceBreadcrumbs }; }; exports.useBreadcrumbBuilder = useBreadcrumbBuilder; //# sourceMappingURL=chunk-EMW2C4NG.js.map