SP4: space settings (#5730)

* SP4: Space Settings

- Space settings screen implemented
- No space upgrade available as per Element web
- Need more insights for the space address field
- Added settings live update
- Added local alias implementation
This commit is contained in:
Gil Eluard
2022-03-04 12:53:42 +01:00
committed by GitHub
parent 136b40e2eb
commit bc55dbb11b
43 changed files with 2184 additions and 118 deletions
@@ -76,8 +76,8 @@ class SpaceCreationSettingsViewModel: SpaceCreationSettingsViewModelType, SpaceC
showRoomAddress: creationParameters.showAddress,
defaultAddress: creationParameters.address ?? "",
roomNameError: nil,
addressMessage: addressMessage(with: validationStatus),
isAddressValid: isAddressValid(with: validationStatus),
addressMessage: validationStatus.message,
isAddressValid: validationStatus.isValid,
avatar: AvatarInput(mxContentUri: nil, matrixItemId: "", displayName: nil),
avatarImage: creationParameters.userSelectedAvatar,
bindings: bindings)
@@ -120,8 +120,8 @@ class SpaceCreationSettingsViewModel: SpaceCreationSettingsViewModelType, SpaceC
case .updateRoomDefaultAddress(let defaultAddress):
state.defaultAddress = defaultAddress
case .updateAddressValidationStatus(let validationStatus):
state.addressMessage = Self.addressMessage(with: validationStatus)
state.isAddressValid = Self.isAddressValid(with: validationStatus)
state.addressMessage = validationStatus.message
state.isAddressValid = validationStatus.isValid
case .updateAvatar(let avatar):
state.avatar = avatar
case .updateAvatarImage(let image):
@@ -161,26 +161,4 @@ class SpaceCreationSettingsViewModel: SpaceCreationSettingsViewModelType, SpaceC
private func pickImage(from sourceRect: CGRect) {
callback?(.pickImage(sourceRect))
}
private static func addressMessage(with validationStatus: SpaceCreationSettingsAddressValidationStatus) -> String {
switch validationStatus {
case .none(let fullAddress):
return VectorL10n.spacesCreationAddressDefaultMessage(fullAddress)
case .valid(let fullAddress):
return VectorL10n.spacesCreationAddressDefaultMessage(fullAddress)
case .alreadyExists(let fullAddress):
return VectorL10n.spacesCreationAddressAlreadyExists(fullAddress)
case .invalidCharacters(let fullAddress):
return VectorL10n.spacesCreationAddressInvalidCharacters(fullAddress)
}
}
private static func isAddressValid(with validationStatus: SpaceCreationSettingsAddressValidationStatus) -> Bool {
switch validationStatus {
case .none, .valid:
return true
default:
return false
}
}
}