refactor: video call
This commit is contained in:
@@ -71,7 +71,16 @@ export default async function handler({ operation, data = {}, payload }: Params)
|
||||
break;
|
||||
case "updateChannelVisibleAside":
|
||||
{
|
||||
await table?.setItem("channelAsides", data.channelAsides);
|
||||
if (payload.aside !== "voice") {
|
||||
await table?.setItem("channelAsides", data.channelAsides);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "updateDMVisibleAside":
|
||||
{
|
||||
if (payload.aside !== "voice") {
|
||||
await table?.setItem("dmAsides", data.dmAsides);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -124,11 +124,12 @@ export const serverApi = createApi({
|
||||
const { success } = resp;
|
||||
if (success) {
|
||||
const arr = resp.data.channels.map(data => {
|
||||
const [id] = data.channel_name.split(":").slice(-1);
|
||||
const [type, id] = data.channel_name.split(":").slice(-2);
|
||||
const count = data.user_count;
|
||||
const context = type === "group" ? "channel" as const : "dm" as const;
|
||||
return {
|
||||
id: +id,
|
||||
context: "channel" as const,
|
||||
context,
|
||||
memberCount: count
|
||||
};
|
||||
});
|
||||
@@ -149,9 +150,11 @@ export const serverApi = createApi({
|
||||
getAgoraStatus: builder.query<boolean, void>({
|
||||
query: () => ({ url: `/admin/agora/enabled` })
|
||||
}),
|
||||
getAgoraToken: builder.query<AgoraTokenResponse, number>({
|
||||
query: (id) => ({
|
||||
url: `group/${id}/agora_token`,
|
||||
generateAgoraToken: builder.mutation<AgoraTokenResponse, { uid: number } | { gid: number }>({
|
||||
query: (data) => ({
|
||||
url: `/admin/agora/token`,
|
||||
method: "POST",
|
||||
body: data
|
||||
})
|
||||
}),
|
||||
getSystemCommon: builder.query<SystemCommon, void>({
|
||||
@@ -396,11 +399,11 @@ export const {
|
||||
useSendMessageByBotMutation,
|
||||
useUpdateFrontendUrlMutation,
|
||||
useGetFrontendUrlQuery,
|
||||
useLazyGetAgoraTokenQuery,
|
||||
useGetAgoraConfigQuery,
|
||||
useGetAgoraStatusQuery,
|
||||
useGetAgoraChannelsQuery,
|
||||
useUpdateSystemCommonMutation,
|
||||
useLazyGetSystemCommonQuery,
|
||||
useGetSystemCommonQuery
|
||||
useGetSystemCommonQuery,
|
||||
useGenerateAgoraTokenMutation
|
||||
} = serverApi;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { AutoDeleteMessageSettingDTO, AutoDeleteMsgForGroup, AutoDeleteMsgForUse
|
||||
import { resetAuthData } from "./auth.data";
|
||||
|
||||
type ChannelAside = "members" | "voice" | null;
|
||||
type DMAside = "voice" | null;
|
||||
export interface State {
|
||||
og: { [url: string]: OG }
|
||||
usersVersion: number;
|
||||
@@ -18,6 +19,7 @@ export interface State {
|
||||
autoDeleteMsgUsers: AutoDeleteMsgForUser[];
|
||||
autoDeleteMsgChannels: AutoDeleteMsgForGroup[];
|
||||
channelAsides: { [cid: number]: ChannelAside };
|
||||
dmAsides: { [uid: number]: DMAside };
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +35,8 @@ const initialState: State = {
|
||||
muteChannels: {},
|
||||
autoDeleteMsgUsers: [],
|
||||
autoDeleteMsgChannels: [],
|
||||
channelAsides: {}
|
||||
channelAsides: {},
|
||||
dmAsides: {}
|
||||
};
|
||||
|
||||
const footprintSlice = createSlice({
|
||||
@@ -56,7 +59,8 @@ const footprintSlice = createSlice({
|
||||
muteChannels = {},
|
||||
autoDeleteMsgUsers = [],
|
||||
autoDeleteMsgChannels = [],
|
||||
channelAsides = {}
|
||||
channelAsides = {},
|
||||
dmAsides = {}
|
||||
} = action.payload;
|
||||
return {
|
||||
og,
|
||||
@@ -70,7 +74,8 @@ const footprintSlice = createSlice({
|
||||
muteChannels,
|
||||
autoDeleteMsgUsers,
|
||||
autoDeleteMsgChannels,
|
||||
channelAsides
|
||||
channelAsides,
|
||||
dmAsides
|
||||
};
|
||||
},
|
||||
updateUsersVersion(state, action: PayloadAction<number>) {
|
||||
@@ -189,6 +194,10 @@ const footprintSlice = createSlice({
|
||||
const { id, aside } = action.payload;
|
||||
state.channelAsides[id] = aside;
|
||||
},
|
||||
updateDMVisibleAside(state, action: PayloadAction<{ id: number, aside: DMAside }>) {
|
||||
const { id, aside } = action.payload;
|
||||
state.dmAsides[id] = aside;
|
||||
},
|
||||
},
|
||||
extraReducers: (builder) => {
|
||||
builder.addCase(resetAuthData, (state) => {
|
||||
@@ -198,6 +207,11 @@ const footprintSlice = createSlice({
|
||||
state.channelAsides[+channel_id] = null;
|
||||
}
|
||||
});
|
||||
Object.keys(state.dmAsides).forEach((uid: string) => {
|
||||
if (state.dmAsides[+uid] === "voice") {
|
||||
state.dmAsides[+uid] = null;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -213,7 +227,8 @@ export const {
|
||||
updateAutoDeleteSetting,
|
||||
updateHistoryMark,
|
||||
upsertOG,
|
||||
updateChannelVisibleAside
|
||||
updateChannelVisibleAside,
|
||||
updateDMVisibleAside
|
||||
} = footprintSlice.actions;
|
||||
|
||||
export default footprintSlice.reducer;
|
||||
|
||||
Reference in New Issue
Block a user