@@ -4,6 +4,7 @@ import { upsertMessages } from './upsertMessages';
44
55import { mapDraftMessageToStorable } from '../mappers/mapDraftMessageToStorable' ;
66import { mapDraftToStorable } from '../mappers/mapDraftToStorable' ;
7+ import { createDeleteQuery } from '../sqlite-utils/createDeleteQuery' ;
78import { createUpsertQuery } from '../sqlite-utils/createUpsertQuery' ;
89import { SqliteClient } from '../SqliteClient' ;
910import type { PreparedQueries } from '../types' ;
@@ -16,17 +17,26 @@ export const upsertDraft = async ({
1617 execute ?: boolean ;
1718} ) => {
1819 const queries : PreparedQueries [ ] = [ ] ;
20+ const { channel_cid, parent_id, message } = draft ;
21+
22+ // Delete existing draft message if it exists.
23+ const deleteQuery = createDeleteQuery ( 'draft' , {
24+ cid : channel_cid ,
25+ parentId : parent_id ,
26+ } ) ;
27+
28+ queries . push ( deleteQuery ) ;
1929
2030 // Important: Make sure you create a draft only after a draft message is created.
21- const storableDraftMessage = mapDraftMessageToStorable ( { draftMessage : draft . message } ) ;
31+ const storableDraftMessage = mapDraftMessageToStorable ( { draftMessage : message } ) ;
2232
2333 queries . push ( createUpsertQuery ( 'draftMessage' , storableDraftMessage ) ) ;
2434
2535 const storableDraft = mapDraftToStorable ( { draft } ) ;
2636
2737 queries . push ( createUpsertQuery ( 'draft' , storableDraft ) ) ;
2838
29- SqliteClient . logger ?.( 'info' , 'upsertDraftMessage ' , {
39+ SqliteClient . logger ?.( 'info' , 'upsertDraft ' , {
3040 draftMessage : storableDraftMessage ,
3141 } ) ;
3242
0 commit comments