♻️ Refactored chat db
This commit is contained in:
@@ -140,8 +140,11 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
offset: offset,
|
||||
limit: take,
|
||||
);
|
||||
dbMessages =
|
||||
chatMessagesFromDb.map(_database.companionToMessage).toList();
|
||||
dbMessages = await Future.wait(
|
||||
chatMessagesFromDb
|
||||
.map((msg) => _database.companionToMessage(msg))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
|
||||
List<LocalChatMessage> filteredMessages = dbMessages;
|
||||
@@ -202,8 +205,11 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
offset: offset,
|
||||
limit: take,
|
||||
);
|
||||
final dbMessages =
|
||||
chatMessagesFromDb.map(_database.companionToMessage).toList();
|
||||
final dbMessages = await Future.wait(
|
||||
chatMessagesFromDb
|
||||
.map((msg) => _database.companionToMessage(msg))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
// Always ensure unique messages to prevent duplicate keys
|
||||
final uniqueMessages = <LocalChatMessage>[];
|
||||
@@ -300,7 +306,7 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
final lastMessage =
|
||||
dbMessages.isEmpty
|
||||
? null
|
||||
: _database.companionToMessage(dbMessages.first);
|
||||
: await _database.companionToMessage(dbMessages.first);
|
||||
|
||||
if (lastMessage == null) {
|
||||
talker.log('No local messages, fetching from network');
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:island/models/reference.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
@@ -5,10 +6,7 @@ import 'package:island/pods/network.dart';
|
||||
part 'file_references.g.dart';
|
||||
|
||||
@riverpod
|
||||
Future<List<Reference>> fileReferences(
|
||||
FileReferencesRef ref,
|
||||
String fileId,
|
||||
) async {
|
||||
Future<List<Reference>> fileReferences(Ref ref, String fileId) async {
|
||||
final client = ref.read(apiClientProvider);
|
||||
final response = await client.get('/drive/files/$fileId/references');
|
||||
final list = response.data as List<dynamic>;
|
||||
|
||||
Reference in New Issue
Block a user