Skip to content

Commit fddf785

Browse files
committed
Added checking if message is associated and show different dialog
1 parent 3f2b27e commit fddf785

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

SessionMessagingKit/Shared Models/MessageViewModel+DeletionActions.swift

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public extension MessageViewModel.DeletionBehaviours {
119119
static func deletionActions(
120120
for cellViewModels: [MessageViewModel],
121121
with threadData: SessionThreadViewModel,
122-
using dependencies: Dependencies
122+
using dependencies: Dependencies,
123123
) -> MessageViewModel.DeletionBehaviours? {
124124
enum SelectedMessageState {
125125
case outgoingOnly
@@ -171,6 +171,25 @@ public extension MessageViewModel.DeletionBehaviours {
171171
}
172172
}()
173173

174+
var alertContentForDeletion: (title: String, body: String) {
175+
let attachments = cellViewModels.filter { $0.attachments != nil }
176+
177+
guard !attachments.isEmpty else {
178+
return (
179+
"deleteMessage"
180+
.putNumber(cellViewModels.count)
181+
.localized(),
182+
"deleteMessageConfirm"
183+
.putNumber(cellViewModels.count)
184+
.localized(),
185+
)
186+
}
187+
return (
188+
"Delete Selected Attachment",
189+
"Are you sure you want to delete the selected attachment? The message associated with the attachment will also be deleted."
190+
)
191+
}
192+
174193
switch (state, isAdmin) {
175194
/// User selects messages including a control, pending or “deleted” message
176195
case (.containsLocalOnlyMessages, _):
@@ -235,13 +254,9 @@ public extension MessageViewModel.DeletionBehaviours {
235254
/// User selects messages including only their own messages
236255
case (.outgoingOnly, _):
237256
return MessageViewModel.DeletionBehaviours(
238-
title: "deleteMessage"
239-
.putNumber(cellViewModels.count)
240-
.localized(),
257+
title: alertContentForDeletion.title,
241258
warning: nil,
242-
body: "deleteMessageConfirm"
243-
.putNumber(cellViewModels.count)
244-
.localized(),
259+
body: alertContentForDeletion.body,
245260
actions: [
246261
NamedAction(
247262
title: "deleteMessageDeviceOnly".localized(),
@@ -278,15 +293,11 @@ public extension MessageViewModel.DeletionBehaviours {
278293
/// User selects messages including ones from other users
279294
case (.containsIncoming, false):
280295
return MessageViewModel.DeletionBehaviours(
281-
title: "deleteMessage"
282-
.putNumber(cellViewModels.count)
283-
.localized(),
296+
title: alertContentForDeletion.title,
284297
warning: "deleteMessageWarning"
285298
.putNumber(cellViewModels.count)
286299
.localized(),
287-
body: "deleteMessageDescriptionDevice"
288-
.putNumber(cellViewModels.count)
289-
.localized(),
300+
body: alertContentForDeletion.body,
290301
actions: [
291302
NamedAction(
292303
title: "deleteMessageDeviceOnly".localized(),
@@ -313,13 +324,9 @@ public extension MessageViewModel.DeletionBehaviours {
313324
/// Admin can multi-select their own messages and messages from other users
314325
case (.containsIncoming, true):
315326
return MessageViewModel.DeletionBehaviours(
316-
title: "deleteMessage"
317-
.putNumber(cellViewModels.count)
318-
.localized(),
327+
title: alertContentForDeletion.title,
319328
warning: nil,
320-
body: "deleteMessageConfirm"
321-
.putNumber(cellViewModels.count)
322-
.localized(),
329+
body: alertContentForDeletion.body,
323330
actions: [
324331
NamedAction(
325332
title: "deleteMessageDeviceOnly".localized(),

0 commit comments

Comments
 (0)