Improved loadFoldersFrom4NK to get retrieve folder with his messages

This commit is contained in:
Sadrinho27 2025-11-12 09:28:14 +01:00
parent 15d9d80b52
commit dd5e55f089

View File

@ -4,7 +4,7 @@ import { createContext, useContext, useState, useEffect, useCallback, ReactNode
import MessageBus from "@/lib/4nk/MessageBus";
import { iframeUrl } from "@/app/page";
import UserStore from "@/lib/4nk/UserStore";
import { FolderData } from "@/lib/4nk/models/FolderData";
import { FolderChatData, FolderData } from "@/lib/4nk/models/FolderData";
// Interface enrichie qui inclut maintenant les membres ET les fichiers
export interface EnrichedFolderData extends FolderData {
@ -82,11 +82,13 @@ export function FourNKProvider({ children }: { children: ReactNode }) {
return;
}
// console.log(validStates);
let basePrivateData;
let mergedMessages: FolderChatData[] = [];
let mergedMessagesOwner: FolderChatData[] = [];
// validStates.forEach(state => {
validStates.forEach((state: any) => {
hasFoldersToLoad = true;
const stateToProcess = referenceState;
const stateToProcess = state;
const privateData = folderPrivateData[stateToProcess.state_id];
@ -98,29 +100,33 @@ export function FourNKProvider({ children }: { children: ReactNode }) {
}
// console.log("Données déchiffrées pour le state:", stateToProcess.state_id, privateData);
/*
// 4. CONDITION B: On vérifie si cet état contient des messages.
const hasMessages = (privateData.messages && privateData.messages.length > 0);
const hasMessagesOwner = (privateData.messages_owner && privateData.messages_owner.length > 0);
// Si cet état n'a pas de messages, on l'ignore (return)
if (!hasMessages && !hasMessagesOwner) {
return; // Passe à l'état suivant
if (privateData.messages_owner instanceof Map) {
const messageOwnerObj = Object.fromEntries(privateData.messages_owner);
mergedMessagesOwner.push(messageOwnerObj);
}
*/
if (privateData.messages instanceof Map) {
const messageObj = Object.fromEntries(privateData.messages);
mergedMessages.push(messageObj);
}
if (privateData.folderNumber) {
basePrivateData = privateData;
}
});
if (!basePrivateData) return;
folderData.push({
processId: processId,
folderNumber: mainFolderNumber, // La clé unique
name: privateData.name || `Dossier ${mainFolderNumber}`,
description: privateData.description || '',
created_at: privateData.created_at || new Date().toISOString(),
updated_at: privateData.updated_at || new Date().toISOString(),
notes: privateData.notes || [],
messages: privateData.messages || [],
messages_owner: privateData.messages_owner || [],
folderNumber: mainFolderNumber,
name: basePrivateData.name || `Dossier ${mainFolderNumber}`,
description: basePrivateData.description || '',
created_at: basePrivateData.created_at || new Date().toISOString(),
updated_at: basePrivateData.updated_at || new Date().toISOString(),
notes: basePrivateData.notes || [],
messages: mergedMessages || [],
messages_owner: mergedMessagesOwner || [],
});
// });
});
@ -136,7 +142,7 @@ export function FourNKProvider({ children }: { children: ReactNode }) {
setFolders(folderData);
setLoadingFolders(false);
}
}, [folderProcesses, myFolderProcesses, folderPrivateData, fetchFolderPrivateData, setFolders, setLoadingFolders]); // J'ai ajouté setFolders et setLoadingFolders aux dépendances
}, [folderProcesses, myFolderProcesses, folderPrivateData, fetchFolderPrivateData, setFolders, setLoadingFolders]);
const loadMembersFrom4NK = useCallback(() => {
if (!processes || !userPairingId) return;