ragflow / web /src /hooks /documentHooks.ts
balibabu
feat: add pages to ChunkMethodModal (#143)
0cf2c67
raw
history blame
4.12 kB
import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge';
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
import { api_host } from '@/utils/api';
import { buildChunkHighlights } from '@/utils/documentUtils';
import { useCallback, useMemo } from 'react';
import { IHighlight } from 'react-pdf-highlighter';
import { useDispatch, useSelector } from 'umi';
import { useGetKnowledgeSearchParams } from './routeHook';
export const useGetDocumentUrl = (documentId: string) => {
const url = useMemo(() => {
return `${api_host}/document/get/${documentId}`;
}, [documentId]);
return url;
};
export const useGetChunkHighlights = (selectedChunk: IChunk): IHighlight[] => {
const highlights: IHighlight[] = useMemo(() => {
return buildChunkHighlights(selectedChunk);
}, [selectedChunk]);
return highlights;
};
export const useFetchDocumentList = () => {
const { knowledgeId } = useGetKnowledgeSearchParams();
const dispatch = useDispatch();
const fetchKfList = useCallback(() => {
return dispatch<any>({
type: 'kFModel/getKfList',
payload: {
kb_id: knowledgeId,
},
});
}, [dispatch, knowledgeId]);
return fetchKfList;
};
export const useSetDocumentStatus = () => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
const setDocumentStatus = useCallback(
(status: boolean, documentId: string) => {
dispatch({
type: 'kFModel/updateDocumentStatus',
payload: {
doc_id: documentId,
status: Number(status),
kb_id: knowledgeId,
},
});
},
[dispatch, knowledgeId],
);
return setDocumentStatus;
};
export const useSelectDocumentList = () => {
const list: IKnowledgeFile[] = useSelector(
(state: any) => state.kFModel.data,
);
return list;
};
export const useSaveDocumentName = () => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
const saveName = useCallback(
(documentId: string, name: string) => {
return dispatch<any>({
type: 'kFModel/document_rename',
payload: {
doc_id: documentId,
name: name,
kb_id: knowledgeId,
},
});
},
[dispatch, knowledgeId],
);
return saveName;
};
export const useCreateDocument = () => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
const createDocument = useCallback(
(name: string) => {
try {
return dispatch<any>({
type: 'kFModel/document_create',
payload: {
name,
kb_id: knowledgeId,
},
});
} catch (errorInfo) {
console.log('Failed:', errorInfo);
}
},
[dispatch, knowledgeId],
);
return createDocument;
};
export const useSetDocumentParser = () => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
const setDocumentParser = useCallback(
(
parserId: string,
documentId: string,
parserConfig: IChangeParserConfigRequestBody,
) => {
try {
return dispatch<any>({
type: 'kFModel/document_change_parser',
payload: {
parser_id: parserId,
doc_id: documentId,
kb_id: knowledgeId,
parser_config: parserConfig,
},
});
} catch (errorInfo) {
console.log('Failed:', errorInfo);
}
},
[dispatch, knowledgeId],
);
return setDocumentParser;
};
export const useRemoveDocument = (documentId: string) => {
const dispatch = useDispatch();
const { knowledgeId } = useGetKnowledgeSearchParams();
const removeDocument = useCallback(() => {
try {
return dispatch<any>({
type: 'kFModel/document_rm',
payload: {
doc_id: documentId,
kb_id: knowledgeId,
},
});
} catch (errorInfo) {
console.log('Failed:', errorInfo);
}
}, [dispatch, knowledgeId, documentId]);
return removeDocument;
};