@stack-spot/portal-components 2.27.6 → 2.28.1
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/CHANGELOG.md +14 -0
- package/dist/components/Placeholder.d.ts.map +1 -1
- package/dist/components/Placeholder.js +2 -2
- package/dist/components/Placeholder.js.map +1 -1
- package/dist/components/form/SearchInput.d.ts.map +1 -1
- package/dist/components/form/SearchInput.js +8 -9
- package/dist/components/form/SearchInput.js.map +1 -1
- package/dist/components/notification/NotificationItem.d.ts +4 -0
- package/dist/components/notification/NotificationItem.d.ts.map +1 -1
- package/dist/components/notification/NotificationItem.js +9 -4
- package/dist/components/notification/NotificationItem.js.map +1 -1
- package/dist/components/notification/NotificationList.d.ts +6 -1
- package/dist/components/notification/NotificationList.d.ts.map +1 -1
- package/dist/components/notification/NotificationList.js +26 -6
- package/dist/components/notification/NotificationList.js.map +1 -1
- package/dist/containers/NotificationsPage.d.ts.map +1 -1
- package/dist/containers/NotificationsPage.js +2 -1
- package/dist/containers/NotificationsPage.js.map +1 -1
- package/dist/context/notification/NotificationController.d.ts +1 -0
- package/dist/context/notification/NotificationController.d.ts.map +1 -1
- package/dist/context/notification/NotificationController.js +17 -0
- package/dist/context/notification/NotificationController.js.map +1 -1
- package/dist/context/notification/hooks.d.ts.map +1 -1
- package/dist/context/notification/hooks.js +13 -1
- package/dist/context/notification/hooks.js.map +1 -1
- package/dist/context/notification/types.d.ts +5 -0
- package/dist/context/notification/types.d.ts.map +1 -1
- package/dist/svg/GenericPlaceholderCentered.d.ts +7 -0
- package/dist/svg/GenericPlaceholderCentered.d.ts.map +1 -0
- package/dist/svg/GenericPlaceholderCentered.js +4 -0
- package/dist/svg/GenericPlaceholderCentered.js.map +1 -0
- package/dist/svg/index.d.ts +1 -0
- package/dist/svg/index.d.ts.map +1 -1
- package/dist/svg/index.js +2 -0
- package/dist/svg/index.js.map +1 -1
- package/package.dev.json +3 -0
- package/package.json +4 -2
- package/package.stg.json +3 -0
- package/src/components/Placeholder.tsx +3 -4
- package/src/components/form/SearchInput.tsx +13 -10
- package/src/components/notification/NotificationItem.tsx +18 -11
- package/src/components/notification/NotificationList.tsx +40 -12
- package/src/containers/NotificationsPage.tsx +3 -1
- package/src/context/notification/NotificationController.ts +15 -0
- package/src/context/notification/hooks.ts +18 -1
- package/src/context/notification/types.ts +5 -0
- package/src/svg/GenericPlaceholderCentered.tsx +16 -0
- package/src/svg/index.ts +3 -0
- package/dist/components/notification/NotificationPlaceholder.d.ts +0 -13
- package/dist/components/notification/NotificationPlaceholder.d.ts.map +0 -1
- package/dist/components/notification/NotificationPlaceholder.js +0 -34
- package/dist/components/notification/NotificationPlaceholder.js.map +0 -1
- package/src/components/notification/NotificationPlaceholder.tsx +0 -60
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.28.1](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.28.0...portal-components@v2.28.1) (2026-02-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* notification modal accessibility issues and placeholder layout ([#2010](https://github.com/stack-spot/portal-commons/issues/2010)) ([b32bd26](https://github.com/stack-spot/portal-commons/commit/b32bd26818c6a017760b27198021f5d9d0fda57c))
|
|
9
|
+
|
|
10
|
+
## [2.28.0](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.27.6...portal-components@v2.28.0) (2025-12-15)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* components Notification Uncommit ([#1900](https://github.com/stack-spot/portal-commons/issues/1900)) ([a8ee0a1](https://github.com/stack-spot/portal-commons/commit/a8ee0a1c45a9250c3aeea199574ac34a66f8d72a))
|
|
16
|
+
|
|
3
17
|
## [2.27.6](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.27.5...portal-components@v2.27.6) (2025-11-27)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Placeholder.d.ts","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKnD,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAkB,SAAQ,KAAK;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,WAAW,GAAI,4EAAmF,KAAK,mDAuBnH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,sIAcrC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Placeholder.d.ts","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKnD,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAkB,SAAQ,KAAK;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,WAAW,GAAI,4EAAmF,KAAK,mDAuBnH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,sIAcrC,iBAAiB,mDA+BnB,CAAA;AAGD,eAAO,MAAM,8BAA8B,GAAI,wBAAwB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC,4CAQ1G,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Box, Flex, Text } from '@citric/core';
|
|
3
3
|
import { Card, CardContent } from '@citric/ui';
|
|
4
4
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
5
|
-
import { GenericPlaceholder } from '../svg/index.js';
|
|
5
|
+
import { GenericPlaceholder, GenericPlaceholderCentered } from '../svg/index.js';
|
|
6
6
|
export const Placeholder = ({ title, description, button, img, fullWidth, show = true, sx, style, className }) => {
|
|
7
7
|
if (!show) {
|
|
8
8
|
return null;
|
|
@@ -13,7 +13,7 @@ export const PlaceholderCallToAction = ({ title, description, subDescription, im
|
|
|
13
13
|
if (!show) {
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
|
-
return (_jsx(Card, { sx: { w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }, style: style, className: className, children: _jsxs(CardContent, { as: Flex,
|
|
16
|
+
return (_jsx(Card, { sx: { w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }, style: style, className: className, children: _jsxs(CardContent, { as: Flex, sx: { justifyContent: 'center', alignItems: 'center', gap: '16px', ...sx }, children: [_jsx(Box, { children: img ?? _jsx(GenericPlaceholderCentered, { ...placeholderImageConfig }) }), _jsxs(Box, { children: [title && _jsx(Text, { as: titleAs, appearance: "h4", mb: "3", "aria-live": "assertive", children: title }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: description }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: subDescription }), button] })] }) }));
|
|
17
17
|
};
|
|
18
18
|
export const PlaceholderResourceEmptySearch = ({ title, description }) => {
|
|
19
19
|
const t = useTranslate(dictionary);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW,GAAI,qEAOzB;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,4CAwCA,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, IconBox
|
|
2
|
+
import { Box, IconBox } from '@citric/core';
|
|
3
|
+
import { Input } from '@stack-spot/citric-react';
|
|
3
4
|
import { Filter, Times } from '@citric/icons';
|
|
4
5
|
import { FieldAddon, FieldGroup, IconButton } from '@citric/ui';
|
|
5
6
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
@@ -7,15 +8,13 @@ import { debounce } from 'lodash';
|
|
|
7
8
|
import { useCallback, useState } from 'react';
|
|
8
9
|
export const SearchInput = ({ searchText, defaultValue, disabled = false, onChange, style, className, }) => {
|
|
9
10
|
const [value, setValue] = useState(defaultValue);
|
|
10
|
-
const runOnChange = useCallback(debounce(onChange, 800), [onChange]);
|
|
11
11
|
const t = useTranslate(dictionary);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, "aria-label": t.ariaClearField, children: _jsx(Times, {}) }))] }));
|
|
12
|
+
const debouncedOnChange = useCallback(debounce((nextValue) => onChange(nextValue), 800), [onChange]);
|
|
13
|
+
const handleInputOnChange = (nextValue) => {
|
|
14
|
+
setValue(nextValue);
|
|
15
|
+
debouncedOnChange(nextValue);
|
|
16
|
+
};
|
|
17
|
+
return (_jsxs(Box, { sx: { position: 'relative' }, style: style, className: className, children: [_jsxs(FieldGroup, { children: [_jsx(FieldAddon, { children: _jsx(IconBox, { size: "xs", colorIcon: "light.700", children: _jsx(Filter, {}) }) }), _jsx(Input, { style: { width: '100%' }, value: value, placeholder: searchText, onChange: handleInputOnChange, disabled: disabled, maxLength: 255 })] }), !!value && (_jsx(IconButton, { sx: { position: 'absolute', right: '20px', top: '50%', transform: 'translate(50%, -50%)' }, onClick: () => handleInputOnChange(''), "aria-label": t.ariaClearField, children: _jsx(Times, {}) }))] }));
|
|
19
18
|
};
|
|
20
19
|
const dictionary = {
|
|
21
20
|
en: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,GAQV,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,iBAAiB,GAAG,WAAW,CACnC,QAAQ,CAAC,CAAC,SAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAC1D,CAAC,QAAQ,CAAC,CACX,CAAA;IACD,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAChD,QAAQ,CAAC,SAAS,CAAC,CAAA;QACnB,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aACnE,MAAC,UAAU,eACT,KAAC,UAAU,cACT,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,YACtC,KAAC,MAAM,KAAG,GACF,GACC,EACb,KAAC,KAAK,IACJ,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,EACvB,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,GACd,IACS,EACZ,CAAC,CAAC,KAAK,IAAI,CACV,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,gBAC1B,CAAC,CAAC,cAAc,YAE5B,KAAC,KAAK,KAAG,GACE,CACd,IACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,cAAc,EAAE,aAAa;KAC9B;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;KAC/B;CACmB,CAAA"}
|
|
@@ -24,6 +24,10 @@ interface NewNotificationItemProps extends Props {
|
|
|
24
24
|
* Function to call when the user marks a notification as read (committed).
|
|
25
25
|
*/
|
|
26
26
|
onCommit: () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Function to call when the user marks a notification as unread (uncommitted).
|
|
29
|
+
*/
|
|
30
|
+
onUncommit: () => void;
|
|
27
31
|
/**
|
|
28
32
|
* Whenever the user clicks the action button of a notification, the notification is marked as read (committed) and the browser is
|
|
29
33
|
* redirected to the page that corresponds to the action.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationItem.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationItem.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAA;AAexD,UAAU,KAAK;IACb,YAAY,EAAE,8BAA8B,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;IAEnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AA6LD,UAAU,+BAAgC,SAAQ,KAAK;IACrD;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,UAAU,wBAAyB,SAAQ,KAAK;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,KAAK,qBAAqB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAQvF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,uCAAuC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"NotificationItem.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationItem.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAA;AAexD,UAAU,KAAK;IACb,YAAY,EAAE,8BAA8B,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;IAEnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AA6LD,UAAU,+BAAgC,SAAQ,KAAK;IACrD;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,UAAU,wBAAyB,SAAQ,KAAK;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,KAAK,qBAAqB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAQvF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,uCAAuC,qBAAqB,4CAgD5F,CAAA"}
|
|
@@ -106,24 +106,29 @@ const StyledBox = styled(Box) `
|
|
|
106
106
|
export const NotificationItem = ({ notification, isSummary, ...props }) => {
|
|
107
107
|
const t = useTranslate(dictionary);
|
|
108
108
|
const { title } = useGetNotificationTitleAndDescription(notification);
|
|
109
|
+
const committed = notification.committed;
|
|
109
110
|
function commit() {
|
|
110
111
|
if ('onCommit' in props)
|
|
111
112
|
props.onCommit();
|
|
112
113
|
else
|
|
113
114
|
props.onClickMarkReadUnread(true, 'icon');
|
|
114
115
|
}
|
|
116
|
+
function uncommit() {
|
|
117
|
+
if ('onUncommit' in props)
|
|
118
|
+
props.onUncommit();
|
|
119
|
+
else
|
|
120
|
+
props.onClickMarkReadUnread(false, 'icon');
|
|
121
|
+
}
|
|
115
122
|
function clickAction() {
|
|
116
123
|
if ('onCommit' in props) {
|
|
117
|
-
if (!
|
|
124
|
+
if (!committed)
|
|
118
125
|
props.onCommit();
|
|
119
126
|
props.onClickAction?.();
|
|
120
127
|
}
|
|
121
128
|
else
|
|
122
129
|
props.onClickMarkReadUnread(true, 'callToAction');
|
|
123
130
|
}
|
|
124
|
-
return (_jsxs(StyledBox, { sx: { position: 'relative' }, id: props.id, "$isSummary": isSummary, children: [_jsxs(Flex, { bg: "light.400", r: "xs", flexWrap: "nowrap", className: "notification-item", flexDirection: "column", w: "100%", sx: styles.item(statusToColor[notification.criticality],
|
|
125
|
-
? _jsx(IconBox, { role: "img", "aria-label": t.committed, size: "xs", style: { margin: '4px', opacity: 0.5 }, children: _jsx(EnvelopeOpen, {}) })
|
|
126
|
-
: (_jsx(IconButton, { "aria-label": t.uncommitted, onClick: commit, children: _jsx(IconBox, { size: "xs", children: _jsx(Envelope, {}) }) })) }) })] }));
|
|
131
|
+
return (_jsxs(StyledBox, { sx: { position: 'relative' }, id: props.id, "$isSummary": isSummary, children: [_jsxs(Flex, { bg: "light.400", r: "xs", flexWrap: "nowrap", className: "notification-item", flexDirection: "column", w: "100%", sx: styles.item(statusToColor[notification.criticality], committed), children: [_jsx(NotificationHeader, { title: title, isSummary: isSummary }), _jsx(NotificationContent, { notification: notification, isSummary: isSummary, onClickViewNotification: props.onClickViewNotification }), notification.call_to_action && _jsx(NotificationFooter, { actionURL: notification.call_to_action, onClickAction: clickAction, title: title })] }), _jsx(Box, { sx: { position: 'absolute', top: '8px', right: '8px' }, children: _jsx(Tooltip, { text: committed ? t.committed : t.uncommitted, position: "left", children: _jsx(IconButton, { "aria-label": committed ? t.committed : t.uncommitted, onClick: () => committed ? uncommit() : commit(), children: _jsx(IconBox, { size: "xs", style: { opacity: committed ? 0.5 : 1 }, children: committed ? _jsx(EnvelopeOpen, {}) : _jsx(Envelope, {}) }) }) }) })] }));
|
|
127
132
|
};
|
|
128
133
|
function handleTextMark(text) {
|
|
129
134
|
// eslint-disable-next-line no-useless-escape
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationItem.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationItem.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NotificationItem.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@ export interface NotificationListProps {
|
|
|
5
5
|
* @param id the id of the notification where the read status changed.
|
|
6
6
|
*/
|
|
7
7
|
onCommit: (id: string) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Function to call when the message is marked as unread (uncommitted).
|
|
10
|
+
* @param id the id of the notification where the read status changed.
|
|
11
|
+
*/
|
|
12
|
+
onUncommit: (id: string) => void;
|
|
8
13
|
/**
|
|
9
14
|
* Optional. Function called when the button to perform the notification action is clicked. This function will be run in addition to
|
|
10
15
|
* the notification action.
|
|
@@ -38,5 +43,5 @@ export interface NotificationListProps {
|
|
|
38
43
|
style?: React.CSSProperties;
|
|
39
44
|
className?: string;
|
|
40
45
|
}
|
|
41
|
-
export declare const NotificationList: ({ items, compact, onCommit, onClickAction, onClickViewNotification, infiniteScroll, loading, showEmptySearch, style, className }: NotificationListProps) => false | import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export declare const NotificationList: ({ items, compact, onCommit, onUncommit, onClickAction, onClickViewNotification, infiniteScroll, loading, showEmptySearch, style, className }: NotificationListProps) => false | import("react/jsx-runtime").JSX.Element;
|
|
42
47
|
//# sourceMappingURL=NotificationList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationList.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"NotificationList.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;QAEI;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,8BAA8B,EAAE,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2ED,eAAO,MAAM,gBAAgB,GAC3B,8IACgE,qBAAqB,oDA2DtF,CAAA"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Flex } from '@citric/core';
|
|
3
3
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
4
|
+
import { useTranslate } from '@stack-spot/portal-translate';
|
|
4
5
|
import { last } from 'lodash';
|
|
5
6
|
import { useMemo } from 'react';
|
|
6
7
|
import { styled } from 'styled-components';
|
|
7
8
|
import { InfiniteScroll } from '../InfiniteScroll.js';
|
|
9
|
+
import { PlaceholderCallToAction } from '../Placeholder.js';
|
|
8
10
|
import { TimelineSection } from '../TimelineSection.js';
|
|
9
11
|
import { NotificationItem } from './NotificationItem.js';
|
|
10
|
-
import { NotificationPlaceholder } from './NotificationPlaceholder.js';
|
|
11
12
|
const StyledBox = styled(Box) `
|
|
12
13
|
width: 100%;
|
|
13
14
|
position: relative;
|
|
@@ -36,16 +37,20 @@ const StyledBox = styled(Box) `
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
.placeholder.compact {
|
|
40
|
+
min-height: 400px;
|
|
41
|
+
padding: 0px;
|
|
42
|
+
|
|
39
43
|
& > div {
|
|
40
|
-
padding-block: 0;
|
|
41
44
|
gap: 16px;
|
|
45
|
+
align-content: flex-start;
|
|
46
|
+
|
|
42
47
|
& > div {
|
|
43
48
|
text-align: center;
|
|
44
49
|
h4 {
|
|
45
50
|
margin-bottom: 10px;
|
|
46
51
|
}
|
|
47
52
|
p {
|
|
48
|
-
|
|
53
|
+
max-width: 220px;
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -68,15 +73,30 @@ function groupNotificationsByDate(notifications) {
|
|
|
68
73
|
}
|
|
69
74
|
return groups;
|
|
70
75
|
}
|
|
71
|
-
export const NotificationList = ({ items, compact = false, onCommit, onClickAction, onClickViewNotification, infiniteScroll, loading, showEmptySearch, style, className }) => {
|
|
76
|
+
export const NotificationList = ({ items, compact = false, onCommit, onUncommit, onClickAction, onClickViewNotification, infiniteScroll, loading, showEmptySearch, style, className }) => {
|
|
72
77
|
const groups = useMemo(() => compact ? [{ day: 0, month: 0, year: 0, items }] : groupNotificationsByDate(items), [compact, items]);
|
|
73
|
-
const
|
|
78
|
+
const t = useTranslate(dictionary);
|
|
79
|
+
const renderNotifications = (notifications, key) => (_jsx(Flex, { sx: { gap: '4px' }, flexDirection: "column", children: notifications?.map((item) => (_jsx(NotificationItem, { id: key ? '' : `notification-item-${item.id}`, notification: item, isSummary: compact, onClickViewNotification: onClickViewNotification, onCommit: () => onCommit(item.id), onUncommit: () => onUncommit(item.id), onClickAction: () => onClickAction?.(item.id) }, item.id))) }, key));
|
|
74
80
|
return infiniteScroll?.scrollableTarget !== null && (_jsxs(StyledBox, { style: style, className: listToClass([className, loading && 'loading']), children: [items.length ? (_jsx(InfiniteScroll, { dataLength: items.length || 0, next: infiniteScroll?.loadMore ?? (() => { }), hasMore: infiniteScroll?.hasMore ?? false,
|
|
75
81
|
// @ts-ignore: the library is wrongly typed and abandoned, meaning, it will never be fixed. The source code clearly accepts
|
|
76
82
|
// HTMLElements as scrollable targets:
|
|
77
83
|
// https://github.com/ankeetmaini/react-infinite-scroll-component/blob/master/src/index.tsx#L168
|
|
78
84
|
scrollableTarget: infiniteScroll?.scrollableTarget, children: _jsx(Flex, { sx: { gap: '24px' }, flexDirection: "column", children: groups.map((group) => compact
|
|
79
85
|
? renderNotifications(group.items, 'compact')
|
|
80
|
-
: (_jsx(TimelineSection, { month: group.month, day: group.day, children: renderNotifications(group.items) }, `${group.day}-${group.month}-${group.year}`))) }) })) : _jsx(
|
|
86
|
+
: (_jsx(TimelineSection, { month: group.month, day: group.day, children: renderNotifications(group.items) }, `${group.day}-${group.month}-${group.year}`))) }) })) : (_jsx(PlaceholderCallToAction, { title: showEmptySearch ? t.searchTitle : t.defaultTitle, description: showEmptySearch ? t.searchDescription : t.defaultDescription, className: listToClass(['placeholder', compact && 'compact']), titleAs: "p" })), _jsx("div", { className: "loading-mask" })] }));
|
|
87
|
+
};
|
|
88
|
+
const dictionary = {
|
|
89
|
+
en: {
|
|
90
|
+
defaultTitle: 'You don’t have any notifications yet.',
|
|
91
|
+
defaultDescription: 'Relevant updates will show up here as soon as they’re available.',
|
|
92
|
+
searchTitle: 'No notifications match your filters.',
|
|
93
|
+
searchDescription: 'Try changing the filters to see more results.',
|
|
94
|
+
},
|
|
95
|
+
pt: {
|
|
96
|
+
defaultTitle: 'Você ainda não tem notificações.',
|
|
97
|
+
defaultDescription: 'Quando houver alguma atualização relevante, ela será exibida aqui.',
|
|
98
|
+
searchTitle: 'Nenhuma notificação corresponde aos filtros',
|
|
99
|
+
searchDescription: 'Experimente mudar os filtros para encontrar mais notificações.',
|
|
100
|
+
},
|
|
81
101
|
};
|
|
82
102
|
//# sourceMappingURL=NotificationList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAqB,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAsDrD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8C5B,CAAA;AAED,yEAAyE;AACzE,SAAS,wBAAwB,CAAC,aAA+C;IAC/E,MAAM,MAAM,GAAwB,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAW,CAAA;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC1B,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5G,YAAY,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YAC9C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3B,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,uBAAuB,EACpF,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAyB,EACrF,EAAE;IACF,MAAM,MAAM,GAAwB,OAAO,CACzC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,EACxF,CAAC,OAAO,EAAE,KAAK,CAAC,CACjB,CAAA;IACD,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,MAAM,mBAAmB,GAAG,CAAC,aAA+C,EAAE,GAAY,EAAE,EAAE,CAAC,CAC7F,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,EAAC,QAAQ,YAC7C,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5B,KAAC,gBAAgB,IAEf,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,EAAE,EAAE,EAC7C,YAAY,EAAE,IAAI,EAClB,SAAS,EAAE,OAAO,EAClB,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EACjC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EACrC,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAPxC,IAAI,CAAC,EAAE,CAQZ,CACH,CAAC,IAZkD,GAAG,CAalD,CACR,CAAA;IAED,OAAO,cAAc,EAAE,gBAAgB,KAAK,IAAI,IAAI,CAClD,MAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,aAC/E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,cAAc,IACb,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,EAC7B,IAAI,EAAE,cAAc,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,KAAK;gBACzC,2HAA2H;gBAC3H,sCAAsC;gBACtC,iGAAiG;gBACjG,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,YAElD,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,aAAa,EAAC,QAAQ,YAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO;wBAC5B,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;wBAC7C,CAAC,CAAC,CACA,KAAC,eAAe,IAAmD,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,YAClG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,IADb,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAE/C,CACnB,CACF,GACI,GACQ,CAClB,CAAC,CAAC,CAAC,CACF,KAAC,uBAAuB,IACtB,KAAK,EAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EACxD,WAAW,EAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAC1E,SAAS,EAAE,WAAW,CAAC,CAAC,aAAa,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,EAC7D,OAAO,EAAC,GAAG,GACX,CACH,EACD,cAAK,SAAS,EAAC,cAAc,GAAO,IAC1B,CACb,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,YAAY,EAAE,uCAAuC;QACrD,kBAAkB,EAAE,kEAAkE;QACtF,WAAW,EAAE,sCAAsC;QACnD,iBAAiB,EAAE,+CAA+C;KACnE;IACD,EAAE,EAAE;QACF,YAAY,EAAE,kCAAkC;QAChD,kBAAkB,EAAE,oEAAoE;QACxF,WAAW,EAAE,6CAA6C;QAC1D,iBAAiB,EAAE,gEAAgE;KACpF;CACmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsPage.d.ts","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"NotificationsPage.d.ts","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iBAAiB,+CAmD7B,CAAA"}
|
|
@@ -26,7 +26,8 @@ export const NotificationsPage = () => {
|
|
|
26
26
|
const t = useTranslate(dictionary);
|
|
27
27
|
const controller = useNotificationController();
|
|
28
28
|
const { hasMore, items, loadMore, applyFilters, filters, status, error } = useNotificationList();
|
|
29
|
-
|
|
29
|
+
const hasFilters = Object.entries(filters).length > 0;
|
|
30
|
+
return (_jsxs(_Fragment, { children: [_jsx("header", { children: _jsx(Text, { appearance: "h2", as: "h1", children: t.title }) }), _jsx(Text, { appearance: "body2", colorScheme: "light.700", children: t.description }), _jsxs(FilterBox, { children: [_jsx(SearchInput, { searchText: t.filter, defaultValue: filters.search, onChange: search => applyFilters({ search }) }), _jsx(Select, { value: filters.createdSince, options: times, onChange: createdSince => applyFilters({ createdSince }), emptyOption: t.anyTime, renderLabel: o => t[`time.${o}`] }), _jsx(Select, { value: filters.criticality, options: criticalities, onChange: criticality => applyFilters({ criticality }), emptyOption: t.allCriticalities, renderLabel: o => t[`criticality.${o}`] }), _jsx(Select, { value: filters.context, options: contexts, onChange: context => applyFilters({ context }), emptyOption: t.allContexts, renderLabel: o => t[`context.${o}`] })] }), _jsx(AsyncContent, { error: error, loading: status === 'startup', errorDetails: { errorComponent: () => _jsx(ErrorFeedback, { code: error.code }), reportError: () => { } }, children: _jsx(NotificationList, { items: items, loading: status === 'loading', onCommit: id => controller.markAsCommitted(id), onUncommit: id => controller.markAsUncommitted(id), infiniteScroll: { hasMore, loadMore }, onClickAction: controller.config.onClickAction, showEmptySearch: hasFilters }) })] }));
|
|
30
31
|
};
|
|
31
32
|
const dictionary = {
|
|
32
33
|
en: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsPage.js","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;CAS3B,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACvE,MAAM,QAAQ,GAA0B,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;AAE1E,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAC9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"NotificationsPage.js","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class NotificationController {
|
|
|
16
16
|
destroyLazyNotificationList(id: number): void;
|
|
17
17
|
checkUnread(): Promise<void>;
|
|
18
18
|
markAsCommitted(notificationId: string): Promise<void>;
|
|
19
|
+
markAsUncommitted(notificationId: string): Promise<void>;
|
|
19
20
|
onUnreadNotificationChange(listener: UnreadNotificationListener): () => void;
|
|
20
21
|
hasUnreadNotification(): boolean;
|
|
21
22
|
reset(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationController.d.ts","sourceRoot":"","sources":["../../../src/context/notification/NotificationController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAIlG,qBAAa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAA0C;IAC3D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,2BAA2B,CAAmC;gBAE1D,MAAM,EAAE,kBAAkB;IAMtC,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,qBAAqB;IAQ7B,0BAA0B,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,oBAAoB;IAmBpF,2BAA2B,CAAC,EAAE,EAAE,MAAM;IAKhC,WAAW;IAMX,eAAe,CAAC,cAAc,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"NotificationController.d.ts","sourceRoot":"","sources":["../../../src/context/notification/NotificationController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAIlG,qBAAa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAA0C;IAC3D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,2BAA2B,CAAmC;gBAE1D,MAAM,EAAE,kBAAkB;IAMtC,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,qBAAqB;IAQ7B,0BAA0B,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,oBAAoB;IAmBpF,2BAA2B,CAAC,EAAE,EAAE,MAAM;IAKhC,WAAW;IAMX,eAAe,CAAC,cAAc,EAAE,MAAM;IAetC,iBAAiB,CAAC,cAAc,EAAE,MAAM;IAe9C,0BAA0B,CAAC,QAAQ,EAAE,0BAA0B;IAO/D,qBAAqB;IAIrB,KAAK;IAOL,IAAI;CAGL"}
|
|
@@ -114,6 +114,23 @@ export class NotificationController {
|
|
|
114
114
|
this.lazyLists.forEach(l => l.update(this.readStatusMap));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
+
async markAsUncommitted(notificationId) {
|
|
118
|
+
if (!this.readStatusMap.get(notificationId))
|
|
119
|
+
return;
|
|
120
|
+
this.readStatusMap.set(notificationId, false);
|
|
121
|
+
this.lazyLists.forEach(l => l.update(this.readStatusMap));
|
|
122
|
+
try {
|
|
123
|
+
await this.config.markAsUncommitted(notificationId);
|
|
124
|
+
// update the notification indicator: this is an inconsistency, we should actually ask the API, but since it's an expensive
|
|
125
|
+
// operation in the backend, we won't, instead, we'll only check the notifications we have loaded in memory.
|
|
126
|
+
if (this.hasUnreadNotificationInMemory())
|
|
127
|
+
this.setUnreadNotification(true);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
this.readStatusMap.set(notificationId, true);
|
|
131
|
+
this.lazyLists.forEach(l => l.update(this.readStatusMap));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
117
134
|
onUnreadNotificationChange(listener) {
|
|
118
135
|
this.unreadNotificationListeners.push(listener);
|
|
119
136
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationController.js","sourceRoot":"","sources":["../../../src/context/notification/NotificationController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NotificationController.js","sourceRoot":"","sources":["../../../src/context/notification/NotificationController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAiBlD,wBAAgB,mBAAmB,CAAC,cAAc,GAAE,wBAA6B;;;;;;+BA0B3B,wBAAwB;;;EAyC7E;AAED,wBAAgB,qCAAqC,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B;;;EAQhG;AAED,wBAAgB,sBAAsB,YAWrC"}
|
|
@@ -3,6 +3,17 @@ import { useCallback, useRef, useState } from 'react';
|
|
|
3
3
|
import { useManualRender } from '../../hooks/manual-render.js';
|
|
4
4
|
import { useEffectOnce } from '../../hooks/use-effect-once.js';
|
|
5
5
|
import { useNotificationController } from './context.js';
|
|
6
|
+
function cleanFilters(filters) {
|
|
7
|
+
const cleaned = { ...filters };
|
|
8
|
+
const keys = Object.keys(cleaned);
|
|
9
|
+
keys.forEach((key) => {
|
|
10
|
+
const value = cleaned[key];
|
|
11
|
+
if (value === undefined || value === null || value === '') {
|
|
12
|
+
delete cleaned[key];
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return cleaned;
|
|
16
|
+
}
|
|
6
17
|
export function useNotificationList(initialFilters = {}) {
|
|
7
18
|
const { repaint } = useManualRender();
|
|
8
19
|
const [status, setStatus] = useState('startup');
|
|
@@ -39,7 +50,8 @@ export function useNotificationList(initialFilters = {}) {
|
|
|
39
50
|
const { next, prev } = await new Promise((resolve) => {
|
|
40
51
|
setFilters((filters) => {
|
|
41
52
|
const prev = filters;
|
|
42
|
-
const
|
|
53
|
+
const merged = { ...filters, ...newFilters };
|
|
54
|
+
const next = cleanFilters(merged);
|
|
43
55
|
resolve({ prev, next });
|
|
44
56
|
return next;
|
|
45
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,MAAM,UAAU,mBAAmB,CAAC,iBAA2C,EAAE;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAA;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2C,SAAS,CAAC,CAAA;IACzF,MAAM,KAAK,GAAG,MAAM,EAAO,CAAA;IAC3B,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,EAAoC,CAAA;IAEvD,aAAa,CAAC,GAAG,EAAE;QACjB,KAAK,UAAU,KAAK;YAClB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAA;YACpE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;gBAC9B,SAAS,CAAC,MAAM,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,CAAC,OAAO,CAAC,CAAA;gBAClB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAA;QACP,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,CAAC,OAAO;gBAAE,UAAU,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,UAAoC,EAAE,EAAE;QAC9E,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QACzB,SAAS,CAAC,SAAS,CAAC,CAAA;QACpB,mIAAmI;QACnI,qIAAqI;QACrI,iFAAiF;QACjF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,CAAqE,CAAC,OAAO,EAAE,EAAE;YACvH,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAA;gBACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,11 @@ export interface NotificationConfig {
|
|
|
33
33
|
* @param id the id of the notification.
|
|
34
34
|
*/
|
|
35
35
|
markAsCommitted(id: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Marks the notification with the id passed as parameter as unread (uncommitted).
|
|
38
|
+
* @param id the id of the notification.
|
|
39
|
+
*/
|
|
40
|
+
markAsUncommitted(id: string): Promise<void>;
|
|
36
41
|
/**
|
|
37
42
|
* How long (ms) we should wait before checking for unread notifications again.
|
|
38
43
|
* @default 120000
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context/notification/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,2CAA2C,EAAE,MAAM,qBAAqB,CAAA;AAEjH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEpE,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,8BAA8B,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAElH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAC9F;;;;OAIG;IACH,gCAAgC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,qBAAqB,EAAE,OAAO,KAAK,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context/notification/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,2CAA2C,EAAE,MAAM,qBAAqB,CAAA;AAEjH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEpE,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,8BAA8B,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAElH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAC9F;;;;OAIG;IACH,gCAAgC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,qBAAqB,EAAE,OAAO,KAAK,IAAI,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const GenericPlaceholderCentered: ({ className, width, height, style }: {
|
|
2
|
+
className?: string;
|
|
3
|
+
width?: string;
|
|
4
|
+
height?: string;
|
|
5
|
+
style?: React.CSSProperties;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=GenericPlaceholderCentered.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericPlaceholderCentered.d.ts","sourceRoot":"","sources":["../../src/svg/GenericPlaceholderCentered.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,GAAI,qCAAqC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAanK,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
export const GenericPlaceholderCentered = ({ className, width, height, style }) => (_jsxs("svg", { width: width ?? '220', height: height ?? '220', viewBox: "0 0 220 220", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: style, className: className, children: [_jsx("g", { opacity: "0.16", children: _jsx("path", { d: "M132.171 110.295C134.614 110.295 136.591 108.317 136.591 105.875C136.591 103.432 134.614 101.455 132.171 101.455C129.728 101.455 127.751 103.432 127.751 105.875C127.751 108.317 129.728 110.295 132.171 110.295ZM132.171 127.98C129.728 127.98 127.751 129.957 127.751 132.4C127.751 134.843 129.728 136.82 132.171 136.82C134.614 136.82 136.591 134.843 136.591 132.4C136.591 129.957 134.614 127.98 132.171 127.98ZM109.772 141.24C107.33 141.24 105.352 143.217 105.352 145.66C105.352 148.102 107.33 150.079 109.772 150.079C112.215 150.079 114.192 148.102 114.192 145.66C114.192 143.217 112.215 141.24 109.772 141.24ZM130.621 123.273C132.311 123.905 134.301 123.465 135.558 121.985C137.057 120.206 136.891 117.489 135.188 115.901C133.931 114.733 132.184 114.434 130.672 114.982C129.537 115.39 128.287 115.295 127.247 114.682C126.202 114.064 125.525 112.992 125.334 111.793C125.143 110.639 124.499 109.561 123.453 108.853C122.247 108.037 120.787 107.896 119.511 108.349C118.363 108.751 117.1 108.681 116.048 108.062C114.996 107.444 114.326 106.366 114.128 105.16C113.931 103.98 113.261 102.883 112.177 102.176C110.251 100.925 107.61 101.397 106.239 103.234C104.715 105.269 105.218 108.139 107.298 109.548C108.503 110.365 109.964 110.505 111.239 110.052C112.387 109.65 113.65 109.72 114.702 110.339C115.748 110.958 116.424 112.029 116.622 113.235C116.813 114.389 117.458 115.467 118.503 116.175C119.709 116.991 121.169 117.132 122.445 116.679C122.528 116.647 123.791 116.066 124.435 116.066C126.131 116.066 127.509 117.444 127.509 119.141C127.509 120.837 126.131 122.215 124.435 122.215C123.791 122.215 122.534 121.628 122.451 121.602C121.195 121.156 119.76 121.283 118.561 122.068C117.477 122.776 116.82 123.879 116.628 125.066C116.431 126.258 115.761 127.33 114.709 127.955C113.663 128.573 112.4 128.65 111.246 128.242C109.97 127.795 108.509 127.936 107.304 128.746C105.225 130.155 104.721 133.025 106.245 135.06C107.623 136.896 110.257 137.368 112.183 136.118C113.274 135.41 113.943 134.313 114.135 133.133C114.332 131.928 115.002 130.857 116.054 130.232C117.1 129.613 118.663 129.728 119.505 129.932C120.799 130.244 122.196 130.251 123.395 129.466C124.479 128.758 125.143 127.655 125.334 126.469C125.525 125.276 126.202 124.211 127.247 123.592C128.268 122.986 129.512 122.852 130.621 123.273ZM108.229 123.273C109.919 123.905 111.909 123.465 113.165 121.985C114.664 120.206 114.498 117.489 112.795 115.901C111.539 114.733 109.791 114.434 108.28 114.982C107.145 115.39 105.895 115.295 104.855 114.682C103.809 114.064 103.133 112.992 102.942 111.793C102.935 111.736 102.17 108.1 98.5791 108.1C96.1364 108.1 94.1593 110.078 94.1593 112.52C94.1593 114.963 96.1364 116.94 98.5791 116.94C99.3062 116.94 99.9886 116.762 100.595 116.449C101.041 116.277 101.647 116.066 102.036 116.066C103.732 116.066 105.11 117.444 105.11 119.141C105.11 120.837 103.732 122.215 102.036 122.215C101.609 122.215 100.92 121.96 100.473 121.781C100.327 121.724 99.3381 121.347 98.5728 121.347C96.1301 121.347 94.1529 123.324 94.1529 125.767C94.1529 128.21 96.1301 130.187 98.5728 130.187C100.754 130.187 102.565 128.605 102.922 126.52C102.922 126.501 102.935 126.481 102.942 126.462C103.133 125.27 103.809 124.205 104.855 123.586C105.875 122.98 107.119 122.846 108.229 123.267V123.273ZM120.972 134.607C118.529 134.607 116.552 136.584 116.552 139.027C116.552 141.469 118.529 143.446 120.972 143.446C123.414 143.446 125.392 141.469 125.392 139.027C125.392 136.584 123.414 134.607 120.972 134.607ZM109.772 97.035C112.215 97.035 114.192 95.0579 114.192 92.6152C114.192 90.1725 112.215 88.1953 109.772 88.1953C107.33 88.1953 105.352 90.1725 105.352 92.6152C105.352 95.0579 107.33 97.035 109.772 97.035ZM98.5791 134.607C96.1364 134.607 94.1593 136.584 94.1593 139.027C94.1593 141.469 96.1364 143.446 98.5791 143.446C101.022 143.446 102.999 141.469 102.999 139.027C102.999 136.584 101.022 134.607 98.5791 134.607ZM120.972 103.668C123.414 103.668 125.392 101.691 125.392 99.2481C125.392 96.8054 123.414 94.8283 120.972 94.8283C118.529 94.8283 116.552 96.8054 116.552 99.2481C116.552 101.691 118.529 103.668 120.972 103.668ZM98.5791 103.668C101.022 103.668 102.999 101.691 102.999 99.2481C102.999 96.8054 101.022 94.8283 98.5791 94.8283C96.1364 94.8283 94.1593 96.8054 94.1593 99.2481C94.1593 101.691 96.1364 103.668 98.5791 103.668ZM87.3797 101.455C84.937 101.455 82.9598 103.432 82.9598 105.875C82.9598 108.317 84.937 110.295 87.3797 110.295C89.8224 110.295 91.7995 108.317 91.7995 105.875C91.7995 103.432 89.8224 101.455 87.3797 101.455ZM87.3797 127.98C84.937 127.98 82.9598 129.957 82.9598 132.4C82.9598 134.843 84.937 136.82 87.3797 136.82C89.8224 136.82 91.7995 134.843 91.7995 132.4C91.7995 129.957 89.8224 127.98 87.3797 127.98ZM87.3797 114.714C84.937 114.714 82.9598 116.691 82.9598 119.134C82.9598 121.577 84.937 123.554 87.3797 123.554C89.8224 123.554 91.7995 121.577 91.7995 119.134C91.7995 116.691 89.8224 114.714 87.3797 114.714Z", fill: "#A0A0A0" }) }), _jsx("path", { opacity: "0.32", d: "M201.559 149.24C201.559 98.5544 160.471 57.4658 109.786 57.4658C59.1003 57.4658 18.0117 98.5544 18.0117 149.24", stroke: "url(#paint0_linear_12643_1371)", strokeWidth: "2.5731", strokeLinecap: "round" }), _jsx("defs", { children: _jsxs("linearGradient", { id: "paint0_linear_12643_1371", x1: "109.786", y1: "57.4658", x2: "109.786", y2: "149.24", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { stopColor: "#A0A0A0" }), _jsx("stop", { offset: "0.889706", stopColor: "#A0A0A0", stopOpacity: "0" })] }) })] }));
|
|
4
|
+
//# sourceMappingURL=GenericPlaceholderCentered.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericPlaceholderCentered.js","sourceRoot":"","sources":["../../src/svg/GenericPlaceholderCentered.tsx"],"names":[],"mappings":";AAAA,4BAA4B;AAE5B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAwF,EAAE,EAAE,CAAC,CACvK,eAAK,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aAC1J,YAAG,OAAO,EAAC,MAAM,YACf,eAAM,CAAC,EAAC,myJAAmyJ,EAAC,IAAI,EAAC,SAAS,GAAE,GAC1zJ,EACJ,eAAM,OAAO,EAAC,MAAM,EAAC,CAAC,EAAC,gHAAgH,EAAC,MAAM,EAAC,gCAAgC,EAAC,WAAW,EAAC,QAAQ,EAAC,aAAa,EAAC,OAAO,GAAE,EAC5N,yBACE,0BAAgB,EAAE,EAAC,0BAA0B,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,QAAQ,EAAC,aAAa,EAAC,gBAAgB,aAC7H,eAAM,SAAS,EAAC,SAAS,GAAE,EAC3B,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAE,IAC9C,GACZ,IACH,CACP,CAAA"}
|
package/dist/svg/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { CS } from './CS.js';
|
|
|
3
3
|
export { EDP } from './EDP.js';
|
|
4
4
|
export { Forbidden } from './Forbidden.js';
|
|
5
5
|
export { GenericPlaceholder } from './GenericPlaceholder.js';
|
|
6
|
+
export { GenericPlaceholderCentered } from './GenericPlaceholderCentered.js';
|
|
6
7
|
export { HUB } from './HUB.js';
|
|
7
8
|
export { Logo } from './Logo.js';
|
|
8
9
|
export { MiniLogo } from './MiniLogo.js';
|
package/dist/svg/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/svg/index.js
CHANGED
|
@@ -3,6 +3,8 @@ export { CS } from './CS.js';
|
|
|
3
3
|
export { EDP } from './EDP.js';
|
|
4
4
|
export { Forbidden } from './Forbidden.js';
|
|
5
5
|
export { GenericPlaceholder } from './GenericPlaceholder.js';
|
|
6
|
+
//! both versions kept to avoid breaking changes
|
|
7
|
+
export { GenericPlaceholderCentered } from './GenericPlaceholderCentered.js';
|
|
6
8
|
export { HUB } from './HUB.js';
|
|
7
9
|
export { Logo } from './Logo.js';
|
|
8
10
|
export { MiniLogo } from './MiniLogo.js';
|
package/dist/svg/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,gDAAgD;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/package.dev.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/portal-components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.28.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"./Form": "./dist/components/form/Form/index.js"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
|
-
"build": "rimraf dist && tsc && tsc-esm-fix --target='dist'",
|
|
34
|
+
"build": "pnpm package-override --revert=false && rimraf dist && tsc && tsc-esm-fix --target='dist'",
|
|
35
35
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
36
36
|
"check-tree-shaking": "agadoo"
|
|
37
37
|
},
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"react-dom": "^18.2.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@stack-spot/build-tools": "^1.2.4",
|
|
49
|
+
"@stack-spot/citric-react": "^0.41.2",
|
|
48
50
|
"@types/lodash": "^4.14.202",
|
|
49
51
|
"@types/react": "^18.2.37",
|
|
50
52
|
"@types/react-dom": "^18.2.15",
|
package/package.stg.json
ADDED
|
@@ -3,7 +3,7 @@ import { AsProp } from '@citric/core/dist/forward-ref-as'
|
|
|
3
3
|
import { SxProperties } from '@citric/core/dist/sx'
|
|
4
4
|
import { Card, CardContent } from '@citric/ui'
|
|
5
5
|
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
6
|
-
import { GenericPlaceholder } from '../svg'
|
|
6
|
+
import { GenericPlaceholder, GenericPlaceholderCentered } from '../svg'
|
|
7
7
|
|
|
8
8
|
interface Props {
|
|
9
9
|
title?: string | React.ReactElement,
|
|
@@ -76,10 +76,9 @@ export const PlaceholderCallToAction = ({
|
|
|
76
76
|
<Card sx={{ w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }} style={style} className={className}>
|
|
77
77
|
<CardContent
|
|
78
78
|
as={Flex}
|
|
79
|
-
|
|
80
|
-
sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'center', gap: '92px', ...sx }}
|
|
79
|
+
sx={{ justifyContent: 'center', alignItems: 'center', gap: '16px', ...sx }}
|
|
81
80
|
>
|
|
82
|
-
<Box
|
|
81
|
+
<Box>{img ?? <GenericPlaceholderCentered {...placeholderImageConfig} />}</Box>
|
|
83
82
|
|
|
84
83
|
<Box>
|
|
85
84
|
{title && <Text as={titleAs} appearance="h4" mb="3" aria-live="assertive">
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Box, IconBox
|
|
1
|
+
import { Box, IconBox } from '@citric/core'
|
|
2
|
+
import { Input } from '@stack-spot/citric-react'
|
|
2
3
|
import { Filter, Times } from '@citric/icons'
|
|
3
4
|
import { FieldAddon, FieldGroup, IconButton } from '@citric/ui'
|
|
4
5
|
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
@@ -21,8 +22,15 @@ export const SearchInput = ({
|
|
|
21
22
|
className?: string,
|
|
22
23
|
}) => {
|
|
23
24
|
const [value, setValue] = useState(defaultValue)
|
|
24
|
-
const runOnChange = useCallback(debounce(onChange, 800), [onChange])
|
|
25
25
|
const t = useTranslate(dictionary)
|
|
26
|
+
const debouncedOnChange = useCallback(
|
|
27
|
+
debounce((nextValue?: string) => onChange(nextValue), 800),
|
|
28
|
+
[onChange],
|
|
29
|
+
)
|
|
30
|
+
const handleInputOnChange = (nextValue: string) => {
|
|
31
|
+
setValue(nextValue)
|
|
32
|
+
debouncedOnChange(nextValue)
|
|
33
|
+
}
|
|
26
34
|
|
|
27
35
|
return (
|
|
28
36
|
<Box sx={{ position: 'relative' }} style={style} className={className}>
|
|
@@ -33,12 +41,10 @@ export const SearchInput = ({
|
|
|
33
41
|
</IconBox>
|
|
34
42
|
</FieldAddon>
|
|
35
43
|
<Input
|
|
44
|
+
style={{ width: '100%' }}
|
|
36
45
|
value={value}
|
|
37
46
|
placeholder={searchText}
|
|
38
|
-
onChange={
|
|
39
|
-
setValue(e.target.value)
|
|
40
|
-
runOnChange(e.target.value)
|
|
41
|
-
}}
|
|
47
|
+
onChange={handleInputOnChange}
|
|
42
48
|
disabled={disabled}
|
|
43
49
|
maxLength={255}
|
|
44
50
|
/>
|
|
@@ -46,10 +52,7 @@ export const SearchInput = ({
|
|
|
46
52
|
{!!value && (
|
|
47
53
|
<IconButton
|
|
48
54
|
sx={{ position: 'absolute', right: '20px', top: '50%', transform: 'translate(50%, -50%)' }}
|
|
49
|
-
onClick={() =>
|
|
50
|
-
setValue('')
|
|
51
|
-
runOnChange('')
|
|
52
|
-
}}
|
|
55
|
+
onClick={() => handleInputOnChange('')}
|
|
53
56
|
aria-label={t.ariaClearField}
|
|
54
57
|
>
|
|
55
58
|
<Times />
|
|
@@ -238,6 +238,10 @@ interface NewNotificationItemProps extends Props {
|
|
|
238
238
|
* Function to call when the user marks a notification as read (committed).
|
|
239
239
|
*/
|
|
240
240
|
onCommit: () => void,
|
|
241
|
+
/**
|
|
242
|
+
* Function to call when the user marks a notification as unread (uncommitted).
|
|
243
|
+
*/
|
|
244
|
+
onUncommit: () => void,
|
|
241
245
|
/**
|
|
242
246
|
* Whenever the user clicks the action button of a notification, the notification is marked as read (committed) and the browser is
|
|
243
247
|
* redirected to the page that corresponds to the action.
|
|
@@ -267,15 +271,21 @@ const StyledBox = styled(Box)<{$isSummary?: boolean}>`
|
|
|
267
271
|
export const NotificationItem = ({ notification, isSummary, ...props }: NotificationItemProps) => {
|
|
268
272
|
const t = useTranslate(dictionary)
|
|
269
273
|
const { title } = useGetNotificationTitleAndDescription(notification)
|
|
274
|
+
const committed = notification.committed
|
|
270
275
|
|
|
271
276
|
function commit() {
|
|
272
277
|
if ('onCommit' in props) props.onCommit()
|
|
273
278
|
else props.onClickMarkReadUnread(true, 'icon')
|
|
274
279
|
}
|
|
275
280
|
|
|
281
|
+
function uncommit() {
|
|
282
|
+
if ('onUncommit' in props) props.onUncommit()
|
|
283
|
+
else props.onClickMarkReadUnread(false, 'icon')
|
|
284
|
+
}
|
|
285
|
+
|
|
276
286
|
function clickAction() {
|
|
277
287
|
if ('onCommit' in props) {
|
|
278
|
-
if (!
|
|
288
|
+
if (!committed) props.onCommit()
|
|
279
289
|
props.onClickAction?.()
|
|
280
290
|
}
|
|
281
291
|
else props.onClickMarkReadUnread(true, 'callToAction')
|
|
@@ -286,7 +296,7 @@ export const NotificationItem = ({ notification, isSummary, ...props }: Notifica
|
|
|
286
296
|
<Flex bg="light.400" r="xs"
|
|
287
297
|
flexWrap="nowrap"
|
|
288
298
|
className="notification-item"
|
|
289
|
-
flexDirection="column" w="100%" sx={styles.item(statusToColor[notification.criticality],
|
|
299
|
+
flexDirection="column" w="100%" sx={styles.item(statusToColor[notification.criticality], committed)}>
|
|
290
300
|
<NotificationHeader title={title} isSummary={isSummary} />
|
|
291
301
|
<NotificationContent notification={notification} isSummary={isSummary} onClickViewNotification={props.onClickViewNotification} />
|
|
292
302
|
{notification.call_to_action && <NotificationFooter
|
|
@@ -296,15 +306,12 @@ export const NotificationItem = ({ notification, isSummary, ...props }: Notifica
|
|
|
296
306
|
/>}
|
|
297
307
|
</Flex>
|
|
298
308
|
<Box sx={{ position: 'absolute', top: '8px', right: '8px' }}>
|
|
299
|
-
<Tooltip text={
|
|
300
|
-
{
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
</IconButton>
|
|
306
|
-
)
|
|
307
|
-
}
|
|
309
|
+
<Tooltip text={committed ? t.committed : t.uncommitted} position="left">
|
|
310
|
+
<IconButton aria-label={committed ? t.committed : t.uncommitted} onClick={() => committed ? uncommit() : commit()}>
|
|
311
|
+
<IconBox size="xs" style={{ opacity: committed ? 0.5 : 1 }}>
|
|
312
|
+
{committed ? <EnvelopeOpen /> : <Envelope />}
|
|
313
|
+
</IconBox>
|
|
314
|
+
</IconButton>
|
|
308
315
|
</Tooltip>
|
|
309
316
|
</Box>
|
|
310
317
|
</StyledBox>
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { Box, Flex } from '@citric/core'
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme'
|
|
3
|
-
import { Month } from '@stack-spot/portal-translate'
|
|
3
|
+
import { Dictionary, Month, useTranslate } from '@stack-spot/portal-translate'
|
|
4
4
|
import { last } from 'lodash'
|
|
5
5
|
import { useMemo } from 'react'
|
|
6
6
|
import { styled } from 'styled-components'
|
|
7
7
|
import { InfiniteScroll } from '../InfiniteScroll'
|
|
8
|
+
import { PlaceholderCallToAction } from '../Placeholder'
|
|
8
9
|
import { TimelineSection } from '../TimelineSection'
|
|
9
10
|
import { NotificationItem } from './NotificationItem'
|
|
10
|
-
import { NotificationPlaceholder } from './NotificationPlaceholder'
|
|
11
11
|
import { GetTenantNotificationsResponse, InfiniteScrollConfig } from './types'
|
|
12
|
-
|
|
13
12
|
export interface NotificationListProps {
|
|
14
13
|
/**
|
|
15
14
|
* Function to call when the message is marked as read (committed).
|
|
16
15
|
* @param id the id of the notification where the read status changed.
|
|
17
16
|
*/
|
|
18
17
|
onCommit: (id: string) => void,
|
|
18
|
+
/**
|
|
19
|
+
* Function to call when the message is marked as unread (uncommitted).
|
|
20
|
+
* @param id the id of the notification where the read status changed.
|
|
21
|
+
*/
|
|
22
|
+
onUncommit: (id: string) => void,
|
|
19
23
|
/**
|
|
20
24
|
* Optional. Function called when the button to perform the notification action is clicked. This function will be run in addition to
|
|
21
25
|
* the notification action.
|
|
@@ -85,16 +89,20 @@ const StyledBox = styled(Box)`
|
|
|
85
89
|
}
|
|
86
90
|
|
|
87
91
|
.placeholder.compact {
|
|
92
|
+
min-height: 400px;
|
|
93
|
+
padding: 0px;
|
|
94
|
+
|
|
88
95
|
& > div {
|
|
89
|
-
padding-block: 0;
|
|
90
96
|
gap: 16px;
|
|
97
|
+
align-content: flex-start;
|
|
98
|
+
|
|
91
99
|
& > div {
|
|
92
100
|
text-align: center;
|
|
93
101
|
h4 {
|
|
94
102
|
margin-bottom: 10px;
|
|
95
103
|
}
|
|
96
104
|
p {
|
|
97
|
-
|
|
105
|
+
max-width: 220px;
|
|
98
106
|
}
|
|
99
107
|
}
|
|
100
108
|
}
|
|
@@ -120,13 +128,14 @@ function groupNotificationsByDate(notifications: GetTenantNotificationsResponse[
|
|
|
120
128
|
}
|
|
121
129
|
|
|
122
130
|
export const NotificationList = (
|
|
123
|
-
{ items, compact = false, onCommit, onClickAction, onClickViewNotification,
|
|
131
|
+
{ items, compact = false, onCommit, onUncommit, onClickAction, onClickViewNotification,
|
|
124
132
|
infiniteScroll, loading, showEmptySearch, style, className }: NotificationListProps,
|
|
125
133
|
) => {
|
|
126
134
|
const groups: NotificationGroup[] = useMemo(
|
|
127
135
|
() => compact ? [{ day: 0, month: 0, year: 0, items }] : groupNotificationsByDate(items),
|
|
128
136
|
[compact, items],
|
|
129
137
|
)
|
|
138
|
+
const t = useTranslate(dictionary)
|
|
130
139
|
|
|
131
140
|
const renderNotifications = (notifications: GetTenantNotificationsResponse[], key?: string) => (
|
|
132
141
|
<Flex sx={{ gap: '4px' }} flexDirection="column" key={key}>
|
|
@@ -138,6 +147,7 @@ export const NotificationList = (
|
|
|
138
147
|
isSummary={compact}
|
|
139
148
|
onClickViewNotification={onClickViewNotification}
|
|
140
149
|
onCommit={() => onCommit(item.id)}
|
|
150
|
+
onUncommit={() => onUncommit(item.id)}
|
|
141
151
|
onClickAction={() => onClickAction?.(item.id)}
|
|
142
152
|
/>
|
|
143
153
|
))}
|
|
@@ -167,13 +177,31 @@ export const NotificationList = (
|
|
|
167
177
|
)}
|
|
168
178
|
</Flex>
|
|
169
179
|
</InfiniteScroll>
|
|
170
|
-
) :
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
) : (
|
|
181
|
+
<PlaceholderCallToAction
|
|
182
|
+
title={ showEmptySearch ? t.searchTitle : t.defaultTitle }
|
|
183
|
+
description={ showEmptySearch ? t.searchDescription : t.defaultDescription}
|
|
184
|
+
className={listToClass(['placeholder', compact && 'compact'])}
|
|
185
|
+
titleAs="p"
|
|
186
|
+
/>
|
|
187
|
+
)}
|
|
176
188
|
<div className="loading-mask"></div>
|
|
177
189
|
</StyledBox>
|
|
178
190
|
)
|
|
179
191
|
}
|
|
192
|
+
|
|
193
|
+
const dictionary = {
|
|
194
|
+
en: {
|
|
195
|
+
defaultTitle: 'You don’t have any notifications yet.',
|
|
196
|
+
defaultDescription: 'Relevant updates will show up here as soon as they’re available.',
|
|
197
|
+
searchTitle: 'No notifications match your filters.',
|
|
198
|
+
searchDescription: 'Try changing the filters to see more results.',
|
|
199
|
+
},
|
|
200
|
+
pt: {
|
|
201
|
+
defaultTitle: 'Você ainda não tem notificações.',
|
|
202
|
+
defaultDescription: 'Quando houver alguma atualização relevante, ela será exibida aqui.',
|
|
203
|
+
searchTitle: 'Nenhuma notificação corresponde aos filtros',
|
|
204
|
+
searchDescription: 'Experimente mudar os filtros para encontrar mais notificações.',
|
|
205
|
+
},
|
|
206
|
+
} satisfies Dictionary
|
|
207
|
+
|
|
@@ -30,6 +30,7 @@ export const NotificationsPage = () => {
|
|
|
30
30
|
const t = useTranslate(dictionary)
|
|
31
31
|
const controller = useNotificationController()
|
|
32
32
|
const { hasMore, items, loadMore, applyFilters, filters, status, error } = useNotificationList()
|
|
33
|
+
const hasFilters = Object.entries(filters).length > 0
|
|
33
34
|
|
|
34
35
|
return (<>
|
|
35
36
|
<header><Text appearance="h2" as="h1">{t.title}</Text></header>
|
|
@@ -69,9 +70,10 @@ export const NotificationsPage = () => {
|
|
|
69
70
|
items={items}
|
|
70
71
|
loading={status === 'loading'}
|
|
71
72
|
onCommit={id => controller.markAsCommitted(id)}
|
|
73
|
+
onUncommit={id => controller.markAsUncommitted(id)}
|
|
72
74
|
infiniteScroll={{ hasMore, loadMore }}
|
|
73
75
|
onClickAction={controller.config.onClickAction}
|
|
74
|
-
showEmptySearch
|
|
76
|
+
showEmptySearch={hasFilters}
|
|
75
77
|
/>
|
|
76
78
|
</AsyncContent>
|
|
77
79
|
</>)
|
|
@@ -80,6 +80,21 @@ export class NotificationController {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
async markAsUncommitted(notificationId: string) {
|
|
84
|
+
if (!this.readStatusMap.get(notificationId)) return
|
|
85
|
+
this.readStatusMap.set(notificationId, false)
|
|
86
|
+
this.lazyLists.forEach(l => l.update(this.readStatusMap))
|
|
87
|
+
try {
|
|
88
|
+
await this.config.markAsUncommitted(notificationId)
|
|
89
|
+
// update the notification indicator: this is an inconsistency, we should actually ask the API, but since it's an expensive
|
|
90
|
+
// operation in the backend, we won't, instead, we'll only check the notifications we have loaded in memory.
|
|
91
|
+
if (this.hasUnreadNotificationInMemory()) this.setUnreadNotification(true)
|
|
92
|
+
} catch {
|
|
93
|
+
this.readStatusMap.set(notificationId, true)
|
|
94
|
+
this.lazyLists.forEach(l => l.update(this.readStatusMap))
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
83
98
|
onUnreadNotificationChange(listener: UnreadNotificationListener) {
|
|
84
99
|
this.unreadNotificationListeners.push(listener)
|
|
85
100
|
return () => {
|
|
@@ -7,6 +7,21 @@ import { useNotificationController } from './context'
|
|
|
7
7
|
import { LazyNotificationList } from './LazyNotificationList'
|
|
8
8
|
import { LoadNotificationsFilters } from './types'
|
|
9
9
|
|
|
10
|
+
function cleanFilters<T extends Record<string, unknown>>(filters: T): T {
|
|
11
|
+
const cleaned = { ...filters }
|
|
12
|
+
|
|
13
|
+
const keys = Object.keys(cleaned) as (keyof T)[]
|
|
14
|
+
keys.forEach((key) => {
|
|
15
|
+
const value = cleaned[key]
|
|
16
|
+
|
|
17
|
+
if (value === undefined || value === null || value === '') {
|
|
18
|
+
delete cleaned[key]
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
return cleaned
|
|
23
|
+
}
|
|
24
|
+
|
|
10
25
|
export function useNotificationList(initialFilters: LoadNotificationsFilters = {}) {
|
|
11
26
|
const { repaint } = useManualRender()
|
|
12
27
|
const [status, setStatus] = useState<'startup' | 'idle' | 'error' | 'loading'>('startup')
|
|
@@ -42,7 +57,9 @@ export function useNotificationList(initialFilters: LoadNotificationsFilters = {
|
|
|
42
57
|
const { next, prev } = await new Promise<{ next: LoadNotificationsFilters, prev: LoadNotificationsFilters }>((resolve) => {
|
|
43
58
|
setFilters((filters) => {
|
|
44
59
|
const prev = filters
|
|
45
|
-
const
|
|
60
|
+
const merged = { ...filters, ...newFilters }
|
|
61
|
+
const next = cleanFilters(merged)
|
|
62
|
+
|
|
46
63
|
resolve({ prev, next })
|
|
47
64
|
return next
|
|
48
65
|
})
|
|
@@ -39,6 +39,11 @@ export interface NotificationConfig {
|
|
|
39
39
|
* @param id the id of the notification.
|
|
40
40
|
*/
|
|
41
41
|
markAsCommitted(id: string): Promise<void>,
|
|
42
|
+
/**
|
|
43
|
+
* Marks the notification with the id passed as parameter as unread (uncommitted).
|
|
44
|
+
* @param id the id of the notification.
|
|
45
|
+
*/
|
|
46
|
+
markAsUncommitted(id: string): Promise<void>,
|
|
42
47
|
/**
|
|
43
48
|
* How long (ms) we should wait before checking for unread notifications again.
|
|
44
49
|
* @default 120000
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
2
|
+
|
|
3
|
+
export const GenericPlaceholderCentered = ({ className, width, height, style }: { className?: string, width?: string, height?: string, style?: React.CSSProperties }) => (
|
|
4
|
+
<svg width={width ?? '220'} height={height ?? '220'} viewBox="0 0 220 220" fill="none" xmlns="http://www.w3.org/2000/svg" style={style} className={className}>
|
|
5
|
+
<g opacity="0.16">
|
|
6
|
+
<path d="M132.171 110.295C134.614 110.295 136.591 108.317 136.591 105.875C136.591 103.432 134.614 101.455 132.171 101.455C129.728 101.455 127.751 103.432 127.751 105.875C127.751 108.317 129.728 110.295 132.171 110.295ZM132.171 127.98C129.728 127.98 127.751 129.957 127.751 132.4C127.751 134.843 129.728 136.82 132.171 136.82C134.614 136.82 136.591 134.843 136.591 132.4C136.591 129.957 134.614 127.98 132.171 127.98ZM109.772 141.24C107.33 141.24 105.352 143.217 105.352 145.66C105.352 148.102 107.33 150.079 109.772 150.079C112.215 150.079 114.192 148.102 114.192 145.66C114.192 143.217 112.215 141.24 109.772 141.24ZM130.621 123.273C132.311 123.905 134.301 123.465 135.558 121.985C137.057 120.206 136.891 117.489 135.188 115.901C133.931 114.733 132.184 114.434 130.672 114.982C129.537 115.39 128.287 115.295 127.247 114.682C126.202 114.064 125.525 112.992 125.334 111.793C125.143 110.639 124.499 109.561 123.453 108.853C122.247 108.037 120.787 107.896 119.511 108.349C118.363 108.751 117.1 108.681 116.048 108.062C114.996 107.444 114.326 106.366 114.128 105.16C113.931 103.98 113.261 102.883 112.177 102.176C110.251 100.925 107.61 101.397 106.239 103.234C104.715 105.269 105.218 108.139 107.298 109.548C108.503 110.365 109.964 110.505 111.239 110.052C112.387 109.65 113.65 109.72 114.702 110.339C115.748 110.958 116.424 112.029 116.622 113.235C116.813 114.389 117.458 115.467 118.503 116.175C119.709 116.991 121.169 117.132 122.445 116.679C122.528 116.647 123.791 116.066 124.435 116.066C126.131 116.066 127.509 117.444 127.509 119.141C127.509 120.837 126.131 122.215 124.435 122.215C123.791 122.215 122.534 121.628 122.451 121.602C121.195 121.156 119.76 121.283 118.561 122.068C117.477 122.776 116.82 123.879 116.628 125.066C116.431 126.258 115.761 127.33 114.709 127.955C113.663 128.573 112.4 128.65 111.246 128.242C109.97 127.795 108.509 127.936 107.304 128.746C105.225 130.155 104.721 133.025 106.245 135.06C107.623 136.896 110.257 137.368 112.183 136.118C113.274 135.41 113.943 134.313 114.135 133.133C114.332 131.928 115.002 130.857 116.054 130.232C117.1 129.613 118.663 129.728 119.505 129.932C120.799 130.244 122.196 130.251 123.395 129.466C124.479 128.758 125.143 127.655 125.334 126.469C125.525 125.276 126.202 124.211 127.247 123.592C128.268 122.986 129.512 122.852 130.621 123.273ZM108.229 123.273C109.919 123.905 111.909 123.465 113.165 121.985C114.664 120.206 114.498 117.489 112.795 115.901C111.539 114.733 109.791 114.434 108.28 114.982C107.145 115.39 105.895 115.295 104.855 114.682C103.809 114.064 103.133 112.992 102.942 111.793C102.935 111.736 102.17 108.1 98.5791 108.1C96.1364 108.1 94.1593 110.078 94.1593 112.52C94.1593 114.963 96.1364 116.94 98.5791 116.94C99.3062 116.94 99.9886 116.762 100.595 116.449C101.041 116.277 101.647 116.066 102.036 116.066C103.732 116.066 105.11 117.444 105.11 119.141C105.11 120.837 103.732 122.215 102.036 122.215C101.609 122.215 100.92 121.96 100.473 121.781C100.327 121.724 99.3381 121.347 98.5728 121.347C96.1301 121.347 94.1529 123.324 94.1529 125.767C94.1529 128.21 96.1301 130.187 98.5728 130.187C100.754 130.187 102.565 128.605 102.922 126.52C102.922 126.501 102.935 126.481 102.942 126.462C103.133 125.27 103.809 124.205 104.855 123.586C105.875 122.98 107.119 122.846 108.229 123.267V123.273ZM120.972 134.607C118.529 134.607 116.552 136.584 116.552 139.027C116.552 141.469 118.529 143.446 120.972 143.446C123.414 143.446 125.392 141.469 125.392 139.027C125.392 136.584 123.414 134.607 120.972 134.607ZM109.772 97.035C112.215 97.035 114.192 95.0579 114.192 92.6152C114.192 90.1725 112.215 88.1953 109.772 88.1953C107.33 88.1953 105.352 90.1725 105.352 92.6152C105.352 95.0579 107.33 97.035 109.772 97.035ZM98.5791 134.607C96.1364 134.607 94.1593 136.584 94.1593 139.027C94.1593 141.469 96.1364 143.446 98.5791 143.446C101.022 143.446 102.999 141.469 102.999 139.027C102.999 136.584 101.022 134.607 98.5791 134.607ZM120.972 103.668C123.414 103.668 125.392 101.691 125.392 99.2481C125.392 96.8054 123.414 94.8283 120.972 94.8283C118.529 94.8283 116.552 96.8054 116.552 99.2481C116.552 101.691 118.529 103.668 120.972 103.668ZM98.5791 103.668C101.022 103.668 102.999 101.691 102.999 99.2481C102.999 96.8054 101.022 94.8283 98.5791 94.8283C96.1364 94.8283 94.1593 96.8054 94.1593 99.2481C94.1593 101.691 96.1364 103.668 98.5791 103.668ZM87.3797 101.455C84.937 101.455 82.9598 103.432 82.9598 105.875C82.9598 108.317 84.937 110.295 87.3797 110.295C89.8224 110.295 91.7995 108.317 91.7995 105.875C91.7995 103.432 89.8224 101.455 87.3797 101.455ZM87.3797 127.98C84.937 127.98 82.9598 129.957 82.9598 132.4C82.9598 134.843 84.937 136.82 87.3797 136.82C89.8224 136.82 91.7995 134.843 91.7995 132.4C91.7995 129.957 89.8224 127.98 87.3797 127.98ZM87.3797 114.714C84.937 114.714 82.9598 116.691 82.9598 119.134C82.9598 121.577 84.937 123.554 87.3797 123.554C89.8224 123.554 91.7995 121.577 91.7995 119.134C91.7995 116.691 89.8224 114.714 87.3797 114.714Z" fill="#A0A0A0"/>
|
|
7
|
+
</g>
|
|
8
|
+
<path opacity="0.32" d="M201.559 149.24C201.559 98.5544 160.471 57.4658 109.786 57.4658C59.1003 57.4658 18.0117 98.5544 18.0117 149.24" stroke="url(#paint0_linear_12643_1371)" strokeWidth="2.5731" strokeLinecap="round"/>
|
|
9
|
+
<defs>
|
|
10
|
+
<linearGradient id="paint0_linear_12643_1371" x1="109.786" y1="57.4658" x2="109.786" y2="149.24" gradientUnits="userSpaceOnUse">
|
|
11
|
+
<stop stopColor="#A0A0A0"/>
|
|
12
|
+
<stop offset="0.889706" stopColor="#A0A0A0" stopOpacity="0"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
</defs>
|
|
15
|
+
</svg>
|
|
16
|
+
)
|
package/src/svg/index.ts
CHANGED
|
@@ -3,9 +3,12 @@ export { CS } from './CS'
|
|
|
3
3
|
export { EDP } from './EDP'
|
|
4
4
|
export { Forbidden } from './Forbidden'
|
|
5
5
|
export { GenericPlaceholder } from './GenericPlaceholder'
|
|
6
|
+
//! both versions kept to avoid breaking changes
|
|
7
|
+
export { GenericPlaceholderCentered } from './GenericPlaceholderCentered'
|
|
6
8
|
export { HUB } from './HUB'
|
|
7
9
|
export { Logo } from './Logo'
|
|
8
10
|
export { MiniLogo } from './MiniLogo'
|
|
9
11
|
export { NotFound } from './NotFound'
|
|
10
12
|
export { ServerError } from './ServerError'
|
|
11
13
|
export { Unauthenticated } from './Unauthenticated'
|
|
14
|
+
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AsProp } from '@citric/core/dist/forward-ref-as.js';
|
|
2
|
-
import { SxProperties } from '@citric/core/dist/sx.js';
|
|
3
|
-
interface Props {
|
|
4
|
-
isSearch?: boolean;
|
|
5
|
-
style?: React.CSSProperties;
|
|
6
|
-
className?: string;
|
|
7
|
-
sx?: SxProperties;
|
|
8
|
-
sxCard?: SxProperties;
|
|
9
|
-
titleAs?: AsProp;
|
|
10
|
-
}
|
|
11
|
-
export declare const NotificationPlaceholder: ({ isSearch, sx, sxCard, className, style, titleAs }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=NotificationPlaceholder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationPlaceholder.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationPlaceholder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAAqD,KAAK,4CAsBjG,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslate } from '@stack-spot/portal-translate';
|
|
3
|
-
import { PlaceholderCallToAction } from '../Placeholder.js';
|
|
4
|
-
export const NotificationPlaceholder = ({ isSearch, sx, sxCard, className, style, titleAs }) => {
|
|
5
|
-
const t = useTranslate(dictionary);
|
|
6
|
-
return _jsx(PlaceholderCallToAction, { title: isSearch
|
|
7
|
-
? (_jsxs(_Fragment, { children: [t.placeholderSearchTitle, _jsx("br", {}), t.placeholderSearchSubTitle] }))
|
|
8
|
-
: (_jsxs(_Fragment, { children: [t.placeholderTitle, _jsx("br", {}), t.placeholderSubTitle] })), description: isSearch
|
|
9
|
-
? (_jsxs(_Fragment, { children: [t.placeholderSearchDescription, _jsx("br", {}), t.placeholderSearchSubDescription] }))
|
|
10
|
-
: (_jsxs(_Fragment, { children: [t.placeholderDescription, _jsx("br", {}), t.placeholderSubDescription] })), fullWidth: true, sx: sx, sxCard: sxCard, className: className, style: style, titleAs: titleAs, placeholderImageConfig: { width: '200', height: '200' } });
|
|
11
|
-
};
|
|
12
|
-
const dictionary = {
|
|
13
|
-
en: {
|
|
14
|
-
placeholderTitle: 'You don’t have',
|
|
15
|
-
placeholderSubTitle: 'any notifications yet.',
|
|
16
|
-
placeholderDescription: 'Relevant updates will show up here',
|
|
17
|
-
placeholderSubDescription: 'as soon as they’re available.',
|
|
18
|
-
placeholderSearchTitle: 'No notifications',
|
|
19
|
-
placeholderSearchSubTitle: 'match your filters.',
|
|
20
|
-
placeholderSearchDescription: 'Try changing the filters',
|
|
21
|
-
placeholderSearchSubDescription: 'to see more results.',
|
|
22
|
-
},
|
|
23
|
-
pt: {
|
|
24
|
-
placeholderTitle: 'Você ainda não tem',
|
|
25
|
-
placeholderSubTitle: 'notificações.',
|
|
26
|
-
placeholderDescription: 'Quando houver alguma atualização relevante,',
|
|
27
|
-
placeholderSubDescription: 'ela será exibida aqui.',
|
|
28
|
-
placeholderSearchTitle: 'Nenhuma notificação',
|
|
29
|
-
placeholderSearchSubTitle: 'corresponde aos filtros',
|
|
30
|
-
placeholderSearchDescription: 'Experimente mudar os filtros',
|
|
31
|
-
placeholderSearchSubDescription: 'para encontrar mais notificações.',
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=NotificationPlaceholder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationPlaceholder.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationPlaceholder.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAWxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAS,EAAE,EAAE;IACpG,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,OAAO,KAAC,uBAAuB,IAC7B,KAAK,EACH,QAAQ;YACN,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,sBAAsB,EAAC,cAAM,EAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC;YACtE,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,gBAAgB,EAAC,cAAM,EAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,EAE9D,WAAW,EACT,QAAQ;YACN,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,4BAA4B,EAAC,cAAM,EAAC,CAAC,CAAC,+BAA+B,IAAI,CAAC;YAClF,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,sBAAsB,EAAC,cAAM,EAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,EAE1E,SAAS,QACT,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GACvD,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,gBAAgB,EAAE,gBAAgB;QAClC,mBAAmB,EAAE,wBAAwB;QAC7C,sBAAsB,EAAE,oCAAoC;QAC5D,yBAAyB,EAAE,+BAA+B;QAC1D,sBAAsB,EAAE,kBAAkB;QAC1C,yBAAyB,EAAE,qBAAqB;QAChD,4BAA4B,EAAE,0BAA0B;QACxD,+BAA+B,EAAE,sBAAsB;KACxD;IACD,EAAE,EAAE;QACF,gBAAgB,EAAE,oBAAoB;QACtC,mBAAmB,EAAE,eAAe;QACpC,sBAAsB,EAAE,6CAA6C;QACrE,yBAAyB,EAAE,wBAAwB;QACnD,sBAAsB,EAAE,qBAAqB;QAC7C,yBAAyB,EAAE,yBAAyB;QACpD,4BAA4B,EAAE,8BAA8B;QAC5D,+BAA+B,EAAE,mCAAmC;KACrE;CACmB,CAAA"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { AsProp } from '@citric/core/dist/forward-ref-as'
|
|
2
|
-
import { SxProperties } from '@citric/core/dist/sx'
|
|
3
|
-
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
4
|
-
import { PlaceholderCallToAction } from '../Placeholder'
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
isSearch?: boolean,
|
|
8
|
-
style?: React.CSSProperties,
|
|
9
|
-
className?: string,
|
|
10
|
-
sx?: SxProperties,
|
|
11
|
-
sxCard?: SxProperties,
|
|
12
|
-
titleAs?: AsProp,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const NotificationPlaceholder = ({ isSearch, sx, sxCard, className, style, titleAs }: Props) => {
|
|
16
|
-
const t = useTranslate(dictionary)
|
|
17
|
-
|
|
18
|
-
return <PlaceholderCallToAction
|
|
19
|
-
title={
|
|
20
|
-
isSearch
|
|
21
|
-
? (<>{t.placeholderSearchTitle}<br />{t.placeholderSearchSubTitle}</>)
|
|
22
|
-
: (<>{t.placeholderTitle}<br />{t.placeholderSubTitle}</>)
|
|
23
|
-
}
|
|
24
|
-
description={
|
|
25
|
-
isSearch
|
|
26
|
-
? (<>{t.placeholderSearchDescription}<br />{t.placeholderSearchSubDescription}</>)
|
|
27
|
-
: (<>{t.placeholderDescription}<br />{t.placeholderSubDescription}</>)
|
|
28
|
-
}
|
|
29
|
-
fullWidth
|
|
30
|
-
sx={sx}
|
|
31
|
-
sxCard={sxCard}
|
|
32
|
-
className={className}
|
|
33
|
-
style={style}
|
|
34
|
-
titleAs={titleAs}
|
|
35
|
-
placeholderImageConfig={{ width: '200', height: '200' }}
|
|
36
|
-
/>
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const dictionary = {
|
|
40
|
-
en: {
|
|
41
|
-
placeholderTitle: 'You don’t have',
|
|
42
|
-
placeholderSubTitle: 'any notifications yet.',
|
|
43
|
-
placeholderDescription: 'Relevant updates will show up here',
|
|
44
|
-
placeholderSubDescription: 'as soon as they’re available.',
|
|
45
|
-
placeholderSearchTitle: 'No notifications',
|
|
46
|
-
placeholderSearchSubTitle: 'match your filters.',
|
|
47
|
-
placeholderSearchDescription: 'Try changing the filters',
|
|
48
|
-
placeholderSearchSubDescription: 'to see more results.',
|
|
49
|
-
},
|
|
50
|
-
pt: {
|
|
51
|
-
placeholderTitle: 'Você ainda não tem',
|
|
52
|
-
placeholderSubTitle: 'notificações.',
|
|
53
|
-
placeholderDescription: 'Quando houver alguma atualização relevante,',
|
|
54
|
-
placeholderSubDescription: 'ela será exibida aqui.',
|
|
55
|
-
placeholderSearchTitle: 'Nenhuma notificação',
|
|
56
|
-
placeholderSearchSubTitle: 'corresponde aos filtros',
|
|
57
|
-
placeholderSearchDescription: 'Experimente mudar os filtros',
|
|
58
|
-
placeholderSearchSubDescription: 'para encontrar mais notificações.',
|
|
59
|
-
},
|
|
60
|
-
} satisfies Dictionary
|