@replyke/core 5.0.16 → 5.0.18
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/hooks/app-notifications/useAppNotificationsData.js +63 -49
- package/dist/cjs/hooks/app-notifications/useAppNotificationsData.js.map +1 -1
- package/dist/cjs/hooks/app-notifications/useFetchAppNotifications.js +51 -19
- package/dist/cjs/hooks/app-notifications/useFetchAppNotifications.js.map +1 -1
- package/dist/cjs/hooks/comments/useCommentSectionData.d.ts +1 -0
- package/dist/cjs/hooks/comments/useCommentSectionData.js +8 -8
- package/dist/cjs/hooks/comments/useCommentSectionData.js.map +1 -1
- package/dist/esm/hooks/app-notifications/useAppNotificationsData.js +63 -49
- package/dist/esm/hooks/app-notifications/useAppNotificationsData.js.map +1 -1
- package/dist/esm/hooks/app-notifications/useFetchAppNotifications.js +52 -20
- package/dist/esm/hooks/app-notifications/useFetchAppNotifications.js.map +1 -1
- package/dist/esm/hooks/comments/useCommentSectionData.d.ts +1 -0
- package/dist/esm/hooks/comments/useCommentSectionData.js +8 -8
- package/dist/esm/hooks/comments/useCommentSectionData.js.map +1 -1
- package/package.json +1 -1
|
@@ -71,10 +71,12 @@ function useAppNotificationsData(_a) {
|
|
|
71
71
|
var _c = (0, react_1.useState)([]), appNotifications = _c[0], setAppNotifications = _c[1];
|
|
72
72
|
var _d = (0, react_1.useState)(0), unreadAppNotificationsCount = _d[0], setUnreadAppNotificationsCount = _d[1];
|
|
73
73
|
var _e = (0, react_1.useState)(1), page = _e[0], setPage = _e[1];
|
|
74
|
-
|
|
75
|
-
var _f = (0, react_1.useState)(true),
|
|
76
|
-
var
|
|
77
|
-
|
|
74
|
+
// Consolidate loading state management
|
|
75
|
+
var _f = (0, react_1.useState)(true), loading = _f[0], setLoading = _f[1];
|
|
76
|
+
var _g = (0, react_1.useState)(true), hasMore = _g[0], setHasMore = _g[1];
|
|
77
|
+
// Track initialization to prevent multiple initial loads
|
|
78
|
+
var initializedRef = (0, react_1.useRef)(false);
|
|
79
|
+
var requestInFlightRef = (0, react_1.useRef)(false);
|
|
78
80
|
var fetchAppNotifications = (0, useFetchAppNotifications_1.default)();
|
|
79
81
|
var countUnreadNotifications = (0, useCountUnreadNotifications_1.default)();
|
|
80
82
|
var markNotificationAsRead = (0, useMarkNotificationAsRead_1.default)();
|
|
@@ -83,46 +85,46 @@ function useAppNotificationsData(_a) {
|
|
|
83
85
|
return __generator(this, function (_a) {
|
|
84
86
|
switch (_a.label) {
|
|
85
87
|
case 0:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
// Prevent concurrent reset calls
|
|
89
|
+
if (requestInFlightRef.current)
|
|
90
|
+
return [2 /*return*/];
|
|
91
|
+
_a.label = 1;
|
|
92
|
+
case 1:
|
|
93
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
94
|
+
requestInFlightRef.current = true;
|
|
95
|
+
setLoading(true);
|
|
96
|
+
setHasMore(true);
|
|
91
97
|
setPage(1);
|
|
92
98
|
setAppNotifications([]);
|
|
93
99
|
return [4 /*yield*/, fetchAppNotifications({
|
|
94
100
|
page: 1,
|
|
95
101
|
limit: limit,
|
|
96
102
|
})];
|
|
97
|
-
case
|
|
103
|
+
case 2:
|
|
98
104
|
newAppNotifications = _a.sent();
|
|
99
105
|
if (newAppNotifications) {
|
|
100
106
|
completeNotifications = (0, addNotificationsMessages_1.default)(newAppNotifications, notificationTemplates);
|
|
101
107
|
setAppNotifications(completeNotifications);
|
|
102
|
-
|
|
103
|
-
hasMore.current = false;
|
|
104
|
-
setHasMoreState(false);
|
|
105
|
-
}
|
|
108
|
+
setHasMore(newAppNotifications.length >= limit);
|
|
106
109
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
err_1 = _a.sent();
|
|
110
|
-
(0, handleError_1.handleError)(err_1, "Failed to refesh notifications:");
|
|
111
|
-
return [3 /*break*/, 4];
|
|
110
|
+
initializedRef.current = true;
|
|
111
|
+
return [3 /*break*/, 5];
|
|
112
112
|
case 3:
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
err_1 = _a.sent();
|
|
114
|
+
(0, handleError_1.handleError)(err_1, "Failed to refresh notifications:");
|
|
115
|
+
return [3 /*break*/, 5];
|
|
116
|
+
case 4:
|
|
117
|
+
setLoading(false);
|
|
118
|
+
requestInFlightRef.current = false;
|
|
115
119
|
return [7 /*endfinally*/];
|
|
116
|
-
case
|
|
120
|
+
case 5: return [2 /*return*/];
|
|
117
121
|
}
|
|
118
122
|
});
|
|
119
123
|
}); }, [fetchAppNotifications, limit, notificationTemplates]);
|
|
120
124
|
var loadMore = function () {
|
|
121
|
-
if (loading
|
|
125
|
+
if (loading || !hasMore || requestInFlightRef.current)
|
|
122
126
|
return;
|
|
123
|
-
setPage(function (prevPage) {
|
|
124
|
-
return prevPage + 1;
|
|
125
|
-
});
|
|
127
|
+
setPage(function (prevPage) { return prevPage + 1; });
|
|
126
128
|
};
|
|
127
129
|
var handleMarkNotificationAsRead = function (notificationId) { return __awaiter(_this, void 0, void 0, function () {
|
|
128
130
|
var err_2;
|
|
@@ -148,6 +150,12 @@ function useAppNotificationsData(_a) {
|
|
|
148
150
|
}
|
|
149
151
|
});
|
|
150
152
|
}); };
|
|
153
|
+
// Initialize notifications on mount only
|
|
154
|
+
(0, react_1.useEffect)(function () {
|
|
155
|
+
if (!initializedRef.current) {
|
|
156
|
+
resetAppNotifications();
|
|
157
|
+
}
|
|
158
|
+
}, []);
|
|
151
159
|
// Check how many unread notifications we have
|
|
152
160
|
(0, react_1.useEffect)(function () {
|
|
153
161
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -164,9 +172,6 @@ function useAppNotificationsData(_a) {
|
|
|
164
172
|
});
|
|
165
173
|
}); })();
|
|
166
174
|
}, [countUnreadNotifications]);
|
|
167
|
-
(0, react_1.useEffect)(function () {
|
|
168
|
-
resetAppNotifications === null || resetAppNotifications === void 0 ? void 0 : resetAppNotifications();
|
|
169
|
-
}, [resetAppNotifications]);
|
|
170
175
|
// useEffect to get a new batch of app notifications
|
|
171
176
|
(0, react_1.useEffect)(function () {
|
|
172
177
|
var loadMoreNotifications = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -174,48 +179,57 @@ function useAppNotificationsData(_a) {
|
|
|
174
179
|
return __generator(this, function (_a) {
|
|
175
180
|
switch (_a.label) {
|
|
176
181
|
case 0:
|
|
177
|
-
|
|
178
|
-
|
|
182
|
+
// Prevent concurrent requests and ensure we're initialized
|
|
183
|
+
if (requestInFlightRef.current || !initializedRef.current)
|
|
184
|
+
return [2 /*return*/];
|
|
185
|
+
_a.label = 1;
|
|
186
|
+
case 1:
|
|
187
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
188
|
+
requestInFlightRef.current = true;
|
|
189
|
+
setLoading(true);
|
|
179
190
|
return [4 /*yield*/, fetchAppNotifications({
|
|
180
191
|
page: page,
|
|
181
192
|
limit: limit,
|
|
182
193
|
})];
|
|
183
|
-
case
|
|
194
|
+
case 2:
|
|
184
195
|
newAppNotifications = _a.sent();
|
|
185
196
|
if (newAppNotifications) {
|
|
186
197
|
completeNotifications_1 = (0, addNotificationsMessages_1.default)(newAppNotifications, notificationTemplates);
|
|
187
198
|
setAppNotifications(function (prevEntities) {
|
|
188
199
|
return __spreadArray(__spreadArray([], prevEntities, true), completeNotifications_1, true);
|
|
189
200
|
});
|
|
190
|
-
|
|
191
|
-
hasMore.current = false;
|
|
192
|
-
}
|
|
201
|
+
setHasMore(newAppNotifications.length >= limit);
|
|
193
202
|
}
|
|
194
|
-
return [3 /*break*/,
|
|
195
|
-
case
|
|
203
|
+
return [3 /*break*/, 5];
|
|
204
|
+
case 3:
|
|
196
205
|
err_3 = _a.sent();
|
|
197
206
|
(0, handleError_1.handleError)(err_3, "Loading more app notifications failed:");
|
|
198
|
-
return [3 /*break*/,
|
|
199
|
-
case
|
|
200
|
-
|
|
207
|
+
return [3 /*break*/, 5];
|
|
208
|
+
case 4:
|
|
209
|
+
setLoading(false);
|
|
210
|
+
requestInFlightRef.current = false;
|
|
201
211
|
return [7 /*endfinally*/];
|
|
202
|
-
case
|
|
212
|
+
case 5: return [2 /*return*/];
|
|
203
213
|
}
|
|
204
214
|
});
|
|
205
215
|
}); };
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
// Maybe we can do something with debounce? So it will only allow the page state to increase by 1 until it finsihed loading?
|
|
209
|
-
// EDIT: 've added it back aftr checking that indeed this is the issue. Let's keep it safe and find a way to fix it after
|
|
210
|
-
if (page > 1 && hasMore.current && !loading.current) {
|
|
216
|
+
// Only load more pages after initial load (page > 1) and when we have more data
|
|
217
|
+
if (page > 1 && hasMore && !loading && initializedRef.current) {
|
|
211
218
|
loadMoreNotifications();
|
|
212
219
|
}
|
|
213
|
-
}, [page]);
|
|
220
|
+
}, [page, hasMore, loading, fetchAppNotifications, limit, notificationTemplates]);
|
|
221
|
+
// Cleanup on unmount
|
|
222
|
+
(0, react_1.useEffect)(function () {
|
|
223
|
+
return function () {
|
|
224
|
+
requestInFlightRef.current = false;
|
|
225
|
+
initializedRef.current = false;
|
|
226
|
+
};
|
|
227
|
+
}, []);
|
|
214
228
|
return {
|
|
215
229
|
appNotifications: appNotifications,
|
|
216
230
|
unreadAppNotificationsCount: unreadAppNotificationsCount,
|
|
217
|
-
loading:
|
|
218
|
-
hasMore:
|
|
231
|
+
loading: loading,
|
|
232
|
+
hasMore: hasMore,
|
|
219
233
|
loadMore: loadMore,
|
|
220
234
|
markNotificationAsRead: handleMarkNotificationAsRead,
|
|
221
235
|
resetAppNotifications: resetAppNotifications,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppNotificationsData.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useAppNotificationsData.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiE;AACjE,wFAAkE;AAClE,8FAAwE;AAKxE,0FAAoE;AACpE,uDAAsD;AACtD,oGAA8E;AAiB9E,SAAS,uBAAuB,CAAC,EAGF;IAH/B,
|
|
1
|
+
{"version":3,"file":"useAppNotificationsData.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useAppNotificationsData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,36 +43,68 @@ var react_1 = require("react");
|
|
|
43
43
|
var useAxiosPrivate_1 = __importDefault(require("../../config/useAxiosPrivate"));
|
|
44
44
|
var useProject_1 = __importDefault(require("../projects/useProject"));
|
|
45
45
|
var useUser_1 = __importDefault(require("../users/useUser"));
|
|
46
|
+
// Cache for deduplicating concurrent requests
|
|
47
|
+
var requestCache = new Map();
|
|
46
48
|
function useFetchAppNotifications() {
|
|
47
49
|
var _this = this;
|
|
48
50
|
var axios = (0, useAxiosPrivate_1.default)();
|
|
49
51
|
var projectId = (0, useProject_1.default)().projectId;
|
|
50
52
|
var user = (0, useUser_1.default)().user;
|
|
53
|
+
var abortControllerRef = (0, react_1.useRef)(null);
|
|
51
54
|
var fetchAppNotifications = (0, react_1.useCallback)(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
|
|
52
|
-
var
|
|
55
|
+
var cacheKey, requestPromise;
|
|
53
56
|
var page = _b.page, limit = _b.limit;
|
|
54
57
|
return __generator(this, function (_c) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (!user) {
|
|
58
|
-
throw new Error("No authenticated user");
|
|
59
|
-
}
|
|
60
|
-
if (!projectId) {
|
|
61
|
-
throw new Error("No projectId available.");
|
|
62
|
-
}
|
|
63
|
-
return [4 /*yield*/, axios.get("/".concat(projectId, "/app-notifications"), {
|
|
64
|
-
params: {
|
|
65
|
-
page: page,
|
|
66
|
-
limit: limit,
|
|
67
|
-
},
|
|
68
|
-
withCredentials: true,
|
|
69
|
-
})];
|
|
70
|
-
case 1:
|
|
71
|
-
response = _c.sent();
|
|
72
|
-
return [2 /*return*/, response.data];
|
|
58
|
+
if (!user) {
|
|
59
|
+
throw new Error("No authenticated user");
|
|
73
60
|
}
|
|
61
|
+
if (!projectId) {
|
|
62
|
+
throw new Error("No projectId available.");
|
|
63
|
+
}
|
|
64
|
+
cacheKey = "".concat(projectId, "-").concat(page, "-").concat(limit);
|
|
65
|
+
// Return existing request if in progress
|
|
66
|
+
if (requestCache.has(cacheKey)) {
|
|
67
|
+
return [2 /*return*/, requestCache.get(cacheKey)];
|
|
68
|
+
}
|
|
69
|
+
// Cancel any previous request
|
|
70
|
+
if (abortControllerRef.current) {
|
|
71
|
+
abortControllerRef.current.abort();
|
|
72
|
+
}
|
|
73
|
+
// Create new abort controller
|
|
74
|
+
abortControllerRef.current = new AbortController();
|
|
75
|
+
requestPromise = axios.get("/".concat(projectId, "/app-notifications"), {
|
|
76
|
+
params: {
|
|
77
|
+
page: page,
|
|
78
|
+
limit: limit,
|
|
79
|
+
},
|
|
80
|
+
withCredentials: true,
|
|
81
|
+
signal: abortControllerRef.current.signal,
|
|
82
|
+
}).then(function (response) {
|
|
83
|
+
// Clean up cache entry on successful completion
|
|
84
|
+
requestCache.delete(cacheKey);
|
|
85
|
+
return response.data;
|
|
86
|
+
}).catch(function (error) {
|
|
87
|
+
// Clean up cache entry on error
|
|
88
|
+
requestCache.delete(cacheKey);
|
|
89
|
+
// Don't throw if request was aborted
|
|
90
|
+
if (error.name === 'AbortError') {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
throw error;
|
|
94
|
+
});
|
|
95
|
+
// Store request in cache
|
|
96
|
+
requestCache.set(cacheKey, requestPromise);
|
|
97
|
+
return [2 /*return*/, requestPromise];
|
|
74
98
|
});
|
|
75
99
|
}); }, [projectId, axios, user]);
|
|
100
|
+
// Cleanup on unmount
|
|
101
|
+
(0, react_1.useEffect)(function () {
|
|
102
|
+
return function () {
|
|
103
|
+
if (abortControllerRef.current) {
|
|
104
|
+
abortControllerRef.current.abort();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}, []);
|
|
76
108
|
return fetchAppNotifications;
|
|
77
109
|
}
|
|
78
110
|
exports.default = useFetchAppNotifications;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchAppNotifications.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useFetchAppNotifications.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"useFetchAppNotifications.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useFetchAppNotifications.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAuD;AACvD,iFAA2D;AAC3D,sEAAgD;AAEhD,6DAAuC;AAEvC,8CAA8C;AAC9C,IAAM,YAAY,GAAG,IAAI,GAAG,EAA6C,CAAC;AAE1E,SAAS,wBAAwB;IAAjC,iBA0EC;IAzEC,IAAM,KAAK,GAAG,IAAA,yBAAe,GAAE,CAAC;IACxB,IAAA,SAAS,GAAK,IAAA,oBAAU,GAAE,UAAjB,CAAkB;IAC3B,IAAA,IAAI,GAAK,IAAA,iBAAO,GAAE,KAAd,CAAe;IAC3B,IAAM,kBAAkB,GAAG,IAAA,cAAM,EAAyB,IAAI,CAAC,CAAC;IAEhE,IAAM,qBAAqB,GAAG,IAAA,mBAAW,EACvC,gEAAO,EAAgD;;YAA9C,IAAI,UAAA,EAAE,KAAK,WAAA;;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAGK,QAAQ,GAAG,UAAG,SAAS,cAAI,IAAI,cAAI,KAAK,CAAE,CAAC;YAEjD,yCAAyC;YACzC,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,sBAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAC;YACrC,CAAC;YAED,8BAA8B;YAC9B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;YAED,8BAA8B;YAC9B,kBAAkB,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;YAE7C,cAAc,GAAG,KAAK,CAAC,GAAG,CAC9B,WAAI,SAAS,uBAAoB,EACjC;gBACE,MAAM,EAAE;oBACN,IAAI,MAAA;oBACJ,KAAK,OAAA;iBACN;gBACD,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM;aAC1C,CACF,CAAC,IAAI,CAAC,UAAA,QAAQ;gBACb,gDAAgD;gBAChD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAgC,CAAC;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK;gBACZ,gCAAgC;gBAChC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,qCAAqC;gBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,yBAAyB;YACzB,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAE3C,sBAAO,cAAc,EAAC;;SACvB,EACD,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CACzB,CAAC;IAEF,qBAAqB;IACrB,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,kBAAe,wBAAwB,CAAC"}
|
|
@@ -106,9 +106,9 @@ function useCommentSectionData(props) {
|
|
|
106
106
|
}, [setRepliedToComment]);
|
|
107
107
|
var handleCreateComment = (0, react_1.useCallback)(function (props) { return __awaiter(_this, void 0, void 0, function () {
|
|
108
108
|
var parentId, content, gif, mentions, filteredMentions, TEMP_ID, tempNewComment, newCommentData, err_1;
|
|
109
|
-
var _a, _b;
|
|
110
|
-
return __generator(this, function (
|
|
111
|
-
switch (
|
|
109
|
+
var _a, _b, _c;
|
|
110
|
+
return __generator(this, function (_d) {
|
|
111
|
+
switch (_d.label) {
|
|
112
112
|
case 0:
|
|
113
113
|
parentId = props.parentId, content = props.content, gif = props.gif, mentions = props.mentions;
|
|
114
114
|
if (submittingComment.current)
|
|
@@ -164,19 +164,19 @@ function useCommentSectionData(props) {
|
|
|
164
164
|
setRepliedToComment(null);
|
|
165
165
|
setShowReplyBanner(false);
|
|
166
166
|
setPushMention(null);
|
|
167
|
-
|
|
167
|
+
_d.label = 1;
|
|
168
168
|
case 1:
|
|
169
|
-
|
|
169
|
+
_d.trys.push([1, 3, 4, 5]);
|
|
170
170
|
addCommentsToTree([tempNewComment], true);
|
|
171
171
|
return [4 /*yield*/, createComment({
|
|
172
172
|
entityId: entity.id,
|
|
173
|
-
parentCommentId: repliedToComment === null || repliedToComment === void 0 ? void 0 : repliedToComment.id,
|
|
173
|
+
parentCommentId: (_c = parentId !== null && parentId !== void 0 ? parentId : repliedToComment === null || repliedToComment === void 0 ? void 0 : repliedToComment.id) !== null && _c !== void 0 ? _c : null,
|
|
174
174
|
content: content,
|
|
175
175
|
gif: gif,
|
|
176
176
|
mentions: filteredMentions,
|
|
177
177
|
})];
|
|
178
178
|
case 2:
|
|
179
|
-
newCommentData =
|
|
179
|
+
newCommentData = _d.sent();
|
|
180
180
|
if (newCommentData) {
|
|
181
181
|
removeCommentFromTree(TEMP_ID);
|
|
182
182
|
addCommentsToTree([newCommentData], true);
|
|
@@ -188,7 +188,7 @@ function useCommentSectionData(props) {
|
|
|
188
188
|
});
|
|
189
189
|
return [3 /*break*/, 5];
|
|
190
190
|
case 3:
|
|
191
|
-
err_1 =
|
|
191
|
+
err_1 = _d.sent();
|
|
192
192
|
// TODO: currently we remove the temp comment from the tree but don't offer the user any option to retry. It's as if they've never sent anything and all they typed is gone. We need to add a flag for comment in the tree that says t failed so we can give he user a try again button
|
|
193
193
|
removeCommentFromTree(TEMP_ID);
|
|
194
194
|
(0, handleError_1.handleError)(err_1, "Failed to submit a new comment: ");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCommentSectionData.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useCommentSectionData.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiE;AAMjE,wEAAkD;AAElD,uDAAsD;AACtD,wEAAkD;AAClD,wEAAkD;AAClD,0EAAoD;AACpD,sEAAgD;AAChD,6DAAuC;AAGvC,wCAKqB;AACrB,6CAA4C;
|
|
1
|
+
{"version":3,"file":"useCommentSectionData.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useCommentSectionData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -66,10 +66,12 @@ function useAppNotificationsData(_a) {
|
|
|
66
66
|
var _c = useState([]), appNotifications = _c[0], setAppNotifications = _c[1];
|
|
67
67
|
var _d = useState(0), unreadAppNotificationsCount = _d[0], setUnreadAppNotificationsCount = _d[1];
|
|
68
68
|
var _e = useState(1), page = _e[0], setPage = _e[1];
|
|
69
|
-
|
|
70
|
-
var _f = useState(true),
|
|
71
|
-
var
|
|
72
|
-
|
|
69
|
+
// Consolidate loading state management
|
|
70
|
+
var _f = useState(true), loading = _f[0], setLoading = _f[1];
|
|
71
|
+
var _g = useState(true), hasMore = _g[0], setHasMore = _g[1];
|
|
72
|
+
// Track initialization to prevent multiple initial loads
|
|
73
|
+
var initializedRef = useRef(false);
|
|
74
|
+
var requestInFlightRef = useRef(false);
|
|
73
75
|
var fetchAppNotifications = useFetchAppNotifications();
|
|
74
76
|
var countUnreadNotifications = useCountUnreadNotifications();
|
|
75
77
|
var markNotificationAsRead = useMarkNotificationAsRead();
|
|
@@ -78,46 +80,46 @@ function useAppNotificationsData(_a) {
|
|
|
78
80
|
return __generator(this, function (_a) {
|
|
79
81
|
switch (_a.label) {
|
|
80
82
|
case 0:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
// Prevent concurrent reset calls
|
|
84
|
+
if (requestInFlightRef.current)
|
|
85
|
+
return [2 /*return*/];
|
|
86
|
+
_a.label = 1;
|
|
87
|
+
case 1:
|
|
88
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
89
|
+
requestInFlightRef.current = true;
|
|
90
|
+
setLoading(true);
|
|
91
|
+
setHasMore(true);
|
|
86
92
|
setPage(1);
|
|
87
93
|
setAppNotifications([]);
|
|
88
94
|
return [4 /*yield*/, fetchAppNotifications({
|
|
89
95
|
page: 1,
|
|
90
96
|
limit: limit,
|
|
91
97
|
})];
|
|
92
|
-
case
|
|
98
|
+
case 2:
|
|
93
99
|
newAppNotifications = _a.sent();
|
|
94
100
|
if (newAppNotifications) {
|
|
95
101
|
completeNotifications = addNotificationsMessages(newAppNotifications, notificationTemplates);
|
|
96
102
|
setAppNotifications(completeNotifications);
|
|
97
|
-
|
|
98
|
-
hasMore.current = false;
|
|
99
|
-
setHasMoreState(false);
|
|
100
|
-
}
|
|
103
|
+
setHasMore(newAppNotifications.length >= limit);
|
|
101
104
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
err_1 = _a.sent();
|
|
105
|
-
handleError(err_1, "Failed to refesh notifications:");
|
|
106
|
-
return [3 /*break*/, 4];
|
|
105
|
+
initializedRef.current = true;
|
|
106
|
+
return [3 /*break*/, 5];
|
|
107
107
|
case 3:
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
err_1 = _a.sent();
|
|
109
|
+
handleError(err_1, "Failed to refresh notifications:");
|
|
110
|
+
return [3 /*break*/, 5];
|
|
111
|
+
case 4:
|
|
112
|
+
setLoading(false);
|
|
113
|
+
requestInFlightRef.current = false;
|
|
110
114
|
return [7 /*endfinally*/];
|
|
111
|
-
case
|
|
115
|
+
case 5: return [2 /*return*/];
|
|
112
116
|
}
|
|
113
117
|
});
|
|
114
118
|
}); }, [fetchAppNotifications, limit, notificationTemplates]);
|
|
115
119
|
var loadMore = function () {
|
|
116
|
-
if (loading
|
|
120
|
+
if (loading || !hasMore || requestInFlightRef.current)
|
|
117
121
|
return;
|
|
118
|
-
setPage(function (prevPage) {
|
|
119
|
-
return prevPage + 1;
|
|
120
|
-
});
|
|
122
|
+
setPage(function (prevPage) { return prevPage + 1; });
|
|
121
123
|
};
|
|
122
124
|
var handleMarkNotificationAsRead = function (notificationId) { return __awaiter(_this, void 0, void 0, function () {
|
|
123
125
|
var err_2;
|
|
@@ -143,6 +145,12 @@ function useAppNotificationsData(_a) {
|
|
|
143
145
|
}
|
|
144
146
|
});
|
|
145
147
|
}); };
|
|
148
|
+
// Initialize notifications on mount only
|
|
149
|
+
useEffect(function () {
|
|
150
|
+
if (!initializedRef.current) {
|
|
151
|
+
resetAppNotifications();
|
|
152
|
+
}
|
|
153
|
+
}, []);
|
|
146
154
|
// Check how many unread notifications we have
|
|
147
155
|
useEffect(function () {
|
|
148
156
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -159,9 +167,6 @@ function useAppNotificationsData(_a) {
|
|
|
159
167
|
});
|
|
160
168
|
}); })();
|
|
161
169
|
}, [countUnreadNotifications]);
|
|
162
|
-
useEffect(function () {
|
|
163
|
-
resetAppNotifications === null || resetAppNotifications === void 0 ? void 0 : resetAppNotifications();
|
|
164
|
-
}, [resetAppNotifications]);
|
|
165
170
|
// useEffect to get a new batch of app notifications
|
|
166
171
|
useEffect(function () {
|
|
167
172
|
var loadMoreNotifications = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -169,48 +174,57 @@ function useAppNotificationsData(_a) {
|
|
|
169
174
|
return __generator(this, function (_a) {
|
|
170
175
|
switch (_a.label) {
|
|
171
176
|
case 0:
|
|
172
|
-
|
|
173
|
-
|
|
177
|
+
// Prevent concurrent requests and ensure we're initialized
|
|
178
|
+
if (requestInFlightRef.current || !initializedRef.current)
|
|
179
|
+
return [2 /*return*/];
|
|
180
|
+
_a.label = 1;
|
|
181
|
+
case 1:
|
|
182
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
183
|
+
requestInFlightRef.current = true;
|
|
184
|
+
setLoading(true);
|
|
174
185
|
return [4 /*yield*/, fetchAppNotifications({
|
|
175
186
|
page: page,
|
|
176
187
|
limit: limit,
|
|
177
188
|
})];
|
|
178
|
-
case
|
|
189
|
+
case 2:
|
|
179
190
|
newAppNotifications = _a.sent();
|
|
180
191
|
if (newAppNotifications) {
|
|
181
192
|
completeNotifications_1 = addNotificationsMessages(newAppNotifications, notificationTemplates);
|
|
182
193
|
setAppNotifications(function (prevEntities) {
|
|
183
194
|
return __spreadArray(__spreadArray([], prevEntities, true), completeNotifications_1, true);
|
|
184
195
|
});
|
|
185
|
-
|
|
186
|
-
hasMore.current = false;
|
|
187
|
-
}
|
|
196
|
+
setHasMore(newAppNotifications.length >= limit);
|
|
188
197
|
}
|
|
189
|
-
return [3 /*break*/,
|
|
190
|
-
case
|
|
198
|
+
return [3 /*break*/, 5];
|
|
199
|
+
case 3:
|
|
191
200
|
err_3 = _a.sent();
|
|
192
201
|
handleError(err_3, "Loading more app notifications failed:");
|
|
193
|
-
return [3 /*break*/,
|
|
194
|
-
case
|
|
195
|
-
|
|
202
|
+
return [3 /*break*/, 5];
|
|
203
|
+
case 4:
|
|
204
|
+
setLoading(false);
|
|
205
|
+
requestInFlightRef.current = false;
|
|
196
206
|
return [7 /*endfinally*/];
|
|
197
|
-
case
|
|
207
|
+
case 5: return [2 /*return*/];
|
|
198
208
|
}
|
|
199
209
|
});
|
|
200
210
|
}); };
|
|
201
|
-
//
|
|
202
|
-
|
|
203
|
-
// Maybe we can do something with debounce? So it will only allow the page state to increase by 1 until it finsihed loading?
|
|
204
|
-
// EDIT: 've added it back aftr checking that indeed this is the issue. Let's keep it safe and find a way to fix it after
|
|
205
|
-
if (page > 1 && hasMore.current && !loading.current) {
|
|
211
|
+
// Only load more pages after initial load (page > 1) and when we have more data
|
|
212
|
+
if (page > 1 && hasMore && !loading && initializedRef.current) {
|
|
206
213
|
loadMoreNotifications();
|
|
207
214
|
}
|
|
208
|
-
}, [page]);
|
|
215
|
+
}, [page, hasMore, loading, fetchAppNotifications, limit, notificationTemplates]);
|
|
216
|
+
// Cleanup on unmount
|
|
217
|
+
useEffect(function () {
|
|
218
|
+
return function () {
|
|
219
|
+
requestInFlightRef.current = false;
|
|
220
|
+
initializedRef.current = false;
|
|
221
|
+
};
|
|
222
|
+
}, []);
|
|
209
223
|
return {
|
|
210
224
|
appNotifications: appNotifications,
|
|
211
225
|
unreadAppNotificationsCount: unreadAppNotificationsCount,
|
|
212
|
-
loading:
|
|
213
|
-
hasMore:
|
|
226
|
+
loading: loading,
|
|
227
|
+
hasMore: hasMore,
|
|
214
228
|
loadMore: loadMore,
|
|
215
229
|
markNotificationAsRead: handleMarkNotificationAsRead,
|
|
216
230
|
resetAppNotifications: resetAppNotifications,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppNotificationsData.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useAppNotificationsData.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AAKxE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,wBAAwB,MAAM,wCAAwC,CAAC;AAiB9E,SAAS,uBAAuB,CAAC,EAGF;IAH/B,
|
|
1
|
+
{"version":3,"file":"useAppNotificationsData.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useAppNotificationsData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,40 +34,72 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { useCallback } from "react";
|
|
37
|
+
import { useCallback, useRef, useEffect } from "react";
|
|
38
38
|
import useAxiosPrivate from "../../config/useAxiosPrivate";
|
|
39
39
|
import useProject from "../projects/useProject";
|
|
40
40
|
import useUser from "../users/useUser";
|
|
41
|
+
// Cache for deduplicating concurrent requests
|
|
42
|
+
var requestCache = new Map();
|
|
41
43
|
function useFetchAppNotifications() {
|
|
42
44
|
var _this = this;
|
|
43
45
|
var axios = useAxiosPrivate();
|
|
44
46
|
var projectId = useProject().projectId;
|
|
45
47
|
var user = useUser().user;
|
|
48
|
+
var abortControllerRef = useRef(null);
|
|
46
49
|
var fetchAppNotifications = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
|
|
47
|
-
var
|
|
50
|
+
var cacheKey, requestPromise;
|
|
48
51
|
var page = _b.page, limit = _b.limit;
|
|
49
52
|
return __generator(this, function (_c) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (!user) {
|
|
53
|
-
throw new Error("No authenticated user");
|
|
54
|
-
}
|
|
55
|
-
if (!projectId) {
|
|
56
|
-
throw new Error("No projectId available.");
|
|
57
|
-
}
|
|
58
|
-
return [4 /*yield*/, axios.get("/".concat(projectId, "/app-notifications"), {
|
|
59
|
-
params: {
|
|
60
|
-
page: page,
|
|
61
|
-
limit: limit,
|
|
62
|
-
},
|
|
63
|
-
withCredentials: true,
|
|
64
|
-
})];
|
|
65
|
-
case 1:
|
|
66
|
-
response = _c.sent();
|
|
67
|
-
return [2 /*return*/, response.data];
|
|
53
|
+
if (!user) {
|
|
54
|
+
throw new Error("No authenticated user");
|
|
68
55
|
}
|
|
56
|
+
if (!projectId) {
|
|
57
|
+
throw new Error("No projectId available.");
|
|
58
|
+
}
|
|
59
|
+
cacheKey = "".concat(projectId, "-").concat(page, "-").concat(limit);
|
|
60
|
+
// Return existing request if in progress
|
|
61
|
+
if (requestCache.has(cacheKey)) {
|
|
62
|
+
return [2 /*return*/, requestCache.get(cacheKey)];
|
|
63
|
+
}
|
|
64
|
+
// Cancel any previous request
|
|
65
|
+
if (abortControllerRef.current) {
|
|
66
|
+
abortControllerRef.current.abort();
|
|
67
|
+
}
|
|
68
|
+
// Create new abort controller
|
|
69
|
+
abortControllerRef.current = new AbortController();
|
|
70
|
+
requestPromise = axios.get("/".concat(projectId, "/app-notifications"), {
|
|
71
|
+
params: {
|
|
72
|
+
page: page,
|
|
73
|
+
limit: limit,
|
|
74
|
+
},
|
|
75
|
+
withCredentials: true,
|
|
76
|
+
signal: abortControllerRef.current.signal,
|
|
77
|
+
}).then(function (response) {
|
|
78
|
+
// Clean up cache entry on successful completion
|
|
79
|
+
requestCache.delete(cacheKey);
|
|
80
|
+
return response.data;
|
|
81
|
+
}).catch(function (error) {
|
|
82
|
+
// Clean up cache entry on error
|
|
83
|
+
requestCache.delete(cacheKey);
|
|
84
|
+
// Don't throw if request was aborted
|
|
85
|
+
if (error.name === 'AbortError') {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
throw error;
|
|
89
|
+
});
|
|
90
|
+
// Store request in cache
|
|
91
|
+
requestCache.set(cacheKey, requestPromise);
|
|
92
|
+
return [2 /*return*/, requestPromise];
|
|
69
93
|
});
|
|
70
94
|
}); }, [projectId, axios, user]);
|
|
95
|
+
// Cleanup on unmount
|
|
96
|
+
useEffect(function () {
|
|
97
|
+
return function () {
|
|
98
|
+
if (abortControllerRef.current) {
|
|
99
|
+
abortControllerRef.current.abort();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}, []);
|
|
71
103
|
return fetchAppNotifications;
|
|
72
104
|
}
|
|
73
105
|
export default useFetchAppNotifications;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchAppNotifications.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useFetchAppNotifications.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useFetchAppNotifications.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications/useFetchAppNotifications.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,8CAA8C;AAC9C,IAAM,YAAY,GAAG,IAAI,GAAG,EAA6C,CAAC;AAE1E,SAAS,wBAAwB;IAAjC,iBA0EC;IAzEC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAC3B,IAAA,IAAI,GAAK,OAAO,EAAE,KAAd,CAAe;IAC3B,IAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,IAAM,qBAAqB,GAAG,WAAW,CACvC,gEAAO,EAAgD;;YAA9C,IAAI,UAAA,EAAE,KAAK,WAAA;;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAGK,QAAQ,GAAG,UAAG,SAAS,cAAI,IAAI,cAAI,KAAK,CAAE,CAAC;YAEjD,yCAAyC;YACzC,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,sBAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAC;YACrC,CAAC;YAED,8BAA8B;YAC9B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;YAED,8BAA8B;YAC9B,kBAAkB,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;YAE7C,cAAc,GAAG,KAAK,CAAC,GAAG,CAC9B,WAAI,SAAS,uBAAoB,EACjC;gBACE,MAAM,EAAE;oBACN,IAAI,MAAA;oBACJ,KAAK,OAAA;iBACN;gBACD,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM;aAC1C,CACF,CAAC,IAAI,CAAC,UAAA,QAAQ;gBACb,gDAAgD;gBAChD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAgC,CAAC;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK;gBACZ,gCAAgC;gBAChC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,qCAAqC;gBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,yBAAyB;YACzB,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAE3C,sBAAO,cAAc,EAAC;;SACvB,EACD,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CACzB,CAAC;IAEF,qBAAqB;IACrB,SAAS,CAAC;QACR,OAAO;YACL,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -101,9 +101,9 @@ function useCommentSectionData(props) {
|
|
|
101
101
|
}, [setRepliedToComment]);
|
|
102
102
|
var handleCreateComment = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
|
|
103
103
|
var parentId, content, gif, mentions, filteredMentions, TEMP_ID, tempNewComment, newCommentData, err_1;
|
|
104
|
-
var _a, _b;
|
|
105
|
-
return __generator(this, function (
|
|
106
|
-
switch (
|
|
104
|
+
var _a, _b, _c;
|
|
105
|
+
return __generator(this, function (_d) {
|
|
106
|
+
switch (_d.label) {
|
|
107
107
|
case 0:
|
|
108
108
|
parentId = props.parentId, content = props.content, gif = props.gif, mentions = props.mentions;
|
|
109
109
|
if (submittingComment.current)
|
|
@@ -159,19 +159,19 @@ function useCommentSectionData(props) {
|
|
|
159
159
|
setRepliedToComment(null);
|
|
160
160
|
setShowReplyBanner(false);
|
|
161
161
|
setPushMention(null);
|
|
162
|
-
|
|
162
|
+
_d.label = 1;
|
|
163
163
|
case 1:
|
|
164
|
-
|
|
164
|
+
_d.trys.push([1, 3, 4, 5]);
|
|
165
165
|
addCommentsToTree([tempNewComment], true);
|
|
166
166
|
return [4 /*yield*/, createComment({
|
|
167
167
|
entityId: entity.id,
|
|
168
|
-
parentCommentId: repliedToComment === null || repliedToComment === void 0 ? void 0 : repliedToComment.id,
|
|
168
|
+
parentCommentId: (_c = parentId !== null && parentId !== void 0 ? parentId : repliedToComment === null || repliedToComment === void 0 ? void 0 : repliedToComment.id) !== null && _c !== void 0 ? _c : null,
|
|
169
169
|
content: content,
|
|
170
170
|
gif: gif,
|
|
171
171
|
mentions: filteredMentions,
|
|
172
172
|
})];
|
|
173
173
|
case 2:
|
|
174
|
-
newCommentData =
|
|
174
|
+
newCommentData = _d.sent();
|
|
175
175
|
if (newCommentData) {
|
|
176
176
|
removeCommentFromTree(TEMP_ID);
|
|
177
177
|
addCommentsToTree([newCommentData], true);
|
|
@@ -183,7 +183,7 @@ function useCommentSectionData(props) {
|
|
|
183
183
|
});
|
|
184
184
|
return [3 /*break*/, 5];
|
|
185
185
|
case 3:
|
|
186
|
-
err_1 =
|
|
186
|
+
err_1 = _d.sent();
|
|
187
187
|
// TODO: currently we remove the temp comment from the tree but don't offer the user any option to retry. It's as if they've never sent anything and all they typed is gone. We need to add a flag for comment in the tree that says t failed so we can give he user a try again button
|
|
188
188
|
removeCommentFromTree(TEMP_ID);
|
|
189
189
|
handleError(err_1, "Failed to submit a new comment: ");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCommentSectionData.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useCommentSectionData.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EACL,SAAS,EACT,cAAc,EACd,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCommentSectionData.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useCommentSectionData.tsx"],"names":[],"mappings":"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"}
|