Fix issues with the async store
This commit is contained in:
@@ -59,7 +59,6 @@ define(['json.sortify'], function (Sortify) {
|
||||
}
|
||||
|
||||
if (metadataObj.title !== rememberedTitle) {
|
||||
console.log("Title update\n" + metadataObj.title + '\n');
|
||||
rememberedTitle = metadataObj.title;
|
||||
titleChangeHandlers.forEach(function (f) { f(metadataObj.title); });
|
||||
}
|
||||
@@ -73,30 +72,45 @@ define(['json.sortify'], function (Sortify) {
|
||||
});
|
||||
};
|
||||
|
||||
var netfluxId;
|
||||
var isReady = false;
|
||||
var readyHandlers = [];
|
||||
sframeChan.on('EV_METADATA_UPDATE', function (ev) {
|
||||
meta = ev;
|
||||
if (ev.priv) {
|
||||
priv = ev.priv;
|
||||
}
|
||||
if (netfluxId) {
|
||||
meta.user.netfluxId = netfluxId;
|
||||
}
|
||||
if (!isReady) {
|
||||
isReady = true;
|
||||
readyHandlers.forEach(function (f) { f(); });
|
||||
}
|
||||
change(true);
|
||||
});
|
||||
sframeChan.on('EV_RT_CONNECT', function (ev) {
|
||||
meta.user.netfluxId = ev.myID;
|
||||
netfluxId = ev.myID;
|
||||
members = ev.members;
|
||||
if (!meta.user) { return; }
|
||||
meta.user.netfluxId = netfluxId;
|
||||
change(true);
|
||||
});
|
||||
sframeChan.on('EV_RT_JOIN', function (ev) {
|
||||
members.push(ev);
|
||||
if (!meta.user) { return; }
|
||||
change(false);
|
||||
});
|
||||
sframeChan.on('EV_RT_LEAVE', function (ev) {
|
||||
var idx = members.indexOf(ev);
|
||||
if (idx === -1) { console.log('Error: ' + ev + ' not in members'); return; }
|
||||
members.splice(idx, 1);
|
||||
if (!meta.user) { return; }
|
||||
change(false);
|
||||
});
|
||||
sframeChan.on('EV_RT_DISCONNECT', function () {
|
||||
members = [];
|
||||
if (!meta.user) { return; }
|
||||
change(true);
|
||||
});
|
||||
|
||||
@@ -140,6 +154,10 @@ define(['json.sortify'], function (Sortify) {
|
||||
},
|
||||
getNetfluxId : function () {
|
||||
return meta.user.netfluxId;
|
||||
},
|
||||
onReady: function (f) {
|
||||
if (isReady) { return void f(); }
|
||||
readyHandlers.push(f);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user