Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,32 @@ public extension MessageViewModel.DeletionBehaviours {
}
}()

var alertContentForDeletion: (title: String, body: String) {
// Get only attachments with associated message
let attachments = cellViewModels.filter { $0.attachments != nil && $0.body?.isEmpty == false }

if !attachments.isEmpty && attachments.count == cellViewModels.count {
return (
"deleteAttachments"
.putNumber(attachments.count)
.localized(),
"deleteAttachmentsDescription"
.putNumber(attachments.count)
.localized(),
)
}

// If items to delete contains other messages aside from attachments w/ message
return (
"deleteMessage"
.putNumber(cellViewModels.count)
.localized(),
"deleteMessageConfirm"
.putNumber(cellViewModels.count)
.localized(),
)
}

switch (state, isAdmin) {
/// User selects messages including a control, pending or “deleted” message
case (.containsLocalOnlyMessages, _):
Expand Down Expand Up @@ -235,13 +261,9 @@ public extension MessageViewModel.DeletionBehaviours {
/// User selects messages including only their own messages
case (.outgoingOnly, _):
return MessageViewModel.DeletionBehaviours(
title: "deleteMessage"
.putNumber(cellViewModels.count)
.localized(),
title: alertContentForDeletion.title,
warning: nil,
body: "deleteMessageConfirm"
.putNumber(cellViewModels.count)
.localized(),
body: alertContentForDeletion.body,
actions: [
NamedAction(
title: "deleteMessageDeviceOnly".localized(),
Expand Down Expand Up @@ -278,15 +300,11 @@ public extension MessageViewModel.DeletionBehaviours {
/// User selects messages including ones from other users
case (.containsIncoming, false):
return MessageViewModel.DeletionBehaviours(
title: "deleteMessage"
.putNumber(cellViewModels.count)
.localized(),
title: alertContentForDeletion.title,
warning: "deleteMessageWarning"
.putNumber(cellViewModels.count)
.localized(),
body: "deleteMessageDescriptionDevice"
.putNumber(cellViewModels.count)
.localized(),
body: alertContentForDeletion.body,
actions: [
NamedAction(
title: "deleteMessageDeviceOnly".localized(),
Expand All @@ -313,13 +331,9 @@ public extension MessageViewModel.DeletionBehaviours {
/// Admin can multi-select their own messages and messages from other users
case (.containsIncoming, true):
return MessageViewModel.DeletionBehaviours(
title: "deleteMessage"
.putNumber(cellViewModels.count)
.localized(),
title: alertContentForDeletion.title,
warning: nil,
body: "deleteMessageConfirm"
.putNumber(cellViewModels.count)
.localized(),
body: alertContentForDeletion.body,
actions: [
NamedAction(
title: "deleteMessageDeviceOnly".localized(),
Expand Down