mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +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:
@@ -137,13 +137,9 @@ struct RoomDetailsScreen: View {
|
||||
context.send(viewAction: .processTapPeople)
|
||||
} label: {
|
||||
LabeledContent {
|
||||
if context.viewState.isLoadingMembers {
|
||||
ProgressView()
|
||||
} else {
|
||||
Text(String(context.viewState.joinedMembersCount))
|
||||
.foregroundColor(.element.tertiaryContent)
|
||||
.font(.compound.bodyLG)
|
||||
}
|
||||
Text(String(context.viewState.joinedMembersCount))
|
||||
.foregroundColor(.element.tertiaryContent)
|
||||
.font(.compound.bodyLG)
|
||||
} label: {
|
||||
Label(L10n.commonPeople, systemImage: "person")
|
||||
}
|
||||
@@ -160,9 +156,8 @@ struct RoomDetailsScreen: View {
|
||||
}
|
||||
}
|
||||
.listRowSeparatorTint(.element.quinaryContent)
|
||||
.buttonStyle(FormButtonStyle(accessory: context.viewState.isLoadingMembers ? nil : .navigationLink))
|
||||
.buttonStyle(FormButtonStyle(accessory: .navigationLink))
|
||||
.foregroundColor(.element.primaryContent)
|
||||
.disabled(context.viewState.isLoadingMembers)
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
@@ -257,7 +252,8 @@ struct RoomDetailsScreen_Previews: PreviewProvider {
|
||||
canonicalAlias: "#alias:domain.com",
|
||||
members: members))
|
||||
|
||||
return RoomDetailsScreenViewModel(roomProxy: roomProxy,
|
||||
return RoomDetailsScreenViewModel(accountUserID: "@owner:somewhere.com",
|
||||
roomProxy: roomProxy,
|
||||
mediaProvider: MockMediaProvider())
|
||||
}()
|
||||
|
||||
@@ -274,7 +270,8 @@ struct RoomDetailsScreen_Previews: PreviewProvider {
|
||||
canonicalAlias: "#alias:domain.com",
|
||||
members: members))
|
||||
|
||||
return RoomDetailsScreenViewModel(roomProxy: roomProxy,
|
||||
return RoomDetailsScreenViewModel(accountUserID: "@owner:somewhere.com",
|
||||
roomProxy: roomProxy,
|
||||
mediaProvider: MockMediaProvider())
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user