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