diff --git a/src/components/NewMessageForm/AdvancedInput/AdvancedInput.vue b/src/components/NewMessageForm/AdvancedInput/AdvancedInput.vue index 46b93fd6d2f..5b1a78cba31 100644 --- a/src/components/NewMessageForm/AdvancedInput/AdvancedInput.vue +++ b/src/components/NewMessageForm/AdvancedInput/AdvancedInput.vue @@ -79,6 +79,7 @@ import At from 'vue-at' import VueAtReparenter from '../../../mixins/vueAtReparenter' import { EventBus } from '../../../services/EventBus' import { searchPossibleMentions } from '../../../services/mentionsService' +import { fetchClipboardContent } from '../../../utils/clipboard' import Avatar from '@nextcloud/vue/dist/Components/Avatar' import Mention from '../../MessagesList/MessagesGroup/Message/MessagePart/Mention' import escapeHtml from 'escape-html' @@ -228,9 +229,16 @@ export default { methods: { onPaste(e) { e.preventDefault() - const text = e.clipboardData.getData('text/plain') - const div = document.createElement('div').innerText = escapeHtml(text) - document.execCommand('insertHtml', false, div) + + const content = fetchClipboardContent(e) + + if (content.kind === 'file') { + this.$emit('files-pasted', content.files) + } else if (content.kind === 'text') { + const text = content.text + const div = document.createElement('div').innerText = escapeHtml(text) + document.execCommand('insertHtml', false, div) + } }, /** diff --git a/src/components/NewMessageForm/NewMessageForm.vue b/src/components/NewMessageForm/NewMessageForm.vue index 54ddd9d6a74..cb568468d59 100644 --- a/src/components/NewMessageForm/NewMessageForm.vue +++ b/src/components/NewMessageForm/NewMessageForm.vue @@ -64,7 +64,8 @@ v-model="text" :token="token" @update:contentEditable="contentEditableToParsed" - @submit="handleSubmit" /> + @submit="handleSubmit" + @files-pasted="handleFiles" />