refactor: more TS code
This commit is contained in:
+12
-19
@@ -1,13 +1,13 @@
|
||||
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
||||
import { MuteChannel, MuteUser } from "../../types/sse";
|
||||
import { MuteDTO } from "../../types/message";
|
||||
|
||||
export interface State {
|
||||
usersVersion: number;
|
||||
afterMid: number;
|
||||
readUsers: { [uid: number]: number };
|
||||
readChannels: { [gid: number]: number };
|
||||
muteUsers: { [uid: number]: { expired_at: number } | undefined };
|
||||
muteChannels: { [gid: number]: { expired_at: number } | undefined };
|
||||
muteUsers: { [uid: number]: { expired_in: number } | undefined };
|
||||
muteChannels: { [gid: number]: { expired_in: number } | undefined };
|
||||
}
|
||||
|
||||
const initialState: State = {
|
||||
@@ -19,13 +19,6 @@ const initialState: State = {
|
||||
muteChannels: {}
|
||||
};
|
||||
|
||||
interface UpdateMutePayload {
|
||||
remove_users: number[];
|
||||
remove_groups: number[];
|
||||
add_users: MuteUser[];
|
||||
add_groups: MuteChannel[];
|
||||
}
|
||||
|
||||
const footprintSlice = createSlice({
|
||||
name: "footprint",
|
||||
initialState,
|
||||
@@ -33,7 +26,7 @@ const footprintSlice = createSlice({
|
||||
resetFootprint() {
|
||||
return initialState;
|
||||
},
|
||||
fullfillFootprint(state, action) {
|
||||
fillFootprint(state, action) {
|
||||
const {
|
||||
usersVersion = 0,
|
||||
afterMid = 0,
|
||||
@@ -57,35 +50,35 @@ const footprintSlice = createSlice({
|
||||
updateAfterMid(state, action: PayloadAction<number>) {
|
||||
state.afterMid = action.payload;
|
||||
},
|
||||
updateMute(state, action: PayloadAction<UpdateMutePayload>) {
|
||||
updateMute(state, action: PayloadAction<MuteDTO>) {
|
||||
const payload = action.payload || {};
|
||||
Object.keys(payload).forEach((key) => {
|
||||
switch (key) {
|
||||
case "remove_users": {
|
||||
const uids = payload.remove_users;
|
||||
uids.forEach((id) => {
|
||||
uids?.forEach((id) => {
|
||||
delete state.muteUsers[id];
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "remove_groups": {
|
||||
const gids = payload.remove_groups;
|
||||
gids.forEach((id) => {
|
||||
gids?.forEach((id) => {
|
||||
delete state.muteChannels[id];
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "add_users": {
|
||||
const mutes = payload.add_users;
|
||||
mutes.forEach(({ uid, expired_at }) => {
|
||||
state.muteUsers[uid] = { expired_at };
|
||||
mutes?.forEach(({ uid, expired_in }) => {
|
||||
state.muteUsers[uid] = { expired_in };
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "add_groups": {
|
||||
const mutes = payload.add_groups;
|
||||
mutes.forEach(({ gid, expired_at }) => {
|
||||
state.muteChannels[gid] = { expired_at };
|
||||
mutes?.forEach(({ gid, expired_in }) => {
|
||||
state.muteChannels[gid] = { expired_in };
|
||||
});
|
||||
break;
|
||||
}
|
||||
@@ -113,7 +106,7 @@ const footprintSlice = createSlice({
|
||||
|
||||
export const {
|
||||
resetFootprint,
|
||||
fullfillFootprint,
|
||||
fillFootprint,
|
||||
updateAfterMid,
|
||||
updateUsersVersion,
|
||||
updateReadChannels,
|
||||
|
||||
Reference in New Issue
Block a user