👽 Support the latest API
This commit is contained in:
@ -311,27 +311,14 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
final attachmentProgress = useState<Map<String, Map<int, double>>>({});
|
||||
|
||||
// Function to send read receipt
|
||||
void sendReadReceipt(String messageId) async {
|
||||
// Get message from repository to check read status
|
||||
final repository = await ref.read(messageRepositoryProvider(id).future);
|
||||
final message = await repository.getMessageById(messageId);
|
||||
|
||||
// Skip if message is already marked as read
|
||||
if (message?.isRead ?? false) return;
|
||||
|
||||
void sendReadReceipt() async {
|
||||
// Send websocket packet
|
||||
final wsState = ref.read(websocketStateProvider.notifier);
|
||||
wsState.sendMessage(
|
||||
jsonEncode(
|
||||
WebSocketPacket(
|
||||
type: 'messages.read',
|
||||
data: {'chat_room_id': id, 'message_id': messageId},
|
||||
),
|
||||
WebSocketPacket(type: 'messages.read', data: {'chat_room_id': id}),
|
||||
),
|
||||
);
|
||||
|
||||
// Mark as read in local database
|
||||
await repository.markMessageAsRead(messageId);
|
||||
}
|
||||
|
||||
// Add scroll listener for pagination
|
||||
@ -357,7 +344,7 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
case 'messages.new':
|
||||
messagesNotifier.receiveMessage(message);
|
||||
// Send read receipt for new message
|
||||
sendReadReceipt(message.id);
|
||||
sendReadReceipt();
|
||||
case 'messages.update':
|
||||
messagesNotifier.receiveMessageUpdate(message);
|
||||
case 'messages.delete':
|
||||
@ -365,6 +352,7 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
}
|
||||
}
|
||||
|
||||
sendReadReceipt();
|
||||
final subscription = ws.dataStream.listen(onMessage);
|
||||
return () => subscription.cancel();
|
||||
}, [ws, chatRoom]);
|
||||
@ -553,8 +541,6 @@ class ChatRoomScreen extends HookConsumerWidget {
|
||||
nextMessage == null ||
|
||||
nextMessage.senderId != message.senderId;
|
||||
|
||||
sendReadReceipt(message.id);
|
||||
|
||||
return chatIdentity.when(
|
||||
skipError: true,
|
||||
data:
|
||||
|
Reference in New Issue
Block a user