mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 19:48:08 +00:00
Fixes: CW-3602, CW-3606, CW-3605, CW-3601, CW-3603, CW-3600, CW-3598 - [CW-3602](https://linear.app/chatwoot/issue/CW-3602/chat-list-infinite-loader-fetching-only-odd-numbered-pages) Chat list pagination broken - [CW-3606](https://linear.app/chatwoot/issue/CW-3606/saving-greeting-message-is-not-working-in-inbox-settings) Greetings message not getting saved - [CW-3605](https://linear.app/chatwoot/issue/CW-3605/copy-and-paste-image-attachment-not-working-in-widget) Paste not working on widget - [CW-3601](https://linear.app/chatwoot/issue/CW-3601/edit-category-is-not-working-properly) Edit category not updating - [CW-3603](https://linear.app/chatwoot/issue/CW-3603/delete-filter-is-not-working) Delete filter modal not toggling - [CW-3600](https://linear.app/chatwoot/issue/CW-3600/portal-editor-is-not-working-properly) Portal editor events were flaky - [CW-3598](https://linear.app/chatwoot/issue/CW-3598/rearrange-of-pre-chat-form-fields-throws-an-error) Prechat form re-order bug --------- Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
80 lines
1.8 KiB
Vue
80 lines
1.8 KiB
Vue
<script>
|
|
import { required } from '@vuelidate/validators';
|
|
import { useVuelidate } from '@vuelidate/core';
|
|
import Modal from '../../Modal.vue';
|
|
|
|
export default {
|
|
components: {
|
|
Modal,
|
|
},
|
|
props: {
|
|
show: { type: Boolean, default: false },
|
|
title: { type: String, default: '' },
|
|
message: { type: String, default: '' },
|
|
confirmText: { type: String, default: '' },
|
|
rejectText: { type: String, default: '' },
|
|
confirmValue: { type: String, default: '' },
|
|
confirmPlaceHolderText: { type: String, default: '' },
|
|
},
|
|
emits: ['onClose', 'onConfirm', 'update:show'],
|
|
setup() {
|
|
return { v$: useVuelidate() };
|
|
},
|
|
data() {
|
|
return {
|
|
value: '',
|
|
};
|
|
},
|
|
validations: {
|
|
value: {
|
|
required,
|
|
isEqual(value) {
|
|
return value === this.confirmValue;
|
|
},
|
|
},
|
|
},
|
|
computed: {
|
|
localShow: {
|
|
get() {
|
|
return this.show;
|
|
},
|
|
set(value) {
|
|
this.$emit('update:show', value);
|
|
},
|
|
},
|
|
},
|
|
methods: {
|
|
closeModal() {
|
|
this.value = '';
|
|
this.$emit('onClose');
|
|
},
|
|
onConfirm() {
|
|
this.$emit('onConfirm');
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<Modal v-model:show="localShow" :on-close="closeModal">
|
|
<woot-modal-header :header-title="title" :header-content="message" />
|
|
<form @submit.prevent="onConfirm">
|
|
<woot-input
|
|
v-model="value"
|
|
type="text"
|
|
:class="{ error: v$.value.$error }"
|
|
:placeholder="confirmPlaceHolderText"
|
|
@blur="v$.value.$touch"
|
|
/>
|
|
<div class="button-wrapper">
|
|
<woot-button color-scheme="alert" :is-disabled="v$.value.$invalid">
|
|
{{ confirmText }}
|
|
</woot-button>
|
|
<woot-button class="clear" @click.prevent="closeModal">
|
|
{{ rejectText }}
|
|
</woot-button>
|
|
</div>
|
|
</form>
|
|
</Modal>
|
|
</template>
|