@bigbinary/neeto-molecules 3.15.53 → 3.15.55

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.
@@ -1,11 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import classnames from 'classnames';
3
4
  import Button from '@bigbinary/neetoui/Button';
4
5
  import { n } from './inject-css-DmrvuTKK.js';
5
6
  import { createElement } from 'react';
6
7
  import { jsx } from 'react/jsx-runtime';
7
8
 
8
- var css = ".neeto-molecules-button-group{border-radius:var(--neeto-ui-rounded-md);display:flex}.neeto-molecules-button-group .neeto-ui-btn{margin-left:-.0625rem}.neeto-molecules-button-group .neeto-ui-btn.neeto-ui-btn--style-primary{z-index:1}.neeto-molecules-button-group .neeto-ui-btn:first-child{border-bottom-right-radius:0;border-left:0;border-top-right-radius:0;margin-left:0}.neeto-molecules-button-group .neeto-ui-btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.neeto-molecules-button-group .neeto-ui-btn:not(:first-child):not(:last-child){border-radius:0}";
9
+ var css = ".neeto-molecules-button-group{border-radius:var(--neeto-ui-rounded-md);display:flex}.neeto-molecules-button-group .neeto-ui-btn{margin-left:-.0625rem}.neeto-molecules-button-group .neeto-ui-btn.neeto-molecules-button-group__btn--active{--neeto-ui-btn-color:rgb(var(--neeto-ui-primary-500));--neeto-ui-btn-bg-color:rgb(var(--neeto-ui-primary-100));--neeto-ui-btn-hover-color:rgb(var(--neeto-ui-primary-500));--neeto-ui-btn-hover-bg-color:rgb(var(--neeto-ui-primary-100));--neeto-ui-btn-focus-color:rgb(var(--neeto-ui-primary-600));z-index:1}.neeto-molecules-button-group .neeto-ui-btn:first-child{border-bottom-right-radius:0;border-left:0;border-top-right-radius:0;margin-left:0}.neeto-molecules-button-group .neeto-ui-btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.neeto-molecules-button-group .neeto-ui-btn:not(:first-child):not(:last-child){border-radius:0}";
9
10
  n(css,{});
10
11
 
11
12
  var _excluded = ["key", "isActive"];
@@ -13,8 +14,6 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
13
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
15
  var ButtonGroup = function ButtonGroup(_ref) {
15
16
  var buttons = _ref.buttons,
16
- _ref$style = _ref.style,
17
- style = _ref$style === void 0 ? "tertiary" : _ref$style,
18
17
  _ref$size = _ref.size,
19
18
  size = _ref$size === void 0 ? "medium" : _ref$size;
20
19
  return /*#__PURE__*/jsx("div", {
@@ -26,7 +25,10 @@ var ButtonGroup = function ButtonGroup(_ref) {
26
25
  return /*#__PURE__*/createElement(Button, _objectSpread({
27
26
  size: size,
28
27
  key: key,
29
- style: isActive ? "primary" : style
28
+ style: "tertiary",
29
+ className: classnames({
30
+ "neeto-molecules-button-group__btn--active": isActive
31
+ })
30
32
  }, buttonProps));
31
33
  })
32
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","sources":["../src/components/ButtonGroup/index.jsx"],"sourcesContent":["import { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./button-group.scss\";\n\nconst ButtonGroup = ({ buttons, style = \"tertiary\", size = \"medium\" }) => (\n <div className=\"neeto-molecules-button-group\">\n {buttons.map(({ key, isActive, ...buttonProps }) => (\n <Button\n {...{ size }}\n key={key}\n style={isActive ? \"primary\" : style}\n {...buttonProps}\n />\n ))}\n </div>\n);\n\nButtonGroup.propTypes = {\n /*\n * Array of buttons to be rendered in the group. Each button should have a key, icon, isActive and onClick function.\n */\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isActive: PropTypes.bool,\n onClick: PropTypes.func,\n })\n ),\n /*\n * Size of the buttons in the group.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n /*\n * Style of the buttons in the group.\n */\n style: PropTypes.oneOf([\"secondary\", \"tertiary\"]),\n};\n\nexport default ButtonGroup;\n"],"names":["ButtonGroup","_ref","buttons","_ref$style","style","_ref$size","size","_jsx","className","children","map","_ref2","key","isActive","buttonProps","_objectWithoutProperties","_excluded","_createElement","Button","_objectSpread"],"mappings":";;;;;;;;;;;;;AAKA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,UAAA,GAAAF,IAAA,CAAEG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,UAAA;IAAAE,SAAA,GAAAJ,IAAA,CAAEK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA,CAAA;AAAA,EAAA,oBACjEE,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,EAC1CP,OAAO,CAACQ,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;AAAKC,QAAAA,WAAW,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,MAAA,oBAC3CC,aAAA,CAACC,MAAM,EAAAC,aAAA,CAAA;AACCb,QAAAA,IAAI,EAAJA,IAAI;AACVM,QAAAA,GAAG,EAAEA,GAAI;AACTR,QAAAA,KAAK,EAAES,QAAQ,GAAG,SAAS,GAAGT,KAAAA;OAC1BU,EAAAA,WAAW,CAChB,CAAC,CAAA;KACH,CAAA;AAAC,GACC,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ButtonGroup.js","sources":["../src/components/ButtonGroup/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./button-group.scss\";\n\nconst ButtonGroup = ({ buttons, size = \"medium\" }) => (\n <div className=\"neeto-molecules-button-group\">\n {buttons.map(({ key, isActive, ...buttonProps }) => (\n <Button\n {...{ size }}\n key={key}\n style=\"tertiary\"\n className={classnames({\n \"neeto-molecules-button-group__btn--active\": isActive,\n })}\n {...buttonProps}\n />\n ))}\n </div>\n);\n\nButtonGroup.propTypes = {\n /*\n * Array of buttons to be rendered in the group. Each button should have a key, icon, isActive and onClick function.\n */\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isActive: PropTypes.bool,\n onClick: PropTypes.func,\n })\n ),\n /*\n * Size of the buttons in the group.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nexport default ButtonGroup;\n"],"names":["ButtonGroup","_ref","buttons","_ref$size","size","_jsx","className","children","map","_ref2","key","isActive","buttonProps","_objectWithoutProperties","_excluded","_createElement","Button","_objectSpread","style","classnames"],"mappings":";;;;;;;;;;;;;;AAMA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,SAAA,GAAAF,IAAA,CAAEG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA,CAAA;AAAA,EAAA,oBAC7CE,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,EAC1CL,OAAO,CAACM,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;AAAKC,QAAAA,WAAW,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,MAAA,oBAC3CC,aAAA,CAACC,MAAM,EAAAC,aAAA,CAAA;AACCb,QAAAA,IAAI,EAAJA,IAAI;AACVM,QAAAA,GAAG,EAAEA,GAAI;AACTQ,QAAAA,KAAK,EAAC,UAAU;QAChBZ,SAAS,EAAEa,UAAU,CAAC;AACpB,UAAA,2CAA2C,EAAER,QAAAA;SAC9C,CAAA;OACGC,EAAAA,WAAW,CAChB,CAAC,CAAA;KACH,CAAA;AAAC,GACC,CAAC,CAAA;AAAA;;;;"}
@@ -1,18 +1,22 @@
1
1
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { shallow } from 'zustand/shallow';
4
+ import { useState, useEffect } from 'react';
3
5
  import { useLocalStorage } from '@bigbinary/neeto-commons-frontend/react-utils';
6
+ import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/react-utils/useDisplayErrorPage';
4
7
  import EditorContent from '@bigbinary/neeto-editor/EditorContent';
8
+ import Button from '@bigbinary/neetoui/Button';
5
9
  import Tag from '@bigbinary/neetoui/Tag';
6
10
  import { pluck } from 'ramda';
11
+ import { Trans } from 'react-i18next';
7
12
  import { n } from './inject-css-DmrvuTKK.js';
8
13
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
9
14
  import _regeneratorRuntime from '@babel/runtime/regenerator';
10
- import { useState, useEffect } from 'react';
11
15
  import { useQuery } from '@tanstack/react-query';
12
16
  import { noop } from '@bigbinary/neeto-cist';
13
17
  import axios from 'axios';
14
18
  import { BASE_API_V1_URL } from '@bigbinary/neeto-commons-frontend/constants';
15
- import { jsx, Fragment } from 'react/jsx-runtime';
19
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
16
20
 
17
21
  var QUERY_KEYS = {
18
22
  APP_STICKY_RIBBONS_LIST: "APP_STICKY_RIBBONS_LIST"
@@ -87,10 +91,20 @@ var useFetchStickyRibbons = function useFetchStickyRibbons() {
87
91
  };
88
92
 
89
93
  var StickyRibbonsContainer = function StickyRibbonsContainer() {
94
+ var _useState = useState(false),
95
+ _useState2 = _slicedToArray(_useState, 2),
96
+ isRefreshRibbonDismissed = _useState2[0],
97
+ setIsRefreshRibbonDismissed = _useState2[1];
90
98
  var _useLocalStorage = useLocalStorage(STICKY_RIBBONS_LOCAL_STORAGE_KEY, []),
91
99
  _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
92
100
  dismissedRibbons = _useLocalStorage2[0],
93
101
  setDismissedRibbons = _useLocalStorage2[1];
102
+ var _useErrorDisplayStore = useErrorDisplayStore(function (store) {
103
+ return {
104
+ showRefreshRibbon: store["showRefreshRibbon"]
105
+ };
106
+ }, shallow),
107
+ showRefreshRibbon = _useErrorDisplayStore.showRefreshRibbon;
94
108
  var _useFetchStickyRibbon = useFetchStickyRibbons(),
95
109
  _useFetchStickyRibbon2 = _useFetchStickyRibbon.data,
96
110
  _useFetchStickyRibbon3 = _useFetchStickyRibbon2 === void 0 ? {} : _useFetchStickyRibbon2,
@@ -106,8 +120,29 @@ var StickyRibbonsContainer = function StickyRibbonsContainer() {
106
120
  var visibleRibbons = stickyRibbons.filter(function (ribbon) {
107
121
  return !dismissedRibbons.includes(ribbon.id);
108
122
  });
109
- return /*#__PURE__*/jsx(Fragment, {
110
- children: visibleRibbons.map(function (_ref) {
123
+ return /*#__PURE__*/jsxs(Fragment, {
124
+ children: [showRefreshRibbon && !isRefreshRibbonDismissed && /*#__PURE__*/jsx(Tag, {
125
+ className: "neeto-molecules-sticky-ribbon w-full p-2.5 text-center",
126
+ size: "large",
127
+ style: STICKY_RIBBON_KIND_TO_STYLE["error"],
128
+ onClose: function onClose() {
129
+ return setIsRefreshRibbonDismissed(true);
130
+ },
131
+ children: /*#__PURE__*/jsx("span", {
132
+ className: "w-full",
133
+ children: /*#__PURE__*/jsx(Trans, {
134
+ i18nKey: "neetoMolecules.stickyRibbonsContainer.refreshRibbon",
135
+ components: {
136
+ button: /*#__PURE__*/jsx(Button, {
137
+ style: "link",
138
+ onClick: function onClick() {
139
+ return window.location.reload();
140
+ }
141
+ })
142
+ }
143
+ })
144
+ })
145
+ }), visibleRibbons.map(function (_ref) {
111
146
  var id = _ref.id,
112
147
  kind = _ref.kind,
113
148
  message = _ref.message;
@@ -123,7 +158,7 @@ var StickyRibbonsContainer = function StickyRibbonsContainer() {
123
158
  content: message
124
159
  })
125
160
  }, id);
126
- })
161
+ })]
127
162
  });
128
163
  };
129
164
 
@@ -1 +1 @@
1
- {"version":3,"file":"StickyRibbonsContainer.js","sources":["../src/components/StickyRibbonsContainer/constants.js","../src/components/StickyRibbonsContainer/api.js","../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { useLocalStorage } from \"neetocommons/react-utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\n\nimport {\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n STICKY_RIBBON_KIND_TO_STYLE,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_callee$","_context","prev","next","sent","status","abrupt","data","stop","apply","arguments","refetchInterval","StickyRibbonsContainer","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useFetchStickyRibbon","_useFetchStickyRibbon2","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_jsx","_Fragment","children","map","_ref","kind","message","Tag","className","size","style","onClose","EditorContent","content"],"mappings":"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"}
1
+ {"version":3,"file":"StickyRibbonsContainer.js","sources":["../src/components/StickyRibbonsContainer/constants.js","../src/components/StickyRibbonsContainer/api.js","../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { useState } from \"react\";\n\nimport { useLocalStorage } from \"neetocommons/react-utils\";\nimport { useErrorDisplayStore } from \"neetocommons/react-utils/useDisplayErrorPage\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Button, Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport {\n STICKY_RIBBON_KIND_TO_STYLE,\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [isRefreshRibbonDismissed, setIsRefreshRibbonDismissed] =\n useState(false);\n\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { showRefreshRibbon } = useErrorDisplayStore.pick();\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {showRefreshRibbon && !isRefreshRibbonDismissed && (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[\"error\"]}\n onClose={() => setIsRefreshRibbonDismissed(true)}\n >\n <span className=\"w-full\">\n <Trans\n i18nKey=\"neetoMolecules.stickyRibbonsContainer.refreshRibbon\"\n components={{\n button: (\n <Button\n style=\"link\"\n onClick={() => window.location.reload()}\n />\n ),\n }}\n />\n </span>\n </Tag>\n )}\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_callee$","_context","prev","next","sent","status","abrupt","data","stop","apply","arguments","refetchInterval","StickyRibbonsContainer","isRefreshRibbonDismissed","setIsRefreshRibbonDismissed","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useErrorDisplayStore","useErrorDisplayStore","store","showRefreshRibbon","shallow","_useFetchStickyRibbon","_useFetchStickyRibbon2","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_jsxs","_Fragment","children","_jsx","Tag","className","size","style","onClose","Trans","i18nKey","components","button","Button","onClick","window","location","reload","map","_ref","kind","message","EditorContent","content"],"mappings":"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"}
@@ -2,12 +2,13 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var classnames = require('classnames');
5
6
  var Button = require('@bigbinary/neetoui/Button');
6
7
  var injectCss = require('./inject-css-vQvjPR2x.js');
7
8
  var React = require('react');
8
9
  var jsxRuntime = require('react/jsx-runtime');
9
10
 
10
- var css = ".neeto-molecules-button-group{border-radius:var(--neeto-ui-rounded-md);display:flex}.neeto-molecules-button-group .neeto-ui-btn{margin-left:-.0625rem}.neeto-molecules-button-group .neeto-ui-btn.neeto-ui-btn--style-primary{z-index:1}.neeto-molecules-button-group .neeto-ui-btn:first-child{border-bottom-right-radius:0;border-left:0;border-top-right-radius:0;margin-left:0}.neeto-molecules-button-group .neeto-ui-btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.neeto-molecules-button-group .neeto-ui-btn:not(:first-child):not(:last-child){border-radius:0}";
11
+ var css = ".neeto-molecules-button-group{border-radius:var(--neeto-ui-rounded-md);display:flex}.neeto-molecules-button-group .neeto-ui-btn{margin-left:-.0625rem}.neeto-molecules-button-group .neeto-ui-btn.neeto-molecules-button-group__btn--active{--neeto-ui-btn-color:rgb(var(--neeto-ui-primary-500));--neeto-ui-btn-bg-color:rgb(var(--neeto-ui-primary-100));--neeto-ui-btn-hover-color:rgb(var(--neeto-ui-primary-500));--neeto-ui-btn-hover-bg-color:rgb(var(--neeto-ui-primary-100));--neeto-ui-btn-focus-color:rgb(var(--neeto-ui-primary-600));z-index:1}.neeto-molecules-button-group .neeto-ui-btn:first-child{border-bottom-right-radius:0;border-left:0;border-top-right-radius:0;margin-left:0}.neeto-molecules-button-group .neeto-ui-btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.neeto-molecules-button-group .neeto-ui-btn:not(:first-child):not(:last-child){border-radius:0}";
11
12
  injectCss.n(css,{});
12
13
 
13
14
  var _excluded = ["key", "isActive"];
@@ -15,8 +16,6 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
15
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
17
  var ButtonGroup = function ButtonGroup(_ref) {
17
18
  var buttons = _ref.buttons,
18
- _ref$style = _ref.style,
19
- style = _ref$style === void 0 ? "tertiary" : _ref$style,
20
19
  _ref$size = _ref.size,
21
20
  size = _ref$size === void 0 ? "medium" : _ref$size;
22
21
  return /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -28,7 +27,10 @@ var ButtonGroup = function ButtonGroup(_ref) {
28
27
  return /*#__PURE__*/React.createElement(Button, _objectSpread({
29
28
  size: size,
30
29
  key: key,
31
- style: isActive ? "primary" : style
30
+ style: "tertiary",
31
+ className: classnames({
32
+ "neeto-molecules-button-group__btn--active": isActive
33
+ })
32
34
  }, buttonProps));
33
35
  })
34
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","sources":["../../src/components/ButtonGroup/index.jsx"],"sourcesContent":["import { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./button-group.scss\";\n\nconst ButtonGroup = ({ buttons, style = \"tertiary\", size = \"medium\" }) => (\n <div className=\"neeto-molecules-button-group\">\n {buttons.map(({ key, isActive, ...buttonProps }) => (\n <Button\n {...{ size }}\n key={key}\n style={isActive ? \"primary\" : style}\n {...buttonProps}\n />\n ))}\n </div>\n);\n\nButtonGroup.propTypes = {\n /*\n * Array of buttons to be rendered in the group. Each button should have a key, icon, isActive and onClick function.\n */\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isActive: PropTypes.bool,\n onClick: PropTypes.func,\n })\n ),\n /*\n * Size of the buttons in the group.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n /*\n * Style of the buttons in the group.\n */\n style: PropTypes.oneOf([\"secondary\", \"tertiary\"]),\n};\n\nexport default ButtonGroup;\n"],"names":["ButtonGroup","_ref","buttons","_ref$style","style","_ref$size","size","_jsx","className","children","map","_ref2","key","isActive","buttonProps","_objectWithoutProperties","_excluded","_createElement","Button","_objectSpread"],"mappings":";;;;;;;;;;;;;;;AAKA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,UAAA,GAAAF,IAAA,CAAEG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,UAAA;IAAAE,SAAA,GAAAJ,IAAA,CAAEK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA,CAAA;AAAA,EAAA,oBACjEE,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,EAC1CP,OAAO,CAACQ,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;AAAKC,QAAAA,WAAW,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,MAAA,oBAC3CC,mBAAA,CAACC,MAAM,EAAAC,aAAA,CAAA;AACCb,QAAAA,IAAI,EAAJA,IAAI;AACVM,QAAAA,GAAG,EAAEA,GAAI;AACTR,QAAAA,KAAK,EAAES,QAAQ,GAAG,SAAS,GAAGT,KAAAA;OAC1BU,EAAAA,WAAW,CAChB,CAAC,CAAA;KACH,CAAA;AAAC,GACC,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ButtonGroup.js","sources":["../../src/components/ButtonGroup/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./button-group.scss\";\n\nconst ButtonGroup = ({ buttons, size = \"medium\" }) => (\n <div className=\"neeto-molecules-button-group\">\n {buttons.map(({ key, isActive, ...buttonProps }) => (\n <Button\n {...{ size }}\n key={key}\n style=\"tertiary\"\n className={classnames({\n \"neeto-molecules-button-group__btn--active\": isActive,\n })}\n {...buttonProps}\n />\n ))}\n </div>\n);\n\nButtonGroup.propTypes = {\n /*\n * Array of buttons to be rendered in the group. Each button should have a key, icon, isActive and onClick function.\n */\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isActive: PropTypes.bool,\n onClick: PropTypes.func,\n })\n ),\n /*\n * Size of the buttons in the group.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nexport default ButtonGroup;\n"],"names":["ButtonGroup","_ref","buttons","_ref$size","size","_jsx","className","children","map","_ref2","key","isActive","buttonProps","_objectWithoutProperties","_excluded","_createElement","Button","_objectSpread","style","classnames"],"mappings":";;;;;;;;;;;;;;;;AAMA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,SAAA,GAAAF,IAAA,CAAEG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA,CAAA;AAAA,EAAA,oBAC7CE,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,EAC1CL,OAAO,CAACM,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;AAAKC,QAAAA,WAAW,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,MAAA,oBAC3CC,mBAAA,CAACC,MAAM,EAAAC,aAAA,CAAA;AACCb,QAAAA,IAAI,EAAJA,IAAI;AACVM,QAAAA,GAAG,EAAEA,GAAI;AACTQ,QAAAA,KAAK,EAAC,UAAU;QAChBZ,SAAS,EAAEa,UAAU,CAAC;AACpB,UAAA,2CAA2C,EAAER,QAAAA;SAC9C,CAAA;OACGC,EAAAA,WAAW,CAChB,CAAC,CAAA;KACH,CAAA;AAAC,GACC,CAAC,CAAA;AAAA;;;;"}
@@ -2,14 +2,18 @@
2
2
 
3
3
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var shallow = require('zustand/shallow');
6
+ var React = require('react');
5
7
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var useDisplayErrorPage = require('@bigbinary/neeto-commons-frontend/react-utils/useDisplayErrorPage');
6
9
  var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
10
+ var Button = require('@bigbinary/neetoui/Button');
7
11
  var Tag = require('@bigbinary/neetoui/Tag');
8
12
  var ramda = require('ramda');
13
+ var reactI18next = require('react-i18next');
9
14
  var injectCss = require('./inject-css-vQvjPR2x.js');
10
15
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
11
16
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
12
- var React = require('react');
13
17
  var reactQuery = require('@tanstack/react-query');
14
18
  var neetoCist = require('@bigbinary/neeto-cist');
15
19
  var axios = require('axios');
@@ -89,10 +93,20 @@ var useFetchStickyRibbons = function useFetchStickyRibbons() {
89
93
  };
90
94
 
91
95
  var StickyRibbonsContainer = function StickyRibbonsContainer() {
96
+ var _useState = React.useState(false),
97
+ _useState2 = _slicedToArray(_useState, 2),
98
+ isRefreshRibbonDismissed = _useState2[0],
99
+ setIsRefreshRibbonDismissed = _useState2[1];
92
100
  var _useLocalStorage = reactUtils.useLocalStorage(STICKY_RIBBONS_LOCAL_STORAGE_KEY, []),
93
101
  _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
94
102
  dismissedRibbons = _useLocalStorage2[0],
95
103
  setDismissedRibbons = _useLocalStorage2[1];
104
+ var _useErrorDisplayStore = useDisplayErrorPage.useErrorDisplayStore(function (store) {
105
+ return {
106
+ showRefreshRibbon: store["showRefreshRibbon"]
107
+ };
108
+ }, shallow.shallow),
109
+ showRefreshRibbon = _useErrorDisplayStore.showRefreshRibbon;
96
110
  var _useFetchStickyRibbon = useFetchStickyRibbons(),
97
111
  _useFetchStickyRibbon2 = _useFetchStickyRibbon.data,
98
112
  _useFetchStickyRibbon3 = _useFetchStickyRibbon2 === void 0 ? {} : _useFetchStickyRibbon2,
@@ -108,8 +122,29 @@ var StickyRibbonsContainer = function StickyRibbonsContainer() {
108
122
  var visibleRibbons = stickyRibbons.filter(function (ribbon) {
109
123
  return !dismissedRibbons.includes(ribbon.id);
110
124
  });
111
- return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
112
- children: visibleRibbons.map(function (_ref) {
125
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
126
+ children: [showRefreshRibbon && !isRefreshRibbonDismissed && /*#__PURE__*/jsxRuntime.jsx(Tag, {
127
+ className: "neeto-molecules-sticky-ribbon w-full p-2.5 text-center",
128
+ size: "large",
129
+ style: STICKY_RIBBON_KIND_TO_STYLE["error"],
130
+ onClose: function onClose() {
131
+ return setIsRefreshRibbonDismissed(true);
132
+ },
133
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
134
+ className: "w-full",
135
+ children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
136
+ i18nKey: "neetoMolecules.stickyRibbonsContainer.refreshRibbon",
137
+ components: {
138
+ button: /*#__PURE__*/jsxRuntime.jsx(Button, {
139
+ style: "link",
140
+ onClick: function onClick() {
141
+ return window.location.reload();
142
+ }
143
+ })
144
+ }
145
+ })
146
+ })
147
+ }), visibleRibbons.map(function (_ref) {
113
148
  var id = _ref.id,
114
149
  kind = _ref.kind,
115
150
  message = _ref.message;
@@ -125,7 +160,7 @@ var StickyRibbonsContainer = function StickyRibbonsContainer() {
125
160
  content: message
126
161
  })
127
162
  }, id);
128
- })
163
+ })]
129
164
  });
130
165
  };
131
166
 
@@ -1 +1 @@
1
- {"version":3,"file":"StickyRibbonsContainer.js","sources":["../../src/components/StickyRibbonsContainer/constants.js","../../src/components/StickyRibbonsContainer/api.js","../../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { useLocalStorage } from \"neetocommons/react-utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\n\nimport {\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n STICKY_RIBBON_KIND_TO_STYLE,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_callee$","_context","prev","next","sent","status","abrupt","data","stop","apply","arguments","refetchInterval","StickyRibbonsContainer","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useFetchStickyRibbon","_useFetchStickyRibbon2","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_jsx","_Fragment","children","map","_ref","kind","message","Tag","className","size","style","onClose","EditorContent","content"],"mappings":"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"}
1
+ {"version":3,"file":"StickyRibbonsContainer.js","sources":["../../src/components/StickyRibbonsContainer/constants.js","../../src/components/StickyRibbonsContainer/api.js","../../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { useState } from \"react\";\n\nimport { useLocalStorage } from \"neetocommons/react-utils\";\nimport { useErrorDisplayStore } from \"neetocommons/react-utils/useDisplayErrorPage\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Button, Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport {\n STICKY_RIBBON_KIND_TO_STYLE,\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [isRefreshRibbonDismissed, setIsRefreshRibbonDismissed] =\n useState(false);\n\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { showRefreshRibbon } = useErrorDisplayStore.pick();\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {showRefreshRibbon && !isRefreshRibbonDismissed && (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[\"error\"]}\n onClose={() => setIsRefreshRibbonDismissed(true)}\n >\n <span className=\"w-full\">\n <Trans\n i18nKey=\"neetoMolecules.stickyRibbonsContainer.refreshRibbon\"\n components={{\n button: (\n <Button\n style=\"link\"\n onClick={() => window.location.reload()}\n />\n ),\n }}\n />\n </span>\n </Tag>\n )}\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_callee$","_context","prev","next","sent","status","abrupt","data","stop","apply","arguments","refetchInterval","StickyRibbonsContainer","isRefreshRibbonDismissed","setIsRefreshRibbonDismissed","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useErrorDisplayStore","useErrorDisplayStore","store","showRefreshRibbon","shallow","_useFetchStickyRibbon","_useFetchStickyRibbon2","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_jsxs","_Fragment","children","_jsx","Tag","className","size","style","onClose","Trans","i18nKey","components","button","Button","onClick","window","location","reload","map","_ref","kind","message","EditorContent","content"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.15.53",
3
+ "version": "3.15.55",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -807,6 +807,9 @@
807
807
  },
808
808
  "subscription": {
809
809
  "paymentFailedNotification": "<strong>Action required: </strong> Your subscription payment has failed. <a>Click here</a> for details. If no action is taken, your subscription will be downgraded by {{downgradeScheduledAt, anyCase}}."
810
+ },
811
+ "stickyRibbonsContainer": {
812
+ "refreshRibbon": "New updates are available. Please <button>refresh the page</button> to stay updated."
810
813
  }
811
814
  }
812
815
  }
@@ -6,7 +6,6 @@ interface Button extends ButtonProps {
6
6
  isActive?: boolean;
7
7
  }
8
8
  interface ButtonGroupProps {
9
- style?: "secondary" | "tertiary";
10
9
  size?: "small" | "medium" | "large";
11
10
  buttons: Button[];
12
11
  }
@@ -34,7 +33,6 @@ interface ButtonGroupProps {
34
33
  * onClick: () => handleSwitch(),
35
34
  * },
36
35
  * ]}
37
- * style="tertiary"
38
36
  * size="medium"
39
37
  * />
40
38
  * );
@@ -2,11 +2,13 @@ import React from 'react';
2
2
 
3
3
  /**
4
4
  *
5
- * A container that displays the sticky ribbons configured for the current neeto
5
+ * A container that displays the sticky ribbons configured for the current Neeto
6
6
  *
7
- * application in neetoTower, if any. The sticky ribbons will be automatically
7
+ * application in NeetoTower, if any. The sticky ribbons will be automatically
8
8
  *
9
- * fetched from neetoTower and displayed within the container.
9
+ * fetched from NeetoTower and displayed within the container. A refresh ribbon is
10
+ *
11
+ * displayed when showRefreshRibbon in useErrorDisplayStore is set to true.
10
12
  *
11
13
  * @example
12
14
  *