diff --git a/src/components/extra_buttons/extra_buttons.js b/src/components/extra_buttons/extra_buttons.js index 0b12f99367..71f5946d46 100644 --- a/src/components/extra_buttons/extra_buttons.js +++ b/src/components/extra_buttons/extra_buttons.js @@ -7,11 +7,13 @@ const ExtraButtons = { }, data () { return { - showDropDown: false + showDropDown: false, + showPopper: true } }, methods: { deleteStatus () { + this.refreshPopper() const confirmed = window.confirm(this.$t('status.delete_confirm')) if (confirmed) { this.$store.dispatch('deleteStatus', { id: this.status.id }) @@ -21,6 +23,7 @@ const ExtraButtons = { this.showDropDown = !this.showDropDown }, pinStatus () { + this.refreshPopper() this.$store.state.api.backendInteractor.pinOwnStatus(this.status.id).then((status) => { if (status.error) { this.$emit('onError', status.error) @@ -30,9 +33,17 @@ const ExtraButtons = { }) }, unpinStatus () { + this.refreshPopper() this.$store.state.api.backendInteractor.unpinOwnStatus(this.status.id).then((status) => { this.$store.dispatch('updatePinned', status) }) + }, + refreshPopper () { + this.showPopper = false + this.showDropDown = false + setTimeout(() => { + this.showPopper = true + }) } }, computed: { diff --git a/src/components/extra_buttons/extra_buttons.vue b/src/components/extra_buttons/extra_buttons.vue index 7b86d257d2..b55a020f47 100644 --- a/src/components/extra_buttons/extra_buttons.vue +++ b/src/components/extra_buttons/extra_buttons.vue @@ -3,6 +3,7 @@ trigger="click" @hide='showDropDown = false' append-to-body + v-if="showPopper" :options="{ placement: 'top', modifiers: {