@blaze-cms/plugin-admin-core-ui 0.131.0-project-admin-customisations.2 → 0.132.0-admin-updates.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +9 -31
  2. package/README.md +0 -97
  3. package/lib/components/Layout/Layout.js +3 -6
  4. package/lib/components/Layout/Layout.js.map +1 -1
  5. package/lib/components/Layout/components/Grid/Grid.js +88 -10
  6. package/lib/components/Layout/components/Grid/Grid.js.map +1 -1
  7. package/lib/components/SideBar/SideBar.js +14 -3
  8. package/lib/components/SideBar/SideBar.js.map +1 -1
  9. package/lib/constants.js +1 -1
  10. package/lib/constants.js.map +1 -1
  11. package/lib/index.js +9 -13
  12. package/lib/index.js.map +1 -1
  13. package/lib-es/components/Layout/Layout.js +3 -6
  14. package/lib-es/components/Layout/Layout.js.map +1 -1
  15. package/lib-es/components/Layout/components/Grid/Grid.js +54 -14
  16. package/lib-es/components/Layout/components/Grid/Grid.js.map +1 -1
  17. package/lib-es/components/SideBar/SideBar.js +7 -2
  18. package/lib-es/components/SideBar/SideBar.js.map +1 -1
  19. package/lib-es/constants.js +1 -1
  20. package/lib-es/constants.js.map +1 -1
  21. package/lib-es/index.js +9 -9
  22. package/lib-es/index.js.map +1 -1
  23. package/package.json +8 -9
  24. package/src/components/Layout/Layout.js +3 -14
  25. package/src/components/Layout/components/Grid/Grid.js +52 -13
  26. package/src/components/SideBar/SideBar.js +6 -3
  27. package/src/constants.js +1 -3
  28. package/src/index.js +6 -7
  29. package/lib/components/Menu/Icons/ChevronDown.js +0 -27
  30. package/lib/components/Menu/Icons/ChevronDown.js.map +0 -1
  31. package/lib/components/Menu/Icons/ChevronUp.js +0 -27
  32. package/lib/components/Menu/Icons/ChevronUp.js.map +0 -1
  33. package/lib/components/Menu/Items/MenuActionItem.js +0 -37
  34. package/lib/components/Menu/Items/MenuActionItem.js.map +0 -1
  35. package/lib/components/Menu/Items/MenuItem.js +0 -73
  36. package/lib/components/Menu/Items/MenuItem.js.map +0 -1
  37. package/lib/components/Menu/Items/MenuLinkItem.js +0 -36
  38. package/lib/components/Menu/Items/MenuLinkItem.js.map +0 -1
  39. package/lib/components/Menu/Menu.js +0 -86
  40. package/lib/components/Menu/Menu.js.map +0 -1
  41. package/lib/components/Menu/Section/MenuSection.js +0 -28
  42. package/lib/components/Menu/Section/MenuSection.js.map +0 -1
  43. package/lib/components/Menu/Section/MenuSectionCollapsible.js +0 -91
  44. package/lib/components/Menu/Section/MenuSectionCollapsible.js.map +0 -1
  45. package/lib/components/Menu/Section/MenuSectionItem.js +0 -40
  46. package/lib/components/Menu/Section/MenuSectionItem.js.map +0 -1
  47. package/lib/components/Menu/Section/MenuSectionItems.js +0 -33
  48. package/lib/components/Menu/Section/MenuSectionItems.js.map +0 -1
  49. package/lib/components/Menu/index.js +0 -12
  50. package/lib/components/Menu/index.js.map +0 -1
  51. package/lib/utils/menu-handler-singleton.js +0 -114
  52. package/lib/utils/menu-handler-singleton.js.map +0 -1
  53. package/lib-es/components/Menu/Icons/ChevronDown.js +0 -16
  54. package/lib-es/components/Menu/Icons/ChevronDown.js.map +0 -1
  55. package/lib-es/components/Menu/Icons/ChevronUp.js +0 -16
  56. package/lib-es/components/Menu/Icons/ChevronUp.js.map +0 -1
  57. package/lib-es/components/Menu/Items/MenuActionItem.js +0 -31
  58. package/lib-es/components/Menu/Items/MenuActionItem.js.map +0 -1
  59. package/lib-es/components/Menu/Items/MenuItem.js +0 -64
  60. package/lib-es/components/Menu/Items/MenuItem.js.map +0 -1
  61. package/lib-es/components/Menu/Items/MenuLinkItem.js +0 -28
  62. package/lib-es/components/Menu/Items/MenuLinkItem.js.map +0 -1
  63. package/lib-es/components/Menu/Menu.js +0 -40
  64. package/lib-es/components/Menu/Menu.js.map +0 -1
  65. package/lib-es/components/Menu/Section/MenuSection.js +0 -18
  66. package/lib-es/components/Menu/Section/MenuSection.js.map +0 -1
  67. package/lib-es/components/Menu/Section/MenuSectionCollapsible.js +0 -67
  68. package/lib-es/components/Menu/Section/MenuSectionCollapsible.js.map +0 -1
  69. package/lib-es/components/Menu/Section/MenuSectionItem.js +0 -30
  70. package/lib-es/components/Menu/Section/MenuSectionItem.js.map +0 -1
  71. package/lib-es/components/Menu/Section/MenuSectionItems.js +0 -20
  72. package/lib-es/components/Menu/Section/MenuSectionItems.js.map +0 -1
  73. package/lib-es/components/Menu/index.js +0 -3
  74. package/lib-es/components/Menu/index.js.map +0 -1
  75. package/lib-es/utils/menu-handler-singleton.js +0 -55
  76. package/lib-es/utils/menu-handler-singleton.js.map +0 -1
  77. package/src/components/Menu/Icons/ChevronDown.js +0 -16
  78. package/src/components/Menu/Icons/ChevronUp.js +0 -16
  79. package/src/components/Menu/Items/MenuActionItem.js +0 -30
  80. package/src/components/Menu/Items/MenuItem.js +0 -49
  81. package/src/components/Menu/Items/MenuLinkItem.js +0 -25
  82. package/src/components/Menu/Menu.js +0 -48
  83. package/src/components/Menu/Section/MenuSection.js +0 -16
  84. package/src/components/Menu/Section/MenuSectionCollapsible.js +0 -59
  85. package/src/components/Menu/Section/MenuSectionItem.js +0 -28
  86. package/src/components/Menu/Section/MenuSectionItems.js +0 -17
  87. package/src/components/Menu/index.js +0 -3
  88. package/src/utils/menu-handler-singleton.js +0 -64
@@ -1,29 +1,69 @@
1
- import React from 'react';
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import React, { useState, useEffect } from 'react';
2
5
  import PropTypes from 'prop-types';
6
+ import { useApolloClient } from '@apollo/client';
7
+ import { getQuery, MainContextProvider } from '@blaze-cms/admin-ui-utils';
3
8
  import SideBar from '../../../SideBar';
4
9
  const Grid = ({
5
10
  children,
6
11
  isOpenMenu,
7
12
  onMenuClick,
8
- userData,
9
- simpleLayout
10
- }) => /*#__PURE__*/React.createElement("div", {
11
- className: "main-content grid grid--main-content"
12
- }, !simpleLayout && /*#__PURE__*/React.createElement(SideBar, {
13
- isOpenMenu: isOpenMenu,
14
- onMenuClick: onMenuClick,
15
- userData: userData
16
- }), children);
13
+ userData
14
+ }) => {
15
+ const [menuItems, setMenuItems] = useState(null);
16
+ const client = useApolloClient();
17
+ useEffect(() => {
18
+ (async () => {
19
+ const {
20
+ data: {
21
+ getMenuItems
22
+ }
23
+ } = await client.query({
24
+ query: getQuery('GET_MENU_ITEMS')
25
+ });
26
+ const parsedMenuItems = getMenuItems.map(([key, {
27
+ header,
28
+ items
29
+ }]) => [key, {
30
+ header,
31
+ items: items.map(item => _objectSpread(_objectSpread({}, item), {}, {
32
+ isDisplayedPrompt: true
33
+ }))
34
+ }]);
35
+ if (!menuItems) {
36
+ setMenuItems(parsedMenuItems);
37
+ }
38
+ })();
39
+ }, [client, menuItems]);
40
+ const updateItems = items => {
41
+ setMenuItems(items);
42
+ };
43
+ return menuItems ? /*#__PURE__*/React.createElement(MainContextProvider, {
44
+ value: {
45
+ menuItems,
46
+ setMenuItems: items => updateItems(items)
47
+ }
48
+ }, /*#__PURE__*/React.createElement("div", {
49
+ className: "main-content grid grid--main-content"
50
+ }, /*#__PURE__*/React.createElement(SideBar, {
51
+ isOpenMenu: isOpenMenu,
52
+ menuItems: menuItems,
53
+ onMenuClick: onMenuClick,
54
+ userData: userData
55
+ }), /*#__PURE__*/React.createElement("div", {
56
+ className: "grid--main-content-wrapper"
57
+ }, children))) : 'loading';
58
+ };
17
59
  Grid.propTypes = {
18
60
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
19
61
  isOpenMenu: PropTypes.bool.isRequired,
20
62
  onMenuClick: PropTypes.func.isRequired,
21
- userData: PropTypes.object,
22
- simpleLayout: PropTypes.bool
63
+ userData: PropTypes.object
23
64
  };
24
65
  Grid.defaultProps = {
25
- userData: {},
26
- simpleLayout: false
66
+ userData: {}
27
67
  };
28
68
  export default Grid;
29
69
  //# sourceMappingURL=Grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.js","names":["React","PropTypes","SideBar","Grid","children","isOpenMenu","onMenuClick","userData","simpleLayout","createElement","className","propTypes","oneOfType","arrayOf","node","isRequired","bool","func","object","defaultProps"],"sources":["../../../../../src/components/Layout/components/Grid/Grid.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SideBar from '../../../SideBar';\n\nconst Grid = ({ children, isOpenMenu, onMenuClick, userData, simpleLayout }) => (\n <div className=\"main-content grid grid--main-content\">\n {!simpleLayout && (\n <SideBar isOpenMenu={isOpenMenu} onMenuClick={onMenuClick} userData={userData} />\n )}\n {children}\n </div>\n);\n\nGrid.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object,\n simpleLayout: PropTypes.bool\n};\n\nGrid.defaultProps = {\n userData: {},\n simpleLayout: false\n};\n\nexport default Grid;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,OAAO,MAAM,kBAAkB;AAEtC,MAAMC,IAAI,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAa,CAAC,kBACzER,KAAA,CAAAS,aAAA;EAAKC,SAAS,EAAC;AAAsC,GAClD,CAACF,YAAY,iBACZR,KAAA,CAAAS,aAAA,CAACP,OAAO;EAACG,UAAU,EAAEA,UAAW;EAACC,WAAW,EAAEA,WAAY;EAACC,QAAQ,EAAEA;AAAS,CAAE,CACjF,EACAH,QACE,CACN;AAEDD,IAAI,CAACQ,SAAS,GAAG;EACfP,QAAQ,EAAEH,SAAS,CAACW,SAAS,CAAC,CAACX,SAAS,CAACY,OAAO,CAACZ,SAAS,CAACa,IAAI,CAAC,EAAEb,SAAS,CAACa,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7FV,UAAU,EAAEJ,SAAS,CAACe,IAAI,CAACD,UAAU;EACrCT,WAAW,EAAEL,SAAS,CAACgB,IAAI,CAACF,UAAU;EACtCR,QAAQ,EAAEN,SAAS,CAACiB,MAAM;EAC1BV,YAAY,EAAEP,SAAS,CAACe;AAC1B,CAAC;AAEDb,IAAI,CAACgB,YAAY,GAAG;EAClBZ,QAAQ,EAAE,CAAC,CAAC;EACZC,YAAY,EAAE;AAChB,CAAC;AAED,eAAeL,IAAI"}
1
+ {"version":3,"file":"Grid.js","names":["React","useState","useEffect","PropTypes","useApolloClient","getQuery","MainContextProvider","SideBar","Grid","children","isOpenMenu","onMenuClick","userData","menuItems","setMenuItems","client","data","getMenuItems","query","parsedMenuItems","map","key","header","items","item","_objectSpread","isDisplayedPrompt","updateItems","createElement","value","className","propTypes","oneOfType","arrayOf","node","isRequired","bool","func","object","defaultProps"],"sources":["../../../../../src/components/Layout/components/Grid/Grid.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, MainContextProvider } from '@blaze-cms/admin-ui-utils';\nimport SideBar from '../../../SideBar';\n\nconst Grid = ({ children, isOpenMenu, onMenuClick, userData }) => {\n const [menuItems, setMenuItems] = useState(null);\n const client = useApolloClient();\n\n useEffect(\n () => {\n (async () => {\n const {\n data: { getMenuItems }\n } = await client.query({ query: getQuery('GET_MENU_ITEMS') });\n\n const parsedMenuItems = getMenuItems.map(([key, { header, items }]) => [\n key,\n {\n header,\n items: items.map(item => ({ ...item, isDisplayedPrompt: true }))\n }\n ]);\n\n if (!menuItems) {\n setMenuItems(parsedMenuItems);\n }\n })();\n },\n [client, menuItems]\n );\n\n const updateItems = items => {\n setMenuItems(items);\n };\n\n return menuItems ? (\n <MainContextProvider value={{ menuItems, setMenuItems: items => updateItems(items) }}>\n <div className=\"main-content grid grid--main-content\">\n <SideBar\n isOpenMenu={isOpenMenu}\n menuItems={menuItems}\n onMenuClick={onMenuClick}\n userData={userData}\n />\n <div className=\"grid--main-content-wrapper\">{children}</div>\n </div>\n </MainContextProvider>\n ) : (\n 'loading'\n );\n};\n\nGrid.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object\n};\n\nGrid.defaultProps = {\n userData: {}\n};\n\nexport default Grid;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,QAAQ,EAAEC,mBAAmB,QAAQ,2BAA2B;AACzE,OAAOC,OAAO,MAAM,kBAAkB;AAEtC,MAAMC,IAAI,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EAChE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGb,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAMc,MAAM,GAAGX,eAAe,CAAC,CAAC;EAEhCF,SAAS,CACP,MAAM;IACJ,CAAC,YAAY;MACX,MAAM;QACJc,IAAI,EAAE;UAAEC;QAAa;MACvB,CAAC,GAAG,MAAMF,MAAM,CAACG,KAAK,CAAC;QAAEA,KAAK,EAAEb,QAAQ,CAAC,gBAAgB;MAAE,CAAC,CAAC;MAE7D,MAAMc,eAAe,GAAGF,YAAY,CAACG,GAAG,CAAC,CAAC,CAACC,GAAG,EAAE;QAAEC,MAAM;QAAEC;MAAM,CAAC,CAAC,KAAK,CACrEF,GAAG,EACH;QACEC,MAAM;QACNC,KAAK,EAAEA,KAAK,CAACH,GAAG,CAACI,IAAI,IAAAC,aAAA,CAAAA,aAAA,KAAUD,IAAI;UAAEE,iBAAiB,EAAE;QAAI,EAAG;MACjE,CAAC,CACF,CAAC;MAEF,IAAI,CAACb,SAAS,EAAE;QACdC,YAAY,CAACK,eAAe,CAAC;MAC/B;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EACD,CAACJ,MAAM,EAAEF,SAAS,CACpB,CAAC;EAED,MAAMc,WAAW,GAAGJ,KAAK,IAAI;IAC3BT,YAAY,CAACS,KAAK,CAAC;EACrB,CAAC;EAED,OAAOV,SAAS,gBACdb,KAAA,CAAA4B,aAAA,CAACtB,mBAAmB;IAACuB,KAAK,EAAE;MAAEhB,SAAS;MAAEC,YAAY,EAAES,KAAK,IAAII,WAAW,CAACJ,KAAK;IAAE;EAAE,gBACnFvB,KAAA,CAAA4B,aAAA;IAAKE,SAAS,EAAC;EAAsC,gBACnD9B,KAAA,CAAA4B,aAAA,CAACrB,OAAO;IACNG,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA,SAAU;IACrBF,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA;EAAS,CACpB,CAAC,eACFZ,KAAA,CAAA4B,aAAA;IAAKE,SAAS,EAAC;EAA4B,GAAErB,QAAc,CACxD,CACc,CAAC,GAEtB,SACD;AACH,CAAC;AAEDD,IAAI,CAACuB,SAAS,GAAG;EACftB,QAAQ,EAAEN,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC8B,OAAO,CAAC9B,SAAS,CAAC+B,IAAI,CAAC,EAAE/B,SAAS,CAAC+B,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7FzB,UAAU,EAAEP,SAAS,CAACiC,IAAI,CAACD,UAAU;EACrCxB,WAAW,EAAER,SAAS,CAACkC,IAAI,CAACF,UAAU;EACtCvB,QAAQ,EAAET,SAAS,CAACmC;AACtB,CAAC;AAED9B,IAAI,CAAC+B,YAAY,GAAG;EAClB3B,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeJ,IAAI"}
@@ -1,11 +1,13 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React from 'react';
2
3
  import classnames from 'classnames';
3
4
  import PropTypes from 'prop-types';
4
5
  import { useApolloClient } from '@apollo/client';
5
6
  import Avatar from '@blaze-react/avatar';
6
7
  import { handleLogout } from '@blaze-cms/core-auth-ui';
7
- import Menu from '../Menu';
8
+ import { SideBlock } from './components';
8
9
  const SideBar = ({
10
+ menuItems,
9
11
  isOpenMenu,
10
12
  onMenuClick,
11
13
  userData
@@ -37,7 +39,9 @@ const SideBar = ({
37
39
  className: sideNavWrapperClassname,
38
40
  "data-testid": "sidenav",
39
41
  id: "side-nav__wrapper"
40
- }, /*#__PURE__*/React.createElement(Menu, null)), /*#__PURE__*/React.createElement("div", {
42
+ }, menuItems.length ? menuItems.map(([, data]) => /*#__PURE__*/React.createElement(SideBlock, _extends({
43
+ key: data.header
44
+ }, data))) : 'Not available content types'), /*#__PURE__*/React.createElement("div", {
41
45
  className: "side-nav__user"
42
46
  }, /*#__PURE__*/React.createElement("div", {
43
47
  className: "side-nav__user--info"
@@ -60,6 +64,7 @@ const SideBar = ({
60
64
  }, "Log off")));
61
65
  };
62
66
  SideBar.propTypes = {
67
+ menuItems: PropTypes.array.isRequired,
63
68
  isOpenMenu: PropTypes.bool.isRequired,
64
69
  onMenuClick: PropTypes.func.isRequired,
65
70
  userData: PropTypes.object.isRequired
@@ -1 +1 @@
1
- {"version":3,"file":"SideBar.js","names":["React","classnames","PropTypes","useApolloClient","Avatar","handleLogout","Menu","SideBar","isOpenMenu","onMenuClick","userData","client","firstname","lastname","username","sideNavClassname","sideNavWrapperClassname","createElement","className","role","id","onClick","window","location","href","propTypes","bool","isRequired","func","object"],"sources":["../../../src/components/SideBar/SideBar.js"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport Avatar from '@blaze-react/avatar';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport Menu from '../Menu';\n\nconst SideBar = ({ isOpenMenu, onMenuClick, userData }) => {\n const client = useApolloClient();\n\n const { firstname, lastname } = userData;\n const username = `${firstname} ${lastname}`;\n\n const sideNavClassname = classnames('side-nav', {\n 'side-nav--open': isOpenMenu,\n 'side-nav--close': !isOpenMenu\n });\n\n const sideNavWrapperClassname = classnames('side-nav__wrapper', {\n 'side-nav__wrapper--close': !isOpenMenu\n });\n\n return (\n <div data-testid=\"sidebar\" className={sideNavClassname}>\n <div\n role=\"button\"\n className=\"side-nav__button open\"\n id=\"side-nav-button\"\n onClick={onMenuClick}>\n <i className=\"material-icons\">keyboard_arrow_left</i>\n </div>\n {/* <Link to=\"/\" className=\"side-nav__block-home\">\n Dashboard\n </Link> */}\n <div className={sideNavWrapperClassname} data-testid=\"sidenav\" id=\"side-nav__wrapper\">\n <Menu />\n </div>\n <div className=\"side-nav__user\">\n <div className=\"side-nav__user--info\">\n <Avatar username={username} />\n <span className=\"user-name\">{username}</span>\n </div>\n <div className=\"side-nav__user--button\">\n <span\n id=\"logout-button\"\n role=\"button\"\n onClick={async () => {\n await handleLogout(client);\n window.location.href = '/';\n }}\n className=\"material-icons\">\n power_settings_new\n </span>\n </div>\n <span className=\"side-nav__user--toggle\">Log off</span>\n </div>\n </div>\n );\n};\n\nSideBar.propTypes = {\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object.isRequired\n};\n\nexport default SideBar;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,OAAOC,IAAI,MAAM,SAAS;AAE1B,MAAMC,OAAO,GAAGA,CAAC;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EACzD,MAAMC,MAAM,GAAGR,eAAe,CAAC,CAAC;EAEhC,MAAM;IAAES,SAAS;IAAEC;EAAS,CAAC,GAAGH,QAAQ;EACxC,MAAMI,QAAQ,GAAI,GAAEF,SAAU,IAAGC,QAAS,EAAC;EAE3C,MAAME,gBAAgB,GAAGd,UAAU,CAAC,UAAU,EAAE;IAC9C,gBAAgB,EAAEO,UAAU;IAC5B,iBAAiB,EAAE,CAACA;EACtB,CAAC,CAAC;EAEF,MAAMQ,uBAAuB,GAAGf,UAAU,CAAC,mBAAmB,EAAE;IAC9D,0BAA0B,EAAE,CAACO;EAC/B,CAAC,CAAC;EAEF,oBACER,KAAA,CAAAiB,aAAA;IAAK,eAAY,SAAS;IAACC,SAAS,EAAEH;EAAiB,gBACrDf,KAAA,CAAAiB,aAAA;IACEE,IAAI,EAAC,QAAQ;IACbD,SAAS,EAAC,uBAAuB;IACjCE,EAAE,EAAC,iBAAiB;IACpBC,OAAO,EAAEZ;EAAY,gBACrBT,KAAA,CAAAiB,aAAA;IAAGC,SAAS,EAAC;EAAgB,GAAC,qBAAsB,CACjD,CAAC,eAINlB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAEF,uBAAwB;IAAC,eAAY,SAAS;IAACI,EAAE,EAAC;EAAmB,gBACnFpB,KAAA,CAAAiB,aAAA,CAACX,IAAI,MAAE,CACJ,CAAC,eACNN,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAC;EAAgB,gBAC7BlB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAC;EAAsB,gBACnClB,KAAA,CAAAiB,aAAA,CAACb,MAAM;IAACU,QAAQ,EAAEA;EAAS,CAAE,CAAC,eAC9Bd,KAAA,CAAAiB,aAAA;IAAMC,SAAS,EAAC;EAAW,GAAEJ,QAAe,CACzC,CAAC,eACNd,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAC;EAAwB,gBACrClB,KAAA,CAAAiB,aAAA;IACEG,EAAE,EAAC,eAAe;IAClBD,IAAI,EAAC,QAAQ;IACbE,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,MAAMhB,YAAY,CAACM,MAAM,CAAC;MAC1BW,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,GAAG;IAC5B,CAAE;IACFN,SAAS,EAAC;EAAgB,GAAC,oBAEvB,CACH,CAAC,eACNlB,KAAA,CAAAiB,aAAA;IAAMC,SAAS,EAAC;EAAwB,GAAC,SAAa,CACnD,CACF,CAAC;AAEV,CAAC;AAEDX,OAAO,CAACkB,SAAS,GAAG;EAClBjB,UAAU,EAAEN,SAAS,CAACwB,IAAI,CAACC,UAAU;EACrClB,WAAW,EAAEP,SAAS,CAAC0B,IAAI,CAACD,UAAU;EACtCjB,QAAQ,EAAER,SAAS,CAAC2B,MAAM,CAACF;AAC7B,CAAC;AAED,eAAepB,OAAO"}
1
+ {"version":3,"file":"SideBar.js","names":["React","classnames","PropTypes","useApolloClient","Avatar","handleLogout","SideBlock","SideBar","menuItems","isOpenMenu","onMenuClick","userData","client","firstname","lastname","username","sideNavClassname","sideNavWrapperClassname","createElement","className","role","id","onClick","length","map","data","_extends","key","header","window","location","href","propTypes","array","isRequired","bool","func","object"],"sources":["../../../src/components/SideBar/SideBar.js"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport Avatar from '@blaze-react/avatar';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { SideBlock } from './components';\n\nconst SideBar = ({ menuItems, isOpenMenu, onMenuClick, userData }) => {\n const client = useApolloClient();\n\n const { firstname, lastname } = userData;\n const username = `${firstname} ${lastname}`;\n\n const sideNavClassname = classnames('side-nav', {\n 'side-nav--open': isOpenMenu,\n 'side-nav--close': !isOpenMenu\n });\n\n const sideNavWrapperClassname = classnames('side-nav__wrapper', {\n 'side-nav__wrapper--close': !isOpenMenu\n });\n\n return (\n <div data-testid=\"sidebar\" className={sideNavClassname}>\n <div\n role=\"button\"\n className=\"side-nav__button open\"\n id=\"side-nav-button\"\n onClick={onMenuClick}>\n <i className=\"material-icons\">keyboard_arrow_left</i>\n </div>\n {/* <Link to=\"/\" className=\"side-nav__block-home\">\n Dashboard\n </Link> */}\n <div className={sideNavWrapperClassname} data-testid=\"sidenav\" id=\"side-nav__wrapper\">\n {menuItems.length\n ? menuItems.map(([, data]) => <SideBlock key={data.header} {...data} />)\n : 'Not available content types'}\n </div>\n <div className=\"side-nav__user\">\n <div className=\"side-nav__user--info\">\n <Avatar username={username} />\n <span className=\"user-name\">{username}</span>\n </div>\n <div className=\"side-nav__user--button\">\n <span\n id=\"logout-button\"\n role=\"button\"\n onClick={async () => {\n await handleLogout(client);\n window.location.href = '/';\n }}\n className=\"material-icons\">\n power_settings_new\n </span>\n </div>\n <span className=\"side-nav__user--toggle\">Log off</span>\n </div>\n </div>\n );\n};\n\nSideBar.propTypes = {\n menuItems: PropTypes.array.isRequired,\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object.isRequired\n};\n\nexport default SideBar;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,SAAS,QAAQ,cAAc;AAExC,MAAMC,OAAO,GAAGA,CAAC;EAAEC,SAAS;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EACpE,MAAMC,MAAM,GAAGT,eAAe,CAAC,CAAC;EAEhC,MAAM;IAAEU,SAAS;IAAEC;EAAS,CAAC,GAAGH,QAAQ;EACxC,MAAMI,QAAQ,GAAI,GAAEF,SAAU,IAAGC,QAAS,EAAC;EAE3C,MAAME,gBAAgB,GAAGf,UAAU,CAAC,UAAU,EAAE;IAC9C,gBAAgB,EAAEQ,UAAU;IAC5B,iBAAiB,EAAE,CAACA;EACtB,CAAC,CAAC;EAEF,MAAMQ,uBAAuB,GAAGhB,UAAU,CAAC,mBAAmB,EAAE;IAC9D,0BAA0B,EAAE,CAACQ;EAC/B,CAAC,CAAC;EAEF,oBACET,KAAA,CAAAkB,aAAA;IAAK,eAAY,SAAS;IAACC,SAAS,EAAEH;EAAiB,gBACrDhB,KAAA,CAAAkB,aAAA;IACEE,IAAI,EAAC,QAAQ;IACbD,SAAS,EAAC,uBAAuB;IACjCE,EAAE,EAAC,iBAAiB;IACpBC,OAAO,EAAEZ;EAAY,gBACrBV,KAAA,CAAAkB,aAAA;IAAGC,SAAS,EAAC;EAAgB,GAAC,qBAAsB,CACjD,CAAC,eAINnB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAEF,uBAAwB;IAAC,eAAY,SAAS;IAACI,EAAE,EAAC;EAAmB,GAClFb,SAAS,CAACe,MAAM,GACbf,SAAS,CAACgB,GAAG,CAAC,CAAC,GAAGC,IAAI,CAAC,kBAAKzB,KAAA,CAAAkB,aAAA,CAACZ,SAAS,EAAAoB,QAAA;IAACC,GAAG,EAAEF,IAAI,CAACG;EAAO,GAAKH,IAAI,CAAG,CAAC,CAAC,GACtE,6BACD,CAAC,eACNzB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAgB,gBAC7BnB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAsB,gBACnCnB,KAAA,CAAAkB,aAAA,CAACd,MAAM;IAACW,QAAQ,EAAEA;EAAS,CAAE,CAAC,eAC9Bf,KAAA,CAAAkB,aAAA;IAAMC,SAAS,EAAC;EAAW,GAAEJ,QAAe,CACzC,CAAC,eACNf,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAwB,gBACrCnB,KAAA,CAAAkB,aAAA;IACEG,EAAE,EAAC,eAAe;IAClBD,IAAI,EAAC,QAAQ;IACbE,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,MAAMjB,YAAY,CAACO,MAAM,CAAC;MAC1BiB,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,GAAG;IAC5B,CAAE;IACFZ,SAAS,EAAC;EAAgB,GAAC,oBAEvB,CACH,CAAC,eACNnB,KAAA,CAAAkB,aAAA;IAAMC,SAAS,EAAC;EAAwB,GAAC,SAAa,CACnD,CACF,CAAC;AAEV,CAAC;AAEDZ,OAAO,CAACyB,SAAS,GAAG;EAClBxB,SAAS,EAAEN,SAAS,CAAC+B,KAAK,CAACC,UAAU;EACrCzB,UAAU,EAAEP,SAAS,CAACiC,IAAI,CAACD,UAAU;EACrCxB,WAAW,EAAER,SAAS,CAACkC,IAAI,CAACF,UAAU;EACtCvB,QAAQ,EAAET,SAAS,CAACmC,MAAM,CAACH;AAC7B,CAAC;AAED,eAAe3B,OAAO"}
@@ -1,6 +1,6 @@
1
1
  const PLUGIN_NAME = 'admin-core-ui';
2
2
  const LOGO_PROPS = {
3
- src: process.env.BLAZE_ADMIN_HEAD_LOGO_URL || 'https://images.thisisblaze.com/logo-98-148.png'
3
+ src: 'https://images.thisisblaze.com/logo-98-148.png'
4
4
  };
5
5
  const DEFAULT_LABEL = {
6
6
  text: 'See more',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["PLUGIN_NAME","LOGO_PROPS","src","process","env","BLAZE_ADMIN_HEAD_LOGO_URL","DEFAULT_LABEL","text","icon","ACTIVE_LABEL","DOWN_ICON"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'admin-core-ui';\nconst LOGO_PROPS = {\n src: process.env.BLAZE_ADMIN_HEAD_LOGO_URL || 'https://images.thisisblaze.com/logo-98-148.png'\n};\n\nconst DEFAULT_LABEL = {\n text: 'See more',\n icon: 'down'\n};\n\nconst ACTIVE_LABEL = {\n text: 'See less',\n icon: 'up'\n};\n\nconst DOWN_ICON = 'down';\n\nexport { PLUGIN_NAME, LOGO_PROPS, ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON };\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,eAAe;AACnC,MAAMC,UAAU,GAAG;EACjBC,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,yBAAyB,IAAI;AAChD,CAAC;AAED,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,YAAY,GAAG;EACnBF,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAME,SAAS,GAAG,MAAM;AAExB,SAASV,WAAW,EAAEC,UAAU,EAAEQ,YAAY,EAAEH,aAAa,EAAEI,SAAS"}
1
+ {"version":3,"file":"constants.js","names":["PLUGIN_NAME","LOGO_PROPS","src","DEFAULT_LABEL","text","icon","ACTIVE_LABEL","DOWN_ICON"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'admin-core-ui';\nconst LOGO_PROPS = { src: 'https://images.thisisblaze.com/logo-98-148.png' };\n\nconst DEFAULT_LABEL = {\n text: 'See more',\n icon: 'down'\n};\n\nconst ACTIVE_LABEL = {\n text: 'See less',\n icon: 'up'\n};\n\nconst DOWN_ICON = 'down';\n\nexport { PLUGIN_NAME, LOGO_PROPS, ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON };\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,eAAe;AACnC,MAAMC,UAAU,GAAG;EAAEC,GAAG,EAAE;AAAiD,CAAC;AAE5E,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,YAAY,GAAG;EACnBF,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAME,SAAS,GAAG,MAAM;AAExB,SAASP,WAAW,EAAEC,UAAU,EAAEK,YAAY,EAAEH,aAAa,EAAEI,SAAS"}
package/lib-es/index.js CHANGED
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  import { Layout } from './components';
3
3
  import pkg from '../package.json';
4
4
  import { PLUGIN_NAME } from './constants';
5
- import menuHandler from './utils/menu-handler-singleton';
5
+ import getMenuItemsResolver from './utils/get-menu-items-resolver';
6
6
  const Home = React.lazy(() => import( /* webpackChunkName: 'Home' */'./containers'));
7
- async function load(app, options = {}) {
7
+ async function load(app) {
8
8
  const home = {
9
9
  path: '/',
10
10
  exact: true,
@@ -12,14 +12,14 @@ async function load(app, options = {}) {
12
12
  component: Home
13
13
  };
14
14
  app.addRoute(home);
15
- menuHandler.setApp(app);
15
+ app.addQueryResolver('getMenuItems', getMenuItemsResolver(app));
16
16
  app.setLayout(Layout);
17
- const {
18
- menuConfig = {}
19
- } = options;
20
- app.events.once('admin:menu:config:load:after', ({
21
- addConfig
22
- }) => addConfig(menuConfig));
17
+ app.events.once('load:menu-section', addSection => {
18
+ addSection('plugins', {
19
+ header: 'plugins',
20
+ order: 200
21
+ });
22
+ });
23
23
  return {
24
24
  name: PLUGIN_NAME,
25
25
  version: pkg.version
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Layout","pkg","PLUGIN_NAME","menuHandler","Home","lazy","load","app","options","home","path","exact","key","component","addRoute","setApp","setLayout","menuConfig","events","once","addConfig","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Layout } from './components';\nimport pkg from '../package.json';\nimport { PLUGIN_NAME } from './constants';\nimport menuHandler from './utils/menu-handler-singleton';\n\nconst Home = React.lazy(() => import(/* webpackChunkName: 'Home' */ './containers'));\n\nasync function load(app, options = {}) {\n const home = {\n path: '/',\n exact: true,\n key: 'home',\n component: Home\n };\n\n app.addRoute(home);\n\n menuHandler.setApp(app);\n\n app.setLayout(Layout);\n\n const { menuConfig = {} } = options;\n\n app.events.once('admin:menu:config:load:after', ({ addConfig }) => addConfig(menuConfig));\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n\nexport default load;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,cAAc;AACrC,OAAOC,GAAG,MAAM,iBAAiB;AACjC,SAASC,WAAW,QAAQ,aAAa;AACzC,OAAOC,WAAW,MAAM,gCAAgC;AAExD,MAAMC,IAAI,GAAGL,KAAK,CAACM,IAAI,CAAC,MAAM,MAAM,EAAC,8BAA+B,cAAc,CAAC,CAAC;AAEpF,eAAeC,IAAIA,CAACC,GAAG,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EACrC,MAAMC,IAAI,GAAG;IACXC,IAAI,EAAE,GAAG;IACTC,KAAK,EAAE,IAAI;IACXC,GAAG,EAAE,MAAM;IACXC,SAAS,EAAET;EACb,CAAC;EAEDG,GAAG,CAACO,QAAQ,CAACL,IAAI,CAAC;EAElBN,WAAW,CAACY,MAAM,CAACR,GAAG,CAAC;EAEvBA,GAAG,CAACS,SAAS,CAAChB,MAAM,CAAC;EAErB,MAAM;IAAEiB,UAAU,GAAG,CAAC;EAAE,CAAC,GAAGT,OAAO;EAEnCD,GAAG,CAACW,MAAM,CAACC,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAAEC;EAAU,CAAC,KAAKA,SAAS,CAACH,UAAU,CAAC,CAAC;EAEzF,OAAO;IACLI,IAAI,EAAEnB,WAAW;IACjBoB,OAAO,EAAErB,GAAG,CAACqB;EACf,CAAC;AACH;AAEAhB,IAAI,CAACiB,UAAU,GAAGrB,WAAW;AAE7B,eAAeI,IAAI"}
1
+ {"version":3,"file":"index.js","names":["React","Layout","pkg","PLUGIN_NAME","getMenuItemsResolver","Home","lazy","load","app","home","path","exact","key","component","addRoute","addQueryResolver","setLayout","events","once","addSection","header","order","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Layout } from './components';\nimport pkg from '../package.json';\nimport { PLUGIN_NAME } from './constants';\nimport getMenuItemsResolver from './utils/get-menu-items-resolver';\n\nconst Home = React.lazy(() => import(/* webpackChunkName: 'Home' */ './containers'));\n\nasync function load(app) {\n const home = {\n path: '/',\n exact: true,\n key: 'home',\n component: Home\n };\n app.addRoute(home);\n\n app.addQueryResolver('getMenuItems', getMenuItemsResolver(app));\n\n app.setLayout(Layout);\n\n app.events.once('load:menu-section', addSection => {\n addSection('plugins', { header: 'plugins', order: 200 });\n });\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n\nexport default load;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,cAAc;AACrC,OAAOC,GAAG,MAAM,iBAAiB;AACjC,SAASC,WAAW,QAAQ,aAAa;AACzC,OAAOC,oBAAoB,MAAM,iCAAiC;AAElE,MAAMC,IAAI,GAAGL,KAAK,CAACM,IAAI,CAAC,MAAM,MAAM,EAAC,8BAA+B,cAAc,CAAC,CAAC;AAEpF,eAAeC,IAAIA,CAACC,GAAG,EAAE;EACvB,MAAMC,IAAI,GAAG;IACXC,IAAI,EAAE,GAAG;IACTC,KAAK,EAAE,IAAI;IACXC,GAAG,EAAE,MAAM;IACXC,SAAS,EAAER;EACb,CAAC;EACDG,GAAG,CAACM,QAAQ,CAACL,IAAI,CAAC;EAElBD,GAAG,CAACO,gBAAgB,CAAC,cAAc,EAAEX,oBAAoB,CAACI,GAAG,CAAC,CAAC;EAE/DA,GAAG,CAACQ,SAAS,CAACf,MAAM,CAAC;EAErBO,GAAG,CAACS,MAAM,CAACC,IAAI,CAAC,mBAAmB,EAAEC,UAAU,IAAI;IACjDA,UAAU,CAAC,SAAS,EAAE;MAAEC,MAAM,EAAE,SAAS;MAAEC,KAAK,EAAE;IAAI,CAAC,CAAC;EAC1D,CAAC,CAAC;EAEF,OAAO;IACLC,IAAI,EAAEnB,WAAW;IACjBoB,OAAO,EAAErB,GAAG,CAACqB;EACf,CAAC;AACH;AAEAhB,IAAI,CAACiB,UAAU,GAAGrB,WAAW;AAE7B,eAAeI,IAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-admin-core-ui",
3
- "version": "0.131.0-project-admin-customisations.2",
3
+ "version": "0.132.0-admin-updates.0",
4
4
  "description": "Blaze plugin admin core ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -27,11 +27,11 @@
27
27
  },
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
- "@blaze-cms/admin-ui-styles": "0.131.0-project-admin-customisations.1",
31
- "@blaze-cms/admin-ui-utils": "0.131.0-project-admin-customisations.2",
32
- "@blaze-cms/core-ui": "0.131.0-project-admin-customisations.0",
33
- "@blaze-cms/plugin-search-ui": "0.131.0-project-admin-customisations.2",
34
- "@blaze-cms/setup-ui": "0.131.0-project-admin-customisations.0",
30
+ "@blaze-cms/admin-ui-styles": "0.132.0-admin-updates.0",
31
+ "@blaze-cms/admin-ui-utils": "0.132.0-admin-updates.0",
32
+ "@blaze-cms/core-ui": "0.132.0-admin-updates.0",
33
+ "@blaze-cms/plugin-search-ui": "0.132.0-admin-updates.0",
34
+ "@blaze-cms/setup-ui": "0.132.0-admin-updates.0",
35
35
  "@blaze-react/avatar": "0.5.19",
36
36
  "@blaze-react/button": "0.5.19",
37
37
  "@blaze-react/input": "0.5.30",
@@ -47,13 +47,12 @@
47
47
  "react-router-dom": "^5.0.1"
48
48
  },
49
49
  "devDependencies": {
50
- "@blaze-cms/plugin-auth-ui": "0.131.0-project-admin-customisations.2",
51
- "lodash.merge": "^4.6.2",
50
+ "@blaze-cms/plugin-auth-ui": "0.132.0-admin-updates.0",
52
51
  "waait": "1.0.5"
53
52
  },
54
53
  "eslintIgnore": [
55
54
  "lib/*",
56
55
  "lib-es/*"
57
56
  ],
58
- "gitHead": "afa5f3dedb77eefe1ca4d1e043a8c88d4771e982"
57
+ "gitHead": "fd6ece22f357131c0b0e5201e5e1df825389b860"
59
58
  }
@@ -11,29 +11,18 @@ import Header from '../Header';
11
11
  const Layout = ({ children }) => {
12
12
  const [isOpenMenu, setOpenMenu] = useState(true);
13
13
  const onMenuClick = () => setOpenMenu(!isOpenMenu);
14
-
15
- const simpleLayout = window.location !== window.parent.location;
16
-
17
- const wrapperClass = simpleLayout ? ' grid--site-container--simle-layout' : '';
18
-
19
14
  return (
20
- <div className={`site-container grid--site-container${wrapperClass}`}>
15
+ <div className="site-container grid--site-container">
21
16
  <Query query={getQuery('GET_USER_AUTH_DATA')} errorPolicy="all">
22
17
  {({ data = {} }) => {
23
18
  const { session: { isLoggedIn, userData = {} } = {} } = data;
24
19
 
25
20
  return (
26
21
  <>
27
- {!simpleLayout && (
28
- <Header isLoggedIn={isLoggedIn} onMenuClick={onMenuClick} isOpenMenu={isOpenMenu} />
29
- )}
22
+ <Header isLoggedIn={isLoggedIn} onMenuClick={onMenuClick} isOpenMenu={isOpenMenu} />
30
23
  {isLoggedIn ? (
31
24
  <>
32
- <Grid
33
- isOpenMenu={isOpenMenu}
34
- onMenuClick={onMenuClick}
35
- userData={userData}
36
- simpleLayout={simpleLayout}>
25
+ <Grid isOpenMenu={isOpenMenu} onMenuClick={onMenuClick} userData={userData}>
37
26
  {children}
38
27
  </Grid>
39
28
  </>
@@ -1,27 +1,66 @@
1
- import React from 'react';
1
+ import React, { useState, useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { useApolloClient } from '@apollo/client';
4
+ import { getQuery, MainContextProvider } from '@blaze-cms/admin-ui-utils';
3
5
  import SideBar from '../../../SideBar';
4
6
 
5
- const Grid = ({ children, isOpenMenu, onMenuClick, userData, simpleLayout }) => (
6
- <div className="main-content grid grid--main-content">
7
- {!simpleLayout && (
8
- <SideBar isOpenMenu={isOpenMenu} onMenuClick={onMenuClick} userData={userData} />
9
- )}
10
- {children}
11
- </div>
12
- );
7
+ const Grid = ({ children, isOpenMenu, onMenuClick, userData }) => {
8
+ const [menuItems, setMenuItems] = useState(null);
9
+ const client = useApolloClient();
10
+
11
+ useEffect(
12
+ () => {
13
+ (async () => {
14
+ const {
15
+ data: { getMenuItems }
16
+ } = await client.query({ query: getQuery('GET_MENU_ITEMS') });
17
+
18
+ const parsedMenuItems = getMenuItems.map(([key, { header, items }]) => [
19
+ key,
20
+ {
21
+ header,
22
+ items: items.map(item => ({ ...item, isDisplayedPrompt: true }))
23
+ }
24
+ ]);
25
+
26
+ if (!menuItems) {
27
+ setMenuItems(parsedMenuItems);
28
+ }
29
+ })();
30
+ },
31
+ [client, menuItems]
32
+ );
33
+
34
+ const updateItems = items => {
35
+ setMenuItems(items);
36
+ };
37
+
38
+ return menuItems ? (
39
+ <MainContextProvider value={{ menuItems, setMenuItems: items => updateItems(items) }}>
40
+ <div className="main-content grid grid--main-content">
41
+ <SideBar
42
+ isOpenMenu={isOpenMenu}
43
+ menuItems={menuItems}
44
+ onMenuClick={onMenuClick}
45
+ userData={userData}
46
+ />
47
+ <div className="grid--main-content-wrapper">{children}</div>
48
+ </div>
49
+ </MainContextProvider>
50
+ ) : (
51
+ 'loading'
52
+ );
53
+ };
13
54
 
14
55
  Grid.propTypes = {
15
56
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
16
57
  isOpenMenu: PropTypes.bool.isRequired,
17
58
  onMenuClick: PropTypes.func.isRequired,
18
- userData: PropTypes.object,
19
- simpleLayout: PropTypes.bool
59
+ userData: PropTypes.object
20
60
  };
21
61
 
22
62
  Grid.defaultProps = {
23
- userData: {},
24
- simpleLayout: false
63
+ userData: {}
25
64
  };
26
65
 
27
66
  export default Grid;
@@ -4,9 +4,9 @@ import PropTypes from 'prop-types';
4
4
  import { useApolloClient } from '@apollo/client';
5
5
  import Avatar from '@blaze-react/avatar';
6
6
  import { handleLogout } from '@blaze-cms/core-auth-ui';
7
- import Menu from '../Menu';
7
+ import { SideBlock } from './components';
8
8
 
9
- const SideBar = ({ isOpenMenu, onMenuClick, userData }) => {
9
+ const SideBar = ({ menuItems, isOpenMenu, onMenuClick, userData }) => {
10
10
  const client = useApolloClient();
11
11
 
12
12
  const { firstname, lastname } = userData;
@@ -34,7 +34,9 @@ const SideBar = ({ isOpenMenu, onMenuClick, userData }) => {
34
34
  Dashboard
35
35
  </Link> */}
36
36
  <div className={sideNavWrapperClassname} data-testid="sidenav" id="side-nav__wrapper">
37
- <Menu />
37
+ {menuItems.length
38
+ ? menuItems.map(([, data]) => <SideBlock key={data.header} {...data} />)
39
+ : 'Not available content types'}
38
40
  </div>
39
41
  <div className="side-nav__user">
40
42
  <div className="side-nav__user--info">
@@ -60,6 +62,7 @@ const SideBar = ({ isOpenMenu, onMenuClick, userData }) => {
60
62
  };
61
63
 
62
64
  SideBar.propTypes = {
65
+ menuItems: PropTypes.array.isRequired,
63
66
  isOpenMenu: PropTypes.bool.isRequired,
64
67
  onMenuClick: PropTypes.func.isRequired,
65
68
  userData: PropTypes.object.isRequired
package/src/constants.js CHANGED
@@ -1,7 +1,5 @@
1
1
  const PLUGIN_NAME = 'admin-core-ui';
2
- const LOGO_PROPS = {
3
- src: process.env.BLAZE_ADMIN_HEAD_LOGO_URL || 'https://images.thisisblaze.com/logo-98-148.png'
4
- };
2
+ const LOGO_PROPS = { src: 'https://images.thisisblaze.com/logo-98-148.png' };
5
3
 
6
4
  const DEFAULT_LABEL = {
7
5
  text: 'See more',
package/src/index.js CHANGED
@@ -2,27 +2,26 @@ import React from 'react';
2
2
  import { Layout } from './components';
3
3
  import pkg from '../package.json';
4
4
  import { PLUGIN_NAME } from './constants';
5
- import menuHandler from './utils/menu-handler-singleton';
5
+ import getMenuItemsResolver from './utils/get-menu-items-resolver';
6
6
 
7
7
  const Home = React.lazy(() => import(/* webpackChunkName: 'Home' */ './containers'));
8
8
 
9
- async function load(app, options = {}) {
9
+ async function load(app) {
10
10
  const home = {
11
11
  path: '/',
12
12
  exact: true,
13
13
  key: 'home',
14
14
  component: Home
15
15
  };
16
-
17
16
  app.addRoute(home);
18
17
 
19
- menuHandler.setApp(app);
18
+ app.addQueryResolver('getMenuItems', getMenuItemsResolver(app));
20
19
 
21
20
  app.setLayout(Layout);
22
21
 
23
- const { menuConfig = {} } = options;
24
-
25
- app.events.once('admin:menu:config:load:after', ({ addConfig }) => addConfig(menuConfig));
22
+ app.events.once('load:menu-section', addSection => {
23
+ addSection('plugins', { header: 'plugins', order: 200 });
24
+ });
26
25
 
27
26
  return {
28
27
  name: PLUGIN_NAME,
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var ChevronDown = function ChevronDown() {
11
- return /*#__PURE__*/_react["default"].createElement("svg", {
12
- xmlns: "http://www.w3.org/2000/svg",
13
- fill: "none",
14
- viewBox: "0 0 24 24",
15
- strokeWidth: 1.5,
16
- width: "20",
17
- height: "20",
18
- stroke: "currentColor"
19
- }, /*#__PURE__*/_react["default"].createElement("path", {
20
- strokeLinecap: "round",
21
- strokeLinejoin: "round",
22
- d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
23
- }));
24
- };
25
- var _default = ChevronDown;
26
- exports["default"] = _default;
27
- //# sourceMappingURL=ChevronDown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChevronDown.js","names":["_react","_interopRequireDefault","require","ChevronDown","createElement","xmlns","fill","viewBox","strokeWidth","width","height","stroke","strokeLinecap","strokeLinejoin","d","_default","exports"],"sources":["../../../../src/components/Menu/Icons/ChevronDown.js"],"sourcesContent":["import React from 'react';\n\nconst ChevronDown = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n width=\"20\"\n height=\"20\"\n stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19.5 8.25l-7.5 7.5-7.5-7.5\" />\n </svg>\n);\n\nexport default ChevronDown;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA;EAAA,oBACfH,MAAA,YAAAI,aAAA;IACEC,KAAK,EAAC,4BAA4B;IAClCC,IAAI,EAAC,MAAM;IACXC,OAAO,EAAC,WAAW;IACnBC,WAAW,EAAE,GAAI;IACjBC,KAAK,EAAC,IAAI;IACVC,MAAM,EAAC,IAAI;IACXC,MAAM,EAAC;EAAc,gBACrBX,MAAA,YAAAI,aAAA;IAAMQ,aAAa,EAAC,OAAO;IAACC,cAAc,EAAC,OAAO;IAACC,CAAC,EAAC;EAA6B,CAAE,CACjF,CAAC;AAAA,CACP;AAAC,IAAAC,QAAA,GAEaZ,WAAW;AAAAa,OAAA,cAAAD,QAAA"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var ChevronUp = function ChevronUp() {
11
- return /*#__PURE__*/_react["default"].createElement("svg", {
12
- xmlns: "http://www.w3.org/2000/svg",
13
- fill: "none",
14
- viewBox: "0 0 22 22",
15
- strokeWidth: 1.5,
16
- width: "20",
17
- height: "20",
18
- stroke: "currentColor"
19
- }, /*#__PURE__*/_react["default"].createElement("path", {
20
- strokeLinecap: "round",
21
- strokeLinejoin: "round",
22
- d: "M4.5 15.75l7.5-7.5 7.5 7.5"
23
- }));
24
- };
25
- var _default = ChevronUp;
26
- exports["default"] = _default;
27
- //# sourceMappingURL=ChevronUp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChevronUp.js","names":["_react","_interopRequireDefault","require","ChevronUp","createElement","xmlns","fill","viewBox","strokeWidth","width","height","stroke","strokeLinecap","strokeLinejoin","d","_default","exports"],"sources":["../../../../src/components/Menu/Icons/ChevronUp.js"],"sourcesContent":["import React from 'react';\n\nconst ChevronUp = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 22 22\"\n strokeWidth={1.5}\n width=\"20\"\n height=\"20\"\n stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4.5 15.75l7.5-7.5 7.5 7.5\" />\n </svg>\n);\n\nexport default ChevronUp;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA;EAAA,oBACbH,MAAA,YAAAI,aAAA;IACEC,KAAK,EAAC,4BAA4B;IAClCC,IAAI,EAAC,MAAM;IACXC,OAAO,EAAC,WAAW;IACnBC,WAAW,EAAE,GAAI;IACjBC,KAAK,EAAC,IAAI;IACVC,MAAM,EAAC,IAAI;IACXC,MAAM,EAAC;EAAc,gBACrBX,MAAA,YAAAI,aAAA;IAAMQ,aAAa,EAAC,OAAO;IAACC,cAAc,EAAC,OAAO;IAACC,CAAC,EAAC;EAA4B,CAAE,CAChF,CAAC;AAAA,CACP;AAAC,IAAAC,QAAA,GAEaZ,SAAS;AAAAa,OAAA,cAAAD,QAAA"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var _reactRouterDom = require("react-router-dom");
11
- var MenuActionItem = function MenuActionItem(_ref) {
12
- var item = _ref.item;
13
- var label = item.label,
14
- MenuSectionIcon = item.icon,
15
- _onClick = item.onClick,
16
- uri = item.uri;
17
- var modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';
18
- return /*#__PURE__*/_react["default"].createElement("li", {
19
- className: "side-nav__list--item",
20
- key: item.label
21
- }, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
22
- to: uri,
23
- className: "side-nav__list-link ".concat(modifier),
24
- onClick: function onClick() {
25
- if (_onClick) {
26
- _onClick();
27
- }
28
- }
29
- }, MenuSectionIcon && /*#__PURE__*/_react["default"].createElement("div", {
30
- className: "side-nav__list-link--icon"
31
- }, /*#__PURE__*/_react["default"].createElement(MenuSectionIcon, null)), /*#__PURE__*/_react["default"].createElement("div", {
32
- className: "side-nav__list-label"
33
- }, label)));
34
- };
35
- var _default = MenuActionItem;
36
- exports["default"] = _default;
37
- //# sourceMappingURL=MenuActionItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuActionItem.js","names":["_react","_interopRequireDefault","require","_reactRouterDom","MenuActionItem","_ref","item","label","MenuSectionIcon","icon","onClick","uri","modifier","createElement","className","key","Link","to","concat","_default","exports"],"sources":["../../../../src/components/Menu/Items/MenuActionItem.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst MenuActionItem = ({ item }) => {\n const { label, icon: MenuSectionIcon, onClick, uri } = item;\n\n const modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';\n\n return (\n <li className=\"side-nav__list--item\" key={item.label}>\n <Link\n to={uri}\n className={`side-nav__list-link ${modifier}`}\n onClick={() => {\n if (onClick) {\n onClick();\n }\n }}>\n {MenuSectionIcon && (\n <div className=\"side-nav__list-link--icon\">\n <MenuSectionIcon />\n </div>\n )}\n <div className=\"side-nav__list-label\">{label}</div>\n </Link>\n </li>\n );\n};\n\nexport default MenuActionItem;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAiB;EAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAC5B,IAAQC,KAAK,GAA0CD,IAAI,CAAnDC,KAAK;IAAQC,eAAe,GAAmBF,IAAI,CAA5CG,IAAI;IAAmBC,QAAO,GAAUJ,IAAI,CAArBI,OAAO;IAAEC,GAAG,GAAKL,IAAI,CAAZK,GAAG;EAElD,IAAMC,QAAQ,GAAGJ,eAAe,GAAG,EAAE,GAAG,6BAA6B;EAErE,oBACER,MAAA,YAAAa,aAAA;IAAIC,SAAS,EAAC,sBAAsB;IAACC,GAAG,EAAET,IAAI,CAACC;EAAM,gBACnDP,MAAA,YAAAa,aAAA,CAACV,eAAA,CAAAa,IAAI;IACHC,EAAE,EAAEN,GAAI;IACRG,SAAS,yBAAAI,MAAA,CAAyBN,QAAQ,CAAG;IAC7CF,OAAO,EAAE,SAAAA,QAAA,EAAM;MACb,IAAIA,QAAO,EAAE;QACXA,QAAO,CAAC,CAAC;MACX;IACF;EAAE,GACDF,eAAe,iBACdR,MAAA,YAAAa,aAAA;IAAKC,SAAS,EAAC;EAA2B,gBACxCd,MAAA,YAAAa,aAAA,CAACL,eAAe,MAAE,CACf,CACN,eACDR,MAAA,YAAAa,aAAA;IAAKC,SAAS,EAAC;EAAsB,GAAEP,KAAW,CAC9C,CACJ,CAAC;AAET,CAAC;AAAC,IAAAY,QAAA,GAEaf,cAAc;AAAAgB,OAAA,cAAAD,QAAA"}