wip
This commit is contained in:
parent
6c7f24fbb8
commit
90c40cd153
|
@ -316,9 +316,9 @@ function onDrop(ev: DragEvent) {
|
|||
|
||||
// ドロップされてきたものがファイルだったら
|
||||
if (ev.dataTransfer.files.length > 0) {
|
||||
for (const file of Array.from(ev.dataTransfer.files)) {
|
||||
upload(file, folder.value);
|
||||
}
|
||||
os.launchUploader(Array.from(ev.dataTransfer.files), {
|
||||
folderId: folder.value?.id ?? null,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -729,7 +729,7 @@ function onDrop(ev: DragEvent): void {
|
|||
// ファイルだったら
|
||||
if (ev.dataTransfer && ev.dataTransfer.files.length > 0) {
|
||||
ev.preventDefault();
|
||||
for (const x of Array.from(ev.dataTransfer.files)) upload(x);
|
||||
os.launchUploader(Array.from(ev.dataTransfer.files), {});
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -773,3 +773,22 @@ export function checkExistence(fileData: ArrayBuffer): Promise<any> {
|
|||
});
|
||||
});
|
||||
}*/
|
||||
|
||||
export function launchUploader(
|
||||
files: File[],
|
||||
options?: {
|
||||
folderId?: string | null;
|
||||
},
|
||||
): Promise<Misskey.entities.DriveFile[]> {
|
||||
return new Promise((res, rej) => {
|
||||
const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkUploaderDialog.vue')), {
|
||||
files: markRaw(files),
|
||||
folderId: options?.folderId,
|
||||
}, {
|
||||
done: driveFiles => {
|
||||
res(driveFiles);
|
||||
},
|
||||
closed: () => dispose(),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ function onDrop(ev: DragEvent): void {
|
|||
// ファイルだったら
|
||||
if (ev.dataTransfer.files.length === 1) {
|
||||
ev.preventDefault();
|
||||
upload(ev.dataTransfer.files[0]);
|
||||
os.launchUploader([Array.from(ev.dataTransfer.files)[0]], {});
|
||||
return;
|
||||
} else if (ev.dataTransfer.files.length > 1) {
|
||||
ev.preventDefault();
|
||||
|
@ -173,7 +173,11 @@ function chooseFile(ev: MouseEvent) {
|
|||
function onChangeFile() {
|
||||
if (fileEl.value == null || fileEl.value.files == null) return;
|
||||
|
||||
if (fileEl.value.files[0]) upload(fileEl.value.files[0]);
|
||||
if (fileEl.value.files[0]) {
|
||||
os.launchUploader(Array.from(fileEl.value.files), {}).then(driveFiles => {
|
||||
file.value = driveFiles[0];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function send() {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { defineAsyncComponent, markRaw, ref } from 'vue';
|
||||
import { } from 'vue';
|
||||
import * as Misskey from 'misskey-js';
|
||||
import * as os from '@/os.js';
|
||||
import { misskeyApi } from '@/utility/misskey-api.js';
|
||||
|
@ -12,30 +12,22 @@ import { i18n } from '@/i18n.js';
|
|||
import { prefer } from '@/preferences.js';
|
||||
|
||||
export function chooseFileFromPc(
|
||||
multiple: boolean,
|
||||
options?: {
|
||||
uploadFolder?: string | null;
|
||||
nameConverter?: (file: File) => string | undefined;
|
||||
},
|
||||
options: {
|
||||
multiple?: boolean;
|
||||
folderId?: string | null;
|
||||
} = {},
|
||||
): Promise<Misskey.entities.DriveFile[]> {
|
||||
const uploadFolder = options?.uploadFolder ?? prefer.s.uploadFolder;
|
||||
const nameConverter = options?.nameConverter ?? (() => undefined);
|
||||
|
||||
return new Promise((res, rej) => {
|
||||
const input = window.document.createElement('input');
|
||||
input.type = 'file';
|
||||
input.multiple = multiple;
|
||||
input.multiple = options.multiple ?? false;
|
||||
input.onchange = () => {
|
||||
if (!input.files) return res([]);
|
||||
|
||||
const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkUploadDialog.vue')), {
|
||||
files: markRaw(Array.from(input.files)),
|
||||
folderId: uploadFolder,
|
||||
}, {
|
||||
done: driveFiles => {
|
||||
res(driveFiles);
|
||||
},
|
||||
closed: () => dispose(),
|
||||
os.launchUploader(Array.from(input.files), {
|
||||
folderId: options.folderId,
|
||||
}).then(driveFiles => {
|
||||
res(driveFiles);
|
||||
});
|
||||
|
||||
// 一応廃棄
|
||||
|
|
Loading…
Reference in New Issue