feat: Add document move and tag mutations, refine document upload logic

This commit is contained in:
2025-12-08 16:27:13 +01:00
parent 5632d2252a
commit 3a0ef7867e
8 changed files with 709 additions and 695 deletions
@@ -18,7 +18,6 @@ interface UseDetailWorkspaceArgs {
documents: Document[];
documentLookup: Map<Identifier, Document>;
folderNodes: Map<Identifier | 'root', FolderNode>;
ensureFolderData: (folderId: Identifier | 'root', options?: { force?: boolean; includeDocuments?: boolean }) => Promise<void>;
detailPanelControlRef: MutableRefObject<{ open?: (documentId: Identifier) => void; close?: () => void } | null>;
detailFolderFetchRef: MutableRefObject<Set<Identifier | 'root'>>;
previewDocumentId?: Identifier | null;
@@ -51,11 +50,12 @@ interface UseDetailWorkspaceResult {
resolveFolderPath: (folderId?: Identifier | 'root') => Array<{ id: Identifier | 'root'; name: string }>;
}
import { listFolderContents } from '../../lib/api/apiClient';
const useDetailWorkspace = ({
documents,
documentLookup,
folderNodes,
ensureFolderData,
detailPanelControlRef,
detailFolderFetchRef,
previewDocumentId,
@@ -118,7 +118,7 @@ const useDetailWorkspace = ({
if (!node) {
if (!detailFolderFetchRef.current.has(currentId)) {
detailFolderFetchRef.current.add(currentId);
ensureFolderData(currentId, { force: false, includeDocuments: false })
listFolderContents(currentId, { include_documents: false })
.catch((error) => {
console.warn('Failed to preload folder metadata for detail path', currentId, error);
})
@@ -135,7 +135,7 @@ const useDetailWorkspace = ({
}
currentId = parentId;
}
}, [detailPanelDocument, folderNodes, ensureFolderData, detailFolderFetchRef]);
}, [detailPanelDocument, folderNodes, detailFolderFetchRef]);
const resolveFolderPath = useCallback(
(folderId) => {
@@ -198,7 +198,6 @@ const useDetailWorkspace = ({
onClose: handleDetailPanelClose,
resolveFolderPath,
folderNodes,
ensureFolderData,
}),
[
activePreviewId,
@@ -214,7 +213,6 @@ const useDetailWorkspace = ({
handleDocumentTitleUpdate,
handleDocumentTagDetach,
folderNodes,
ensureFolderData,
openDocumentPreview,
resolveFolderPath,
selectFolder,