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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "l-min-components",
3
- "version": "1.6.1226",
3
+ "version": "1.6.1228",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src/assets",
@@ -242,7 +242,7 @@ const AppMainLayout = ({ children }) => {
242
242
  setIsTranslationsLoading,
243
243
  } = useTranslation(wordBank);
244
244
 
245
- const messageKit = useMessageKit(affiliatesActive, selectedAccount); // useMessageKit
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, selectedAccount) => {
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
- }, [selectedAccount?.id]);
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 (nextPage, once = false) => {
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
- }, [selectedAccount?.id]); // Rerun when selectedAccount changes
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); // Refetch rooms once
762
- // Room not found, trigger refetch but DO NOT return early.
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
- }, [selectedAccount?.id, buildSocketUrl, readRoomMessages]); // Add dependencies
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