This commit is contained in:
syuilo 2025-05-11 09:54:59 +09:00
parent 4ff3cdde87
commit 9bf9b10ba4
3 changed files with 9 additions and 30 deletions

View File

@ -8,7 +8,6 @@ SPDX-License-Identifier: AGPL-3.0-only
:class="[$style.root, { [$style.draghover]: draghover }]" :class="[$style.root, { [$style.draghover]: draghover }]"
draggable="true" draggable="true"
:title="title" :title="title"
@click="onClick"
@contextmenu.stop="onContextmenu" @contextmenu.stop="onContextmenu"
@mouseover="onMouseover" @mouseover="onMouseover"
@mouseout="onMouseout" @mouseout="onMouseout"
@ -57,7 +56,6 @@ 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: 'move', v: Misskey.entities.DriveFolder): void;
(ev: 'upload', file: File, folder: Misskey.entities.DriveFolder); (ev: 'upload', file: File, folder: Misskey.entities.DriveFolder);
(ev: 'dragstart'): void; (ev: 'dragstart'): void;
(ev: 'dragend'): void; (ev: 'dragend'): void;
@ -77,10 +75,6 @@ function checkboxClicked() {
} }
} }
function onClick() {
emit('move', props.folder);
}
function onMouseover() { function onMouseover() {
hover.value = true; hover.value = true;
} }

View File

@ -6,7 +6,6 @@ SPDX-License-Identifier: AGPL-3.0-only
<template> <template>
<div <div
:class="[$style.root, { [$style.draghover]: draghover }]" :class="[$style.root, { [$style.draghover]: draghover }]"
@click="onClick"
@dragover.prevent.stop="onDragover" @dragover.prevent.stop="onDragover"
@dragenter="onDragenter" @dragenter="onDragenter"
@dragleave="onDragleave" @dragleave="onDragleave"
@ -30,25 +29,11 @@ const props = defineProps<{
}>(); }>();
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'move', v?: Misskey.entities.DriveFolder): void;
(ev: 'upload', file: File, folder?: Misskey.entities.DriveFolder | null): void; (ev: 'upload', file: File, folder?: Misskey.entities.DriveFolder | null): void;
}>(); }>();
const hover = ref(false);
const draghover = ref(false); const draghover = ref(false);
function onClick() {
emit('move', props.folder);
}
function onMouseover() {
hover.value = true;
}
function onMouseout() {
hover.value = false;
}
function onDragover(ev: DragEvent) { function onDragover(ev: DragEvent) {
if (!ev.dataTransfer) return; if (!ev.dataTransfer) return;

View File

@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<XNavFolder <XNavFolder
:class="[$style.navPathItem, { [$style.navCurrent]: folder == null }]" :class="[$style.navPathItem, { [$style.navCurrent]: folder == null }]"
:parentFolder="folder" :parentFolder="folder"
@move="move" @click="cd(null)"
@upload="upload" @upload="upload"
/> />
<template v-for="f in hierarchyFolders"> <template v-for="f in hierarchyFolders">
@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:folder="f" :folder="f"
:parentFolder="folder" :parentFolder="folder"
:class="[$style.navPathItem]" :class="[$style.navPathItem]"
@move="move" @click="cd(f)"
@upload="upload" @upload="upload"
/> />
</template> </template>
@ -42,10 +42,10 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkButton> </MkButton>
</template> </template>
<template v-else> <template v-else>
<MkButton v-if="!selectedFolders.some(f => f.id === folder.id)" @click="selectedFolders.push(folder)"> <MkButton v-if="!selectedFolders.some(f => f.id === folder!.id)" @click="selectedFolders.push(folder)">
<i class="ti ti-square"></i> {{ i18n.ts.selectThisFolder }} <i class="ti ti-square"></i> {{ i18n.ts.selectThisFolder }}
</MkButton> </MkButton>
<MkButton v-else @click="selectedFolders = selectedFolders.filter(f => f.id !== folder.id)"> <MkButton v-else @click="selectedFolders = selectedFolders.filter(f => f.id !== folder!.id)">
<i class="ti ti-checkbox"></i> {{ i18n.ts.unselectThisFolder }} <i class="ti ti-checkbox"></i> {{ i18n.ts.unselectThisFolder }}
</MkButton> </MkButton>
</template> </template>
@ -73,7 +73,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:isSelected="selectedFolders.some(x => x.id === f.id)" :isSelected="selectedFolders.some(x => x.id === f.id)"
@chosen="chooseFolder" @chosen="chooseFolder"
@unchose="unchoseFolder" @unchose="unchoseFolder"
@move="move" @click="cd(f)"
@upload="upload" @upload="upload"
@dragstart="isDragSource = true" @dragstart="isDragSource = true"
@dragend="isDragSource = false" @dragend="isDragSource = false"
@ -412,7 +412,7 @@ async function renameFolder(folderToRename: Misskey.entities.DriveFolder) {
}); });
// FIXME: // FIXME:
move(updatedFolder); cd(updatedFolder);
} }
function deleteFolder(folderToDelete: Misskey.entities.DriveFolder) { function deleteFolder(folderToDelete: Misskey.entities.DriveFolder) {
@ -420,7 +420,7 @@ function deleteFolder(folderToDelete: Misskey.entities.DriveFolder) {
folderId: folderToDelete.id, folderId: folderToDelete.id,
}).then(() => { }).then(() => {
// //
move(folderToDelete.parentId); cd(folderToDelete.parentId);
}).catch(err => { }).catch(err => {
switch (err.id) { switch (err.id) {
case 'b0fc8a17-963c-405d-bfbc-859a487295e1': case 'b0fc8a17-963c-405d-bfbc-859a487295e1':
@ -495,7 +495,7 @@ function unchoseFolder(folderToUnchose: Misskey.entities.DriveFolder) {
selectedFolders.value = selectedFolders.value.filter(f => f.id !== folderToUnchose.id); selectedFolders.value = selectedFolders.value.filter(f => f.id !== folderToUnchose.id);
} }
function move(target?: Misskey.entities.DriveFolder | Misskey.entities.DriveFolder['id' | 'parentId']) { function cd(target?: Misskey.entities.DriveFolder | Misskey.entities.DriveFolder['id' | 'parentId']) {
if (!target) { if (!target) {
goRoot(); goRoot();
return; return;
@ -663,7 +663,7 @@ onMounted(() => {
} }
if (props.initialFolder) { if (props.initialFolder) {
move(props.initialFolder); cd(props.initialFolder);
} else { } else {
initialize(); initialize();
} }