Files
fluxer/fluxer_app/src/features/user/events/UserUpdate.ts
T

29 lines
1.1 KiB
TypeScript

// SPDX-License-Identifier: AGPL-3.0-or-later
import type {GatewayHandlerContext} from '@app/features/gateway/events/EventRouter';
import GuildVerification from '@app/features/guild/state/GuildVerification';
import Messages from '@app/features/messaging/state/MessagingMessages';
import Permission from '@app/features/permissions/state/Permission';
import QuickSwitcher from '@app/features/search/state/QuickSwitcher';
import Users from '@app/features/user/state/Users';
import VoiceSettings from '@app/features/voice/state/VoiceSettings';
import type {User} from '@fluxer/schema/src/domains/user/UserResponseSchemas';
interface UserUpdatePayload {
id: string;
username: string;
discriminator: string;
avatar: string | null;
flags: number;
is_staff?: boolean;
}
export function handleUserUpdate(data: UserUpdatePayload, _context: GatewayHandlerContext): void {
Users.handleUserUpdate(data as User);
VoiceSettings.handleUserUpdate(data);
Messages.handleUserUpdate({user: {id: data.id}});
Permission.handleUserUpdate(data.id);
QuickSwitcher.recomputeIfOpen();
GuildVerification.handleUserUpdate();
}