diff --git a/website/client/components/header/menu.vue b/website/client/components/header/menu.vue index 1fdca4a76a..6dba447b00 100644 --- a/website/client/components/header/menu.vue +++ b/website/client/components/header/menu.vue @@ -331,6 +331,7 @@ export default { this.isUserDropdownOpen = !this.isUserDropdownOpen; }, sync () { + this.$root.$emit('habitica::resync-requested'); return Promise.all([ this.$store.dispatch('user:fetch', {forceLoad: true}), this.$store.dispatch('tasks:fetchUserTasks', {forceLoad: true}), diff --git a/website/client/components/tasks/column.vue b/website/client/components/tasks/column.vue index b0b8534b33..8d0bf3ada9 100644 --- a/website/client/components/tasks/column.vue +++ b/website/client/components/tasks/column.vue @@ -467,6 +467,17 @@ export default { this.$root.$on('buyModal::boughtItem', () => { this.forceRefresh = new Date(); }); + + if (this.type !== 'todo') return; + this.$root.$on('habitica::resync-requested', () => { + if (this.activeFilters.todo.label !== 'complete2') return; + this.loadCompletedTodos(true); + }); + }, + destroyed () { + this.$root.$off('buyModal::boughtItem'); + if (this.type !== 'todo') return; + this.$root.$off('habitica::resync-requested'); }, methods: { ...mapActions({