diff --git a/webapp/components/Button/JoinLeaveButton.vue b/webapp/components/Button/JoinLeaveButton.vue index bc36482aa..915406bd5 100644 --- a/webapp/components/Button/JoinLeaveButton.vue +++ b/webapp/components/Button/JoinLeaveButton.vue @@ -68,19 +68,17 @@ export default { const mutation = join ? joinGroupMutation : leaveGroupMutation this.hovered = false - const optimisticResult = { joinedByCurrentUser: join } - this.$emit('optimistic', optimisticResult) + this.$emit('prepare', join) try { const { data } = await this.$apollo.mutate({ mutation, variables: { groupId: this.groupId, userId: this.userId }, }) - const joinedGroup = join ? data.JoinGroup : data.LeaveGroup - this.$emit('update', joinedGroup) + const joinedLeftGroupResult = join ? data.JoinGroup : data.LeaveGroup + this.$emit('update', joinedLeftGroupResult) } catch (error) { - optimisticResult.joinedByCurrentUser = !join - this.$emit('optimistic', optimisticResult) + this.$toast.error(error.message) } }, }, diff --git a/webapp/pages/group/_id/_slug.vue b/webapp/pages/group/_id/_slug.vue index bd8640677..85f8301fc 100644 --- a/webapp/pages/group/_id/_slug.vue +++ b/webapp/pages/group/_id/_slug.vue @@ -96,7 +96,7 @@ :isMember="isGroupMember" :disabled="isGroupOwner" :loading="$apollo.loading" - @optimistic="optimisticJoinLeave" + @prepare="prepareJoinLeave" @update="updateJoinLeave" />