diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 9683be5603..0514ff0156 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -1279,6 +1279,13 @@ }; reader.readAsDataURL(blob); + } else if (item?.kind === 'file') { + const file = item.getAsFile(); + if (file) { + const _files = [file]; + await inputFilesHandler(_files); + e.preventDefault(); + } } else if (item.type === 'text/plain') { if (($settings?.largeTextAsFile ?? false) && !shiftKey) { const text = clipboardData.getData('text/plain'); @@ -1504,6 +1511,7 @@ if (clipboardData && clipboardData.items) { for (const item of clipboardData.items) { + console.log(item); if (item.type.indexOf('image') !== -1) { const blob = item.getAsFile(); const reader = new FileReader(); @@ -1519,6 +1527,13 @@ }; reader.readAsDataURL(blob); + } else if (item?.kind === 'file') { + const file = item.getAsFile(); + if (file) { + const _files = [file]; + await inputFilesHandler(_files); + e.preventDefault(); + } } else if (item.type === 'text/plain') { if (($settings?.largeTextAsFile ?? false) && !shiftKey) { const text = clipboardData.getData('text/plain'); diff --git a/src/lib/components/common/RichTextInput.svelte b/src/lib/components/common/RichTextInput.svelte index 5a946f188b..6d47597b9d 100644 --- a/src/lib/components/common/RichTextInput.svelte +++ b/src/lib/components/common/RichTextInput.svelte @@ -1077,7 +1077,10 @@ const hasImageItem = Array.from(event.clipboardData.items).some((item) => item.type.startsWith('image/') ); - if (hasImageFile || hasImageItem) { + + const hasFile = Array.from(event.clipboardData.files).length > 0; + + if (hasImageFile || hasImageItem || hasFile) { eventDispatch('paste', { event }); event.preventDefault(); return true;