refactor: pinned chat init data

This commit is contained in:
Tristan Yang
2023-06-01 19:50:24 +08:00
parent d3fee0d4a3
commit 1e41f51623
2 changed files with 13 additions and 11 deletions
+12 -6
View File
@@ -28,7 +28,12 @@ import { setReady } from "@/app/slices/ui";
import { updateContactStatus, updateUsersByLogs, updateUsersStatus } from "@/app/slices/users";
import { updateCallInfo } from "@/app/slices/voice";
import { useAppDispatch, useAppSelector } from "@/app/store";
import { ServerEvent, UserSettingsChangedEvent, UsersStateEvent } from "@/types/sse";
import {
ServerEvent,
UserSettingsChangedEvent,
UserSettingsEvent,
UsersStateEvent
} from "@/types/sse";
import { getLocalAuthData } from "@/utils";
import chatMessageHandler from "./chat.handler";
@@ -157,11 +162,7 @@ export default function useStreaming() {
dispatch(updateCallInfo({ from: uid, to: target, calling: true }));
break;
}
case "pinned_chats": {
const { chats } = data;
dispatch(upsertPinChats({ pins: chats, override: true }));
break;
}
case "users_snapshot": {
const { version } = data;
dispatch(updateUsersVersion(version));
@@ -205,6 +206,11 @@ export default function useStreaming() {
case "read_index_users":
dispatch(updateReadUsers(data[key]));
break;
case "pinned_chats": {
const chats = (data as UserSettingsEvent)[key] ?? [];
dispatch(upsertPinChats({ pins: chats, override: true }));
break;
}
case "add_pin_chats":
{
const pins = (data as UserSettingsChangedEvent).add_pin_chats ?? [];
+1 -5
View File
@@ -62,6 +62,7 @@ export type UserSettingsEvent = {
read_index_groups?: { gid: number; mid: number }[];
burn_after_reading_users?: AutoDeleteMsgForUser[];
burn_after_reading_groups?: AutoDeleteMsgForGroup[];
pinned_chats?: PinChat[];
};
export type AutoDeleteSettingForUsers = {
burn_after_reading_users: AutoDeleteMsgForUser[];
@@ -99,10 +100,6 @@ export type PinChatTargetChannel = {
};
export type PinChatTarget = PinChatTargetUser | PinChatTargetChannel;
export type PinChat = { target: PinChatTarget[]; updated_at: number };
export interface PinnedChatsEvent {
type: "pinned_chats";
chats: PinChat[];
}
export interface NormalMessage {
mid: number;
@@ -238,5 +235,4 @@ export type ServerEvent =
| PinnedMessageUpdatedEvent
| HeartbeatEvent
| GroupClearEvent
| PinnedChatsEvent
| UserCallEvent;