implemented the presentation of transfer ownership screen from the space flow and update UI and preview tests

This commit is contained in:
Mauro Romito
2026-01-27 19:40:30 +01:00
committed by Mauro
parent 9de49bad9e
commit 9999cd24b8
34 changed files with 127 additions and 60 deletions
@@ -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 {