mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Room details: improve members count UX (#1050)
* Inject user id into room’s details * Refactor member fetch logic in RoomDetailsScreenViewModel * Refactor DI * Fetch members in RoomMembersListScreenViewModel * Fetch members in InviteUsersScreen * Use joinedMembersCount in room members list * Cleanup * Limit members refresh * Cleanup binding * Fix UT build errors * Fix RoomDetailsScreenViewModelTests * Fix RoomMembersListScreenViewModelTests * Fix UTs * Fix RoomDetailsScreenUITests * Refine RoomDetailsScreenViewModelTests * Add roomProxy extension * PR comments * Refactor room’s counter to Int * Improve updateMembers() performances * Fix memory leaks
This commit is contained in:
@@ -24,10 +24,16 @@ enum RoomMembersListScreenViewModelAction {
|
||||
struct RoomMembersListScreenViewState: BindableState {
|
||||
private var joinedMembers: [RoomMemberDetails]
|
||||
private var invitedMembers: [RoomMemberDetails]
|
||||
|
||||
let joinedMembersCount: Int
|
||||
var canInviteUsers = false
|
||||
var bindings: RoomMembersListScreenViewStateBindings
|
||||
|
||||
init(joinedMembers: [RoomMemberDetails] = [], invitedMembers: [RoomMemberDetails] = [], bindings: RoomMembersListScreenViewStateBindings = .init()) {
|
||||
init(joinedMembersCount: Int,
|
||||
joinedMembers: [RoomMemberDetails] = [],
|
||||
invitedMembers: [RoomMemberDetails] = [],
|
||||
bindings: RoomMembersListScreenViewStateBindings = .init()) {
|
||||
self.joinedMembersCount = joinedMembersCount
|
||||
self.joinedMembers = joinedMembers
|
||||
self.invitedMembers = invitedMembers
|
||||
self.bindings = bindings
|
||||
@@ -46,10 +52,6 @@ struct RoomMembersListScreenViewState: BindableState {
|
||||
member.matches(searchQuery: bindings.searchQuery)
|
||||
}
|
||||
}
|
||||
|
||||
var joinedMembersCount: Int {
|
||||
joinedMembers.count
|
||||
}
|
||||
}
|
||||
|
||||
struct RoomMembersListScreenViewStateBindings {
|
||||
|
||||
Reference in New Issue
Block a user