mui-spfx-controls
Version:
SPFx component library built with MUI
52 lines • 3.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var icons_material_1 = require("@mui/icons-material");
var material_1 = require("@mui/material");
var logging_1 = require("@pnp/logging");
var react_1 = tslib_1.__importStar(require("react"));
var SiteService_1 = require("../../services/SiteService");
var SiteBreadcrumb = (0, react_1.forwardRef)(function (_a, ref) {
var context = _a.context, renderFirstItem = _a.renderFirstItem, renderItem = _a.renderItem, renderLastItem = _a.renderLastItem, breadcrumbProps = tslib_1.__rest(_a, ["context", "renderFirstItem", "renderItem", "renderLastItem"]);
var siteService = new SiteService_1.SiteService(context);
var _b = (0, react_1.useState)([]), breadcrumbData = _b[0], setBreadcrumbData = _b[1];
(0, react_1.useEffect)(function () {
var fetchData = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var generatedBreadcrumbData, error_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 2, , 3]);
return [4 /*yield*/, siteService.getBreadcrumbData()];
case 1:
generatedBreadcrumbData = _a.sent();
setBreadcrumbData(generatedBreadcrumbData);
return [3 /*break*/, 3];
case 2:
error_1 = _a.sent();
logging_1.Logger.error(error_1);
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); };
fetchData();
}, []);
return (react_1.default.createElement(material_1.Breadcrumbs, tslib_1.__assign({ "data-testid": "mui-spfx-breadcrumb", maxItems: 5, "aria-label": "breadcrumb" }, breadcrumbProps, { ref: ref }), breadcrumbData
? breadcrumbData.map(function (data, index) {
if (index === 0) {
return renderFirstItem ? (renderFirstItem(data)) : (react_1.default.createElement(material_1.Link, { "aria-label": "Home", href: data.href, underline: "hover", key: "".concat(data.key, "-").concat(index), sx: { display: 'flex', alignItems: 'center' } },
react_1.default.createElement(icons_material_1.Home, { fontSize: "inherit", sx: { mr: 0.5 } }),
data.label));
}
else if (index === breadcrumbData.length - 1) {
return renderLastItem ? (renderLastItem(data)) : (react_1.default.createElement(material_1.Typography, { "aria-label": "Current site", color: "textSecondary", key: "".concat(data.key, "-").concat(index) }, data.label));
}
else {
return renderItem ? (renderItem(data)) : (react_1.default.createElement(material_1.Link, { "aria-label": "Site links", underline: "hover", href: data.href, key: "".concat(data.key, "-").concat(index) }, data.label));
}
})
: null));
});
exports.default = SiteBreadcrumb;
//# sourceMappingURL=SiteBreadcrumb.js.map