mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 21:39:12 +00:00
Change Leave Room to Leave Conversation for DMs (#2354)
This commit is contained in:
parent
3ae33f1309
commit
74ec4f09ff
@ -56,6 +56,7 @@
|
||||
"action_join" = "Join";
|
||||
"action_learn_more" = "Learn more";
|
||||
"action_leave" = "Leave";
|
||||
"action_leave_conversation" = "Leave conversation";
|
||||
"action_leave_room" = "Leave room";
|
||||
"action_manage_account" = "Manage account";
|
||||
"action_manage_devices" = "Manage devices";
|
||||
@ -228,6 +229,7 @@
|
||||
"error_unknown" = "Sorry, an error occurred";
|
||||
"invite_friends_rich_title" = "🔐️ Join me on %1$@";
|
||||
"invite_friends_text" = "Hey, talk to me on %1$@: %2$@";
|
||||
"leave_conversation_alert_subtitle" = "Are you sure that you want to leave this conversation? This conversation is not public and you won't be able to rejoin without an invite.";
|
||||
"leave_room_alert_empty_subtitle" = "Are you sure that you want to leave this room? You're the only person here. If you leave, no one will be able to join in the future, including you.";
|
||||
"leave_room_alert_private_subtitle" = "Are you sure that you want to leave this room? This room is not public and you won't be able to rejoin without an invite.";
|
||||
"leave_room_alert_subtitle" = "Are you sure that you want to leave the room?";
|
||||
@ -679,6 +681,7 @@
|
||||
"screen_dm_details_unblock_user" = "Unblock user";
|
||||
"screen_login_subtitle" = "Matrix is an open network for secure, decentralised communication.";
|
||||
"screen_report_content_block_user" = "Block user";
|
||||
"screen_room_details_leave_conversation_title" = "Leave conversation";
|
||||
"screen_room_details_leave_room_title" = "Leave room";
|
||||
"screen_room_details_security_title" = "Security";
|
||||
"screen_room_details_topic_title" = "Topic";
|
||||
|
@ -146,6 +146,8 @@ public enum L10n {
|
||||
public static var actionLearnMore: String { return L10n.tr("Localizable", "action_learn_more") }
|
||||
/// Leave
|
||||
public static var actionLeave: String { return L10n.tr("Localizable", "action_leave") }
|
||||
/// Leave conversation
|
||||
public static var actionLeaveConversation: String { return L10n.tr("Localizable", "action_leave_conversation") }
|
||||
/// Leave room
|
||||
public static var actionLeaveRoom: String { return L10n.tr("Localizable", "action_leave_room") }
|
||||
/// Manage account
|
||||
@ -524,6 +526,8 @@ public enum L10n {
|
||||
public static func inviteFriendsText(_ p1: Any, _ p2: Any) -> String {
|
||||
return L10n.tr("Localizable", "invite_friends_text", String(describing: p1), String(describing: p2))
|
||||
}
|
||||
/// Are you sure that you want to leave this conversation? This conversation is not public and you won't be able to rejoin without an invite.
|
||||
public static var leaveConversationAlertSubtitle: String { return L10n.tr("Localizable", "leave_conversation_alert_subtitle") }
|
||||
/// Are you sure that you want to leave this room? You're the only person here. If you leave, no one will be able to join in the future, including you.
|
||||
public static var leaveRoomAlertEmptySubtitle: String { return L10n.tr("Localizable", "leave_room_alert_empty_subtitle") }
|
||||
/// Are you sure that you want to leave this room? This room is not public and you won't be able to rejoin without an invite.
|
||||
@ -1188,6 +1192,8 @@ public enum L10n {
|
||||
public static var screenRoomDetailsErrorUnmuting: String { return L10n.tr("Localizable", "screen_room_details_error_unmuting") }
|
||||
/// Invite people
|
||||
public static var screenRoomDetailsInvitePeopleTitle: String { return L10n.tr("Localizable", "screen_room_details_invite_people_title") }
|
||||
/// Leave conversation
|
||||
public static var screenRoomDetailsLeaveConversationTitle: String { return L10n.tr("Localizable", "screen_room_details_leave_conversation_title") }
|
||||
/// Leave room
|
||||
public static var screenRoomDetailsLeaveRoomTitle: String { return L10n.tr("Localizable", "screen_room_details_leave_room_title") }
|
||||
/// Custom
|
||||
|
@ -331,9 +331,9 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
}
|
||||
|
||||
if room.isPublic {
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomId, state: .public)
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomId, isDM: room.isEncryptedOneToOneRoom, state: .public)
|
||||
} else {
|
||||
state.bindings.leaveRoomAlertItem = room.joinedMembersCount > 1 ? LeaveRoomAlertItem(roomId: roomId, state: .private) : LeaveRoomAlertItem(roomId: roomId, state: .empty)
|
||||
state.bindings.leaveRoomAlertItem = room.joinedMembersCount > 1 ? LeaveRoomAlertItem(roomId: roomId, isDM: room.isEncryptedOneToOneRoom, state: .private) : LeaveRoomAlertItem(roomId: roomId, isDM: room.isEncryptedOneToOneRoom, state: .empty)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -147,15 +147,19 @@ struct LeaveRoomAlertItem: AlertProtocol {
|
||||
}
|
||||
|
||||
let roomId: String
|
||||
let isDM: Bool
|
||||
let state: RoomState
|
||||
let title = L10n.actionLeaveRoom
|
||||
let confirmationTitle = L10n.actionLeave
|
||||
let cancelTitle = L10n.actionCancel
|
||||
|
||||
var title: String {
|
||||
isDM ? L10n.actionLeaveConversation : L10n.actionLeaveRoom
|
||||
}
|
||||
|
||||
var subtitle: String {
|
||||
switch state {
|
||||
case .empty: return L10n.leaveRoomAlertEmptySubtitle
|
||||
case .private: return L10n.leaveRoomAlertPrivateSubtitle
|
||||
case .private: return isDM ? L10n.leaveConversationAlertSubtitle : L10n.leaveRoomAlertPrivateSubtitle
|
||||
case .public: return L10n.leaveRoomAlertSubtitle
|
||||
}
|
||||
}
|
||||
|
@ -90,10 +90,10 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr
|
||||
actionsSubject.send(.requestInvitePeoplePresentation)
|
||||
case .processTapLeave:
|
||||
guard state.joinedMembersCount > 1 else {
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomProxy.id, state: .empty)
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomProxy.id, isDM: roomProxy.isEncryptedOneToOneRoom, state: .empty)
|
||||
return
|
||||
}
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomProxy.id, state: roomProxy.isPublic ? .public : .private)
|
||||
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomId: roomProxy.id, isDM: roomProxy.isEncryptedOneToOneRoom, state: roomProxy.isPublic ? .public : .private)
|
||||
case .confirmLeave:
|
||||
Task { await leaveRoom() }
|
||||
case .processTapIgnore:
|
||||
|
@ -220,10 +220,14 @@ struct RoomDetailsScreen: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var leaveRoomTitle: String {
|
||||
context.viewState.dmRecipient == nil ? L10n.screenRoomDetailsLeaveRoomTitle : L10n.screenRoomDetailsLeaveConversationTitle
|
||||
}
|
||||
|
||||
private var leaveRoomSection: some View {
|
||||
Section {
|
||||
ListRow(label: .action(title: L10n.actionLeaveRoom,
|
||||
ListRow(label: .action(title: leaveRoomTitle,
|
||||
icon: \.leave,
|
||||
role: .destructive),
|
||||
kind: .button { context.send(viewAction: .processTapLeave) })
|
||||
|
1
changelog.d/2330.change
Normal file
1
changelog.d/2330.change
Normal file
@ -0,0 +1 @@
|
||||
Change Leave Room to Leave Conversation for DMs
|
Loading…
x
Reference in New Issue
Block a user