feat: Implement real-time agent connection state updates and enhance app shell navigation transitions.

This commit is contained in:
pradeepkumar
2026-03-26 09:46:40 +05:30
parent e9d069b09b
commit 22187c8b13
4 changed files with 56 additions and 3 deletions

View File

@@ -32,6 +32,8 @@ class SocketService {
final _supportMessageController = StreamController<SupportMessage>.broadcast();
final _supportTypingStartController = StreamController<Map<String, dynamic>>.broadcast();
final _supportTypingStopController = StreamController<Map<String, dynamic>>.broadcast();
final _connectionRequestController = StreamController<Map<String, dynamic>>.broadcast();
final _connectionResponseController = StreamController<Map<String, dynamic>>.broadcast();
Stream<ChatMessage> get onNewMessage => _messageController.stream;
Stream<Map<String, dynamic>> get onTypingStart => _typingStartController.stream;
@@ -42,6 +44,8 @@ class SocketService {
Stream<SupportMessage> get onSupportMessage => _supportMessageController.stream;
Stream<Map<String, dynamic>> get onSupportTypingStart => _supportTypingStartController.stream;
Stream<Map<String, dynamic>> get onSupportTypingStop => _supportTypingStopController.stream;
Stream<Map<String, dynamic>> get onConnectionRequest => _connectionRequestController.stream;
Stream<Map<String, dynamic>> get onConnectionResponse => _connectionResponseController.stream;
bool get isConnected => _isConnected;
Future<void> connect() async {
@@ -153,6 +157,15 @@ class SocketService {
_supportTypingStopController.add(Map<String, dynamic>.from(data as Map));
});
// Connection request events (real-time updates)
_socket!.on('connection_request', (data) {
_connectionRequestController.add(Map<String, dynamic>.from(data as Map));
});
_socket!.on('connection_response', (data) {
_connectionResponseController.add(Map<String, dynamic>.from(data as Map));
});
_socket!.connect();
}
@@ -274,5 +287,7 @@ class SocketService {
_supportMessageController.close();
_supportTypingStartController.close();
_supportTypingStopController.close();
_connectionRequestController.close();
_connectionResponseController.close();
}
}