aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_status/src/components/SetStatusModal.vue
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_status/src/components/SetStatusModal.vue')
-rw-r--r--apps/user_status/src/components/SetStatusModal.vue20
1 files changed, 15 insertions, 5 deletions
diff --git a/apps/user_status/src/components/SetStatusModal.vue b/apps/user_status/src/components/SetStatusModal.vue
index f651bc62891..0613a2be38c 100644
--- a/apps/user_status/src/components/SetStatusModal.vue
+++ b/apps/user_status/src/components/SetStatusModal.vue
@@ -49,8 +49,10 @@
</button>
</EmojiPicker>
<CustomMessageInput
+ ref="customMessageInput"
:message="message"
- @change="setMessage" />
+ @change="setMessage"
+ @submit="saveStatus" />
</div>
<PredefinedStatusesList
@selectStatus="selectPredefinedMessage" />
@@ -58,10 +60,10 @@
:clear-at="clearAt"
@selectClearAt="setClearAt" />
<div class="status-buttons">
- <button class="status-buttons__select" @click="clearStatus">
+ <button class="status-buttons__select" :disabled="isSavingStatus" @click="clearStatus">
{{ $t('user_status', 'Clear status message') }}
</button>
- <button class="status-buttons__primary primary" @click="saveStatus">
+ <button class="status-buttons__primary primary" :disabled="isSavingStatus" @click="saveStatus">
{{ $t('user_status', 'Set status message') }}
</button>
</div>
@@ -98,7 +100,8 @@ export default {
return {
clearAt: null,
icon: null,
- message: null,
+ message: '',
+ isSavingStatus: false,
statuses: getAllStatusOptions(),
}
},
@@ -119,7 +122,7 @@ export default {
mounted() {
this.messageId = this.$store.state.userStatus.messageId
this.icon = this.$store.state.userStatus.icon
- this.message = this.$store.state.userStatus.message
+ this.message = this.$store.state.userStatus.message || ''
if (this.$store.state.userStatus.clearAt !== null) {
this.clearAt = {
@@ -143,6 +146,9 @@ export default {
setIcon(icon) {
this.messageId = null
this.icon = icon
+ this.$nextTick(() => {
+ this.$refs.customMessageInput.focus()
+ })
},
/**
* Sets a new message
@@ -178,6 +184,10 @@ export default {
* @returns {Promise<void>}
*/
async saveStatus() {
+ if (this.isSavingStatus) {
+ return
+ }
+
try {
this.isSavingStatus = true