build method
dynamic
build( - dynamic arg
)
Implementation
@override
AvatarInfo build(arg) {
final roomId = arg;
final fallback = AvatarInfo(uniqueId: roomId);
final room = ref.watch(maybeRoomProvider(roomId)).valueOrNull;
if (room == null) {
return fallback;
}
final displayName = ref.read(roomDisplayNameProvider(roomId)).valueOrNull;
final avatarData = ref.read(roomAvatarProvider(roomId)).valueOrNull;
_avatarListener = ref.listen(
roomAvatarProvider(roomId),
(previous, next) => _maybeUpdate(roomId),
);
_displayNameListener = ref.listen(
roomDisplayNameProvider(roomId),
(previous, next) => _maybeUpdate(roomId),
);
ref.onDispose(() {
_displayNameListener.close();
_avatarListener.close();
});
return AvatarInfo(
uniqueId: roomId,
displayName: displayName,
avatar: avatarData,
);
}