This commit is contained in:
syuilo 2025-05-14 09:15:20 +09:00
parent 10f6919965
commit 928d941b3e
4 changed files with 19 additions and 13 deletions

View File

@ -58,7 +58,7 @@ const props = withDefaults(defineProps<{
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'chosen', v: Misskey.entities.DriveFolder): void; (ev: 'chosen', v: Misskey.entities.DriveFolder): void;
(ev: 'unchose', v: Misskey.entities.DriveFolder): void; (ev: 'unchose', v: Misskey.entities.DriveFolder): void;
(ev: 'upload', file: File, folder: Misskey.entities.DriveFolder); (ev: 'upload', files: File[], folder: Misskey.entities.DriveFolder);
(ev: 'dragstart'): void; (ev: 'dragstart'): void;
(ev: 'dragend'): void; (ev: 'dragend'): void;
}>(); }>();
@ -133,9 +133,7 @@ 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)) { emit('upload', Array.from(ev.dataTransfer.files), props.folder);
emit('upload', file, props.folder);
}
return; return;
} }

View File

@ -30,7 +30,7 @@ const props = defineProps<{
}>(); }>();
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'upload', file: File, folder?: Misskey.entities.DriveFolder | null): void; (ev: 'upload', files: File[], folder?: Misskey.entities.DriveFolder | null): void;
}>(); }>();
const draghover = ref(false); const draghover = ref(false);
@ -83,9 +83,7 @@ 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)) { emit('upload', Array.from(ev.dataTransfer.files), props.folder);
emit('upload', file, props.folder);
}
return; return;
} }

View File

@ -12,7 +12,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:class="[$style.navPathItem, { [$style.navCurrent]: folder == null }]" :class="[$style.navPathItem, { [$style.navCurrent]: folder == null }]"
:parentFolder="folder" :parentFolder="folder"
@click="cd(null)" @click="cd(null)"
@upload="upload" @upload="onUploadRequested"
/> />
<template v-for="f in hierarchyFolders"> <template v-for="f in hierarchyFolders">
<span :class="[$style.navPathItem, $style.navSeparator]"><i class="ti ti-chevron-right"></i></span> <span :class="[$style.navPathItem, $style.navSeparator]"><i class="ti ti-chevron-right"></i></span>
@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:parentFolder="folder" :parentFolder="folder"
:class="[$style.navPathItem]" :class="[$style.navPathItem]"
@click="cd(f)" @click="cd(f)"
@upload="upload" @upload="onUploadRequested"
/> />
</template> </template>
<span v-if="folder != null" :class="[$style.navPathItem, $style.navSeparator]"><i class="ti ti-chevron-right"></i></span> <span v-if="folder != null" :class="[$style.navPathItem, $style.navSeparator]"><i class="ti ti-chevron-right"></i></span>
@ -74,7 +74,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@chosen="chooseFolder" @chosen="chooseFolder"
@unchose="unchoseFolder" @unchose="unchoseFolder"
@click="cd(f)" @click="cd(f)"
@upload="upload" @upload="onUploadRequested"
@dragstart="isDragSource = true" @dragstart="isDragSource = true"
@dragend="isDragSource = false" @dragend="isDragSource = false"
/> />
@ -112,7 +112,7 @@ SPDX-License-Identifier: AGPL-3.0-only
/> />
</TransitionGroup> </TransitionGroup>
</MkStickyContainer> </MkStickyContainer>
<MkButton v-show="filesPaginator.canFetchOlder.value" primary rounded @click="filesPaginator.fetchOlder()">{{ i18n.ts.loadMore }}</MkButton> <MkButton v-show="filesPaginator.canFetchOlder.value" :class="$style.loadMore" primary rounded @click="filesPaginator.fetchOlder()">{{ i18n.ts.loadMore }}</MkButton>
</div> </div>
<div v-if="filesPaginator.items.value.length == 0 && foldersPaginator.items.value.length == 0 && !fetching" :class="$style.empty"> <div v-if="filesPaginator.items.value.length == 0 && foldersPaginator.items.value.length == 0 && !fetching" :class="$style.empty">
@ -377,6 +377,12 @@ function onDrop(ev: DragEvent) {
//#endregion //#endregion
} }
function onUploadRequested(files: File[], folder: Misskey.entities.DriveFolder | null) {
os.launchUploader(files, {
folderId: folder?.id ?? null,
});
}
async function urlUpload() { async function urlUpload() {
const { canceled, result: url } = await os.inputText({ const { canceled, result: url } = await os.inputText({
title: i18n.ts.uploadFromUrl, title: i18n.ts.uploadFromUrl,
@ -821,6 +827,10 @@ onBeforeUnmount(() => {
background-color: color(from var(--MI_THEME-bg) srgb r g b / 0.85); background-color: color(from var(--MI_THEME-bg) srgb r g b / 0.85);
} }
.loadMore {
margin: 16px auto;
}
.footer { .footer {
padding: 8px 16px; padding: 8px 16px;
font-size: 90%; font-size: 90%;

View File

@ -159,7 +159,7 @@ export function usePagination<Endpoint extends keyof Misskey.Endpoints, T = Miss
canFetchOlder.value = true; canFetchOlder.value = true;
} }
} }
}, err => { }).finally(() => {
fetchingOlder.value = false; fetchingOlder.value = false;
}); });
} }