@bigbinary/neeto-molecules 3.15.54 → 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.
- package/dist/StickyRibbonsContainer.js +40 -5
- package/dist/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/StickyRibbonsContainer.js +39 -4
- package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +3 -0
- package/types/StickyRibbonsContainer.d.ts +5 -3
|
@@ -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 {
|
|
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__*/
|
|
110
|
-
children:
|
|
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,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.
|
|
112
|
-
children:
|
|
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.
|
|
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>",
|
package/src/translations/en.json
CHANGED
|
@@ -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
|
}
|
|
@@ -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
|
|
5
|
+
* A container that displays the sticky ribbons configured for the current Neeto
|
|
6
6
|
*
|
|
7
|
-
* application in
|
|
7
|
+
* application in NeetoTower, if any. The sticky ribbons will be automatically
|
|
8
8
|
*
|
|
9
|
-
* fetched from
|
|
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
|
*
|