make profile fetching much faster
This commit is contained in:
parent
ab48472aec
commit
6b4d612535
2 changed files with 9 additions and 22 deletions
|
|
@ -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<Message?> {
|
|||
|
||||
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<Message?> {
|
|||
),
|
||||
).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,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Profile> {
|
||||
final String userId;
|
||||
ProfileController(this.userId);
|
||||
|
||||
@override
|
||||
Future<Profile> build() =>
|
||||
ref.watch(ClientController.provider.notifier).getProfile(userId);
|
||||
|
||||
static final provider =
|
||||
AsyncNotifierProvider.family<ProfileController, Profile, String>(
|
||||
ProfileController.new,
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue