Skip to content

Commit 5c178d5

Browse files
authored
Integrated Redux for state management with auth and settings slices. (#117)
* feat: Implement DatasetFileTransfer component for file selection and management * feat: Add pagination support to file list in Overview component * feat: add DatasetFileTransfer and TagManagement components - Added DatasetFileTransfer component for managing dataset files. - Introduced TagManagement component for handling tags. - Integrated Redux for state management with auth and settings slices. - Updated package.json to include @reduxjs/toolkit and react-redux dependencies. - Refactored existing components to utilize new DatasetFileTransfer and TagManagement components. - Implemented hooks for typed dispatch and selector in Redux. - Enhanced CreateKnowledgeBase and SynthesisTask components to support new features.
1 parent 2e13bb9 commit 5c178d5

File tree

16 files changed

+305
-22
lines changed

16 files changed

+305
-22
lines changed

frontend/package-lock.json

Lines changed: 119 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
"preview": "vite preview"
1212
},
1313
"dependencies": {
14+
"@reduxjs/toolkit": "^2.11.0",
1415
"@xyflow/react": "^12.8.3",
1516
"antd": "^5.27.0",
1617
"jssha": "^3.3.1",
1718
"lucide-react": "^0.539.0",
1819
"react": "^18.1.1",
1920
"react-dom": "^18.1.1",
21+
"react-redux": "^9.2.0",
2022
"react-router": "^7.8.0",
2123
"recharts": "2.15.0"
2224
},

frontend/src/components/DatasetFileTransfer.tsx renamed to frontend/src/components/business/DatasetFileTransfer.tsx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import {
1313
} from "@/pages/DataManagement/dataset.api";
1414
import { formatBytes } from "@/utils/unit";
1515
import { useDebouncedEffect } from "@/hooks/useDebouncedEffect";
16-
import { DatasetFileCols as fileCols } from "../pages/KnowledgeBase/knowledge-base.const";
1716

1817
interface DatasetFileTransferProps
1918
extends React.HTMLAttributes<HTMLDivElement> {
@@ -22,6 +21,28 @@ interface DatasetFileTransferProps
2221
onSelectedFilesChange: (filesMap: { [key: string]: DatasetFile }) => void;
2322
}
2423

24+
const fileCols = [
25+
{
26+
title: "所属数据集",
27+
dataIndex: "datasetName",
28+
key: "datasetName",
29+
ellipsis: true,
30+
},
31+
{
32+
title: "文件名",
33+
dataIndex: "fileName",
34+
key: "fileName",
35+
ellipsis: true,
36+
},
37+
{
38+
title: "大小",
39+
dataIndex: "fileSize",
40+
key: "fileSize",
41+
ellipsis: true,
42+
render: formatBytes,
43+
},
44+
];
45+
2546
// Customize Table Transfer
2647
const DatasetFileTransfer: React.FC<DatasetFileTransferProps> = ({
2748
open,
File renamed without changes.
File renamed without changes.

frontend/src/main.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@ import router from "./routes/routes";
55
import { App as AntdApp, Spin } from "antd";
66
import "./index.css";
77
import TopLoadingBar from "./components/TopLoadingBar";
8+
import { store } from "./store";
9+
import { Provider } from "react-redux";
810

911
createRoot(document.getElementById("root")!).render(
1012
<StrictMode>
11-
<AntdApp>
12-
<Suspense fallback={<Spin />}>
13-
<TopLoadingBar />
14-
<RouterProvider router={router} />
15-
</Suspense>
16-
</AntdApp>
13+
<Provider store={store}>
14+
<AntdApp>
15+
<Suspense fallback={<Spin />}>
16+
<TopLoadingBar />
17+
<RouterProvider router={router} />
18+
</Suspense>
19+
</AntdApp>
20+
</Provider>
1721
</StrictMode>
1822
);

frontend/src/pages/DataManagement/Home/DataManagement.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
PlusOutlined,
77
UploadOutlined,
88
} from "@ant-design/icons";
9-
import TagManager from "@/components/TagManagement";
9+
import TagManager from "@/components/business/TagManagement";
1010
import { Link, useNavigate } from "react-router";
1111
import { useEffect, useMemo, useState } from "react";
1212
import { SearchControls } from "@/components/SearchControls";

frontend/src/pages/KnowledgeBase/components/AddDataDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from "antd";
1313
import { PlusOutlined } from "@ant-design/icons";
1414
import { addKnowledgeBaseFilesUsingPost } from "../knowledge-base.api";
15-
import DatasetFileTransfer from "../../../components/DatasetFileTransfer";
15+
import DatasetFileTransfer from "@/components/business/DatasetFileTransfer";
1616
import { DescriptionsItemType } from "antd/es/descriptions";
1717
import { DatasetFileCols } from "../knowledge-base.const";
1818

@@ -128,7 +128,7 @@ export default function AddDataDialog({ knowledgeBase, onDataAdded }) {
128128
try {
129129
// 构造符合API要求的请求数据
130130
const requestData = {
131-
files: Object.values(selectedFilesMap),
131+
files: Object.entries(selectedFilesMap),
132132
processType: newKB.processType,
133133
chunkSize: Number(newKB.chunkSize), // 确保是数字类型
134134
overlapSize: Number(newKB.overlapSize), // 确保是数字类型

0 commit comments

Comments
 (0)