refactor: add typescript support to project

This commit is contained in:
HD
2022-06-20 17:44:42 +08:00
parent 45419bbcf4
commit c2c051d94c
25 changed files with 407 additions and 222 deletions
+39
View File
@@ -0,0 +1,39 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
const initialState: number[] = [];
const fileMessageSlice = createSlice({
name: "fileMessage",
initialState,
reducers: {
resetFileMessage() {
return initialState;
},
fullfillFileMessage(state, action: PayloadAction<number[]>) {
return action.payload || [];
},
addFileMessage(state, action: PayloadAction<number>) {
const mid = action.payload;
// 加入file message 列表
const fidIdx = state.findIndex((fid) => fid == mid);
if (fidIdx == -1) {
state.unshift(+mid);
}
},
removeFileMessage(state, action: PayloadAction<number | number[]>) {
const mids = Array.isArray(action.payload) ? action.payload : [action.payload];
mids.forEach((id) => {
// 从file message 列表删掉
const fidIdx = state.findIndex((fid) => fid == id);
if (fidIdx > -1) {
state.splice(fidIdx, 1);
}
});
}
}
});
export const { removeFileMessage, resetFileMessage, fullfillFileMessage, addFileMessage } =
fileMessageSlice.actions;
export default fileMessageSlice.reducer;