@@ -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