build method

  1. @override
dynamic build(
  1. dynamic context,
  2. dynamic ref
)

Implementation

@override
Widget build(BuildContext context, WidgetRef ref) {
  final memberStatus = ref
      .watch(membershipStatusStr((roomId: roomId, userId: memberId)))
      .valueOrNull;
  Widget? trailing;
  if (memberStatus == 'Admin') {
    trailing = const Tooltip(
      message: 'Admin',
      child: Icon(Atlas.crown_winner_thin),
    );
  } else if (memberStatus == 'Mod') {
    trailing = const Tooltip(
      message: 'Moderator',
      child: Icon(Atlas.shield_star_win_thin),
    );
  }

  final avatarInfo =
      ref.watch(memberAvatarInfoProvider((userId: memberId, roomId: roomId)));

  return ListTile(
    onTap: () async {
      if (context.mounted) {
        await showMemberInfoDrawer(
          context: context,
          roomId: roomId,
          memberId: memberId,
          isShowActions: isShowActions,
        );
      }
    },
    leading: ActerAvatar(
      options: AvatarOptions.DM(
        avatarInfo,
        size: 18,
      ),
    ),
    title: Text(
      avatarInfo.displayName ?? memberId,
      style: Theme.of(context).textTheme.bodyMedium,
      overflow: TextOverflow.ellipsis,
    ),
    subtitle: avatarInfo.displayName != null
        ? Text(
            memberId,
            style: Theme.of(context).textTheme.labelLarge,
            overflow: TextOverflow.ellipsis,
          )
        : null,
    trailing: trailing,
  );
}