phx-react 1.3.1591 → 1.3.1592
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/cjs/components/MainWrapV4/components/notification/component/NotiListPane.js +18 -10
- package/dist/cjs/components/MainWrapV4/components/notification/component/NotiListPane.js.map +1 -1
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.d.ts +1 -1
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js +22 -14
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js.map +1 -1
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useNotificationData.d.ts +2 -2
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useNotificationData.js +48 -19
- package/dist/cjs/components/MainWrapV4/components/notification/hook/useNotificationData.js.map +1 -1
- package/dist/cjs/components/MainWrapV4/components/notification/index.js +1 -1
- package/dist/cjs/components/MainWrapV4/components/notification/index.js.map +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/component/NotiListPane.js +18 -10
- package/dist/esm/components/MainWrapV4/components/notification/component/NotiListPane.js.map +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.d.ts +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js +22 -14
- package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js.map +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/hook/useNotificationData.d.ts +2 -2
- package/dist/esm/components/MainWrapV4/components/notification/hook/useNotificationData.js +48 -19
- package/dist/esm/components/MainWrapV4/components/notification/hook/useNotificationData.js.map +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/index.js +1 -1
- package/dist/esm/components/MainWrapV4/components/notification/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,14 @@ function NotiListPane({ animated, headerH, iframeClickRef, isPreview, loadMoreRe
|
|
|
17
17
|
0% { background-position: 200% 0; }
|
|
18
18
|
100% { background-position: -200% 0; }
|
|
19
19
|
}
|
|
20
|
+
@keyframes skeleton-fade-out {
|
|
21
|
+
0% { opacity: 1; }
|
|
22
|
+
100% { opacity: 0; }
|
|
23
|
+
}
|
|
24
|
+
@keyframes skeleton-fade-in {
|
|
25
|
+
0% { opacity: 0; }
|
|
26
|
+
100% { opacity: 1; }
|
|
27
|
+
}
|
|
20
28
|
`;
|
|
21
29
|
const shimmerBarStyle = {
|
|
22
30
|
background: 'linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%)',
|
|
@@ -25,8 +33,8 @@ function NotiListPane({ animated, headerH, iframeClickRef, isPreview, loadMoreRe
|
|
|
25
33
|
};
|
|
26
34
|
const renderSkeletons = () => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
27
35
|
react_1.default.createElement("style", null, shimmerCss),
|
|
28
|
-
react_1.default.createElement("div", { className: 'flex flex-col gap-4 pt-2' }, Array.from({ length:
|
|
29
|
-
react_1.default.createElement("div", { className: 'flex justify-between gap-3 sm:gap-4 md:gap-8 lg:gap-16 xl:gap-40
|
|
36
|
+
react_1.default.createElement("div", { className: 'flex flex-col gap-4 pt-2' }, Array.from({ length: 15 }).map((_, i) => (react_1.default.createElement("div", { key: i, className: 'p-2' },
|
|
37
|
+
react_1.default.createElement("div", { className: `${i > 0 && 'pt-[1px]'} flex justify-between gap-3 sm:gap-4 md:gap-8 lg:gap-16 xl:gap-40` },
|
|
30
38
|
react_1.default.createElement("div", { className: 'min-w-0 flex-1 space-y-3' },
|
|
31
39
|
react_1.default.createElement("div", { className: ['h-2 rounded-full', i % 3 === 0 ? 'w-1/2' : i % 3 === 1 ? 'w-2/3' : 'w-3/5'].join(' '), style: shimmerBarStyle }),
|
|
32
40
|
react_1.default.createElement("div", { className: 'h-2 w-1/6 rounded-full', style: shimmerBarStyle }),
|
|
@@ -66,8 +74,9 @@ function NotiListPane({ animated, headerH, iframeClickRef, isPreview, loadMoreRe
|
|
|
66
74
|
react_1.default.createElement("div", { className: 'relative min-h-52' },
|
|
67
75
|
react_1.default.createElement("div", { className: [
|
|
68
76
|
animated.relaxMaxH ? 'overflow-visible' : 'overflow-hidden',
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
animated.contentVisible
|
|
78
|
+
? 'translate-y-0 opacity-100 transition-[max-height,opacity,transform] duration-500 ease-out'
|
|
79
|
+
: 'translate-y-[2px] opacity-0',
|
|
71
80
|
].join(' '), style: { maxHeight: animated.getMaxHeight() } },
|
|
72
81
|
react_1.default.createElement("div", { ref: animated.contentRef }, noti.listData.length > 0 ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
73
82
|
react_1.default.createElement("ul", null, noti.listData.map((item, idx) => {
|
|
@@ -107,19 +116,18 @@ function NotiListPane({ animated, headerH, iframeClickRef, isPreview, loadMoreRe
|
|
|
107
116
|
noti.loadingMore && (react_1.default.createElement("div", { className: 'animate-fadeIn flex items-center justify-center py-4' },
|
|
108
117
|
react_1.default.createElement(Loading_1.PHXSpinner, null))),
|
|
109
118
|
react_1.default.createElement("div", { ref: loadMoreRef, className: 'h-14' }))) : noti.loadingInit ? null : (react_1.default.createElement(EmptyRecord_1.PHXEmptyRecord, { description: 'D\u1EEF li\u1EC7u \u0111ang tr\u1ED1ng.', title: 'Tr\u1ED1ng' })))),
|
|
110
|
-
renderSkeleton && (react_1.default.createElement("div", { className:
|
|
111
|
-
`absolute inset-0 transition-opacity duration-[${constant_1.SKELETON_OUT_MS}ms]`,
|
|
112
|
-
animated.showSkeleton ? 'opacity-100' : 'opacity-0',
|
|
113
|
-
].join(' '), onTransitionEnd: (e) => {
|
|
119
|
+
renderSkeleton && (react_1.default.createElement("div", { className: 'absolute inset-0', onAnimationEnd: (e) => {
|
|
114
120
|
var _a;
|
|
115
121
|
if (e.target !== e.currentTarget)
|
|
116
122
|
return;
|
|
117
|
-
if (e.propertyName !== 'opacity')
|
|
118
|
-
return;
|
|
119
123
|
if (!animated.showSkeleton) {
|
|
120
124
|
(_a = animated.onSkeletonFadeOutEnd) === null || _a === void 0 ? void 0 : _a.call(animated);
|
|
121
125
|
setRenderSkeleton(false);
|
|
122
126
|
}
|
|
127
|
+
}, style: {
|
|
128
|
+
animation: animated.showSkeleton
|
|
129
|
+
? `skeleton-fade-in 80ms ease forwards`
|
|
130
|
+
: `skeleton-fade-out ${constant_1.SKELETON_OUT_MS}ms ease forwards`,
|
|
123
131
|
} }, renderSkeletons()))))),
|
|
124
132
|
react_1.default.createElement("div", { className: [
|
|
125
133
|
'absolute inset-0',
|
package/dist/cjs/components/MainWrapV4/components/notification/component/NotiListPane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotiListPane.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/component/NotiListPane.tsx"],"names":[],"mappings":";;AA8BA,+
|
|
1
|
+
{"version":3,"file":"NotiListPane.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/component/NotiListPane.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare function useAnimatedListHeight(): {
|
|
|
7
7
|
frozenH: number | null;
|
|
8
8
|
getMaxHeight: () => number | "none";
|
|
9
9
|
getHeightPx: () => number;
|
|
10
|
-
resetForInitLoad: () =>
|
|
10
|
+
resetForInitLoad: () => number;
|
|
11
11
|
revealAfterInitLoad: () => void;
|
|
12
12
|
onSkeletonFadeOutEnd: () => void;
|
|
13
13
|
cleanup: () => void;
|
package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js
CHANGED
|
@@ -11,7 +11,10 @@ function useAnimatedListHeight() {
|
|
|
11
11
|
const contentRef = (0, react_1.useRef)(null);
|
|
12
12
|
const roRef = (0, react_1.useRef)(null);
|
|
13
13
|
const stableTimerRef = (0, react_1.useRef)(null);
|
|
14
|
-
|
|
14
|
+
// Generation counter — tăng mỗi lần reset để invalidate callback cũ
|
|
15
|
+
const genRef = (0, react_1.useRef)(0);
|
|
16
|
+
// Mỗi callback giữ bản sao gen của mình tại thời điểm tạo ra
|
|
17
|
+
const skeletonFadingGenRef = (0, react_1.useRef)(-1);
|
|
15
18
|
const cleanup = (0, react_1.useCallback)(() => {
|
|
16
19
|
var _a;
|
|
17
20
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
@@ -20,18 +23,17 @@ function useAnimatedListHeight() {
|
|
|
20
23
|
window.clearTimeout(stableTimerRef.current);
|
|
21
24
|
stableTimerRef.current = null;
|
|
22
25
|
}
|
|
23
|
-
pendingRevealRef.current = false;
|
|
24
26
|
}, []);
|
|
25
27
|
const resetForInitLoad = (0, react_1.useCallback)(() => {
|
|
26
28
|
var _a, _b, _c;
|
|
27
|
-
//
|
|
29
|
+
// Invalidate tất cả callback đang pending từ cycle trước
|
|
30
|
+
const gen = ++genRef.current;
|
|
31
|
+
skeletonFadingGenRef.current = -1; // chưa bắt đầu fade cho gen mới
|
|
28
32
|
const currentH = ((_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight) || ((_b = contentRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().height) || 0;
|
|
29
33
|
if (currentH)
|
|
30
34
|
setFrozenH(currentH);
|
|
31
|
-
// 2) reset animation flags
|
|
32
35
|
setRelaxMaxH(false);
|
|
33
36
|
setContentVisible(false);
|
|
34
|
-
pendingRevealRef.current = true;
|
|
35
37
|
setShowSkeleton(true);
|
|
36
38
|
(_c = roRef.current) === null || _c === void 0 ? void 0 : _c.disconnect();
|
|
37
39
|
roRef.current = null;
|
|
@@ -39,13 +41,16 @@ function useAnimatedListHeight() {
|
|
|
39
41
|
window.clearTimeout(stableTimerRef.current);
|
|
40
42
|
stableTimerRef.current = null;
|
|
41
43
|
}
|
|
44
|
+
return gen; // expose nếu caller cần
|
|
42
45
|
}, []);
|
|
43
|
-
const attachResizeObserver = (0, react_1.useCallback)(() => {
|
|
46
|
+
const attachResizeObserver = (0, react_1.useCallback)((gen) => {
|
|
44
47
|
var _a, _b, _c;
|
|
45
48
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
46
49
|
roRef.current = null;
|
|
47
50
|
roRef.current = new ResizeObserver(() => {
|
|
48
51
|
var _a, _b;
|
|
52
|
+
if (genRef.current !== gen)
|
|
53
|
+
return; // stale
|
|
49
54
|
const h = (_b = (_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight) !== null && _b !== void 0 ? _b : 0;
|
|
50
55
|
if (h)
|
|
51
56
|
setContentMaxH(h);
|
|
@@ -53,6 +58,8 @@ function useAnimatedListHeight() {
|
|
|
53
58
|
window.clearTimeout(stableTimerRef.current);
|
|
54
59
|
stableTimerRef.current = window.setTimeout(() => {
|
|
55
60
|
var _a;
|
|
61
|
+
if (genRef.current !== gen)
|
|
62
|
+
return; // stale
|
|
56
63
|
setRelaxMaxH(true);
|
|
57
64
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
58
65
|
roRef.current = null;
|
|
@@ -66,18 +73,22 @@ function useAnimatedListHeight() {
|
|
|
66
73
|
setContentMaxH(h0);
|
|
67
74
|
}, []);
|
|
68
75
|
const revealAfterInitLoad = (0, react_1.useCallback)(() => {
|
|
69
|
-
|
|
70
|
-
|
|
76
|
+
const currentGen = genRef.current;
|
|
77
|
+
skeletonFadingGenRef.current = currentGen; // đánh dấu gen đang fade
|
|
71
78
|
setShowSkeleton(false);
|
|
72
79
|
}, []);
|
|
73
80
|
const onSkeletonFadeOutEnd = (0, react_1.useCallback)(() => {
|
|
74
|
-
|
|
81
|
+
const currentGen = genRef.current;
|
|
82
|
+
// Chỉ tiếp tục nếu đây đúng là fade được kích hoạt cho gen hiện tại
|
|
83
|
+
if (skeletonFadingGenRef.current !== currentGen)
|
|
75
84
|
return;
|
|
76
|
-
|
|
85
|
+
skeletonFadingGenRef.current = -1;
|
|
77
86
|
requestAnimationFrame(() => {
|
|
87
|
+
if (genRef.current !== currentGen)
|
|
88
|
+
return; // bị reset trong RAF
|
|
78
89
|
setContentVisible(true);
|
|
79
90
|
setFrozenH(null);
|
|
80
|
-
attachResizeObserver();
|
|
91
|
+
attachResizeObserver(currentGen);
|
|
81
92
|
});
|
|
82
93
|
}, [attachResizeObserver]);
|
|
83
94
|
const getMaxHeight = (0, react_1.useCallback)(() => {
|
|
@@ -91,20 +102,17 @@ function useAnimatedListHeight() {
|
|
|
91
102
|
const getHeightPx = (0, react_1.useCallback)(() => { var _a; return (_a = frozenH !== null && frozenH !== void 0 ? frozenH : contentMaxH) !== null && _a !== void 0 ? _a : 0; }, [frozenH, contentMaxH]);
|
|
92
103
|
return {
|
|
93
104
|
contentRef,
|
|
94
|
-
// states
|
|
95
105
|
contentVisible,
|
|
96
106
|
showSkeleton,
|
|
97
107
|
relaxMaxH,
|
|
98
108
|
contentMaxH,
|
|
99
109
|
frozenH,
|
|
100
|
-
// helpers
|
|
101
110
|
getMaxHeight,
|
|
102
111
|
getHeightPx,
|
|
103
112
|
resetForInitLoad,
|
|
104
113
|
revealAfterInitLoad,
|
|
105
114
|
onSkeletonFadeOutEnd,
|
|
106
115
|
cleanup,
|
|
107
|
-
// setters for edge cases
|
|
108
116
|
setRelaxMaxH,
|
|
109
117
|
};
|
|
110
118
|
}
|
package/dist/cjs/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedListHeight.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"useAnimatedListHeight.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/components/MainWrapV4/components/notification/hook/useNotificationData.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { TAB } from '../../../constant';
|
|
1
2
|
import { NotiItem } from '../../../types/notification';
|
|
2
3
|
import React from 'react';
|
|
3
|
-
import { TAB } from '../../../constant';
|
|
4
4
|
type Counts = {
|
|
5
5
|
all: number;
|
|
6
6
|
to_me: number;
|
|
@@ -22,7 +22,7 @@ export declare function useNotificationData({ limit }: {
|
|
|
22
22
|
hasMore: boolean;
|
|
23
23
|
loadingInit: boolean;
|
|
24
24
|
loadingMore: boolean;
|
|
25
|
-
fetchFirstPage: (tab: TAB) => Promise<void>;
|
|
25
|
+
fetchFirstPage: (tab: TAB, onSettled?: () => void) => Promise<void>;
|
|
26
26
|
loadMore: () => Promise<void>;
|
|
27
27
|
resetList: () => void;
|
|
28
28
|
};
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useNotificationData = useNotificationData;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
-
const react_2 = tslib_1.__importDefault(require("react"));
|
|
7
6
|
const constant_1 = require("../../../constant");
|
|
7
|
+
const react_2 = tslib_1.__importDefault(require("react"));
|
|
8
8
|
const apiClient_1 = require("../../../../../lib/fetch/apiClient");
|
|
9
9
|
function useNotificationData({ limit }) {
|
|
10
10
|
const [listData, setListData] = (0, react_1.useState)([]);
|
|
@@ -14,7 +14,12 @@ function useNotificationData({ limit }) {
|
|
|
14
14
|
const [hasMore, setHasMore] = (0, react_1.useState)(true);
|
|
15
15
|
const [loadingInit, setLoadingInit] = (0, react_1.useState)(false);
|
|
16
16
|
const [loadingMore, setLoadingMore] = (0, react_1.useState)(false);
|
|
17
|
-
|
|
17
|
+
// Refs for mutable loading state — avoids stale closure in fetchData deps
|
|
18
|
+
const loadingInitRef = (0, react_1.useRef)(false);
|
|
19
|
+
const loadingMoreRef = (0, react_1.useRef)(false);
|
|
20
|
+
// Generation counter: fresh fetches (append=false) always increment this.
|
|
21
|
+
// Any in-flight request whose gen doesn't match current gen is discarded.
|
|
22
|
+
const genRef = (0, react_1.useRef)(0);
|
|
18
23
|
const tabs = (0, react_1.useMemo)(() => [
|
|
19
24
|
{
|
|
20
25
|
name: (react_2.default.createElement("span", { className: 'flex items-center gap-1' },
|
|
@@ -49,22 +54,35 @@ function useNotificationData({ limit }) {
|
|
|
49
54
|
}
|
|
50
55
|
return merged;
|
|
51
56
|
}, []);
|
|
52
|
-
const fetchData = (0, react_1.useCallback)(async (tabValue, pageValue, append) => {
|
|
57
|
+
const fetchData = (0, react_1.useCallback)(async (tabValue, pageValue, append, onSettled) => {
|
|
53
58
|
var _a, _b;
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
if (append) {
|
|
60
|
+
// load-more: skip if any fetch is already in-flight
|
|
61
|
+
if (loadingInitRef.current || loadingMoreRef.current)
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Fresh fetch always supersedes previous; load-more takes the current gen
|
|
65
|
+
// so that a subsequent fresh fetch can invalidate it mid-flight.
|
|
66
|
+
const myGen = append ? genRef.current : ++genRef.current;
|
|
67
|
+
if (append) {
|
|
68
|
+
loadingMoreRef.current = true;
|
|
60
69
|
setLoadingMore(true);
|
|
61
|
-
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Cancel any in-flight load-more from the previous page
|
|
73
|
+
loadingMoreRef.current = false;
|
|
74
|
+
setLoadingMore(false);
|
|
75
|
+
loadingInitRef.current = true;
|
|
62
76
|
setLoadingInit(true);
|
|
77
|
+
}
|
|
63
78
|
try {
|
|
64
79
|
const data = (await (0, apiClient_1.apiFetch)('/inapp-noti/notification', {
|
|
65
80
|
method: 'GET',
|
|
66
81
|
params: { tab: tabValue, page: pageValue, limit },
|
|
67
82
|
}));
|
|
83
|
+
// Discard results from a superseded request
|
|
84
|
+
if (genRef.current !== myGen)
|
|
85
|
+
return;
|
|
68
86
|
const items = (_a = data === null || data === void 0 ? void 0 : data.items) !== null && _a !== void 0 ? _a : [];
|
|
69
87
|
setCount((_b = data === null || data === void 0 ? void 0 : data.counts) !== null && _b !== void 0 ? _b : { all: 0, to_me: 0, system: 0 });
|
|
70
88
|
setListData((prev) => {
|
|
@@ -76,28 +94,39 @@ function useNotificationData({ limit }) {
|
|
|
76
94
|
setPage(pageValue);
|
|
77
95
|
}
|
|
78
96
|
catch (error) {
|
|
97
|
+
if (genRef.current !== myGen)
|
|
98
|
+
return;
|
|
79
99
|
console.error('Error fetching notifications:', error);
|
|
80
100
|
}
|
|
81
101
|
finally {
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
if (genRef.current === myGen) {
|
|
103
|
+
if (append) {
|
|
104
|
+
loadingMoreRef.current = false;
|
|
105
|
+
setLoadingMore(false);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
loadingInitRef.current = false;
|
|
109
|
+
setLoadingInit(false);
|
|
110
|
+
// Only the current-gen fresh fetch notifies the caller.
|
|
111
|
+
// Stale fetches are blocked by the gen check above, so this
|
|
112
|
+
// callback is never invoked for superseded requests.
|
|
113
|
+
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
87
116
|
}
|
|
88
|
-
}, [limit,
|
|
117
|
+
}, [limit, mergeUniqueById]);
|
|
89
118
|
const resetList = (0, react_1.useCallback)(() => {
|
|
90
119
|
setListData([]);
|
|
91
120
|
setPage(1);
|
|
92
121
|
setHasMore(true);
|
|
93
122
|
}, []);
|
|
94
123
|
const loadMore = (0, react_1.useCallback)(async () => {
|
|
95
|
-
if (
|
|
124
|
+
if (loadingInitRef.current || loadingMoreRef.current)
|
|
96
125
|
return;
|
|
97
126
|
if (!hasMore)
|
|
98
127
|
return;
|
|
99
128
|
await fetchData(activeTab, page + 1, true);
|
|
100
|
-
}, [activeTab, page, hasMore,
|
|
129
|
+
}, [activeTab, page, hasMore, fetchData]);
|
|
101
130
|
return {
|
|
102
131
|
// state
|
|
103
132
|
listData,
|
|
@@ -110,7 +139,7 @@ function useNotificationData({ limit }) {
|
|
|
110
139
|
loadingInit,
|
|
111
140
|
loadingMore,
|
|
112
141
|
// actions
|
|
113
|
-
fetchFirstPage: (tab) => fetchData(tab, 1, false),
|
|
142
|
+
fetchFirstPage: (tab, onSettled) => fetchData(tab, 1, false, onSettled),
|
|
114
143
|
loadMore,
|
|
115
144
|
resetList,
|
|
116
145
|
};
|
package/dist/cjs/components/MainWrapV4/components/notification/hook/useNotificationData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationData.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useNotificationData.tsx"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"useNotificationData.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useNotificationData.tsx"],"names":[],"mappings":";;AAQA,kDAgLC;;AAxLD,iCAA8D;AAC9D,gDAAiD;AAEjD,0DAAyB;AACzB,kEAA6D;AAI7D,SAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAqB;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAkB,EAAE,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAE3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAM,cAAG,CAAC,GAAG,CAAC,CAAA;IAExD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IACnC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE5C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAErD,0EAA0E;IAC1E,MAAM,cAAc,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IACpC,MAAM,cAAc,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAEpC,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAA;IAExB,MAAM,IAAI,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE,CAAC;QACJ;YACE,IAAI,EAAE,CACJ,wCAAM,SAAS,EAAC,yBAAyB;gBACvC,4CAAO,mBAAQ,CAAC,cAAG,CAAC,GAAG,CAAC,CAAQ;gBAE/B,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,IAAG,CAAC,IAAI,CACjB,wCAAM,SAAS,EAAC,2GAA2G,IACxH,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,IAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAChC,CACR,CACI,CACR;YACD,KAAK,EAAE,cAAG,CAAC,GAAG;YACd,KAAK,EAAE,EAAE;SACV;QACD;YACE,IAAI,EAAE,CACJ,wCAAM,SAAS,EAAC,yBAAyB;gBACvC,4CAAO,mBAAQ,CAAC,cAAG,CAAC,KAAK,CAAC,CAAQ;gBAEjC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,IAAG,CAAC,IAAI,CACnB,wCAAM,SAAS,EAAC,2GAA2G,IACxH,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,IAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CACpC,CACR,CACI,CACR;YACD,KAAK,EAAE,cAAG,CAAC,KAAK;YAChB,KAAK,EAAE,EAAE;SACV;QACD;YACE,IAAI,EAAE,CACJ,wCAAM,SAAS,EAAC,yBAAyB;gBACvC,4CAAO,mBAAQ,CAAC,cAAG,CAAC,MAAM,CAAC,CAAQ;gBAElC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,IAAG,CAAC,IAAI,CACpB,wCAAM,SAAS,EAAC,2GAA2G,IACxH,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,IAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CACtC,CACR,CACI,CACR;YACD,KAAK,EAAE,cAAG,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE;SACV;KACF,EACD,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAC1C,CAAA;IAED,MAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,CAAC,IAAqB,EAAE,KAAsB,EAAE,EAAE;QACpF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QACxB,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,EAAE,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACf,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,KAAK,EAAE,QAAa,EAAE,SAAiB,EAAE,MAAe,EAAE,SAAsB,EAAE,EAAE;;QAClF,IAAI,MAAM,EAAE,CAAC;YACX,oDAAoD;YACpD,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO;gBAAE,OAAM;QAC9D,CAAC;QAED,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;QAExD,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,CAAC,OAAO,GAAG,IAAI,CAAA;YAC7B,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;YAC9B,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,cAAc,CAAC,OAAO,GAAG,IAAI,CAAA;YAC7B,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,IAAA,oBAAQ,EAAC,0BAA0B,EAAE;gBACvD,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;aAClD,CAAC,CAAQ,CAAA;YAEV,4CAA4C;YAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;gBAAE,OAAM;YAEpC,MAAM,KAAK,GAAoB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,EAAE,CAAA;YAChD,QAAQ,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YAEzD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAA;gBACzB,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;YAEF,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAA;YAClC,OAAO,CAAC,SAAS,CAAC,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;gBAAE,OAAM;YACpC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;QACvD,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,IAAI,MAAM,EAAE,CAAC;oBACX,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;oBAC9B,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;oBAC9B,cAAc,CAAC,KAAK,CAAC,CAAA;oBACrB,wDAAwD;oBACxD,4DAA4D;oBAC5D,qDAAqD;oBACrD,SAAS,aAAT,SAAS,uBAAT,SAAS,EAAI,CAAA;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,KAAK,EAAE,eAAe,CAAC,CACzB,CAAA;IAED,MAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACjC,WAAW,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,CAAC,CAAC,CAAA;QACV,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACtC,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO;YAAE,OAAM;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAEzC,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,SAAS;QACT,YAAY;QAEZ,IAAI;QACJ,OAAO;QACP,WAAW;QACX,WAAW;QAEX,UAAU;QACV,cAAc,EAAE,CAAC,GAAQ,EAAE,SAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;QACzF,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC"}
|
|
@@ -23,7 +23,7 @@ const Notification = ({ unreadCount }) => {
|
|
|
23
23
|
return;
|
|
24
24
|
noti.resetList();
|
|
25
25
|
animated.resetForInitLoad();
|
|
26
|
-
noti.fetchFirstPage(noti.activeTab
|
|
26
|
+
noti.fetchFirstPage(noti.activeTab, () => animated.revealAfterInitLoad());
|
|
27
27
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
28
|
}, [showModal, noti.activeTab]);
|
|
29
29
|
// infinite scroll only on list mode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/MainWrapV4/components/notification/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAgE;AAChE,6CAAoC;AAEpC,oFAAmD;AACnD,wEAAoE;AACpE,oEAAgE;AAChE,8EAA0E;AAC1E,oEAAgE;AAEhE,MAAM,KAAK,GAAG,EAAE,CAAA;AAEhB,MAAM,YAAY,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAA;IAEvF,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;IAEpC,MAAM,WAAW,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,IAAA,yCAAmB,GAAE,CAAA;IAE5C,MAAM,IAAI,GAAG,IAAA,yCAAmB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAElD,MAAM,QAAQ,GAAG,IAAA,6CAAqB,GAAE,CAAA;IAExC,yCAAyC;IACzC,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,QAAQ,CAAC,gBAAgB,EAAE,CAAA;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/MainWrapV4/components/notification/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAgE;AAChE,6CAAoC;AAEpC,oFAAmD;AACnD,wEAAoE;AACpE,oEAAgE;AAChE,8EAA0E;AAC1E,oEAAgE;AAEhE,MAAM,KAAK,GAAG,EAAE,CAAA;AAEhB,MAAM,YAAY,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAA;IAEvF,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;IAEpC,MAAM,WAAW,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,IAAA,yCAAmB,GAAE,CAAA;IAE5C,MAAM,IAAI,GAAG,IAAA,yCAAmB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAElD,MAAM,QAAQ,GAAG,IAAA,6CAAqB,GAAE,CAAA;IAExC,yCAAyC;IACzC,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,QAAQ,CAAC,gBAAgB,EAAE,CAAA;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAA;QACzE,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAE/B,oCAAoC;IACpC,IAAA,mDAAwB,EAAC;QACvB,OAAO,EAAE,SAAS,IAAI,CAAC,SAAS;QAChC,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,mBAAmB;QACjC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;QAC/D,WAAW,EAAE,IAAI,CAAC,QAAQ;KAC3B,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,YAAY,CAAC,cAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,QAAQ,CAAC,OAAO,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,OAAO,CACL,8BAAC,sBAAY,IACX,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,GAAG,EAAE;YACX,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpB,uEAAuE;gBACvE,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAA;gBAErB,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,mBAAmB,CAAC,IAAI,CAAC,CAAA,CAAC,4CAA4C;gBACtE,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,EACD,IAAI,EAAE,SAAS,EACf,WAAW,EAAE;YACX,cAAc;YACd,WAAW;SACZ,EACD,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,GACxB,CACH,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,YAAY,CAAA"}
|
|
@@ -13,6 +13,14 @@ export default function NotiListPane({ animated, headerH, iframeClickRef, isPrev
|
|
|
13
13
|
0% { background-position: 200% 0; }
|
|
14
14
|
100% { background-position: -200% 0; }
|
|
15
15
|
}
|
|
16
|
+
@keyframes skeleton-fade-out {
|
|
17
|
+
0% { opacity: 1; }
|
|
18
|
+
100% { opacity: 0; }
|
|
19
|
+
}
|
|
20
|
+
@keyframes skeleton-fade-in {
|
|
21
|
+
0% { opacity: 0; }
|
|
22
|
+
100% { opacity: 1; }
|
|
23
|
+
}
|
|
16
24
|
`;
|
|
17
25
|
const shimmerBarStyle = {
|
|
18
26
|
background: 'linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%)',
|
|
@@ -21,8 +29,8 @@ export default function NotiListPane({ animated, headerH, iframeClickRef, isPrev
|
|
|
21
29
|
};
|
|
22
30
|
const renderSkeletons = () => (React.createElement(React.Fragment, null,
|
|
23
31
|
React.createElement("style", null, shimmerCss),
|
|
24
|
-
React.createElement("div", { className: 'flex flex-col gap-4 pt-2' }, Array.from({ length:
|
|
25
|
-
React.createElement("div", { className: 'flex justify-between gap-3 sm:gap-4 md:gap-8 lg:gap-16 xl:gap-40
|
|
32
|
+
React.createElement("div", { className: 'flex flex-col gap-4 pt-2' }, Array.from({ length: 15 }).map((_, i) => (React.createElement("div", { key: i, className: 'p-2' },
|
|
33
|
+
React.createElement("div", { className: `${i > 0 && 'pt-[1px]'} flex justify-between gap-3 sm:gap-4 md:gap-8 lg:gap-16 xl:gap-40` },
|
|
26
34
|
React.createElement("div", { className: 'min-w-0 flex-1 space-y-3' },
|
|
27
35
|
React.createElement("div", { className: ['h-2 rounded-full', i % 3 === 0 ? 'w-1/2' : i % 3 === 1 ? 'w-2/3' : 'w-3/5'].join(' '), style: shimmerBarStyle }),
|
|
28
36
|
React.createElement("div", { className: 'h-2 w-1/6 rounded-full', style: shimmerBarStyle }),
|
|
@@ -62,8 +70,9 @@ export default function NotiListPane({ animated, headerH, iframeClickRef, isPrev
|
|
|
62
70
|
React.createElement("div", { className: 'relative min-h-52' },
|
|
63
71
|
React.createElement("div", { className: [
|
|
64
72
|
animated.relaxMaxH ? 'overflow-visible' : 'overflow-hidden',
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
animated.contentVisible
|
|
74
|
+
? 'translate-y-0 opacity-100 transition-[max-height,opacity,transform] duration-500 ease-out'
|
|
75
|
+
: 'translate-y-[2px] opacity-0',
|
|
67
76
|
].join(' '), style: { maxHeight: animated.getMaxHeight() } },
|
|
68
77
|
React.createElement("div", { ref: animated.contentRef }, noti.listData.length > 0 ? (React.createElement(React.Fragment, null,
|
|
69
78
|
React.createElement("ul", null, noti.listData.map((item, idx) => {
|
|
@@ -103,19 +112,18 @@ export default function NotiListPane({ animated, headerH, iframeClickRef, isPrev
|
|
|
103
112
|
noti.loadingMore && (React.createElement("div", { className: 'animate-fadeIn flex items-center justify-center py-4' },
|
|
104
113
|
React.createElement(PHXSpinner, null))),
|
|
105
114
|
React.createElement("div", { ref: loadMoreRef, className: 'h-14' }))) : noti.loadingInit ? null : (React.createElement(PHXEmptyRecord, { description: 'D\u1EEF li\u1EC7u \u0111ang tr\u1ED1ng.', title: 'Tr\u1ED1ng' })))),
|
|
106
|
-
renderSkeleton && (React.createElement("div", { className:
|
|
107
|
-
`absolute inset-0 transition-opacity duration-[${SKELETON_OUT_MS}ms]`,
|
|
108
|
-
animated.showSkeleton ? 'opacity-100' : 'opacity-0',
|
|
109
|
-
].join(' '), onTransitionEnd: (e) => {
|
|
115
|
+
renderSkeleton && (React.createElement("div", { className: 'absolute inset-0', onAnimationEnd: (e) => {
|
|
110
116
|
var _a;
|
|
111
117
|
if (e.target !== e.currentTarget)
|
|
112
118
|
return;
|
|
113
|
-
if (e.propertyName !== 'opacity')
|
|
114
|
-
return;
|
|
115
119
|
if (!animated.showSkeleton) {
|
|
116
120
|
(_a = animated.onSkeletonFadeOutEnd) === null || _a === void 0 ? void 0 : _a.call(animated);
|
|
117
121
|
setRenderSkeleton(false);
|
|
118
122
|
}
|
|
123
|
+
}, style: {
|
|
124
|
+
animation: animated.showSkeleton
|
|
125
|
+
? `skeleton-fade-in 80ms ease forwards`
|
|
126
|
+
: `skeleton-fade-out ${SKELETON_OUT_MS}ms ease forwards`,
|
|
119
127
|
} }, renderSkeletons()))))),
|
|
120
128
|
React.createElement("div", { className: [
|
|
121
129
|
'absolute inset-0',
|
package/dist/esm/components/MainWrapV4/components/notification/component/NotiListPane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotiListPane.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/component/NotiListPane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAsBnD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,OAAO,GACD;IACN,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3D,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"NotiListPane.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/component/NotiListPane.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare function useAnimatedListHeight(): {
|
|
|
7
7
|
frozenH: number | null;
|
|
8
8
|
getMaxHeight: () => number | "none";
|
|
9
9
|
getHeightPx: () => number;
|
|
10
|
-
resetForInitLoad: () =>
|
|
10
|
+
resetForInitLoad: () => number;
|
|
11
11
|
revealAfterInitLoad: () => void;
|
|
12
12
|
onSkeletonFadeOutEnd: () => void;
|
|
13
13
|
cleanup: () => void;
|
package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js
CHANGED
|
@@ -8,7 +8,10 @@ export function useAnimatedListHeight() {
|
|
|
8
8
|
const contentRef = useRef(null);
|
|
9
9
|
const roRef = useRef(null);
|
|
10
10
|
const stableTimerRef = useRef(null);
|
|
11
|
-
|
|
11
|
+
// Generation counter — tăng mỗi lần reset để invalidate callback cũ
|
|
12
|
+
const genRef = useRef(0);
|
|
13
|
+
// Mỗi callback giữ bản sao gen của mình tại thời điểm tạo ra
|
|
14
|
+
const skeletonFadingGenRef = useRef(-1);
|
|
12
15
|
const cleanup = useCallback(() => {
|
|
13
16
|
var _a;
|
|
14
17
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
@@ -17,18 +20,17 @@ export function useAnimatedListHeight() {
|
|
|
17
20
|
window.clearTimeout(stableTimerRef.current);
|
|
18
21
|
stableTimerRef.current = null;
|
|
19
22
|
}
|
|
20
|
-
pendingRevealRef.current = false;
|
|
21
23
|
}, []);
|
|
22
24
|
const resetForInitLoad = useCallback(() => {
|
|
23
25
|
var _a, _b, _c;
|
|
24
|
-
//
|
|
26
|
+
// Invalidate tất cả callback đang pending từ cycle trước
|
|
27
|
+
const gen = ++genRef.current;
|
|
28
|
+
skeletonFadingGenRef.current = -1; // chưa bắt đầu fade cho gen mới
|
|
25
29
|
const currentH = ((_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight) || ((_b = contentRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().height) || 0;
|
|
26
30
|
if (currentH)
|
|
27
31
|
setFrozenH(currentH);
|
|
28
|
-
// 2) reset animation flags
|
|
29
32
|
setRelaxMaxH(false);
|
|
30
33
|
setContentVisible(false);
|
|
31
|
-
pendingRevealRef.current = true;
|
|
32
34
|
setShowSkeleton(true);
|
|
33
35
|
(_c = roRef.current) === null || _c === void 0 ? void 0 : _c.disconnect();
|
|
34
36
|
roRef.current = null;
|
|
@@ -36,13 +38,16 @@ export function useAnimatedListHeight() {
|
|
|
36
38
|
window.clearTimeout(stableTimerRef.current);
|
|
37
39
|
stableTimerRef.current = null;
|
|
38
40
|
}
|
|
41
|
+
return gen; // expose nếu caller cần
|
|
39
42
|
}, []);
|
|
40
|
-
const attachResizeObserver = useCallback(() => {
|
|
43
|
+
const attachResizeObserver = useCallback((gen) => {
|
|
41
44
|
var _a, _b, _c;
|
|
42
45
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
43
46
|
roRef.current = null;
|
|
44
47
|
roRef.current = new ResizeObserver(() => {
|
|
45
48
|
var _a, _b;
|
|
49
|
+
if (genRef.current !== gen)
|
|
50
|
+
return; // stale
|
|
46
51
|
const h = (_b = (_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight) !== null && _b !== void 0 ? _b : 0;
|
|
47
52
|
if (h)
|
|
48
53
|
setContentMaxH(h);
|
|
@@ -50,6 +55,8 @@ export function useAnimatedListHeight() {
|
|
|
50
55
|
window.clearTimeout(stableTimerRef.current);
|
|
51
56
|
stableTimerRef.current = window.setTimeout(() => {
|
|
52
57
|
var _a;
|
|
58
|
+
if (genRef.current !== gen)
|
|
59
|
+
return; // stale
|
|
53
60
|
setRelaxMaxH(true);
|
|
54
61
|
(_a = roRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
55
62
|
roRef.current = null;
|
|
@@ -63,18 +70,22 @@ export function useAnimatedListHeight() {
|
|
|
63
70
|
setContentMaxH(h0);
|
|
64
71
|
}, []);
|
|
65
72
|
const revealAfterInitLoad = useCallback(() => {
|
|
66
|
-
|
|
67
|
-
|
|
73
|
+
const currentGen = genRef.current;
|
|
74
|
+
skeletonFadingGenRef.current = currentGen; // đánh dấu gen đang fade
|
|
68
75
|
setShowSkeleton(false);
|
|
69
76
|
}, []);
|
|
70
77
|
const onSkeletonFadeOutEnd = useCallback(() => {
|
|
71
|
-
|
|
78
|
+
const currentGen = genRef.current;
|
|
79
|
+
// Chỉ tiếp tục nếu đây đúng là fade được kích hoạt cho gen hiện tại
|
|
80
|
+
if (skeletonFadingGenRef.current !== currentGen)
|
|
72
81
|
return;
|
|
73
|
-
|
|
82
|
+
skeletonFadingGenRef.current = -1;
|
|
74
83
|
requestAnimationFrame(() => {
|
|
84
|
+
if (genRef.current !== currentGen)
|
|
85
|
+
return; // bị reset trong RAF
|
|
75
86
|
setContentVisible(true);
|
|
76
87
|
setFrozenH(null);
|
|
77
|
-
attachResizeObserver();
|
|
88
|
+
attachResizeObserver(currentGen);
|
|
78
89
|
});
|
|
79
90
|
}, [attachResizeObserver]);
|
|
80
91
|
const getMaxHeight = useCallback(() => {
|
|
@@ -88,20 +99,17 @@ export function useAnimatedListHeight() {
|
|
|
88
99
|
const getHeightPx = useCallback(() => { var _a; return (_a = frozenH !== null && frozenH !== void 0 ? frozenH : contentMaxH) !== null && _a !== void 0 ? _a : 0; }, [frozenH, contentMaxH]);
|
|
89
100
|
return {
|
|
90
101
|
contentRef,
|
|
91
|
-
// states
|
|
92
102
|
contentVisible,
|
|
93
103
|
showSkeleton,
|
|
94
104
|
relaxMaxH,
|
|
95
105
|
contentMaxH,
|
|
96
106
|
frozenH,
|
|
97
|
-
// helpers
|
|
98
107
|
getMaxHeight,
|
|
99
108
|
getHeightPx,
|
|
100
109
|
resetForInitLoad,
|
|
101
110
|
revealAfterInitLoad,
|
|
102
111
|
onSkeletonFadeOutEnd,
|
|
103
112
|
cleanup,
|
|
104
|
-
// setters for edge cases
|
|
105
113
|
setRelaxMaxH,
|
|
106
114
|
};
|
|
107
115
|
}
|
package/dist/esm/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedListHeight.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErD,MAAM,UAAU,qBAAqB;IACnC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAE3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAA;IACzD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACjD,MAAM,cAAc,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAElD,MAAM,
|
|
1
|
+
{"version":3,"file":"useAnimatedListHeight.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useAnimatedListHeight.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/components/MainWrapV4/components/notification/hook/useNotificationData.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { TAB } from '../../../constant';
|
|
1
2
|
import { NotiItem } from '../../../types/notification';
|
|
2
3
|
import React from 'react';
|
|
3
|
-
import { TAB } from '../../../constant';
|
|
4
4
|
type Counts = {
|
|
5
5
|
all: number;
|
|
6
6
|
to_me: number;
|
|
@@ -22,7 +22,7 @@ export declare function useNotificationData({ limit }: {
|
|
|
22
22
|
hasMore: boolean;
|
|
23
23
|
loadingInit: boolean;
|
|
24
24
|
loadingMore: boolean;
|
|
25
|
-
fetchFirstPage: (tab: TAB) => Promise<void>;
|
|
25
|
+
fetchFirstPage: (tab: TAB, onSettled?: () => void) => Promise<void>;
|
|
26
26
|
loadMore: () => Promise<void>;
|
|
27
27
|
resetList: () => void;
|
|
28
28
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import { TAB, TAB_NAME } from '../../../constant';
|
|
3
|
+
import React from 'react';
|
|
4
4
|
import { apiFetch } from '../../../../../lib/fetch/apiClient';
|
|
5
5
|
export function useNotificationData({ limit }) {
|
|
6
6
|
const [listData, setListData] = useState([]);
|
|
@@ -10,7 +10,12 @@ export function useNotificationData({ limit }) {
|
|
|
10
10
|
const [hasMore, setHasMore] = useState(true);
|
|
11
11
|
const [loadingInit, setLoadingInit] = useState(false);
|
|
12
12
|
const [loadingMore, setLoadingMore] = useState(false);
|
|
13
|
-
|
|
13
|
+
// Refs for mutable loading state — avoids stale closure in fetchData deps
|
|
14
|
+
const loadingInitRef = useRef(false);
|
|
15
|
+
const loadingMoreRef = useRef(false);
|
|
16
|
+
// Generation counter: fresh fetches (append=false) always increment this.
|
|
17
|
+
// Any in-flight request whose gen doesn't match current gen is discarded.
|
|
18
|
+
const genRef = useRef(0);
|
|
14
19
|
const tabs = useMemo(() => [
|
|
15
20
|
{
|
|
16
21
|
name: (React.createElement("span", { className: 'flex items-center gap-1' },
|
|
@@ -45,22 +50,35 @@ export function useNotificationData({ limit }) {
|
|
|
45
50
|
}
|
|
46
51
|
return merged;
|
|
47
52
|
}, []);
|
|
48
|
-
const fetchData = useCallback(async (tabValue, pageValue, append) => {
|
|
53
|
+
const fetchData = useCallback(async (tabValue, pageValue, append, onSettled) => {
|
|
49
54
|
var _a, _b;
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
if (append) {
|
|
56
|
+
// load-more: skip if any fetch is already in-flight
|
|
57
|
+
if (loadingInitRef.current || loadingMoreRef.current)
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Fresh fetch always supersedes previous; load-more takes the current gen
|
|
61
|
+
// so that a subsequent fresh fetch can invalidate it mid-flight.
|
|
62
|
+
const myGen = append ? genRef.current : ++genRef.current;
|
|
63
|
+
if (append) {
|
|
64
|
+
loadingMoreRef.current = true;
|
|
56
65
|
setLoadingMore(true);
|
|
57
|
-
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Cancel any in-flight load-more from the previous page
|
|
69
|
+
loadingMoreRef.current = false;
|
|
70
|
+
setLoadingMore(false);
|
|
71
|
+
loadingInitRef.current = true;
|
|
58
72
|
setLoadingInit(true);
|
|
73
|
+
}
|
|
59
74
|
try {
|
|
60
75
|
const data = (await apiFetch('/inapp-noti/notification', {
|
|
61
76
|
method: 'GET',
|
|
62
77
|
params: { tab: tabValue, page: pageValue, limit },
|
|
63
78
|
}));
|
|
79
|
+
// Discard results from a superseded request
|
|
80
|
+
if (genRef.current !== myGen)
|
|
81
|
+
return;
|
|
64
82
|
const items = (_a = data === null || data === void 0 ? void 0 : data.items) !== null && _a !== void 0 ? _a : [];
|
|
65
83
|
setCount((_b = data === null || data === void 0 ? void 0 : data.counts) !== null && _b !== void 0 ? _b : { all: 0, to_me: 0, system: 0 });
|
|
66
84
|
setListData((prev) => {
|
|
@@ -72,28 +90,39 @@ export function useNotificationData({ limit }) {
|
|
|
72
90
|
setPage(pageValue);
|
|
73
91
|
}
|
|
74
92
|
catch (error) {
|
|
93
|
+
if (genRef.current !== myGen)
|
|
94
|
+
return;
|
|
75
95
|
console.error('Error fetching notifications:', error);
|
|
76
96
|
}
|
|
77
97
|
finally {
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
98
|
+
if (genRef.current === myGen) {
|
|
99
|
+
if (append) {
|
|
100
|
+
loadingMoreRef.current = false;
|
|
101
|
+
setLoadingMore(false);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
loadingInitRef.current = false;
|
|
105
|
+
setLoadingInit(false);
|
|
106
|
+
// Only the current-gen fresh fetch notifies the caller.
|
|
107
|
+
// Stale fetches are blocked by the gen check above, so this
|
|
108
|
+
// callback is never invoked for superseded requests.
|
|
109
|
+
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
83
112
|
}
|
|
84
|
-
}, [limit,
|
|
113
|
+
}, [limit, mergeUniqueById]);
|
|
85
114
|
const resetList = useCallback(() => {
|
|
86
115
|
setListData([]);
|
|
87
116
|
setPage(1);
|
|
88
117
|
setHasMore(true);
|
|
89
118
|
}, []);
|
|
90
119
|
const loadMore = useCallback(async () => {
|
|
91
|
-
if (
|
|
120
|
+
if (loadingInitRef.current || loadingMoreRef.current)
|
|
92
121
|
return;
|
|
93
122
|
if (!hasMore)
|
|
94
123
|
return;
|
|
95
124
|
await fetchData(activeTab, page + 1, true);
|
|
96
|
-
}, [activeTab, page, hasMore,
|
|
125
|
+
}, [activeTab, page, hasMore, fetchData]);
|
|
97
126
|
return {
|
|
98
127
|
// state
|
|
99
128
|
listData,
|
|
@@ -106,7 +135,7 @@ export function useNotificationData({ limit }) {
|
|
|
106
135
|
loadingInit,
|
|
107
136
|
loadingMore,
|
|
108
137
|
// actions
|
|
109
|
-
fetchFirstPage: (tab) => fetchData(tab, 1, false),
|
|
138
|
+
fetchFirstPage: (tab, onSettled) => fetchData(tab, 1, false, onSettled),
|
|
110
139
|
loadMore,
|
|
111
140
|
resetList,
|
|
112
141
|
};
|
package/dist/esm/components/MainWrapV4/components/notification/hook/useNotificationData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationData.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useNotificationData.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useNotificationData.js","sourceRoot":"","sources":["../../../../../../../src/components/MainWrapV4/components/notification/hook/useNotificationData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ const Notification = ({ unreadCount }) => {
|
|
|
20
20
|
return;
|
|
21
21
|
noti.resetList();
|
|
22
22
|
animated.resetForInitLoad();
|
|
23
|
-
noti.fetchFirstPage(noti.activeTab
|
|
23
|
+
noti.fetchFirstPage(noti.activeTab, () => animated.revealAfterInitLoad());
|
|
24
24
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25
25
|
}, [showModal, noti.activeTab]);
|
|
26
26
|
// infinite scroll only on list mode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/MainWrapV4/components/notification/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,MAAM,KAAK,GAAG,EAAE,CAAA;AAEhB,MAAM,YAAY,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAA;IAEvF,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;IAEpC,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAA;IAE5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAElD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;IAExC,yCAAyC;IACzC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,QAAQ,CAAC,gBAAgB,EAAE,CAAA;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/MainWrapV4/components/notification/index.tsx"],"names":[],"mappings":"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"}
|