UNPKG

@lskjs/page

Version:
81 lines (62 loc) 2.58 kB
"use strict"; 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