From cf41148942b98e23e0b1a1cdef8e1a6891e42b32 Mon Sep 17 00:00:00 2001 From: Nils Schneider Date: Tue, 2 Dec 2025 13:10:25 +0100 Subject: [PATCH] refactor: consolidate message display options into a shared MessageOptions interface. --- frontend/src/documents/hooks/useBulkDocumentActions.ts | 5 +++-- frontend/src/hooks/documents/useDocumentMutations.ts | 6 +----- frontend/src/hooks/documents/useFolderTreeActions.ts | 3 ++- frontend/src/types/documents.ts | 4 ++++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/documents/hooks/useBulkDocumentActions.ts b/frontend/src/documents/hooks/useBulkDocumentActions.ts index 374dbe6..c9c3a17 100644 --- a/frontend/src/documents/hooks/useBulkDocumentActions.ts +++ b/frontend/src/documents/hooks/useBulkDocumentActions.ts @@ -1,6 +1,7 @@ import { useCallback } from 'react'; import { assignCorrespondentsBulk } from '../../lib/apiClient'; import type { Identifier } from '../../types/identifiers'; +import type { MessageOptions } from '../../types/documents'; type BulkAssignmentResponse = { assigned?: number; @@ -18,8 +19,8 @@ interface UseBulkDocumentActionsArgs { setStatusMessage: (message: string, variant?: string) => void; selectedDocumentIds?: Identifier[]; selectedFolderIds?: Identifier[]; - handleDocumentsDelete: (ids: Identifier[], options?: { showMessage?: boolean }) => Promise; - handleFolderDelete: (id: Identifier, options?: { showMessage?: boolean }) => Promise; + handleDocumentsDelete: (ids: Identifier[], options?: MessageOptions) => Promise; + handleFolderDelete: (id: Identifier, options?: MessageOptions) => Promise; clearDocumentSelection: () => void; updateDocumentCaches?: (id: Identifier, updater: (doc: any) => any) => void; } diff --git a/frontend/src/hooks/documents/useDocumentMutations.ts b/frontend/src/hooks/documents/useDocumentMutations.ts index ad6bc44..5b95738 100644 --- a/frontend/src/hooks/documents/useDocumentMutations.ts +++ b/frontend/src/hooks/documents/useDocumentMutations.ts @@ -14,7 +14,7 @@ import { updateDocument, } from '../../lib/apiClient'; import type { DocumentId, FolderId as FolderIdentifier } from '../../types/identifiers'; -import type { Document } from '../../types/documents'; +import type { Document, MessageOptions } from '../../types/documents'; type FolderId = FolderIdentifier | 'root'; type NullableFolderId = FolderId | null; @@ -78,10 +78,6 @@ interface DocumentTagExtras { input?: { value?: string } | null; } -interface MessageOptions { - showMessage?: boolean; -} - interface UseDocumentMutationsArgs { token?: string | null; documentLookup: Map; diff --git a/frontend/src/hooks/documents/useFolderTreeActions.ts b/frontend/src/hooks/documents/useFolderTreeActions.ts index 3eff89b..ad5adf7 100644 --- a/frontend/src/hooks/documents/useFolderTreeActions.ts +++ b/frontend/src/hooks/documents/useFolderTreeActions.ts @@ -8,6 +8,7 @@ import { renameFolder as renameFolderRequest, } from '../../lib/apiClient'; import type { FolderId } from '../../types/identifiers'; +import type { MessageOptions } from '../../types/documents'; type FolderKey = FolderId | 'root'; @@ -409,7 +410,7 @@ const useFolderTreeActions = ({ ); const handleFolderDelete = useCallback( - async (folderId: FolderKey, { showMessage = true }: { showMessage?: boolean } = {}) => { + async (folderId: FolderKey, { showMessage = true }: MessageOptions = {}) => { if (!token) { if (showMessage) { setStatusMessage('Log in to manage folders.', 'error'); diff --git a/frontend/src/types/documents.ts b/frontend/src/types/documents.ts index 629ba0f..9c9cfc4 100644 --- a/frontend/src/types/documents.ts +++ b/frontend/src/types/documents.ts @@ -21,6 +21,10 @@ export interface DocumentVersion { [key: string]: unknown; } +export interface MessageOptions { + showMessage?: boolean; +} + export interface Document { id?: Identifier; title?: string | null;