Update MkPostForm.vue

This commit is contained in:
syuilo 2025-05-13 14:31:05 +09:00
parent 90c40cd153
commit 566f729300
1 changed files with 17 additions and 4 deletions

View File

@ -643,16 +643,25 @@ async function onPaste(ev: ClipboardEvent) {
if (props.mock) return; if (props.mock) return;
if (!ev.clipboardData) return; if (!ev.clipboardData) return;
let pastedFiles: File[] = [];
for (const { item, i } of Array.from(ev.clipboardData.items, (data, x) => ({ item: data, i: x }))) { for (const { item, i } of Array.from(ev.clipboardData.items, (data, x) => ({ item: data, i: x }))) {
if (item.kind === 'file') { if (item.kind === 'file') {
const file = item.getAsFile(); const file = item.getAsFile();
if (!file) continue; if (!file) continue;
const lio = file.name.lastIndexOf('.'); const lio = file.name.lastIndexOf('.');
const ext = lio >= 0 ? file.name.slice(lio) : ''; const ext = lio >= 0 ? file.name.slice(lio) : '';
const formatted = `${formatTimeString(new Date(file.lastModified), pastedFileName).replace(/{{number}}/g, `${i + 1}`)}${ext}`; const formattedName = `${formatTimeString(new Date(file.lastModified), pastedFileName).replace(/{{number}}/g, `${i + 1}`)}${ext}`;
upload(file, formatted); const renamedFile = new File([file], formattedName, { type: file.type });
pastedFiles.push(renamedFile);
} }
} }
if (pastedFiles.length > 0) {
ev.preventDefault();
os.launchUploader(pastedFiles, {}).then(driveFiles => {
files.value.push(...driveFiles);
});
return;
}
const paste = ev.clipboardData.getData('text'); const paste = ev.clipboardData.getData('text');
@ -685,7 +694,9 @@ async function onPaste(ev: ClipboardEvent) {
const fileName = formatTimeString(new Date(), pastedFileName).replace(/{{number}}/g, '0'); const fileName = formatTimeString(new Date(), pastedFileName).replace(/{{number}}/g, '0');
const file = new File([paste], `${fileName}.txt`, { type: 'text/plain' }); const file = new File([paste], `${fileName}.txt`, { type: 'text/plain' });
upload(file, `${fileName}.txt`); os.launchUploader([file], {}).then(driveFiles => {
files.value.push(...driveFiles);
});
}); });
} }
} }
@ -729,7 +740,9 @@ function onDrop(ev: DragEvent): void {
// //
if (ev.dataTransfer && ev.dataTransfer.files.length > 0) { if (ev.dataTransfer && ev.dataTransfer.files.length > 0) {
ev.preventDefault(); ev.preventDefault();
os.launchUploader(Array.from(ev.dataTransfer.files), {}); os.launchUploader(Array.from(ev.dataTransfer.files), {}).then(driveFiles => {
files.value.push(...driveFiles);
});
return; return;
} }