From 6b4d6125352913588a5866ba760b7aac1d72a8e0 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Fri, 13 Feb 2026 17:17:47 -0500 Subject: [PATCH] make profile fetching much faster --- lib/controllers/message_controller.dart | 14 +++++++++----- lib/controllers/profile_controller.dart | 17 ----------------- 2 files changed, 9 insertions(+), 22 deletions(-) delete mode 100644 lib/controllers/profile_controller.dart diff --git a/lib/controllers/message_controller.dart b/lib/controllers/message_controller.dart index f0caea1..e92e53d 100644 --- a/lib/controllers/message_controller.dart +++ b/lib/controllers/message_controller.dart @@ -3,7 +3,7 @@ import "package:flutter_chat_core/flutter_chat_core.dart"; import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:nexus/controllers/client_controller.dart"; import "package:nexus/controllers/client_state_controller.dart"; -import "package:nexus/controllers/profile_controller.dart"; +import "package:nexus/controllers/members_controller.dart"; import "package:nexus/helpers/extensions/mxc_to_https.dart"; import "package:nexus/models/message_config.dart"; import "package:nexus/models/requests/get_event_request.dart"; @@ -37,8 +37,11 @@ class MessageController extends AsyncNotifier { if (!ref.mounted) return null; - final author = await ref.read( - ProfileController.provider(event.authorId).future, + final members = await ref.watch( + MembersController.provider(config.room).future, + ); + final author = members.firstWhereOrNull( + (member) => member.stateKey == event.authorId, ); if (!ref.mounted) return null; @@ -63,10 +66,11 @@ class MessageController extends AsyncNotifier { ), ).future, ), + "big": event.localContent?.bigEmoji == true, "body": newContent?["body"] ?? content["body"], "eventType": type, - "avatarUrl": author.avatarUrl, - "displayName": author.displayName ?? event.authorId, + "avatarUrl": author?.content["avatar_url"], + "displayName": author?.content["displayname"] ?? event.stateKey, "txnId": config.event.transactionId, }; diff --git a/lib/controllers/profile_controller.dart b/lib/controllers/profile_controller.dart deleted file mode 100644 index e825593..0000000 --- a/lib/controllers/profile_controller.dart +++ /dev/null @@ -1,17 +0,0 @@ -import "package:flutter_riverpod/flutter_riverpod.dart"; -import "package:nexus/controllers/client_controller.dart"; -import "package:nexus/models/profile.dart"; - -class ProfileController extends AsyncNotifier { - final String userId; - ProfileController(this.userId); - - @override - Future build() => - ref.watch(ClientController.provider.notifier).getProfile(userId); - - static final provider = - AsyncNotifierProvider.family( - ProfileController.new, - ); -}