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