diff --git a/app/javascript/dashboard/components-next/NewConversation/ComposeConversation.vue b/app/javascript/dashboard/components-next/NewConversation/ComposeConversation.vue index fa9102d59..ee71bf51a 100644 --- a/app/javascript/dashboard/components-next/NewConversation/ComposeConversation.vue +++ b/app/javascript/dashboard/components-next/NewConversation/ComposeConversation.vue @@ -9,6 +9,8 @@ import { useAlert } from 'dashboard/composables'; import { ExceptionWithMessage } from 'shared/helpers/CustomErrors'; import { debounce } from '@chatwoot/utils'; import { useKeyboardEvents } from 'dashboard/composables/useKeyboardEvents'; +import { emitter } from 'shared/helpers/mitt'; +import { BUS_EVENTS } from 'shared/constants/busEvents'; import { searchContacts, createNewContact, @@ -226,6 +228,8 @@ const keyboardEvents = { action: () => { if (showComposeNewConversation.value) { showComposeNewConversation.value = false; + emit('close'); + emitter.emit(BUS_EVENTS.NEW_CONVERSATION_MODAL, false); } }, }, diff --git a/app/javascript/dashboard/components-next/NewConversation/components/ActionButtons.vue b/app/javascript/dashboard/components-next/NewConversation/components/ActionButtons.vue index cb1f9d99d..c2971c60d 100644 --- a/app/javascript/dashboard/components-next/NewConversation/components/ActionButtons.vue +++ b/app/javascript/dashboard/components-next/NewConversation/components/ActionButtons.vue @@ -4,6 +4,7 @@ import { useI18n } from 'vue-i18n'; import { useUISettings } from 'dashboard/composables/useUISettings'; import { useFileUpload } from 'dashboard/composables/useFileUpload'; import { vOnClickOutside } from '@vueuse/components'; +import { useEventListener } from '@vueuse/core'; import { ALLOWED_FILE_TYPES } from 'shared/constants/messages'; import { useKeyboardEvents } from 'dashboard/composables/useKeyboardEvents'; import FileUpload from 'vue-upload-component'; @@ -163,6 +164,20 @@ const keyboardEvents = { }, }; useKeyboardEvents(keyboardEvents); + +const onPaste = e => { + if (!props.isEmailOrWebWidgetInbox) return; + + const files = e.clipboardData?.files; + if (!files?.length) return; + + Array.from(files).forEach(file => { + const { name, type, size } = file; + onFileUpload({ file, name, type, size }); + }); +}; + +useEventListener(document, 'paste', onPaste);