forked from Nexus/nexus
31 lines
962 B
Dart
31 lines
962 B
Dart
import "dart:async";
|
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
|
import "package:nexus/controllers/user_controller.dart";
|
|
import "package:nexus/models/configs/user_config.dart";
|
|
import "package:nexus/models/content/membership.dart";
|
|
import "package:nexus/models/event.dart";
|
|
|
|
class AuthorController extends AsyncNotifier<MembershipContent> {
|
|
final Event event;
|
|
AuthorController(this.event);
|
|
|
|
@override
|
|
Future<MembershipContent> build() async {
|
|
final member = await ref.watch(
|
|
UserController.provider(
|
|
UserConfig(roomId: event.roomId, userId: event.sender),
|
|
).future,
|
|
);
|
|
|
|
return MembershipContent(
|
|
status: member.status,
|
|
avatarUrl: event.pmp?.avatarUrl ?? member.avatarUrl,
|
|
displayName: event.pmp?.displayName ?? member.displayName,
|
|
);
|
|
}
|
|
|
|
static final provider =
|
|
AsyncNotifierProvider.family<AuthorController, MembershipContent, Event>(
|
|
AuthorController.new,
|
|
);
|
|
}
|