Wrong copy for upgrade room message (#6003)

* Wrong copy for upgrade room message

- fixed
This commit is contained in:
Gil Eluard
2022-04-11 15:46:08 +02:00
committed by GitHub
parent 8c803e5b50
commit 728a80f328
22 changed files with 133 additions and 64 deletions
@@ -20,6 +20,7 @@ import MatrixSDK
struct RoomUpgradeCoordinatorParameters {
let session: MXSession
let roomId: String
let parentSpaceId: String?
let versionOverride: String
}
@@ -44,7 +45,7 @@ final class RoomUpgradeCoordinator: Coordinator, Presentable {
@available(iOS 14.0, *)
init(parameters: RoomUpgradeCoordinatorParameters) {
self.parameters = parameters
let viewModel = RoomUpgradeViewModel.makeRoomUpgradeViewModel(roomUpgradeService: RoomUpgradeService(session: parameters.session, roomId: parameters.roomId, versionOverride: parameters.versionOverride))
let viewModel = RoomUpgradeViewModel.makeRoomUpgradeViewModel(roomUpgradeService: RoomUpgradeService(session: parameters.session, roomId: parameters.roomId, parentSpaceId: parameters.parentSpaceId, versionOverride: parameters.versionOverride))
let view = RoomUpgrade(viewModel: viewModel.context)
.addDependency(AvatarService.instantiate(mediaManager: parameters.session.mediaManager))
roomUpgradeViewModel = viewModel
@@ -25,7 +25,7 @@ enum MockRoomUpgradeScreenState: MockScreenState, CaseIterable {
// with specific, minimal associated data that will allow you
// mock that screen.
case initial
/// The associated screen
var screenType: Any.Type {
RoomUpgrade.self
@@ -35,6 +35,7 @@ enum RoomUpgradeViewModelResult {
struct RoomUpgradeViewState: BindableState {
var waitingMessage: String?
var isLoading: Bool
var parentSpaceName: String?
}
enum RoomUpgradeViewAction {
@@ -47,7 +47,7 @@ class RoomUpgradeViewModel: RoomUpgradeViewModelType, RoomUpgradeViewModelProtoc
}
private static func defaultState(roomUpgradeService: RoomUpgradeServiceProtocol) -> RoomUpgradeViewState {
return RoomUpgradeViewState(waitingMessage: nil, isLoading: false)
return RoomUpgradeViewState(waitingMessage: nil, isLoading: false, parentSpaceName: roomUpgradeService.parentSpaceName)
}
private func setupObservers() {
@@ -26,7 +26,7 @@ class RoomUpgradeService: RoomUpgradeServiceProtocol {
// MARK: Private
private let session: MXSession
private let parentSpaceId: String?
private let versionOverride: String
private var currentOperation: MXHTTPOperation?
private var didBuildSpaceGraphObserver: Any?
@@ -37,11 +37,25 @@ class RoomUpgradeService: RoomUpgradeServiceProtocol {
private(set) var errorSubject: CurrentValueSubject<Error?, Never>
private(set) var currentRoomId: String
var parentSpaceName: String? {
guard let parentId = self.parentSpaceId else {
return nil
}
guard let parent = session.spaceService?.getSpace(withId: parentId) else {
MXLog.error("[RoomUpgradeService] parentSpaceName: parent space not found.")
return nil
}
return parent.room?.displayName
}
// MARK: - Setup
init(session: MXSession, roomId: String, versionOverride: String) {
init(session: MXSession, roomId: String, parentSpaceId: String?, versionOverride: String) {
self.session = session
self.currentRoomId = roomId
self.parentSpaceId = parentSpaceId
self.versionOverride = versionOverride
self.upgradingSubject = CurrentValueSubject(false)
self.errorSubject = CurrentValueSubject(nil)
@@ -23,6 +23,9 @@ class MockRoomUpgradeService: RoomUpgradeServiceProtocol {
var errorSubject: CurrentValueSubject<Error?, Never>
var upgradingSubject: CurrentValueSubject<Bool, Never>
var parentSpaceName: String? {
return "Parent space name"
}
init() {
self.errorSubject = CurrentValueSubject(nil)
@@ -20,6 +20,7 @@ import Combine
@available(iOS 14.0, *)
protocol RoomUpgradeServiceProtocol {
var currentRoomId: String { get }
var parentSpaceName: String? { get }
var upgradingSubject: CurrentValueSubject<Bool, Never> { get }
var errorSubject: CurrentValueSubject<Error?, Never> { get }
@@ -46,43 +46,44 @@ struct RoomUpgrade: View {
@ViewBuilder
private var alertContent: some View {
VStack(alignment: .center) {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertTitle)
.font(theme.fonts.title3SB)
.foregroundColor(theme.colors.primaryContent)
ZStack {
VStack(alignment: .center) {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertTitle)
.font(theme.fonts.title3SB)
.foregroundColor(theme.colors.primaryContent)
.padding(.bottom, 24)
if let spaceName = viewModel.viewState.parentSpaceName {
noteText(VectorL10n.roomAccessSettingsScreenUpgradeAlertMessage(spaceName))
.padding(.bottom)
} else {
noteText(VectorL10n.roomAccessSettingsScreenUpgradeAlertMessageNoParam)
.padding(.bottom)
}
noteText(VectorL10n.roomAccessSettingsScreenUpgradeAlertNote)
.padding(.bottom, 35)
Toggle(isOn: $autoInviteUsers) {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertAutoInviteSwitch)
.font(theme.fonts.body)
.foregroundColor(theme.colors.secondaryContent)
}
.toggleStyle(SwitchToggleStyle(tint: theme.colors.accent))
Divider()
Button {
viewModel.send(viewAction: .done(autoInviteUsers))
} label: {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertUpgradeButton)
}
.buttonStyle(PrimaryActionButtonStyle())
.accessibilityIdentifier("upgradeButton")
.padding(.top, 16)
.padding(.bottom, 24)
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertMessage)
.multilineTextAlignment(.center)
.font(theme.fonts.subheadline)
.foregroundColor(theme.colors.secondaryContent)
.padding(.bottom, 35)
.padding(.horizontal, 12)
Toggle(isOn: $autoInviteUsers) {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertAutoInviteSwitch)
.font(theme.fonts.body)
.foregroundColor(theme.colors.secondaryContent)
Button {
viewModel.send(viewAction: .cancel)
} label: {
Text(VectorL10n.cancel)
}
.buttonStyle(SecondaryActionButtonStyle())
.accessibilityIdentifier("cancelButton")
}
.toggleStyle(SwitchToggleStyle(tint: theme.colors.accent))
.padding(.horizontal, 28)
Divider()
.padding(.horizontal, 28)
Button {
viewModel.send(viewAction: .done(autoInviteUsers))
} label: {
Text(VectorL10n.roomAccessSettingsScreenUpgradeAlertUpgradeButton)
}
.buttonStyle(PrimaryActionButtonStyle())
.accessibilityIdentifier("upgradeButton")
.padding(.horizontal, 24)
.padding(.top, 16)
Button {
viewModel.send(viewAction: .cancel)
} label: {
Text(VectorL10n.cancel)
}
.buttonStyle(SecondaryActionButtonStyle())
.accessibilityIdentifier("cancelButton")
.padding(.horizontal, 24)
.padding(.vertical, 16)
}
@@ -90,6 +91,13 @@ struct RoomUpgrade: View {
.padding(.horizontal, 20)
.frame(minWidth: 0, maxWidth: 500)
}
private func noteText(_ message: String) -> some View {
return Text(message)
.multilineTextAlignment(.center)
.font(theme.fonts.subheadline)
.foregroundColor(theme.colors.secondaryContent)
}
}
// MARK: - Previews