mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Invited members in room's members list (#880)
* Add invited people in RoomMembersListScreen * Optimize main thread perfomance in RoomDetailsScreenViewModel * Fix member count in RoomDetailsScreenViewModel * Add warning * Add performance warnings * Build members in RoomMembersListScreenViewModel in global queue * Refactor RoomDetailsScreenViewModel build members process * Localize strings * Cleanup * Fix RoomDetailsScreenViewModelTests UTs * Fix UI tests * Add RoomMembersListScreenViewModel UTs * Add UI tests * Amend UI tests * Use clearAndTypeText
This commit is contained in:
@@ -25,18 +25,8 @@ struct RoomMembersListScreen: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
LazyVStack(alignment: .leading) {
|
||||
Section {
|
||||
ForEach(context.viewState.visibleMembers) { member in
|
||||
RoomMembersListScreenMemberCell(member: member, context: context)
|
||||
.id(member.id)
|
||||
}
|
||||
} header: {
|
||||
Text(L10n.commonMemberCount(context.viewState.members.count))
|
||||
.foregroundColor(.element.secondaryContent)
|
||||
.font(.compound.bodyLG)
|
||||
.padding(.vertical, 12)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
membersSection(data: context.viewState.visibleInvitedMembers, sectionTitle: L10n.screenRoomMemberListPendingHeaderTitle)
|
||||
membersSection(data: context.viewState.visibleJoinedMembers, sectionTitle: L10n.screenRoomMemberListHeaderTitle(context.viewState.joinedMembersCount))
|
||||
}
|
||||
}
|
||||
.searchable(text: $context.searchQuery, placement: .navigationBarDrawer(displayMode: .always))
|
||||
@@ -45,6 +35,24 @@ struct RoomMembersListScreen: View {
|
||||
.navigationTitle(L10n.commonPeople)
|
||||
.alert(item: $context.alertInfo) { $0.alert }
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func membersSection(data: [RoomMemberDetails], sectionTitle: String) -> some View {
|
||||
Section {
|
||||
ForEach(data, id: \.id) { member in
|
||||
RoomMembersListScreenMemberCell(member: member, context: context)
|
||||
}
|
||||
} header: {
|
||||
if !data.isEmpty {
|
||||
Text(sectionTitle)
|
||||
.foregroundColor(.element.secondaryContent)
|
||||
.font(.compound.bodyLG)
|
||||
.padding(.vertical, 12)
|
||||
}
|
||||
}
|
||||
.padding(.horizontal)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Previews
|
||||
|
||||
Reference in New Issue
Block a user