reset post status form only when reply user is changed

This commit is contained in:
taehoon 2019-09-28 16:35:39 -04:00
parent aadd36f3ec
commit 50d9ed0007
2 changed files with 23 additions and 5 deletions

View File

@ -1,24 +1,41 @@
import PostStatusForm from '../post_status_form/post_status_form.vue'
import get from 'lodash/get'
const PostStatusModal = {
components: {
PostStatusForm
},
data () {
return {
resettingForm: false
}
},
computed: {
isLoggedIn () {
return !!this.$store.state.users.currentUser
},
isOpen () {
return this.isLoggedIn && this.$store.state.postStatus.modalActivated
modalActivated () {
return this.$store.state.postStatus.modalActivated
},
isFormVisible () {
return this.isLoggedIn && !this.resettingForm && this.modalActivated
},
params () {
return this.$store.state.postStatus.params || {}
}
},
watch: {
isOpen (val) {
params (newVal, oldVal) {
if (get(newVal, 'repliedUser.id') !== get(oldVal, 'repliedUser.id')) {
this.resettingForm = true
this.$nextTick(() => {
this.resettingForm = false
})
}
},
isFormVisible (val) {
if (val) {
this.$nextTick(() => this.$el.querySelector('textarea').focus())
this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())
}
}
},

View File

@ -1,6 +1,7 @@
<template>
<div
v-if="isOpen"
v-if="isLoggedIn && !resettingForm"
v-show="modalActivated"
class="post-form-modal-view modal-view"
@click="closeModal"
>