Add RoomRolesAndPermissionsFlowCoordinator. (#2539)

This commit is contained in:
Doug
2024-03-08 12:25:43 +00:00
committed by GitHub
parent b54d87efd5
commit 5ec63e901d
43 changed files with 490 additions and 44 deletions
@@ -28,6 +28,7 @@ struct RoomRolesAndPermissionsScreenViewState: BindableState {
enum RoomRolesAndPermissionsScreenViewAction {
case editRoles(RoomRolesAndPermissionsScreenRole)
case editOwnUserRole
case editPermissions(RoomRolesAndPermissionsScreenPermissionsGroup)
case reset
}
@@ -47,6 +47,8 @@ class RoomRolesAndPermissionsScreenViewModel: RoomRolesAndPermissionsScreenViewM
switch viewAction {
case .editRoles(let role):
actionsSubject.send(.editRoles(role))
case .editOwnUserRole:
break
case .editPermissions(let permissionsGroup):
actionsSubject.send(.editPermissions(permissionsGroup))
case .reset:
@@ -40,6 +40,7 @@ struct RoomRolesAndPermissionsScreen: View {
kind: .navigationLink {
context.send(viewAction: .editRoles(.administrators))
})
.accessibilityIdentifier(A11yIdentifiers.roomRolesAndPermissionsScreen.administrators)
ListRow(label: .default(title: L10n.screenRoomRolesAndPermissionsModerators,
icon: \.chatProblem),
@@ -47,6 +48,13 @@ struct RoomRolesAndPermissionsScreen: View {
kind: .navigationLink {
context.send(viewAction: .editRoles(.moderators))
})
.accessibilityIdentifier(A11yIdentifiers.roomRolesAndPermissionsScreen.moderators)
ListRow(label: .default(title: L10n.screenRoomRolesAndPermissionsChangeMyRole,
icon: \.edit),
kind: .button {
context.send(viewAction: .editOwnUserRole)
})
} header: {
Text(L10n.screenRoomRolesAndPermissionsRolesHeader)
.compoundListSectionHeader()
@@ -76,18 +84,21 @@ struct RoomRolesAndPermissionsScreen: View {
kind: .navigationLink {
context.send(viewAction: .editPermissions(.roomDetails))
})
.accessibilityIdentifier(A11yIdentifiers.roomRolesAndPermissionsScreen.roomDetails)
ListRow(label: .default(title: L10n.screenRoomRolesAndPermissionsMessagesAndContent,
icon: \.chat),
kind: .navigationLink {
context.send(viewAction: .editPermissions(.messagesAndContent))
})
.accessibilityIdentifier(A11yIdentifiers.roomRolesAndPermissionsScreen.messagesAndContent)
ListRow(label: .default(title: L10n.screenRoomRolesAndPermissionsMemberModeration,
icon: \.user),
kind: .navigationLink {
context.send(viewAction: .editPermissions(.memberModeration))
})
.accessibilityIdentifier(A11yIdentifiers.roomRolesAndPermissionsScreen.memberModeration)
} header: {
Text(L10n.screenRoomRolesAndPermissionsPermissionsHeader)
.compoundListSectionHeader()