From a1155dfeb7aa69df2d2e9747201db5ef201f9ca4 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 21 Dec 2025 20:48:37 +0400 Subject: [PATCH] refac --- .../components/channel/MessageInput.svelte | 45 +++++-------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/src/lib/components/channel/MessageInput.svelte b/src/lib/components/channel/MessageInput.svelte index c4acd4ec49..061082c8c2 100644 --- a/src/lib/components/channel/MessageInput.svelte +++ b/src/lib/components/channel/MessageInput.svelte @@ -112,27 +112,21 @@ const clipboardItems = await navigator.clipboard.read(); - let imageUrl = null; for (const item of clipboardItems) { // Check for known image types for (const type of item.types) { if (type.startsWith('image/')) { + // get as file const blob = await item.getType(type); - imageUrl = URL.createObjectURL(blob); + const file = new File([blob], `clipboard-image.${type.split('/')[1]}`, { + type: type + }); + + inputFilesHandler([file]); } } } - if (imageUrl) { - files = [ - ...files, - { - type: 'image', - url: imageUrl - } - ]; - } - text = text.replaceAll('{{CLIPBOARD}}', clipboardText); } @@ -931,28 +925,11 @@ if (clipboardData && clipboardData.items) { for (const item of clipboardData.items) { - if (item.type.indexOf('image') !== -1) { - const blob = item.getAsFile(); - const reader = new FileReader(); - - reader.onload = function (e) { - files = [ - ...files, - { - type: 'image', - url: `${e.target.result}` - } - ]; - }; - - reader.readAsDataURL(blob); - } else if (item?.kind === 'file') { - const file = item.getAsFile(); - if (file) { - const _files = [file]; - await inputFilesHandler(_files); - e.preventDefault(); - } + const file = item.getAsFile(); + if (file) { + const _files = [file]; + await inputFilesHandler(_files); + e.preventDefault(); } } }