wip
This commit is contained in:
parent
6ce18fad6a
commit
9f775395f5
|
@ -51,6 +51,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="props.multiple">
|
||||
<MkButton style="margin: auto;" :iconOnly="true" rounded @click="chooseFile($event)"><i class="ti ti-plus"></i></MkButton>
|
||||
</div>
|
||||
|
||||
<MkSelect
|
||||
v-if="items.length > 0"
|
||||
v-model="compressionLevel"
|
||||
|
@ -123,8 +127,9 @@ const mimeTypeMap = {
|
|||
const props = withDefaults(defineProps<{
|
||||
files: File[];
|
||||
folderId?: string | null;
|
||||
multiple?: boolean;
|
||||
}>(), {
|
||||
|
||||
multiple: true,
|
||||
});
|
||||
|
||||
const emit = defineEmits<{
|
||||
|
@ -316,8 +321,15 @@ async function upload() { // エラーハンドリングなどを考慮してシ
|
|||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
for (const file of props.files) {
|
||||
async function chooseFile(ev: MouseEvent) {
|
||||
const newFiles = await os.chooseFileFromPc({ multiple: true });
|
||||
|
||||
for (const file of newFiles) {
|
||||
initializeFile(file);
|
||||
}
|
||||
}
|
||||
|
||||
function initializeFile(file: File) {
|
||||
const id = uuid();
|
||||
const filename = file.name ?? 'untitled';
|
||||
const extension = filename.split('.').length > 1 ? '.' + filename.split('.').pop() : '';
|
||||
|
@ -332,6 +344,11 @@ onMounted(() => {
|
|||
uploadFailed: false,
|
||||
file: markRaw(file),
|
||||
});
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
for (const file of props.files) {
|
||||
initializeFile(file);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -85,7 +85,7 @@ async function setAvatar(ev) {
|
|||
});
|
||||
}
|
||||
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], {}))[0];
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], { multiple: false }))[0];
|
||||
|
||||
const i = await os.apiWithDialog('i/update', {
|
||||
avatarId: driveFile.id,
|
||||
|
|
|
@ -772,6 +772,7 @@ export function launchUploader(
|
|||
files: File[],
|
||||
options?: {
|
||||
folderId?: string | null;
|
||||
multiple?: boolean;
|
||||
},
|
||||
): Promise<Misskey.entities.DriveFile[]> {
|
||||
return new Promise((res, rej) => {
|
||||
|
@ -779,6 +780,7 @@ export function launchUploader(
|
|||
const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkUploaderDialog.vue')), {
|
||||
files: markRaw(files),
|
||||
folderId: options?.folderId,
|
||||
multiple: options?.multiple,
|
||||
}, {
|
||||
done: driveFiles => {
|
||||
if (driveFiles.length === 0) return rej();
|
||||
|
|
|
@ -86,7 +86,7 @@ async function onPaste(ev: ClipboardEvent) {
|
|||
const ext = lio >= 0 ? pastedFile.name.slice(lio) : '';
|
||||
const formattedName = formatTimeString(new Date(pastedFile.lastModified), pastedFileName).replace(/{{number}}/g, '1') + ext;
|
||||
const renamedFile = new File([pastedFile], formattedName, { type: pastedFile.type });
|
||||
os.launchUploader([renamedFile], {}).then(driveFiles => {
|
||||
os.launchUploader([renamedFile], { multiple: false }).then(driveFiles => {
|
||||
file.value = driveFiles[0];
|
||||
});
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ function onDrop(ev: DragEvent): void {
|
|||
// ファイルだったら
|
||||
if (ev.dataTransfer.files.length === 1) {
|
||||
ev.preventDefault();
|
||||
os.launchUploader([Array.from(ev.dataTransfer.files)[0]], {});
|
||||
os.launchUploader([Array.from(ev.dataTransfer.files)[0]], { multiple: false });
|
||||
return;
|
||||
} else if (ev.dataTransfer.files.length > 1) {
|
||||
ev.preventDefault();
|
||||
|
@ -177,7 +177,7 @@ function onChangeFile() {
|
|||
if (fileEl.value == null || fileEl.value.files == null) return;
|
||||
|
||||
if (fileEl.value.files[0]) {
|
||||
os.launchUploader(Array.from(fileEl.value.files), {}).then(driveFiles => {
|
||||
os.launchUploader(Array.from(fileEl.value.files), { multiple: false }).then(driveFiles => {
|
||||
file.value = driveFiles[0];
|
||||
});
|
||||
}
|
||||
|
|
|
@ -291,7 +291,7 @@ function changeAvatar(ev) {
|
|||
});
|
||||
}
|
||||
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], {}))[0];
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], { multiple: false }))[0];
|
||||
done(driveFile);
|
||||
},
|
||||
}, {
|
||||
|
@ -339,7 +339,7 @@ function changeBanner(ev) {
|
|||
});
|
||||
}
|
||||
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], {}))[0];
|
||||
const driveFile = (await os.launchUploader([originalOrCropped], { multiple: false }))[0];
|
||||
done(driveFile);
|
||||
},
|
||||
}, {
|
||||
|
|
Loading…
Reference in New Issue