wip mentions

This commit is contained in:
Henry Hiles 2025-12-07 10:53:49 -05:00
commit 541933a939
No known key found for this signature in database
11 changed files with 145 additions and 86 deletions

View file

@ -10,6 +10,11 @@ import "package:nexus/controllers/secure_storage_controller.dart";
import "package:nexus/models/session_backup.dart";
class ClientController extends AsyncNotifier<Client> {
@override
bool updateShouldNotify(
AsyncValue<Client> previous,
AsyncValue<Client> next,
) => previous.hasValue != next.hasValue;
static const sessionBackupKey = "sessionBackup";
@override
@ -81,7 +86,7 @@ class ClientController extends AsyncNotifier<Client> {
).toJson(),
),
);
ref.invalidateSelf();
ref.invalidateSelf(asReload: true);
return true;
} catch (_) {
return false;

View file

@ -92,11 +92,18 @@ class RoomChatController extends AsyncNotifier<ChatController> {
Future<void> updateMessage(Message message, Message newMessage) async =>
(await future).updateMessage(message, newMessage);
Future<void> send(String message, {Message? replyTo}) async =>
Future<void> send(Message message, {Message? replyTo}) async {
final controller = await future;
controller.insertMessage(message);
if (message is TextMessage) {
await room.sendTextEvent(
message,
message.text,
inReplyTo: replyTo == null ? null : await room.getEventById(replyTo.id),
);
}
// TODO: Handle other types of message
}
Future<chat.User> resolveUser(String id) async {
final user = await room.client.getUserProfile(id);