Merge pull request #18432 from silentoplayz/fix-clipboard-image-paste

fix: correctly handle clipboard images with {{CLIPBOARD}} in prompts
This commit is contained in:
Tim Baek 2025-10-28 12:42:01 -07:00 committed by GitHub
commit 48b538f312
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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);
}