l-min-components 1.6.1226 → 1.6.1228
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/package.json
CHANGED
|
@@ -242,7 +242,7 @@ const AppMainLayout = ({ children }) => {
|
|
|
242
242
|
setIsTranslationsLoading,
|
|
243
243
|
} = useTranslation(wordBank);
|
|
244
244
|
|
|
245
|
-
const messageKit = useMessageKit(affiliatesActive
|
|
245
|
+
const messageKit = useMessageKit(/*affiliatesActive*/); // useMessageKit
|
|
246
246
|
|
|
247
247
|
return (
|
|
248
248
|
<OutletContext.Provider
|
|
@@ -211,7 +211,7 @@ import sound from "./new-notification-7-210334.mp3";
|
|
|
211
211
|
* @property {WebSocketMessageData} data - The payload containing the message details.
|
|
212
212
|
*/
|
|
213
213
|
|
|
214
|
-
const useMessageKit = (affiliatesActive
|
|
214
|
+
const useMessageKit = (/*affiliatesActive*/) => {
|
|
215
215
|
const cookieGrabber = (key = "") => {
|
|
216
216
|
const cookies = document.cookie;
|
|
217
217
|
const string = cookies.split(";").find((cookie) => {
|
|
@@ -222,8 +222,14 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
222
222
|
if (!string) return "";
|
|
223
223
|
return string.split("=")[1].trim();
|
|
224
224
|
};
|
|
225
|
+
const selectedAccount = useMemo(
|
|
226
|
+
() => ({
|
|
227
|
+
id: cookieGrabber("defaultAccountID"),
|
|
228
|
+
type: cookieGrabber("defaultAccountType"),
|
|
229
|
+
}),
|
|
230
|
+
[]
|
|
231
|
+
);
|
|
225
232
|
const buildSocketUrl = useCallback(() => {
|
|
226
|
-
if (!selectedAccount) return;
|
|
227
233
|
const baseUrl =
|
|
228
234
|
window.location.hostname.includes("staging") ||
|
|
229
235
|
window.location.hostname.includes("localhost")
|
|
@@ -234,7 +240,7 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
234
240
|
baseUrl.replace("http", "ws") +
|
|
235
241
|
`/notify/v1/ws/connect/?authorization=${token}&_account=${selectedAccount.id}`
|
|
236
242
|
);
|
|
237
|
-
}, [
|
|
243
|
+
}, []);
|
|
238
244
|
|
|
239
245
|
const affiliateAccount = cookieGrabber("affiliateAccount");
|
|
240
246
|
// console.log(affiliateAccount, affiliatesActive, "affiliate");
|
|
@@ -297,13 +303,21 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
297
303
|
}, []); // Empty dependency array ensures it's created only once
|
|
298
304
|
|
|
299
305
|
// get room grouped by course list
|
|
300
|
-
const getMessageRoomsByCourses = async (
|
|
306
|
+
const getMessageRoomsByCourses = async (
|
|
307
|
+
nextPage,
|
|
308
|
+
once = false,
|
|
309
|
+
limit = 1000
|
|
310
|
+
) => {
|
|
301
311
|
if (!selectedAccount) return;
|
|
302
312
|
// selected account exists
|
|
303
313
|
let response;
|
|
304
314
|
if (String(selectedAccount.type).toLowerCase() === "enterprise") {
|
|
305
315
|
response = await request({
|
|
306
316
|
url: nextPage || "/notify/v1/enterprise/rooms/",
|
|
317
|
+
params: {
|
|
318
|
+
limit,
|
|
319
|
+
_account: selectedAccount.id,
|
|
320
|
+
},
|
|
307
321
|
});
|
|
308
322
|
}
|
|
309
323
|
|
|
@@ -315,11 +329,19 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
315
329
|
) {
|
|
316
330
|
response = await request({
|
|
317
331
|
url: nextPage || `/notify/v1/instructor/${affiliateAccount}/rooms/`,
|
|
332
|
+
params: {
|
|
333
|
+
limit,
|
|
334
|
+
_account: selectedAccount.id,
|
|
335
|
+
},
|
|
318
336
|
});
|
|
319
337
|
} // incomplete
|
|
320
338
|
if (String(selectedAccount.type).toLowerCase() === "personal") {
|
|
321
339
|
response = await request({
|
|
322
340
|
url: nextPage || "/notify/v1/rooms/",
|
|
341
|
+
params: {
|
|
342
|
+
limit,
|
|
343
|
+
_account: selectedAccount.id,
|
|
344
|
+
},
|
|
323
345
|
});
|
|
324
346
|
} // incomplete
|
|
325
347
|
if (!response?.data) return;
|
|
@@ -341,10 +363,11 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
341
363
|
// Ensure the correct function name is called recursively
|
|
342
364
|
getMessageRoomsByCourses(next);
|
|
343
365
|
}
|
|
366
|
+
return response.data;
|
|
344
367
|
};
|
|
345
368
|
|
|
346
369
|
// get individual chats
|
|
347
|
-
const getIndividualChats = async (nextPage, roomId) => {
|
|
370
|
+
const getIndividualChats = async (nextPage, roomId, limit = 1000) => {
|
|
348
371
|
if (!selectedAccount) return;
|
|
349
372
|
|
|
350
373
|
let response;
|
|
@@ -354,6 +377,7 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
354
377
|
params: {
|
|
355
378
|
_account: selectedAccount.id,
|
|
356
379
|
room_id: roomId,
|
|
380
|
+
limit,
|
|
357
381
|
},
|
|
358
382
|
});
|
|
359
383
|
}
|
|
@@ -369,6 +393,7 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
369
393
|
params: {
|
|
370
394
|
_account: selectedAccount.id,
|
|
371
395
|
room_id: roomId,
|
|
396
|
+
limit,
|
|
372
397
|
},
|
|
373
398
|
});
|
|
374
399
|
}
|
|
@@ -457,6 +482,7 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
457
482
|
|
|
458
483
|
// Pass roomId correctly in the recursive call
|
|
459
484
|
if (responseData.next) getIndividualChats(responseData.next, roomId);
|
|
485
|
+
return responseData;
|
|
460
486
|
};
|
|
461
487
|
|
|
462
488
|
// read messages (using the latest message ID passed) and update counts
|
|
@@ -710,7 +736,6 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
710
736
|
|
|
711
737
|
// Initial data fetch effect
|
|
712
738
|
useEffect(() => {
|
|
713
|
-
if (!selectedAccount) return;
|
|
714
739
|
(async () => {
|
|
715
740
|
await getMessageRoomsByCourses();
|
|
716
741
|
// Example: Fetch initial chat for a specific room if needed on load
|
|
@@ -720,11 +745,10 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
720
745
|
// roomId: "5be9b48281ac4c2885d3b719654ed59d",
|
|
721
746
|
// });
|
|
722
747
|
})();
|
|
723
|
-
}, [
|
|
748
|
+
}, []); // Rerun when selectedAccount changes
|
|
724
749
|
|
|
725
750
|
// --- Handle Incoming WebSocket Messages ---
|
|
726
751
|
useEffect(() => {
|
|
727
|
-
if (!selectedAccount) return;
|
|
728
752
|
const socket = new WebSocket(buildSocketUrl());
|
|
729
753
|
socket.addEventListener("message", (event) => {
|
|
730
754
|
const lastJsonMessage = JSON.parse(event.data);
|
|
@@ -758,11 +782,8 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
758
782
|
console.log(
|
|
759
783
|
`Room ${roomId} not found in state, refetching room list.`
|
|
760
784
|
);
|
|
761
|
-
getMessageRoomsByCourses(null, true);
|
|
762
|
-
|
|
763
|
-
// Allow the message to be processed for the 'chats' state at least.
|
|
764
|
-
getMessageRoomsByCourses(null, true); // Refetch rooms once
|
|
765
|
-
// Continue processing the message...
|
|
785
|
+
getMessageRoomsByCourses(null, true);
|
|
786
|
+
setTimeout(() => {}, 1000);
|
|
766
787
|
}
|
|
767
788
|
|
|
768
789
|
// --- Format WebSocket data into ChatMessage ---
|
|
@@ -916,7 +937,7 @@ const useMessageKit = (affiliatesActive, selectedAccount) => {
|
|
|
916
937
|
});
|
|
917
938
|
|
|
918
939
|
return () => socket.close();
|
|
919
|
-
}, [
|
|
940
|
+
}, []); // Add dependencies
|
|
920
941
|
|
|
921
942
|
console.log(state, "messages"); // Keep console log for debugging if needed
|
|
922
943
|
// send messages to account based on account type
|