diff --git a/pages/dao.vue b/pages/dao.vue index 386aadd..2e4ec40 100644 --- a/pages/dao.vue +++ b/pages/dao.vue @@ -134,8 +134,34 @@
EffectDAO Members
-
-
+
+
+ +
+
+
+ +
+
+
+
+
@@ -151,12 +177,17 @@ ...
Joined {{ $moment(member.registration_time).fromNow() }} +
+ {{ formatMemberStake(member.efxStaked) }} EFX / {{ formatMemberStake(member.nfxStaked) }} NFX staked
+

+ No members found +

Loading members..

@@ -199,6 +230,8 @@ export default { moreMembers: true, nextKey: null, constitutionMembers: null, + memberSearch: '', + memberSort: 'votes', highGuardList: [ { account: 'cryptonode42', agreedtermsversion: 1, registration_time: '2021-03-07T14:58:47' }, @@ -228,6 +261,27 @@ export default { }, signedLastConstitution () { return this.$wallet.signedConstitutionVersion === this.constitutionVersion + }, + displayedMembers () { + const search = this.memberSearch.trim().toLowerCase() + const constitutionMembers = this.constitutionMembers || [] + const members = search + ? constitutionMembers.filter(member => member.account.toLowerCase().includes(search)) + : constitutionMembers + + return members.slice().sort((a, b) => { + if (this.memberSort === 'joined') { + return this.memberTimestamp(b) - this.memberTimestamp(a) + } else if (this.memberSort === 'efx') { + return this.memberNumber(b.efxStaked) - this.memberNumber(a.efxStaked) + } else if (this.memberSort === 'nfx') { + return this.memberNumber(b.nfxStaked) - this.memberNumber(a.nfxStaked) + } else if (this.memberSort === 'account') { + return a.account.localeCompare(b.account) + } + + return this.memberNumber(b.votes) - this.memberNumber(a.votes) + }) } }, @@ -244,6 +298,15 @@ export default { } return array }, + memberNumber (value) { + return Number.isFinite(value) ? value : 0 + }, + memberTimestamp (member) { + return member.registration_time ? new Date(member.registration_time).getTime() : 0 + }, + formatMemberStake (value) { + return this.$wallet.formatNumber(this.memberNumber(value)) + }, async init () { this.loading = true this.loadingMembers = true