refac/enh: file upload with paste

This commit is contained in:
Timothy Jaeryang Baek 2025-07-16 15:01:03 +04:00
parent 20b6892d9b
commit 8807ac8cac
2 changed files with 19 additions and 1 deletions

View file

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

View file

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