chore: dataset fe adjusting (#1833)
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
import { getDatasetPaths, putDatasetById } from '@/web/core/dataset/api';
|
||||
import {
|
||||
getDatasetPaths,
|
||||
putDatasetById,
|
||||
getDatasets,
|
||||
getDatasetById,
|
||||
delDatasetById
|
||||
} from '@/web/core/dataset/api';
|
||||
import { useDatasetStore } from '@/web/core/dataset/store/dataset';
|
||||
import {
|
||||
GetResourceFolderListProps,
|
||||
@@ -9,18 +15,28 @@ import { useRouter } from 'next/router';
|
||||
import React, { useCallback, useState } from 'react';
|
||||
import { createContext } from 'use-context-selector';
|
||||
import { useI18n } from '@/web/context/I18n';
|
||||
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||
import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||
import { DatasetUpdateBody } from '@fastgpt/global/core/dataset/api';
|
||||
import dynamic from 'next/dynamic';
|
||||
import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
|
||||
import { DatasetItemType } from '@fastgpt/global/core/dataset/type';
|
||||
import { EditResourceInfoFormType } from '@/components/common/Modal/EditResourceModal';
|
||||
import { useSystemStore } from '@/web/common/system/useSystemStore';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
const MoveModal = dynamic(() => import('@/components/common/folder/MoveModal'));
|
||||
|
||||
export type DatasetContextType = {
|
||||
refetchDatasets: () => void;
|
||||
refetchPaths: () => void;
|
||||
refetchFolderDetail: () => void;
|
||||
isFetchingDatasets: boolean;
|
||||
setMoveDatasetId: (id: string) => void;
|
||||
paths: ParentTreePathItemType[];
|
||||
folderDetail?: DatasetItemType;
|
||||
editedDataset?: EditResourceInfoFormType;
|
||||
setEditedDataset: (data?: EditResourceInfoFormType) => void;
|
||||
onDelDataset: (id: string) => Promise<void>;
|
||||
};
|
||||
|
||||
export const DatasetContext = createContext<DatasetContextType>({
|
||||
@@ -28,22 +44,39 @@ export const DatasetContext = createContext<DatasetContextType>({
|
||||
isFetchingDatasets: false,
|
||||
setMoveDatasetId: () => {},
|
||||
refetchPaths: () => {},
|
||||
paths: []
|
||||
paths: [],
|
||||
refetchFolderDetail: () => {},
|
||||
folderDetail: {} as any,
|
||||
editedDataset: {} as any,
|
||||
setEditedDataset: () => {},
|
||||
onDelDataset: () => Promise.resolve()
|
||||
});
|
||||
|
||||
function DatasetContextProvider({ children }: { children: React.ReactNode }) {
|
||||
const router = useRouter();
|
||||
const { commonT } = useI18n();
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { parentId = null } = router.query as { parentId?: string | null };
|
||||
const { loadMyDatasets } = useDatasetStore();
|
||||
const { myDatasets, loadMyDatasets } = useDatasetStore();
|
||||
|
||||
const getDatasetFolderList = useCallback(async ({ parentId }: GetResourceFolderListProps) => {
|
||||
const res = await getDatasetPaths(parentId);
|
||||
return res.map((item) => ({
|
||||
id: item.parentId,
|
||||
name: item.parentName
|
||||
}));
|
||||
const { data: folderDetail, runAsync: refetchFolderDetail } = useRequest2(
|
||||
() => (parentId ? getDatasetById(parentId) : Promise.resolve(undefined)),
|
||||
{
|
||||
manual: false,
|
||||
refreshDeps: [parentId, myDatasets]
|
||||
}
|
||||
);
|
||||
const getDatasetFolderList = useCallback(({ parentId }: GetResourceFolderListProps) => {
|
||||
return getDatasets({
|
||||
parentId,
|
||||
type: DatasetTypeEnum.folder
|
||||
}).then((res) => {
|
||||
return res.map((item) => ({
|
||||
id: item._id,
|
||||
name: item.name
|
||||
}));
|
||||
});
|
||||
}, []);
|
||||
|
||||
const { data: paths = [], runAsync: refetchPaths } = useRequest2(
|
||||
@@ -82,12 +115,24 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) {
|
||||
[moveDatasetId, onUpdateDataset]
|
||||
);
|
||||
|
||||
const [editedDataset, setEditedDataset] = useState<EditResourceInfoFormType>();
|
||||
|
||||
const { runAsync: onDelDataset } = useRequest2(delDatasetById, {
|
||||
successToast: t('common.Delete Success'),
|
||||
errorToast: t('dataset.Delete Dataset Error')
|
||||
});
|
||||
|
||||
const contextValue = {
|
||||
refetchDatasets,
|
||||
isFetchingDatasets,
|
||||
setMoveDatasetId,
|
||||
paths,
|
||||
refetchPaths
|
||||
refetchPaths,
|
||||
refetchFolderDetail,
|
||||
folderDetail,
|
||||
editedDataset,
|
||||
setEditedDataset,
|
||||
onDelDataset
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user