mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? Fix: Added read-only mode support and optimized navigation logic #9869 - Added the `isReadonly` property to the parseResult component to control the enabled state of editing and interactive features - Added the `navigateToDataFile` navigation method to navigate to the data file details page - Refactored the `navigateToDataflowResult` method to use an object parameter to support more flexible query parameter configuration - Unified the `var(--accent-primary)` CSS variable format to `rgb(var(--accent-primary))` to accommodate more styling scenarios - Extracted the parser initialization logic into a separate hook (`useParserInit`) ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
97 lines
2.8 KiB
TypeScript
97 lines
2.8 KiB
TypeScript
import { useHandleFilterSubmit } from '@/components/list-filter-bar/use-handle-filter-submit';
|
|
import {
|
|
useGetPaginationWithRouter,
|
|
useHandleSearchChange,
|
|
} from '@/hooks/logic-hooks';
|
|
import kbService, {
|
|
listDataPipelineLogDocument,
|
|
listPipelineDatasetLogs,
|
|
} from '@/services/knowledge-service';
|
|
import { useQuery } from '@tanstack/react-query';
|
|
import { useCallback, useState } from 'react';
|
|
import { useParams, useSearchParams } from 'umi';
|
|
import { LogTabs } from './dataset-common';
|
|
import { IFileLogList, IOverviewTital } from './interface';
|
|
|
|
const useFetchOverviewTital = () => {
|
|
const [searchParams] = useSearchParams();
|
|
const { id } = useParams();
|
|
const knowledgeBaseId = searchParams.get('id') || id;
|
|
const { data } = useQuery<IOverviewTital>({
|
|
queryKey: ['overviewTital'],
|
|
queryFn: async () => {
|
|
const { data: res = {} } = await kbService.getKnowledgeBasicInfo({
|
|
kb_id: knowledgeBaseId,
|
|
});
|
|
return res.data || [];
|
|
},
|
|
});
|
|
return { data };
|
|
};
|
|
|
|
const useFetchFileLogList = () => {
|
|
const [searchParams] = useSearchParams();
|
|
const { searchString, handleInputChange } = useHandleSearchChange();
|
|
const { pagination, setPagination } = useGetPaginationWithRouter();
|
|
const { filterValue, handleFilterSubmit } = useHandleFilterSubmit();
|
|
const { id } = useParams();
|
|
const [active, setActive] = useState<(typeof LogTabs)[keyof typeof LogTabs]>(
|
|
LogTabs.FILE_LOGS,
|
|
);
|
|
const knowledgeBaseId = searchParams.get('id') || id;
|
|
const fetchFunc =
|
|
active === LogTabs.DATASET_LOGS
|
|
? listPipelineDatasetLogs
|
|
: listDataPipelineLogDocument;
|
|
const { data } = useQuery<IFileLogList>({
|
|
queryKey: [
|
|
'fileLogList',
|
|
knowledgeBaseId,
|
|
pagination,
|
|
searchString,
|
|
active,
|
|
filterValue,
|
|
],
|
|
placeholderData: (previousData) => {
|
|
if (previousData === undefined) {
|
|
return { logs: [], total: 0 };
|
|
}
|
|
return previousData;
|
|
},
|
|
enabled: true,
|
|
queryFn: async () => {
|
|
const { data: res = {} } = await fetchFunc(
|
|
{
|
|
kb_id: knowledgeBaseId,
|
|
page: pagination.current,
|
|
page_size: pagination.pageSize,
|
|
keywords: searchString,
|
|
// order_by: '',
|
|
},
|
|
{ ...filterValue },
|
|
);
|
|
return res.data || [];
|
|
},
|
|
});
|
|
const onInputChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(
|
|
(e) => {
|
|
setPagination({ page: 1 });
|
|
handleInputChange(e);
|
|
},
|
|
[handleInputChange, setPagination],
|
|
);
|
|
return {
|
|
data,
|
|
searchString,
|
|
handleInputChange: onInputChange,
|
|
pagination: { ...pagination, total: data?.total },
|
|
setPagination,
|
|
active,
|
|
setActive,
|
|
filterValue,
|
|
handleFilterSubmit,
|
|
};
|
|
};
|
|
|
|
export { useFetchFileLogList, useFetchOverviewTital };
|