feat: Introduce FoldersManager and useFolderData to manage and display folder contents, including documents and subfolders.

This commit is contained in:
2025-12-06 22:06:53 +01:00
parent 9b79115170
commit c88c3c13d6
8 changed files with 363 additions and 51 deletions
@@ -40,6 +40,7 @@ import { useStatusToast, type ToastVariant } from '../../lib/context/StatusToast
import useAuthManager from './useAuthManager';
import useTenantManager from './useTenantManager';
import useDocuments from './useDocuments';
import FoldersManager from '../FoldersManager';
import { fetchDocument } from '../../lib/api/apiClient';
import useFolderTree from '../features/folders/useFolderTree';
import useFolderTreeActions from '../features/folders/useFolderTreeActions';
@@ -315,6 +316,12 @@ const useDocumentsWorkspace = ({
fetchDocumentById,
});
const foldersManagerRef = useRef<FoldersManager | null>(null);
if (!foldersManagerRef.current) {
foldersManagerRef.current = new FoldersManager();
}
const foldersManager = foldersManagerRef.current;
const documentLookup = useSyncExternalStore(
(onStoreChange) => documentsManager.subscribe(onStoreChange),
() => documentsManager.getSnapshot(),
@@ -1301,6 +1308,8 @@ const useDocumentsWorkspace = ({
uploadQueue,
clearUploadQueue,
documentsFilter,
documentsManager,
foldersManager,
};
// hook callers handle rendering / routing