diff options
Diffstat (limited to 'app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue')
-rw-r--r-- | app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue index 5becc03646e..e7d028e8d23 100644 --- a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue +++ b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue @@ -6,8 +6,8 @@ import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants'; import { s__ } from '~/locale'; import { updateUserStatus } from '~/rest_api'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; -import { isUserBusy } from './utils'; -import { NEVER_TIME_RANGE, AVAILABILITY_STATUS } from './constants'; +import { isUserBusy, computedClearStatusAfterValue } from './utils'; +import { AVAILABILITY_STATUS } from './constants'; import SetStatusForm from './set_status_form.vue'; Vue.use(GlToast); @@ -53,9 +53,17 @@ export default { message: this.currentMessage, modalId: 'set-user-status-modal', availability: isUserBusy(this.currentAvailability), - clearStatusAfter: NEVER_TIME_RANGE, + clearStatusAfter: null, }; }, + computed: { + shouldIncludeClearStatusAfterInApiRequest() { + return this.clearStatusAfter !== null; + }, + clearStatusAfterApiRequestValue() { + return computedClearStatusAfterValue(this.clearStatusAfter); + }, + }, mounted() { this.$root.$emit(BV_SHOW_MODAL, this.modalId); }, @@ -70,14 +78,21 @@ export default { this.setStatus(); }, setStatus() { - const { emoji, message, availability, clearStatusAfter } = this; + const { + emoji, + message, + availability, + shouldIncludeClearStatusAfterInApiRequest, + clearStatusAfterApiRequestValue, + } = this; updateUserStatus({ emoji, message, availability: availability ? AVAILABILITY_STATUS.BUSY : AVAILABILITY_STATUS.NOT_SET, - clearStatusAfter: - clearStatusAfter.label === NEVER_TIME_RANGE.label ? null : clearStatusAfter.shortcut, + ...(shouldIncludeClearStatusAfterInApiRequest + ? { clearStatusAfter: clearStatusAfterApiRequestValue } + : {}), }) .then(this.onUpdateSuccess) .catch(this.onUpdateFail); |