update and fix messanger

This commit is contained in:
lendry
2026-06-26 00:16:17 +03:00
parent b0ea87e898
commit 4e78a81eb1
14 changed files with 898 additions and 125 deletions

View File

@@ -3,6 +3,7 @@
import * as React from 'react';
import { useAuth } from '@/components/id/auth-provider';
import { getWsUrl, type ChatMessage } from '@/lib/api';
import { dispatchAvatarUpdated, dispatchChatRoomAvatarUpdated } from '@/lib/avatar-events';
export interface RealtimeEvent {
userId?: string;
@@ -74,6 +75,22 @@ export function RealtimeProvider({ children }: { children: React.ReactNode }) {
try {
const data = JSON.parse(event.data as string) as RealtimeEvent;
emit(data);
if (data.type === 'user_avatar_updated' && typeof data.payload?.userId === 'string') {
dispatchAvatarUpdated(data.payload.userId);
}
if (data.type === 'chat_message') {
const message = data.payload?.message;
if (message?.type === 'SYSTEM' && message.roomId && message.metadataJson) {
try {
const metadata = JSON.parse(message.metadataJson) as { systemKind?: string };
if (metadata.systemKind === 'avatar_changed') {
dispatchChatRoomAvatarUpdated(message.roomId);
}
} catch {
// ignore malformed metadata
}
}
}
if (
data.type === 'family_invite' ||
data.type === 'role_assigned' ||