Hide the friend button when the resquest is accepted

This commit is contained in:
yflory
2017-07-06 12:31:31 +02:00
parent 96fde4e5ed
commit 5b5a7ab286
5 changed files with 46 additions and 12 deletions

View File

@@ -5,6 +5,8 @@ define([
var pending = {};
// Remove should be called from the friend app at the moment
// The other user will know it from the private channel ("REMOVE_FRIEND" message?)
Msg.removeFromFriendList = function (common, edPublic, cb) {
var proxy = common.getProxy();
if (!proxy.friends) {
@@ -28,6 +30,7 @@ define([
friends[pubKey] = data;
common.whenRealtimeSyncs(common.getRealtime(), cb);
common.changeDisplayName(proxy[common.displayNameKey]);
};
var createData = function (common, hash) {
@@ -41,9 +44,15 @@ define([
};
};
var getFriend = function (common, pubkey) {
var proxy = common.getProxy();
return proxy.friends ? proxy.friends[pubkey] : undefined;
};
Msg.addDirectMessageHandler = function (common) {
var network = common.getNetwork();
if (!network) { return void console.error('Network not ready'); }
var proxy = common.getProxy();
network.on('message', function (message, sender) {
var msg;
if (sender === network.historyKeeper) { return; }
@@ -60,15 +69,23 @@ define([
msg = JSON.parse(decryptMsg);
if (msg[1] !== parsed.hashData.channel) { return; }
var msgData = msg[2];
var msg;
var msgStr;
if (msg[0] === "FRIEND_REQ") {
msg = ["FRIEND_REQ_NOK", chan];
var existing = getFriend(common, msgData.edPublic);
if (existing) {
msg = ["FRIEND_REQ_OK", chan, createData(common, existing.channelHash)];
msgStr = Crypto.encrypt(JSON.stringify(msg), key);
network.sendto(sender, msgStr);
return;
}
common.confirm("Accept friend?", function (yes) { // XXX
var msg = ["FRIEND_REQ_NOK", chan];
if (yes) {
pending[sender] = msgData;
msg = ["FRIEND_REQ_OK", chan, createData(common, msgData.channelHash)];
}
var msgStr = Crypto.encrypt(JSON.stringify(msg), key);
// Send encrypted message
msgStr = Crypto.encrypt(JSON.stringify(msg), key);
network.sendto(sender, msgStr);
});
return;