Improved loadFoldersFrom4NK to get retrieve folder with his messages
This commit is contained in:
parent
15d9d80b52
commit
dd5e55f089
@ -4,7 +4,7 @@ import { createContext, useContext, useState, useEffect, useCallback, ReactNode
|
|||||||
import MessageBus from "@/lib/4nk/MessageBus";
|
import MessageBus from "@/lib/4nk/MessageBus";
|
||||||
import { iframeUrl } from "@/app/page";
|
import { iframeUrl } from "@/app/page";
|
||||||
import UserStore from "@/lib/4nk/UserStore";
|
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
|
// Interface enrichie qui inclut maintenant les membres ET les fichiers
|
||||||
export interface EnrichedFolderData extends FolderData {
|
export interface EnrichedFolderData extends FolderData {
|
||||||
@ -82,45 +82,51 @@ export function FourNKProvider({ children }: { children: ReactNode }) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(validStates);
|
let basePrivateData;
|
||||||
|
let mergedMessages: FolderChatData[] = [];
|
||||||
|
let mergedMessagesOwner: FolderChatData[] = [];
|
||||||
|
|
||||||
// validStates.forEach(state => {
|
validStates.forEach((state: any) => {
|
||||||
hasFoldersToLoad = true;
|
hasFoldersToLoad = true;
|
||||||
const stateToProcess = referenceState;
|
const stateToProcess = state;
|
||||||
|
|
||||||
const privateData = folderPrivateData[stateToProcess.state_id];
|
const privateData = folderPrivateData[stateToProcess.state_id];
|
||||||
|
|
||||||
// Si on n'a pas les données pour cet état de référence...
|
// Si on n'a pas les données pour cet état de référence...
|
||||||
if (!privateData) {
|
if (!privateData) {
|
||||||
hasAllPrivateData = false;
|
hasAllPrivateData = false;
|
||||||
missingPrivateData.push({ processId, stateId: stateToProcess.state_id });
|
missingPrivateData.push({ processId, stateId: stateToProcess.state_id });
|
||||||
return; // On quitte ce process, on réessaiera au prochain rendu
|
return; // On quitte ce process, on réessaiera au prochain rendu
|
||||||
}
|
}
|
||||||
// console.log("Données déchiffrées pour le state:", stateToProcess.state_id, privateData);
|
// console.log("Données déchiffrées pour le state:", stateToProcess.state_id, privateData);
|
||||||
|
|
||||||
/*
|
if (privateData.messages_owner instanceof Map) {
|
||||||
// 4. CONDITION B: On vérifie si cet état contient des messages.
|
const messageOwnerObj = Object.fromEntries(privateData.messages_owner);
|
||||||
const hasMessages = (privateData.messages && privateData.messages.length > 0);
|
mergedMessagesOwner.push(messageOwnerObj);
|
||||||
const hasMessagesOwner = (privateData.messages_owner && privateData.messages_owner.length > 0);
|
}
|
||||||
|
|
||||||
// Si cet état n'a pas de messages, on l'ignore (return)
|
if (privateData.messages instanceof Map) {
|
||||||
if (!hasMessages && !hasMessagesOwner) {
|
const messageObj = Object.fromEntries(privateData.messages);
|
||||||
return; // Passe à l'état suivant
|
mergedMessages.push(messageObj);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
|
if (privateData.folderNumber) {
|
||||||
|
basePrivateData = privateData;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!basePrivateData) return;
|
||||||
folderData.push({
|
folderData.push({
|
||||||
processId: processId,
|
processId: processId,
|
||||||
folderNumber: mainFolderNumber, // La clé unique
|
folderNumber: mainFolderNumber,
|
||||||
name: privateData.name || `Dossier ${mainFolderNumber}`,
|
name: basePrivateData.name || `Dossier ${mainFolderNumber}`,
|
||||||
description: privateData.description || '',
|
description: basePrivateData.description || '',
|
||||||
created_at: privateData.created_at || new Date().toISOString(),
|
created_at: basePrivateData.created_at || new Date().toISOString(),
|
||||||
updated_at: privateData.updated_at || new Date().toISOString(),
|
updated_at: basePrivateData.updated_at || new Date().toISOString(),
|
||||||
notes: privateData.notes || [],
|
notes: basePrivateData.notes || [],
|
||||||
messages: privateData.messages || [],
|
messages: mergedMessages || [],
|
||||||
messages_owner: privateData.messages_owner || [],
|
messages_owner: mergedMessagesOwner || [],
|
||||||
});
|
});
|
||||||
// });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -136,7 +142,7 @@ export function FourNKProvider({ children }: { children: ReactNode }) {
|
|||||||
setFolders(folderData);
|
setFolders(folderData);
|
||||||
setLoadingFolders(false);
|
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(() => {
|
const loadMembersFrom4NK = useCallback(() => {
|
||||||
if (!processes || !userPairingId) return;
|
if (!processes || !userPairingId) return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user