useItems.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = useItems;
  6. var _react = require("react");
  7. var __rest = void 0 && (void 0).__rest || function (s, e) {
  8. var t = {};
  9. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  10. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  11. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  12. }
  13. return t;
  14. };
  15. function route2item(route) {
  16. const {
  17. breadcrumbName,
  18. children
  19. } = route,
  20. rest = __rest(route, ["breadcrumbName", "children"]);
  21. const clone = Object.assign({
  22. title: breadcrumbName
  23. }, rest);
  24. if (children) {
  25. clone.menu = {
  26. items: children.map(_a => {
  27. var {
  28. breadcrumbName: itemBreadcrumbName
  29. } = _a,
  30. itemProps = __rest(_a, ["breadcrumbName"]);
  31. return Object.assign(Object.assign({}, itemProps), {
  32. title: itemBreadcrumbName
  33. });
  34. })
  35. };
  36. }
  37. return clone;
  38. }
  39. function useItems(items, routes) {
  40. return (0, _react.useMemo)(() => {
  41. if (items) {
  42. return items;
  43. }
  44. if (routes) {
  45. return routes.map(route2item);
  46. }
  47. return null;
  48. }, [items, routes]);
  49. }