Minor fix
This commit is contained in:
parent
7982f7b300
commit
ed54f2e7e2
@ -63,7 +63,7 @@ export default function FoldersPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Function to fetch folder private data
|
// 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;
|
if (!myFolderProcesses.includes(processId)) return;
|
||||||
try {
|
try {
|
||||||
const messageBus = MessageBus.getInstance(iframeUrl);
|
const messageBus = MessageBus.getInstance(iframeUrl);
|
||||||
@ -73,7 +73,7 @@ export default function FoldersPage() {
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Error fetching folder private data:', err);
|
console.error('Error fetching folder private data:', err);
|
||||||
}
|
}
|
||||||
};
|
}, [myFolderProcesses]);
|
||||||
|
|
||||||
// Function to load folders from 4NK processes (adapted to new FolderData model)
|
// Function to load folders from 4NK processes (adapted to new FolderData model)
|
||||||
const loadFoldersFrom4NK = useCallback(() => {
|
const loadFoldersFrom4NK = useCallback(() => {
|
||||||
@ -82,6 +82,7 @@ export default function FoldersPage() {
|
|||||||
const folderData: FolderData[] = [];
|
const folderData: FolderData[] = [];
|
||||||
let hasAllPrivateData = true;
|
let hasAllPrivateData = true;
|
||||||
let hasFoldersToLoad = false;
|
let hasFoldersToLoad = false;
|
||||||
|
const missingPrivateData: Array<{processId: string, stateId: string}> = [];
|
||||||
|
|
||||||
Object.entries(folderProcesses).forEach(([processId, process]: [string, any]) => {
|
Object.entries(folderProcesses).forEach(([processId, process]: [string, any]) => {
|
||||||
// Only include processes that belong to the user (myFolderProcesses)
|
// 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
|
// Get private data for this state if available
|
||||||
const privateData = folderPrivateData[latestState.state_id];
|
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) {
|
if (!privateData) {
|
||||||
hasAllPrivateData = false;
|
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
|
return; // Skip creating folder until we have private data
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,6 +123,12 @@ export default function FoldersPage() {
|
|||||||
// Manage loading state
|
// Manage loading state
|
||||||
if (hasFoldersToLoad && !hasAllPrivateData) {
|
if (hasFoldersToLoad && !hasAllPrivateData) {
|
||||||
setLoadingFolders(true);
|
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) {
|
} else if (hasAllPrivateData) {
|
||||||
setLoadingFolders(false);
|
setLoadingFolders(false);
|
||||||
setFolders(folderData);
|
setFolders(folderData);
|
||||||
@ -193,13 +200,6 @@ export default function FoldersPage() {
|
|||||||
}
|
}
|
||||||
}, [folderProcesses, myFolderProcesses, loadFoldersFrom4NK]);
|
}, [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
|
// Filter and sort folders
|
||||||
const filteredFolders = folders.filter(folder => {
|
const filteredFolders = folders.filter(folder => {
|
||||||
const matchesSearch = folder.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
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");
|
showNotification("error", "Erreur lors de la création du dossier");
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
[isConnected, userPairingId, loadFoldersFrom4NK]
|
[isConnected, userPairingId]
|
||||||
);
|
);
|
||||||
|
|
||||||
// Auth connection handler
|
// Auth connection handler
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user