Backport stable #6730 - Fixes Badges (#6731)

* Fix badges not showing up

* Always fetch meta data first [badges]
This commit is contained in:
Nicolas Gotchac 2017-10-12 22:23:06 +02:00 committed by Jaco Greeff
parent 75b4bea521
commit 148b20978c

View File

@ -206,7 +206,7 @@ export default class CertifiersMonitor {
// Fetch the address, name and owner in one batch // Fetch the address, name and owner in one batch
return querier(this.api, { address: instance.address, from, limit }, instance.badge) return querier(this.api, { address: instance.address, from, limit }, instance.badge)
.then((results) => { .then((results) => {
this.certifiers = results const certifiers = results
.map(([ address, name, owner ], index) => ({ .map(([ address, name, owner ], index) => ({
address, owner, address, owner,
id: index + from, id: index + from,
@ -225,7 +225,7 @@ export default class CertifiersMonitor {
}, {}); }, {});
// Fetch the meta-data in serie // Fetch the meta-data in serie
return Object.values(this.certifiers).reduce((promise, certifier) => { return Object.values(certifiers).reduce((promise, certifier) => {
return promise.then(() => badgeReg.fetchMeta(certifier.id)) return promise.then(() => badgeReg.fetchMeta(certifier.id))
.then((meta) => { .then((meta) => {
this.certifiers[certifier.id] = { ...certifier, ...meta }; this.certifiers[certifier.id] = { ...certifier, ...meta };
@ -274,8 +274,6 @@ export default class CertifiersMonitor {
.then((certified) => { .then((certified) => {
const { id, title, icon, name } = certifier; const { id, title, icon, name } = certifier;
this.fetchedAccounts[address] = true;
if (!certified) { if (!certified) {
return this.store.dispatch(removeCertification(address, id)); return this.store.dispatch(removeCertification(address, id));
} }
@ -283,7 +281,10 @@ export default class CertifiersMonitor {
log.debug('seen as certified', { address, id, name, icon }); log.debug('seen as certified', { address, id, name, icon });
this.store.dispatch(addCertification(address, id, name, title, icon)); this.store.dispatch(addCertification(address, id, name, title, icon));
}); });
}, Promise.resolve()); }, Promise.resolve())
.then(() => {
this.fetchedAccounts[address] = true;
});
} }
setCertifiersFilter () { setCertifiersFilter () {