pr suggestions

This commit is contained in:
Mauro Romito
2025-12-04 15:50:43 +01:00
committed by Mauro
parent d9d9606765
commit 81ac54d23a
4 changed files with 38 additions and 38 deletions
@@ -67,7 +67,7 @@ struct SecurityAndPrivacyScreenViewState: BindableState {
}
var isSpaceMembersOptionAvailable: Bool {
currentSettings.accessType.isSpaceUsers || isSpaceMembersOptionSelectable
currentSettings.accessType.isSpaceMembers || isSpaceMembersOptionSelectable
}
var isSpaceMembersOptionSelectable: Bool {
@@ -75,7 +75,7 @@ struct SecurityAndPrivacyScreenViewState: BindableState {
}
var isAskToJoinWithSpaceMembersOptionAvailable: Bool {
currentSettings.accessType.isAskToJoinWithSpaceUsers || isAskToJoinWithSpaceMembersOptionSelectable
currentSettings.accessType.isAskToJoinWithSpaceMembers || isAskToJoinWithSpaceMembersOptionSelectable
}
var isAskToJoinWithSpaceMembersOptionSelectable: Bool {
@@ -113,9 +113,9 @@ struct SecurityAndPrivacyScreenViewState: BindableState {
}
var accessSectionFooter: AttributedString? {
if (bindings.desiredSettings.accessType.isSpaceUsers &&
if (bindings.desiredSettings.accessType.isSpaceMembers &&
isSpaceMembersOptionSelectable) ||
(bindings.desiredSettings.accessType.isAskToJoinWithSpaceUsers &&
(bindings.desiredSettings.accessType.isAskToJoinWithSpaceMembers &&
isAskToJoinWithSpaceMembersOptionSelectable),
case .multiple = spaceSelection {
Self.accessSectionFooterAttributedString
@@ -141,7 +141,7 @@ struct SecurityAndPrivacyScreenViewState: BindableState {
} else if selectableSpacesCount > 1 {
.multiple
} else if let joinedParent = joinedParentSpaces.first {
if currentSettings.accessType.isSpaceUsers || currentSettings.accessType.isAskToJoinWithSpaceUsers {
if currentSettings.accessType.isSpaceMembers || currentSettings.accessType.isAskToJoinWithSpaceMembers {
if currentSettings.accessType.spaceIDs.isEmpty {
// Edge case where the access type is already space members, but it does not contain any id
// So if the user wants to add their own parent they need to do it from the selection menu
@@ -197,22 +197,22 @@ struct SecurityAndPrivacySettings: Equatable {
enum SecurityAndPrivacyRoomAccessType: Equatable {
case inviteOnly
case askToJoin
case askToJoinWithSpaceUsers(spaceIDs: [String])
case askToJoinWithSpaceMembers(spaceIDs: [String])
case anyone
case spaceUsers(spaceIDs: [String])
case spaceMembers(spaceIDs: [String])
var isSpaceUsers: Bool {
var isSpaceMembers: Bool {
switch self {
case .spaceUsers:
case .spaceMembers:
true
default:
false
}
}
var isAskToJoinWithSpaceUsers: Bool {
var isAskToJoinWithSpaceMembers: Bool {
switch self {
case .askToJoinWithSpaceUsers:
case .askToJoinWithSpaceMembers:
true
default:
false
@@ -221,16 +221,16 @@ enum SecurityAndPrivacyRoomAccessType: Equatable {
var isAddressRequired: Bool {
switch self {
case .inviteOnly, .spaceUsers:
case .inviteOnly, .spaceMembers:
false
case .anyone, .askToJoin, .askToJoinWithSpaceUsers:
case .anyone, .askToJoin, .askToJoinWithSpaceMembers:
true
}
}
var spaceIDs: [String] {
switch self {
case .spaceUsers(let spaceIDs), .askToJoinWithSpaceUsers(let spaceIDs):
case .spaceMembers(let spaceIDs), .askToJoinWithSpaceMembers(let spaceIDs):
return spaceIDs
case .inviteOnly, .askToJoin, .anyone:
return []
@@ -81,7 +81,7 @@ class SecurityAndPrivacyScreenViewModel: SecurityAndPrivacyScreenViewModelType,
case .selectedSpaceMembersAccess:
handleSelectedSpaceMembersAccess()
case .manageSpaces:
displayManageAuthorizedSpacesScreen(isAskToJoin: state.bindings.desiredSettings.accessType.isAskToJoinWithSpaceUsers)
displayManageAuthorizedSpacesScreen(isAskToJoin: state.bindings.desiredSettings.accessType.isAskToJoinWithSpaceMembers)
case .selectedAskToJoinWithSpaceMembersAccess:
handleSelectedAskToJoinWithSpaceMembersAccess()
}
@@ -237,16 +237,16 @@ class SecurityAndPrivacyScreenViewModel: SecurityAndPrivacyScreenViewModelType,
}
private func handleSelectedSpaceMembersAccess() {
guard !state.bindings.desiredSettings.accessType.isSpaceUsers else {
guard !state.bindings.desiredSettings.accessType.isSpaceMembers else {
// If the user is tapping the space members access again we do nothing
return
}
switch state.spaceSelection {
case .singleJoined(let joinedParent):
state.bindings.desiredSettings.accessType = .spaceUsers(spaceIDs: [joinedParent.id])
state.bindings.desiredSettings.accessType = .spaceMembers(spaceIDs: [joinedParent.id])
case .singleUnknown(let id):
state.bindings.desiredSettings.accessType = .spaceUsers(spaceIDs: [id])
state.bindings.desiredSettings.accessType = .spaceMembers(spaceIDs: [id])
case .empty:
break // Very edge case. We do nothing in this case.
case .multiple:
@@ -255,16 +255,16 @@ class SecurityAndPrivacyScreenViewModel: SecurityAndPrivacyScreenViewModelType,
}
private func handleSelectedAskToJoinWithSpaceMembersAccess() {
guard !state.bindings.desiredSettings.accessType.isAskToJoinWithSpaceUsers else {
guard !state.bindings.desiredSettings.accessType.isAskToJoinWithSpaceMembers else {
// If the user is tapping the ask to join with space members access again we do nothing
return
}
switch state.spaceSelection {
case .singleJoined(let joinedParent):
state.bindings.desiredSettings.accessType = .askToJoinWithSpaceUsers(spaceIDs: [joinedParent.id])
state.bindings.desiredSettings.accessType = .askToJoinWithSpaceMembers(spaceIDs: [joinedParent.id])
case .singleUnknown(let id):
state.bindings.desiredSettings.accessType = .askToJoinWithSpaceUsers(spaceIDs: [id])
state.bindings.desiredSettings.accessType = .askToJoinWithSpaceMembers(spaceIDs: [id])
case .empty:
break // Very edge case. We do nothing in this case.
case .multiple:
@@ -284,7 +284,7 @@ class SecurityAndPrivacyScreenViewModel: SecurityAndPrivacyScreenViewModelType,
authorizedSpacesSelection.selectedIDs
.sink { [weak self] desiredSelectedIDs in
let sortedIDs = desiredSelectedIDs.sorted()
self?.state.bindings.desiredSettings.accessType = isAskToJoin ? .askToJoinWithSpaceUsers(spaceIDs: sortedIDs) : .spaceUsers(spaceIDs: sortedIDs)
self?.state.bindings.desiredSettings.accessType = isAskToJoin ? .askToJoinWithSpaceMembers(spaceIDs: sortedIDs) : .spaceMembers(spaceIDs: sortedIDs)
}
.store(in: &cancellables)
@@ -314,9 +314,9 @@ private extension SecurityAndPrivacyRoomAccessType {
.knock
case .anyone:
.public
case .spaceUsers(let spaceIDs):
case .spaceMembers(let spaceIDs):
.restricted(rules: spaceIDs.map { .roomMembership(roomId: $0) })
case .askToJoinWithSpaceUsers(let spaceIDs):
case .askToJoinWithSpaceMembers(let spaceIDs):
.knockRestricted(rules: spaceIDs.map { .roomMembership(roomId: $0) })
}
}
@@ -358,9 +358,9 @@ private extension Optional where Wrapped == JoinRule {
case .knock:
return .askToJoin
case .knockRestricted(let rules):
return .askToJoinWithSpaceUsers(spaceIDs: Self.spaceIDs(from: rules))
return .askToJoinWithSpaceMembers(spaceIDs: Self.spaceIDs(from: rules))
case .restricted(let rules):
return .spaceUsers(spaceIDs: Self.spaceIDs(from: rules))
return .spaceMembers(spaceIDs: Self.spaceIDs(from: rules))
default:
return .inviteOnly
}
@@ -55,7 +55,7 @@ struct SecurityAndPrivacyScreen: View {
ListRow(label: .default(title: L10n.screenSecurityAndPrivacyRoomAccessSpaceMembersOptionTitle,
description: context.viewState.spaceMembersDescription,
icon: \.space),
kind: .selection(isSelected: context.desiredSettings.accessType.isSpaceUsers) {
kind: .selection(isSelected: context.desiredSettings.accessType.isSpaceMembers) {
context.send(viewAction: .selectedSpaceMembersAccess)
})
.disabled(!context.viewState.isSpaceMembersOptionSelectable)
@@ -103,7 +103,7 @@ struct SecurityAndPrivacyScreen: View {
ListRow(label: .default(title: L10n.screenSecurityAndPrivacyAskToJoinOptionTitle,
description: context.viewState.askToJoinWithSpaceMembersDescription,
icon: \.userAdd),
kind: .selection(isSelected: context.desiredSettings.accessType.isAskToJoinWithSpaceUsers) { context.send(viewAction: .selectedAskToJoinWithSpaceMembersAccess) })
kind: .selection(isSelected: context.desiredSettings.accessType.isAskToJoinWithSpaceMembers) { context.send(viewAction: .selectedAskToJoinWithSpaceMembersAccess) })
.disabled(!context.viewState.isAskToJoinWithSpaceMembersOptionSelectable)
}