update members list and count when joining or leaving challenge (#11542)

* update members list and count when joining or leaving challenge

* remove custom ui logic and use response/fetch data to update challenge
This commit is contained in:
Adam Fitzgibbon
2019-11-25 10:19:52 -06:00
committed by Matteo Pagliazzi
parent 9a6f98b0b5
commit f70f7b2a1c
2 changed files with 11 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="row">
<challenge-modal @updatedChallenge="updatedChallenge" />
<leave-challenge-modal :challenge-id="challenge._id" />
<leave-challenge-modal :challenge-id="challenge._id" @update-challenge="updateChallenge" />
<close-challenge-modal
:members="members"
:challenge-id="challenge._id"
@@ -493,12 +493,20 @@ export default {
},
async joinChallenge () {
this.user.challenges.push(this.searchId);
await this.$store.dispatch('challenges:joinChallenge', { challengeId: this.searchId });
this.challenge = await this.$store.dispatch('challenges:joinChallenge', { challengeId: this.searchId });
this.members = await this
.loadMembers({ challengeId: this.searchId, includeAllPublicFields: true });
await this.$store.dispatch('tasks:fetchUserTasks', { forceLoad: true });
},
async leaveChallenge () {
this.$root.$emit('bv::show::modal', 'leave-challenge-modal');
},
async updateChallenge () {
this.challenge = await this.$store.dispatch('challenges:getChallenge', { challengeId: this.searchId });
this.members = await this
.loadMembers({ challengeId: this.searchId, includeAllPublicFields: true });
},
closeChallenge () {
this.$root.$emit('bv::show::modal', 'close-challenge-modal');
},

View File

@@ -54,6 +54,7 @@ export default {
this.close();
},
close () {
this.$emit('update-challenge');
this.$root.$emit('bv::hide::modal', 'leave-challenge-modal');
},
},