Only update drafts in left pane when conversation is closed

This commit is contained in:
Scott Nonnenberg 2019-09-03 15:41:21 -07:00 committed by Ken Powers
parent 85e01ad037
commit 15af1eea7a

View file

@ -186,7 +186,7 @@
this.maybeGrabLinkPreview.bind(this), this.maybeGrabLinkPreview.bind(this),
200 200
); );
this.debouncedSaveDraft = _.debounce(this.saveDraft.bind(this), 500); this.debouncedSaveDraft = _.debounce(this.saveDraft.bind(this), 200);
this.render(); this.render();
@ -761,6 +761,20 @@
conversationUnloaded(this.model.id); conversationUnloaded(this.model.id);
} }
if (this.model.hasDraft()) {
this.model.set({
draftTimestamp: Date.now(),
timestamp: Date.now(),
});
this.model.updateLastMessage();
// We don't wait here; we need to take down the view
this.saveModel();
} else {
this.model.updateLastMessage();
}
this.titleView.remove(); this.titleView.remove();
this.timelineView.remove(); this.timelineView.remove();
@ -938,8 +952,6 @@
const draftAttachments = this.model.get('draftAttachments') || []; const draftAttachments = this.model.get('draftAttachments') || [];
this.model.set({ this.model.set({
draftAttachments: [...draftAttachments, onDisk], draftAttachments: [...draftAttachments, onDisk],
draftTimestamp: Date.now(),
timestamp: Date.now(),
}); });
await this.saveModel(); await this.saveModel();
@ -960,8 +972,6 @@
await this.saveModel(); await this.saveModel();
await this.deleteDraftAttachment(attachment); await this.deleteDraftAttachment(attachment);
this.model.updateLastMessage();
}, },
async clearAttachments() { async clearAttachments() {
@ -974,8 +984,6 @@
this.updateAttachmentsView(); this.updateAttachmentsView();
this.model.updateLastMessage();
// We're fine doing this all at once; at most it should be 32 attachments // We're fine doing this all at once; at most it should be 32 attachments
await Promise.all([ await Promise.all([
this.saveModel(), this.saveModel(),
@ -1496,6 +1504,7 @@
this.lastActivity = Date.now(); this.lastActivity = Date.now();
this.focusMessageField(); this.focusMessageField();
this.model.updateLastMessage();
const statusPromise = this.throttledGetProfiles(); const statusPromise = this.throttledGetProfiles();
// eslint-disable-next-line more/no-then // eslint-disable-next-line more/no-then
@ -1527,8 +1536,6 @@
if (quotedMessageId) { if (quotedMessageId) {
this.setQuoteMessage(quotedMessageId); this.setQuoteMessage(quotedMessageId);
} }
this.model.updateLastMessage();
}, },
async retrySend(messageId) { async retrySend(messageId) {
@ -2257,14 +2264,6 @@
quotedMessageId: messageId, quotedMessageId: messageId,
}); });
if (messageId) {
const timestamp = Date.now();
this.model.set({
draftTimestamp: timestamp,
timestamp,
});
}
await this.saveModel(); await this.saveModel();
} }
@ -2431,14 +2430,11 @@
}); });
await this.saveModel(); await this.saveModel();
this.model.updateLastMessage();
return; return;
} }
this.model.set({ this.model.set({
draft: messageText, draft: messageText,
draftTimestamp: Date.now(),
timestamp: Date.now(),
}); });
await this.saveModel(); await this.saveModel();
}, },