diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index c525dcf34c..b8539c19c8 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -168,29 +168,30 @@ return '{{CLIPBOARD}}'; }); - const clipboardItems = await navigator.clipboard.read(); + const clipboardItems = await navigator.clipboard.read().catch((err) => { + console.error('Failed to read clipboard items:', err); + return []; + }); - let imageUrl = null; for (const item of clipboardItems) { - // Check for known image types for (const type of item.types) { if (type.startsWith('image/')) { const blob = await item.getType(type); - imageUrl = URL.createObjectURL(blob); + const reader = new FileReader(); + reader.onload = (event) => { + files = [ + ...files, + { + type: 'image', + url: event.target.result as string + } + ]; + }; + reader.readAsDataURL(blob); } } } - if (imageUrl) { - files = [ - ...files, - { - type: 'image', - url: imageUrl - } - ]; - } - text = text.replaceAll('{{CLIPBOARD}}', clipboardText); }