document-hooks.ts


Overview

document-hooks.ts is a utility module containing custom React hooks primarily designed to manage document-related data and operations within a knowledge base or chat system. These hooks abstract asynchronous data fetching, mutation, and state management logic by leveraging React Query and other React utilities, allowing React components to easily interact with backend services related to documents.

The file provides hooks for:

This modular approach enhances code reuse, simplifies component integration, and maintains separation of concerns between UI and data logic.


Detailed Explanation of Exports

Hooks Summary

Hook Name

Purpose

useGetDocumentUrl

Generate a URL to fetch a document file by ID.

useGetChunkHighlights

Build and manage highlights for a document chunk.

useFetchNextDocumentList

Search and paginate through documents.

useSetNextDocumentStatus

Update document active/inactive status.

useSaveNextDocumentName

Rename a document.

useCreateNextDocument

Create a new document in knowledge base.

useSetNextDocumentParser

Update parser settings for a document.

useUploadNextDocument

Upload files to create documents.

useNextWebCrawl

Initiate web crawl to create documents from web content.

useRunNextDocument

Trigger document-related processing tasks.

useFetchDocumentInfosByIds

Fetch metadata for multiple documents by IDs.

useFetchDocumentThumbnailsByIds

Fetch document thumbnails by IDs.

useRemoveNextDocument

Remove (soft delete) documents.

useDeleteDocument

Delete documents permanently.

useUploadAndParseDocument

Upload and parse documents, optionally using external service.

useParseDocument

Parse a document from a URL.

useSetDocumentMeta

Update document metadata.


Hook Details


useGetDocumentUrl(documentId?: string): () => string

Generate a URL string to fetch a document file by its ID.

Usage example:

const getUrl = useGetDocumentUrl('doc123');
const url = getUrl(); // Returns `${api_host}/document/get/doc123`

useGetChunkHighlights(selectedChunk: IChunk | IReferenceChunk): { highlights: IHighlight[]; setWidthAndHeight: (width: number, height: number) => void }

Build and manage highlights for a selected document chunk based on its size.

Implementation detail:


useFetchNextDocumentList()

Manages fetching, searching, and pagination of documents in the current knowledge base.

Implementation detail:


useSetNextDocumentStatus()

Mutation hook to update the status (active/inactive) of one or more documents.

Implementation detail:


useSaveNextDocumentName()

Mutation hook to rename a document.

Implementation detail:


useCreateNextDocument()

Mutation hook to create a new document linked to the current knowledge base.

Implementation detail:


useSetNextDocumentParser()

Mutation hook to update the parser configuration for a document.


useUploadNextDocument()

Mutation hook to upload one or multiple files to create or update documents.

Implementation detail:


useNextWebCrawl()

Mutation hook to start a web crawling job that creates documents from the provided URL.


useRunNextDocument()

Mutation hook to initiate processing of documents by IDs with options to run or delete.


useFetchDocumentInfosByIds()

Fetches metadata information for multiple documents by their IDs.


useFetchDocumentThumbnailsByIds()

Fetches thumbnails for multiple documents by their IDs.


useRemoveNextDocument()

Mutation hook to "remove" (soft delete) documents.


useDeleteDocument()

Mutation hook to permanently delete documents.


useUploadAndParseDocument(uploadMethod: string)

Mutation hook to upload and parse documents, either internally or via an external chat service, depending on uploadMethod.


useParseDocument()

Mutation hook to parse a document from a URL.


useSetDocumentMeta()

Mutation hook to update metadata for a document.


Important Implementation Details


Interaction with Other Parts of the System


Visual Diagram

flowchart TD
    A[useGetDocumentUrl]
    B[useGetChunkHighlights]
    C[useFetchNextDocumentList]
    D[useSetNextDocumentStatus]
    E[useSaveNextDocumentName]
    F[useCreateNextDocument]
    G[useSetNextDocumentParser]
    H[useUploadNextDocument]
    I[useNextWebCrawl]
    J[useRunNextDocument]
    K[useFetchDocumentInfosByIds]
    L[useFetchDocumentThumbnailsByIds]
    M[useRemoveNextDocument]
    N[useDeleteDocument]
    O[useUploadAndParseDocument]
    P[useParseDocument]
    Q[useSetDocumentMeta]

    subgraph Fetching Hooks
        C
        K
        L
    end

    subgraph Mutation Hooks
        D
        E
        F
        G
        H
        I
        J
        M
        N
        O
        P
        Q
    end

    A --> C
    B --> C
    C --> D
    C --> E
    C --> F
    C --> G
    C --> H
    C --> I
    C --> J
    C --> M
    C --> N
    C --> K
    C --> L
    C --> Q
    H --> O
    P --> Q

    style Fetching Hooks fill:#f9f,stroke:#333,stroke-width:1px,color:#333
    style Mutation Hooks fill:#bbf,stroke:#333,stroke-width:1px,color:#333

Summary

document-hooks.ts encapsulates rich and reusable document management logic tailored for a React application using React Query. It streamlines interactions with backend document-related APIs, providing hooks that cover fetching, searching, creating, updating, deleting, uploading, parsing, and processing documents. This modular design facilitates maintainability and scalability of document features within the broader knowledge base or chat platform.