From e63a734fcd25bab9bf7ec15a4c23cbee165d07a9 Mon Sep 17 00:00:00 2001 From: Natsumi Date: Fri, 12 Aug 2022 21:40:34 +1200 Subject: [PATCH] Fix new friend delay --- html/src/app.js | 94 +++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 53 deletions(-) diff --git a/html/src/app.js b/html/src/app.js index 8c7b1a61..a14dfb40 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -10784,6 +10784,14 @@ speechSynthesis.getVoices(); API.$on('USER', function (args) { $app.updateFriendship(args.ref); + if ( + $app.friendLogInitStatus && + args.json.isFriend && + !$app.friendLog.has(args.ref.id) && + args.json.id !== this.currentUser.id + ) { + $app.addFriendship(args.ref.id); + } }); API.$on('FRIEND:ADD', function (args) { @@ -10882,33 +10890,41 @@ speechSynthesis.getVoices(); return; } var ref = API.cachedUsers.get(id); - if (typeof ref !== 'undefined') { - API.getFriendStatus({ + if (typeof ref === 'undefined') { + API.getUser({ userId: id - }).then((args) => { - if (args.json.isFriend && !this.friendLog.has(id)) { - var friendLogHistory = { - created_at: new Date().toJSON(), - type: 'Friend', - userId: id, - displayName: ref.displayName - }; - this.friendLogTable.data.push(friendLogHistory); - database.addFriendLogHistory(friendLogHistory); - this.queueFriendLogNoty(friendLogHistory); - var friendLogCurrent = { - userId: id, - displayName: ref.displayName, - trustLevel: ref.$trustLevel - }; - this.friendLog.set(id, friendLogCurrent); - database.setFriendLogCurrent(friendLogCurrent); - this.notifyMenu('friendLog'); - this.deleteFriendRequest(id); - this.updateSharedFeed(true); - } }); + return; } + API.getFriendStatus({ + userId: id + }).then((args) => { + if (args.json.isFriend && !this.friendLog.has(id)) { + this.addFriend(id, ref.state); + var friendLogHistory = { + created_at: new Date().toJSON(), + type: 'Friend', + userId: id, + displayName: ref.displayName + }; + this.friendLogTable.data.push(friendLogHistory); + database.addFriendLogHistory(friendLogHistory); + this.queueFriendLogNoty(friendLogHistory); + var friendLogCurrent = { + userId: id, + displayName: ref.displayName, + trustLevel: ref.$trustLevel + }; + this.friendLog.set(id, friendLogCurrent); + database.setFriendLogCurrent(friendLogCurrent); + this.notifyMenu('friendLog'); + this.deleteFriendRequest(id); + this.updateSharedFeed(true); + API.getUser({ + userId: id + }); + } + }); }; $app.methods.deleteFriendRequest = function (userId) { @@ -10946,6 +10962,7 @@ speechSynthesis.getVoices(); database.deleteFriendLogCurrent(id); this.notifyMenu('friendLog'); this.updateSharedFeed(true); + this.deleteFriend(id); } }); }; @@ -10994,35 +11011,6 @@ speechSynthesis.getVoices(); this.notifyMenu('friendLog'); this.updateSharedFeed(true); } - API.getFriendStatus({ - userId: ref.id - }).then((args) => { - if ( - args.json.isFriend && - this.friendLog.has(ref.id) && - !ctx.displayName - ) { - var friendLogHistoryFriend = { - created_at: new Date().toJSON(), - type: 'Friend', - userId: ref.id, - displayName: ref.displayName - }; - this.friendLogTable.data.push(friendLogHistoryFriend); - database.addFriendLogHistory(friendLogHistoryFriend); - this.queueFriendLogNoty(friendLogHistoryFriend); - var friendLogCurrent1 = { - userId: ref.id, - displayName: ref.displayName, - trustLevel: ref.$trustLevel - }; - this.friendLog.set(ref.id, friendLogCurrent1); - database.setFriendLogCurrent(friendLogCurrent1); - ctx.displayName = ref.displayName; - this.notifyMenu('friendLog'); - this.updateSharedFeed(true); - } - }); } if ( ref.$trustLevel &&