This commit is contained in:
2025-11-18 14:17:53 +01:00
parent ea6e42175a
commit 3e21e72953
11 changed files with 118 additions and 130 deletions
+9 -21
View File
@@ -25,7 +25,7 @@ interface FolderNode {
parentId?: Identifier | 'root';
}
type PreviewEntry = {
type DocumentLink = {
url?: string;
contentType?: string | null;
} | null;
@@ -41,7 +41,7 @@ interface UseDetailWorkspaceArgs {
ensureFolderData: (folderId: Identifier | 'root', options?: { force?: boolean; includeDocuments?: boolean }) => Promise<void>;
detailPanelControlRef: MutableRefObject<{ open?: (args?: { documentIds?: Identifier[] }) => void; close?: () => void } | null>;
detailFolderFetchRef: MutableRefObject<Set<Identifier | 'root'>>;
previewEntries: Map<Identifier, PreviewEntry>;
documentLinks: Map<Identifier, DocumentLink>;
previewDocumentId?: Identifier | null;
activePreviewId?: Identifier | null;
openDocumentPreview?: (args: { documentIds: Identifier[] }) => void;
@@ -70,7 +70,7 @@ interface UseDetailWorkspaceResult {
inspectDocument: (docId: Identifier | null) => void;
previewActive: boolean;
previewWorkspaceDocument: DocumentLike | null;
previewWorkspaceEntry: PreviewEntry;
documentLink: DocumentLink;
resolveThumbnailUrlForDoc: (doc: DocumentLike | null) => string | null;
resolveFolderPath: (folderId?: Identifier | 'root') => Array<{ id: Identifier | 'root'; name: string }>;
}
@@ -86,7 +86,7 @@ const useDetailWorkspace = ({
ensureFolderData,
detailPanelControlRef,
detailFolderFetchRef,
previewEntries,
documentLinks,
previewDocumentId,
activePreviewId,
openDocumentPreview,
@@ -245,21 +245,9 @@ const useDetailWorkspace = ({
[folderNodes],
);
const detailPanelPreviewEntry = useMemo(() => {
if (!detailPanelDocument) {
return null;
}
return previewEntries.get(detailPanelDocument.id) || null;
}, [detailPanelDocument, previewEntries]);
const documentLink = useMemo(() => (detailPanelDocument ? documentLinks.get(detailPanelDocument.id) || null : null), [detailPanelDocument, documentLinks]);
const previewWorkspaceEntry = useMemo(() => {
if (!previewDocumentId) {
return null;
}
return previewEntries.get(previewDocumentId) || null;
}, [previewDocumentId, previewEntries]);
const previewWorkspaceDocument = useMemo(() => {
const previewWorkspaceDocument = useMemo(() => {
if (!previewDocumentId) {
return null;
}
@@ -301,7 +289,7 @@ const useDetailWorkspace = ({
tagLookupById,
onTagAdd: handleDocumentTagAdd,
onTagRemove: handleTagRemove,
previewEntry: detailPanelPreviewEntry,
documentLink,
onOpenPreview: openDocumentPreview,
activePreviewId,
onUpdateTitle: handleDocumentTitleUpdate,
@@ -335,7 +323,7 @@ const useDetailWorkspace = ({
resolveApiPath,
resolveFolderPath,
selectFolder,
detailPanelPreviewEntry,
documentLink,
tags,
tagLookupById,
],
@@ -350,7 +338,7 @@ const useDetailWorkspace = ({
inspectDocument,
previewActive,
previewWorkspaceDocument,
previewWorkspaceEntry,
documentLink,
resolveThumbnailUrlForDoc,
resolveFolderPath,
};