@lskjs/page
Version:
LSK ux subrepo: page
81 lines (62 loc) • 2.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _mobx = require("@lskjs/mobx");
var _get = _interopRequireDefault(require("lodash/get"));
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
var _omit = _interopRequireDefault(require("lodash/omit"));
var _link = _interopRequireDefault(require("@lskjs/link"));
var _Breadcrumbs = _interopRequireDefault(require("./components/Breadcrumbs"));
var PageBreadcrumbs = function PageBreadcrumbs(_ref) {
var children = _ref.children,
page = _ref.page,
reverse = _ref.reverse,
omitFirst = _ref.omitFirst,
omitLast = _ref.omitLast,
rawItems = _ref.items,
props = (0, _objectWithoutProperties2["default"])(_ref, ["children", "page", "reverse", "omitFirst", "omitLast", "items"]);
var breadcrumbs = (0, _get["default"])(page, 'state.show.breadcrumbs', true);
if (!breadcrumbs) return null;
var metas = (0, _cloneDeep["default"])((0, _get["default"])(page, 'state.metas')) || [];
if (reverse) {
metas = metas.reverse();
}
var items = rawItems ? (0, _cloneDeep["default"])(rawItems) : metas.map(function (meta, key) {
return {
key: key,
title: meta.title,
href: meta.url
};
});
items = items.filter(function (item, i) {
if (i === 0 && omitFirst) return false;
if (i === items.length - 1 && omitLast) return false;
return true;
});
if (items.length) {
items[items.length - 1] = (0, _omit["default"])(items[items.length - 1], ['href']);
}
if (children) {
return /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], null, children);
}
return /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], (0, _extends2["default"])({}, props, {
render: function render(item) {
var title = item.title,
href = item.href;
if (!href) return title;
return /*#__PURE__*/_react["default"].createElement(_link["default"], {
href: href
}, title);
},
items: items
}));
};
var _default = (0, _mobx.inject)('page')((0, _mobx.observer)(PageBreadcrumbs));
exports["default"] = _default;
//# sourceMappingURL=PageBreadcrumbs.js.map