30 lines
		
	
	
	
		
			970 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
	
		
			970 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | // Copyright 2022 Signal Messenger, LLC
 | ||
|  | // SPDX-License-Identifier: AGPL-3.0-only
 | ||
|  | 
 | ||
|  | import type { AttachmentDraftType } from '../types/Attachment'; | ||
|  | import { strictAssert } from './assert'; | ||
|  | import { deleteDraftAttachment } from './deleteDraftAttachment'; | ||
|  | 
 | ||
|  | export async function clearConversationDraftAttachments( | ||
|  |   conversationId: string, | ||
|  |   draftAttachments: ReadonlyArray<AttachmentDraftType> = [] | ||
|  | ): Promise<void> { | ||
|  |   const conversation = window.ConversationController.get(conversationId); | ||
|  |   strictAssert(conversation, 'no conversation found'); | ||
|  | 
 | ||
|  |   conversation.set({ | ||
|  |     draftAttachments: [], | ||
|  |     draftChanged: true, | ||
|  |   }); | ||
|  | 
 | ||
|  |   window.reduxActions.composer.replaceAttachments(conversationId, []); | ||
|  | 
 | ||
|  |   // We're fine doing this all at once; at most it should be 32 attachments
 | ||
|  |   await Promise.all([ | ||
|  |     window.Signal.Data.updateConversation(conversation.attributes), | ||
|  |     Promise.all( | ||
|  |       draftAttachments.map(attachment => deleteDraftAttachment(attachment)) | ||
|  |     ), | ||
|  |   ]); | ||
|  | } |