Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,15 @@ fun PeopleScreen(
onDispose { lifecycleOwner.lifecycle.removeObserver(observer) }
}

val filteredMembers = remember(memberQuery, membersState.members) {
if (memberQuery.isBlank()) membersState.members
else membersState.members.filter {
// The list endpoint returns archived members too; keep them out of the
// roster (and its count). Archived members are viewed/restored from
// Settings > System > Archived members.
val activeMembers = remember(membersState.members) {
membersState.members.filter { !it.isArchived }
}
val filteredMembers = remember(memberQuery, activeMembers) {
if (memberQuery.isBlank()) activeMembers
else activeMembers.filter {
it.displayNameOrName.contains(memberQuery.trim(), ignoreCase = true) ||
it.pronouns?.contains(memberQuery.trim(), ignoreCase = true) == true
}
Expand Down Expand Up @@ -153,7 +159,7 @@ fun PeopleScreen(
isLoading = membersState.isLoading,
error = membersState.error,
members = filteredMembers,
rawMemberCount = membersState.members.size,
rawMemberCount = activeMembers.size,
query = memberQuery,
onQueryChange = { memberQuery = it },
showSearch = searchOpen,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,9 @@ class SettingsViewModel @Inject constructor(
_state.update { it.copy(isLoading = false, error = e.toUserMessage()) }
return@launch
}
val memberCount = runCatching { api.listMembers().size }.getOrDefault(0)
// Exclude archived members; the list endpoint returns them but
// they aren't part of the active roster the count represents.
val memberCount = runCatching { api.listMembers().count { !it.isArchived } }.getOrDefault(0)
val groupCount = runCatching { api.listGroups().size }.getOrDefault(0)
val frontingCount = runCatching {
api.getCurrentFronts().flatMap { it.memberIds }.toSet().size
Expand Down
Loading