Minor fix

This commit is contained in:
Omar Oughriss 2025-10-31 16:53:01 +01:00
parent 7982f7b300
commit ed54f2e7e2

View File

@ -63,7 +63,7 @@ export default function FoldersPage() {
}
// Function to fetch folder private data
const fetchFolderPrivateData = async (processId: string, stateId: string) => {
const fetchFolderPrivateData = useCallback(async (processId: string, stateId: string) => {
if (!myFolderProcesses.includes(processId)) return;
try {
const messageBus = MessageBus.getInstance(iframeUrl);
@ -73,7 +73,7 @@ export default function FoldersPage() {
} catch (err) {
console.error('Error fetching folder private data:', err);
}
};
}, [myFolderProcesses]);
// Function to load folders from 4NK processes (adapted to new FolderData model)
const loadFoldersFrom4NK = useCallback(() => {
@ -82,6 +82,7 @@ export default function FoldersPage() {
const folderData: FolderData[] = [];
let hasAllPrivateData = true;
let hasFoldersToLoad = false;
const missingPrivateData: Array<{processId: string, stateId: string}> = [];
Object.entries(folderProcesses).forEach(([processId, process]: [string, any]) => {
// Only include processes that belong to the user (myFolderProcesses)
@ -99,10 +100,10 @@ export default function FoldersPage() {
// Get private data for this state if available
const privateData = folderPrivateData[latestState.state_id];
// If we don't have private data yet, trigger fetch and mark as incomplete
// If we don't have private data yet, mark as incomplete and collect missing data
if (!privateData) {
hasAllPrivateData = false;
setTimeout(() => fetchFolderPrivateData(processId, latestState.state_id), 0);
missingPrivateData.push({processId, stateId: latestState.state_id});
return; // Skip creating folder until we have private data
}
@ -122,6 +123,12 @@ export default function FoldersPage() {
// Manage loading state
if (hasFoldersToLoad && !hasAllPrivateData) {
setLoadingFolders(true);
// Fetch missing private data (but only once per missing item)
missingPrivateData.forEach(({processId, stateId}) => {
if (!folderPrivateData[stateId]) {
fetchFolderPrivateData(processId, stateId);
}
});
} else if (hasAllPrivateData) {
setLoadingFolders(false);
setFolders(folderData);
@ -193,13 +200,6 @@ export default function FoldersPage() {
}
}, [folderProcesses, myFolderProcesses, loadFoldersFrom4NK]);
// Update folders when private data changes
useEffect(() => {
if (folderProcesses && Object.keys(folderPrivateData).length > 0) {
loadFoldersFrom4NK();
}
}, [folderPrivateData, loadFoldersFrom4NK, folderProcesses]);
// Filter and sort folders
const filteredFolders = folders.filter(folder => {
const matchesSearch = folder.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
@ -291,7 +291,7 @@ export default function FoldersPage() {
showNotification("error", "Erreur lors de la création du dossier");
});
},
[isConnected, userPairingId, loadFoldersFrom4NK]
[isConnected, userPairingId]
);
// Auth connection handler