refactor: upsertVoiceList

This commit is contained in:
Tristan Yang
2023-03-31 12:59:54 +08:00
parent bdc27314fd
commit c35a7d211b
4 changed files with 22 additions and 7 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ import {
} from "../../types/server";
import { Channel } from "../../types/channel";
import { ContentTypeKey } from "../../types/message";
import { updateVoiceList } from "../slices/voice";
import { upsertVoiceList } from "../slices/voice";
const defaultExpireDuration = 2 * 24 * 60 * 60;
@@ -139,7 +139,7 @@ export const serverApi = createApi({
memberCount: count
};
});
dispatch(updateVoiceList(arr));
dispatch(upsertVoiceList(arr));
}
} catch {
console.error("get voice list error");
+13 -3
View File
@@ -93,8 +93,18 @@ const voiceSlice = createSlice({
state.voicing.downlinkNetworkQuality = payload;
}
},
updateVoiceList(state, { payload }: PayloadAction<VoiceInfo[]>) {
state.list = payload;
upsertVoiceList(state, { payload }: PayloadAction<VoiceInfo[] | VoiceInfo>) {
if (Array.isArray(payload)) {
state.list = payload;
} else {
const { id, context } = payload;
const idx = state.list.findIndex(v => v.id == id && v.context == context);
if (idx > -1) {
state.list.splice(idx, 1, payload);
} else {
state.list.push(payload);
}
}
},
addVoiceMember(state, { payload }: PayloadAction<number>) {
const notExisted = !state.voicingMembers.ids.includes(payload);
@@ -124,5 +134,5 @@ const voiceSlice = createSlice({
},
});
export const { addVoiceMember, removeVoiceMember, updateVoiceList, updateVoicingInfo, updateVoicingNetworkQuality, updateMuteStatus, updateVoicingMember, updateDeafenStatus } = voiceSlice.actions;
export const { addVoiceMember, removeVoiceMember, upsertVoiceList, updateVoicingInfo, updateVoicingNetworkQuality, updateMuteStatus, updateVoicingMember, updateDeafenStatus } = voiceSlice.actions;
export default voiceSlice.reducer;