From be1a69c2004428ed6bd6bf9a4d2cbe16af668114 Mon Sep 17 00:00:00 2001 From: Mikunj Date: Mon, 12 Nov 2018 09:31:46 +1100 Subject: [PATCH] Fix up saving friendRequestStatus --- js/models/conversations.js | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index 2c8c0f7b8..6cd0deb5f 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -420,19 +420,30 @@ } } }, - onFriendRequestAccepted() { - this.save({ friendRequestStatus: null }); + async onFriendRequestAccepted() { this.trigger('disable:input', false); this.trigger('change:placeholder', 'chat'); + this.set({ + friendRequestStatus: null, + }); + + await window.Signal.Data.updateConversation(this.id, this.attributes, { + Conversation: Whisper.Conversation, + }); }, - onFriendRequestTimedOut() { - const friendRequestStatus = this.getFriendRequestStatus(); - friendRequestStatus.allowSending = true; - this.save({ friendRequestStatus }); + async onFriendRequestTimedOut() { this.trigger('disable:input', false); this.trigger('change:placeholder', 'friend-request'); + + const friendRequestStatus = this.getFriendRequestStatus(); + friendRequestStatus.allowSending = true; + this.set({ friendRequestStatus }); + + await window.Signal.Data.updateConversation(this.id, this.attributes, { + Conversation: Whisper.Conversation, + }); }, - onFriendRequestSent() { + async onFriendRequestSent() { const friendRequestLockDuration = 72; // hours let friendRequestStatus = this.getFriendRequestStatus(); @@ -443,14 +454,19 @@ friendRequestStatus.allowSending = false; const delayMs = 60 * 60 * 1000 * friendRequestLockDuration; friendRequestStatus.unlockTimestamp = Date.now() + delayMs; + this.trigger('disable:input', true); this.trigger('change:placeholder', 'disabled'); + this.set({ friendRequestStatus }); + + await window.Signal.Data.updateConversation(this.id, this.attributes, { + Conversation: Whisper.Conversation, + }); + setTimeout(() => { this.onFriendRequestTimedOut(); }, delayMs); - - this.save({ friendRequestStatus }); }, isUnverified() { if (this.isPrivate()) {