feat: implement real-time conversation deletion handling via socket events
This commit is contained in:
@@ -29,6 +29,7 @@ class SocketService {
|
||||
private connectionResponseHandlers: Set<NotificationEventHandler> = new Set();
|
||||
private connectionHandlers: Set<(connected: boolean) => void> = new Set();
|
||||
private authErrorHandlers: Set<() => void> = new Set();
|
||||
private conversationDeletedHandlers: Set<NotificationEventHandler> = new Set();
|
||||
private isConnecting = false;
|
||||
private currentToken: string | null = null;
|
||||
private listenersAttached = false;
|
||||
@@ -157,6 +158,10 @@ class SocketService {
|
||||
this.socket.on('connection_response', (data: Record<string, unknown>) => {
|
||||
this.connectionResponseHandlers.forEach((handler) => handler(data));
|
||||
});
|
||||
|
||||
this.socket.on('conversation_deleted', (data: Record<string, unknown>) => {
|
||||
this.conversationDeletedHandlers.forEach((handler) => handler(data));
|
||||
});
|
||||
}
|
||||
|
||||
// Reconnect with a fresh token (used when the previous token expired)
|
||||
@@ -196,6 +201,7 @@ class SocketService {
|
||||
this.deliveredHandlers.clear();
|
||||
this.connectionRequestHandlers.clear();
|
||||
this.connectionResponseHandlers.clear();
|
||||
this.conversationDeletedHandlers.clear();
|
||||
this.connectionHandlers.clear();
|
||||
this.authErrorHandlers.clear();
|
||||
}
|
||||
@@ -348,6 +354,11 @@ class SocketService {
|
||||
return () => this.connectionResponseHandlers.delete(handler);
|
||||
}
|
||||
|
||||
onConversationDeleted(handler: NotificationEventHandler): () => void {
|
||||
this.conversationDeletedHandlers.add(handler);
|
||||
return () => this.conversationDeletedHandlers.delete(handler);
|
||||
}
|
||||
|
||||
onConnectionChange(handler: (connected: boolean) => void): () => void {
|
||||
this.connectionHandlers.add(handler);
|
||||
return () => this.connectionHandlers.delete(handler);
|
||||
|
||||
Reference in New Issue
Block a user