X-Git-Url: https://git.auder.net/js/rpsls.js?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FChallengeList.vue;h=ed490671db3ce1a4c028f6d84784edc826c73637;hb=21771bb987066fc98fe49f140212fbedc4e9f50e;hp=b3c43e2a803751b0b602e2e085278a01a515d719;hpb=bd76b45611cbb58dcf774745a4d690277a82aacd;p=vchess.git diff --git a/client/src/components/ChallengeList.vue b/client/src/components/ChallengeList.vue index b3c43e2a..ed490671 100644 --- a/client/src/components/ChallengeList.vue +++ b/client/src/components/ChallengeList.vue @@ -7,7 +7,11 @@ div th {{ st.tr["From"] }} th {{ st.tr["Cadence"] }} tbody - tr(v-for="c in sortedChallenges" :class="{toyou:c.priority==1,fromyou:c.priority==2}" @click="$emit('click-challenge',c)") + tr( + v-for="c in sortedChallenges" + :class="{toyou:c.priority==1,fromyou:c.priority==2}" + @click="$emit('click-challenge',c)" + ) td {{ c.vname }} td {{ c.from.name || "@nonymous" }} td {{ c.cadence }} @@ -20,37 +24,34 @@ export default { props: ["challenges"], data: function() { return { - st: store.state, + st: store.state }; }, computed: { sortedChallenges: function() { // Show in order: challenges I sent, challenges I received, other challenges - let minAdded = Number.MAX_SAFE_INTEGER - let maxAdded = 0 + let minAdded = Number.MAX_SAFE_INTEGER; + let maxAdded = 0; let augmentedChalls = this.challenges.map(c => { let priority = 0; - if (c.to == this.st.user.name) - priority = 1; + if (!!c.to && c.to == this.st.user.name) priority = 1; else if (c.from.sid == this.st.user.sid || c.from.id == this.st.user.id) priority = 2; - if (c.added < minAdded) - minAdded = c.added; - if (c.added > maxAdded) - maxAdded = c.added - return Object.assign({}, c, {priority: priority}); + if (c.added < minAdded) minAdded = c.added; + if (c.added > maxAdded) maxAdded = c.added; + return Object.assign({}, c, { priority: priority }); }); const deltaAdded = maxAdded - minAdded; - return augmentedChalls.sort((c1,c2) => { + return augmentedChalls.sort((c1, c2) => { return c2.priority - c1.priority + (c2.added - c1.added) / deltaAdded; }); - }, - }, + } + } };