mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
feat: remove loading from model and use DvaModel instead of redundant types such as kAModelType (#47)
* feat: use DvaModel instead of redundant types such as kAModelType * feat: set the type for registerServer * feat: remove loading from model
This commit is contained in:
@ -5,21 +5,22 @@ import {
|
||||
PlusOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import { Card, Col, FloatButton, Popconfirm, Row } from 'antd';
|
||||
import React, { useEffect } from 'react';
|
||||
import { Dispatch, connect, useNavigate } from 'umi';
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import { useDispatch, useNavigate, useSelector } from 'umi';
|
||||
import styles from './index.less';
|
||||
import type { knowledgeModelState } from './model';
|
||||
interface KnowledgeProps {
|
||||
dispatch: Dispatch;
|
||||
knowledgeModel: knowledgeModelState;
|
||||
}
|
||||
const Index: React.FC<KnowledgeProps> = ({ knowledgeModel, dispatch }) => {
|
||||
const navigate = useNavigate();
|
||||
// const [datas, setDatas] = useState(data)
|
||||
const { data = [] } = knowledgeModel;
|
||||
console.log(knowledgeModel);
|
||||
|
||||
// const x = useSelector((state) => state.knowledgeModel);
|
||||
const Knowledge = () => {
|
||||
const dispatch = useDispatch();
|
||||
const knowledgeModel = useSelector((state: any) => state.knowledgeModel);
|
||||
const navigate = useNavigate();
|
||||
const { data = [] } = knowledgeModel;
|
||||
|
||||
const fetchList = useCallback(() => {
|
||||
dispatch({
|
||||
type: 'knowledgeModel/getList',
|
||||
payload: {},
|
||||
});
|
||||
}, []);
|
||||
|
||||
const confirm = (id: string) => {
|
||||
dispatch({
|
||||
@ -27,12 +28,6 @@ const Index: React.FC<KnowledgeProps> = ({ knowledgeModel, dispatch }) => {
|
||||
payload: {
|
||||
kb_id: id,
|
||||
},
|
||||
callback: () => {
|
||||
dispatch({
|
||||
type: 'knowledgeModel/getList',
|
||||
payload: {},
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
const handleAddKnowledge = () => {
|
||||
@ -42,11 +37,8 @@ const Index: React.FC<KnowledgeProps> = ({ knowledgeModel, dispatch }) => {
|
||||
navigate(`add/setting?activeKey=file&id=${id}`);
|
||||
};
|
||||
useEffect(() => {
|
||||
dispatch({
|
||||
type: 'knowledgeModel/getList',
|
||||
payload: {},
|
||||
});
|
||||
}, []);
|
||||
fetchList();
|
||||
}, [fetchList]);
|
||||
return (
|
||||
<>
|
||||
<div className={styles.knowledge}>
|
||||
@ -125,7 +117,4 @@ const Index: React.FC<KnowledgeProps> = ({ knowledgeModel, dispatch }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default connect(({ knowledgeModel, loading }) => ({
|
||||
knowledgeModel,
|
||||
loading,
|
||||
}))(Index);
|
||||
export default Knowledge;
|
||||
|
||||
@ -1,58 +1,38 @@
|
||||
import kbService from '@/services/kbService';
|
||||
import { Effect, Reducer } from 'umi';
|
||||
import { DvaModel } from 'umi';
|
||||
|
||||
export interface knowledgeModelState {
|
||||
loading: boolean;
|
||||
export interface KnowledgeModelState {
|
||||
data: any[];
|
||||
}
|
||||
export interface knowledgegModelType {
|
||||
namespace: 'knowledgeModel';
|
||||
state: knowledgeModelState;
|
||||
effects: {
|
||||
rmKb: Effect;
|
||||
getList: Effect;
|
||||
};
|
||||
reducers: {
|
||||
updateState: Reducer<knowledgeModelState>;
|
||||
};
|
||||
// subscriptions: { setup: Subscription };
|
||||
}
|
||||
const Model: knowledgegModelType = {
|
||||
|
||||
const model: DvaModel<KnowledgeModelState> = {
|
||||
namespace: 'knowledgeModel',
|
||||
state: {
|
||||
loading: false,
|
||||
data: [],
|
||||
},
|
||||
// subscriptions: {
|
||||
// setup({ dispatch, history }) {
|
||||
// history.listen((location) => {
|
||||
// console.log(location);
|
||||
// });
|
||||
// },
|
||||
// },
|
||||
reducers: {
|
||||
updateState(state, { payload }) {
|
||||
return {
|
||||
...state,
|
||||
...payload,
|
||||
};
|
||||
},
|
||||
},
|
||||
effects: {
|
||||
*rmKb({ payload = {}, callback }, { call, put }) {
|
||||
const { data, response } = yield call(kbService.rmKb, payload);
|
||||
const { retcode, data: res, retmsg } = data;
|
||||
const { data } = yield call(kbService.rmKb, payload);
|
||||
const { retcode } = data;
|
||||
if (retcode === 0) {
|
||||
callback && callback();
|
||||
yield put({
|
||||
type: 'getList',
|
||||
payload: {},
|
||||
});
|
||||
}
|
||||
},
|
||||
*getList({ payload = {} }, { call, put }) {
|
||||
yield put({
|
||||
type: 'updateState',
|
||||
payload: {
|
||||
loading: true,
|
||||
},
|
||||
});
|
||||
const { data, response } = yield call(kbService.getList, payload);
|
||||
const { data } = yield call(kbService.getList, payload);
|
||||
const { retcode, data: res, retmsg } = data;
|
||||
yield put({
|
||||
type: 'updateState',
|
||||
payload: {
|
||||
loading: false,
|
||||
},
|
||||
});
|
||||
|
||||
if (retcode === 0) {
|
||||
yield put({
|
||||
type: 'updateState',
|
||||
@ -63,13 +43,5 @@ const Model: knowledgegModelType = {
|
||||
}
|
||||
},
|
||||
},
|
||||
reducers: {
|
||||
updateState(state, { payload }) {
|
||||
return {
|
||||
...state,
|
||||
...payload,
|
||||
};
|
||||
},
|
||||
},
|
||||
};
|
||||
export default Model;
|
||||
export default model;
|
||||
|
||||
Reference in New Issue
Block a user