mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 02:57:57 +00:00 
			
		
		
		
	 b3262597c1
			
		
	
	b3262597c1
	
	
	
		
			
			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>
 |