signal-desktop/ts/util/clearConversationDraftAttachments.ts
2022-12-08 02:43:48 -05:00

29 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))
),
]);
}