mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
implemented the presentation of transfer ownership screen from the space flow and update UI and preview tests
This commit is contained in:
@@ -185,11 +185,15 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh
|
||||
}
|
||||
|
||||
private func confirmDiscardChanges() {
|
||||
state.bindings.alertInfo = AlertInfo(id: .discardChanges,
|
||||
title: L10n.screenRoomChangeRoleUnsavedChangesTitle,
|
||||
message: L10n.screenRoomChangeRoleUnsavedChangesDescription,
|
||||
primaryButton: .init(title: L10n.actionSave) { Task { await self.save() } },
|
||||
secondaryButton: .init(title: L10n.actionDiscard, role: .cancel) { self.actionsSubject.send(.complete) })
|
||||
if state.hasChanges {
|
||||
state.bindings.alertInfo = AlertInfo(id: .discardChanges,
|
||||
title: L10n.screenRoomChangeRoleUnsavedChangesTitle,
|
||||
message: L10n.screenRoomChangeRoleUnsavedChangesDescription,
|
||||
primaryButton: .init(title: L10n.actionSave) { Task { await self.save() } },
|
||||
secondaryButton: .init(title: L10n.actionDiscard, role: .cancel) { self.actionsSubject.send(.complete) })
|
||||
} else {
|
||||
actionsSubject.send(.complete)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Loading indicator
|
||||
|
||||
@@ -22,7 +22,8 @@ struct LeaveSpaceViewState: BindableState {
|
||||
|
||||
var title: String {
|
||||
switch leaveHandle.mode {
|
||||
case .spaceNeedsNewOwner: L10n.screenLeaveSpaceTitleLastAdmin(spaceName)
|
||||
case .spaceNeedsNewOwner(let useTransferOwnershipFlow):
|
||||
useTransferOwnershipFlow ? L10n.leaveRoomAlertSelectNewOwnerTitle : L10n.screenLeaveSpaceTitleLastAdmin(spaceName)
|
||||
default: L10n.screenLeaveSpaceTitle(spaceName)
|
||||
}
|
||||
}
|
||||
@@ -32,7 +33,8 @@ struct LeaveSpaceViewState: BindableState {
|
||||
case .manyRooms: L10n.screenLeaveSpaceSubtitle
|
||||
case .roomsNeedNewOwner: L10n.screenLeaveSpaceSubtitleOnlyLastAdmin
|
||||
case .noRooms: nil
|
||||
case .spaceNeedsNewOwner: L10n.screenLeaveSpaceSubtitleLastAdmin
|
||||
case .spaceNeedsNewOwner(let useTransferOwnershipFlow):
|
||||
useTransferOwnershipFlow ? L10n.screenLeaveSpaceSubtitleLastOwner(spaceName) : L10n.screenLeaveSpaceSubtitleLastAdmin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@ struct LeaveSpaceRoomDetailsCell: View {
|
||||
|
||||
private var subtitle: String? {
|
||||
guard !room.spaceServiceRoom.isSpace else { return nil }
|
||||
let memberCount = L10n.commonMemberCount(room.spaceServiceRoom.joinedMembersCount)
|
||||
return !room.canLeave ? L10n.screenLeaveSpaceLastAdminInfo(memberCount) : memberCount
|
||||
return L10n.commonMemberCount(room.spaceServiceRoom.joinedMembersCount)
|
||||
}
|
||||
|
||||
var visibilityIcon: KeyPath<CompoundIcons, Image>? {
|
||||
|
||||
@@ -94,10 +94,8 @@ struct LeaveSpaceView: View {
|
||||
case .spaceNeedsNewOwner(let useTransferOwnershipFlow):
|
||||
if context.viewState.canEditRolesAndPermissions {
|
||||
if useTransferOwnershipFlow {
|
||||
Button(role: .destructive) {
|
||||
Button(L10n.leaveRoomAlertSelectNewOwnerAction, role: .destructive) {
|
||||
context.send(viewAction: .transferOwnership)
|
||||
} label: {
|
||||
Label(L10n.actionGoToRolesAndPermissions, icon: \.settings)
|
||||
}
|
||||
.buttonStyle(.compound(.primary))
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user