mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-19 12:06:42 +08:00
feat: add hooks for document table and refactor document-related modal (#141)
* feat: add hooks for document table * refactor: refactor document-related modal
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
import { IChunk } from '@/interfaces/database/knowledge';
|
||||
import { IChunk, IKnowledgeFile } from '@/interfaces/database/knowledge';
|
||||
import { api_host } from '@/utils/api';
|
||||
import { buildChunkHighlights } from '@/utils/documentUtils';
|
||||
import { useMemo } from 'react';
|
||||
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(() => {
|
||||
@ -19,3 +21,139 @@ export const useGetChunkHighlights = (selectedChunk: IChunk): IHighlight[] => {
|
||||
|
||||
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) => {
|
||||
try {
|
||||
return dispatch<any>({
|
||||
type: 'kFModel/document_change_parser',
|
||||
payload: {
|
||||
parser_id: parserId,
|
||||
doc_id: documentId,
|
||||
kb_id: knowledgeId,
|
||||
},
|
||||
});
|
||||
} 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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user