sortList function

List<UserInfoWithTeam>? sortList(
  1. List<UserInfoWithTeam>? memberList
)

特定规则排序群成员 群主>管理员>普通成员

Implementation

List<UserInfoWithTeam>? sortList(List<UserInfoWithTeam>? memberList) {
  int roleRank(NIMTeamMemberRole role) {
    if (role == NIMTeamMemberRole.memberRoleOwner) {
      return 0;
    }
    if (role == NIMTeamMemberRole.memberRoleManager) {
      return 1;
    }
    return 2;
  }

  if (memberList != null) {
    final indexedMembers = memberList.asMap().entries.toList();
    indexedMembers.sort((a, b) {
      final roleComparison = roleRank(a.value.teamInfo.memberRole)
          .compareTo(roleRank(b.value.teamInfo.memberRole));
      return roleComparison != 0 ? roleComparison : a.key.compareTo(b.key);
    });
    for (var index = 0; index < indexedMembers.length; index++) {
      memberList[index] = indexedMembers[index].value;
    }
  }
  return memberList;
}