From 4ff3cdde873217a055c5a98f63752b00334995ae Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 11 May 2025 09:46:52 +0900 Subject: [PATCH] wip --- .../src/components/MkDrive.folder.vue | 10 ++++---- .../src/components/MkDrive.navFolder.vue | 4 ---- packages/frontend/src/components/MkDrive.vue | 24 ++++--------------- 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/packages/frontend/src/components/MkDrive.folder.vue b/packages/frontend/src/components/MkDrive.folder.vue index e4791258c8..667369072c 100644 --- a/packages/frontend/src/components/MkDrive.folder.vue +++ b/packages/frontend/src/components/MkDrive.folder.vue @@ -43,7 +43,7 @@ import { i18n } from '@/i18n.js'; import { claimAchievement } from '@/utility/achievements.js'; import { copyToClipboard } from '@/utility/copy-to-clipboard.js'; import { prefer } from '@/preferences.js'; -import { DATA_TRANSFER_DRIVE_FILE, DATA_TRANSFER_DRIVE_FOLDER } from '@/consts.js'; +import { DATA_TRANSFER_DRIVE_FILE, DATA_TRANSFER_DRIVE_FILES, DATA_TRANSFER_DRIVE_FOLDER, DATA_TRANSFER_DRIVE_FOLDERS } from '@/consts.js'; const props = withDefaults(defineProps<{ folder: Misskey.entities.DriveFolder; @@ -59,8 +59,6 @@ const emit = defineEmits<{ (ev: 'unchose', v: Misskey.entities.DriveFolder): void; (ev: 'move', v: Misskey.entities.DriveFolder): void; (ev: 'upload', file: File, folder: Misskey.entities.DriveFolder); - (ev: 'removeFile', v: Misskey.entities.DriveFile['id']): void; - (ev: 'removeFolder', v: Misskey.entities.DriveFolder['id']): void; (ev: 'dragstart'): void; (ev: 'dragend'): void; }>(); @@ -103,9 +101,11 @@ function onDragover(ev: DragEvent) { const isFile = ev.dataTransfer.items[0].kind === 'file'; const isDriveFile = ev.dataTransfer.types[0] === DATA_TRANSFER_DRIVE_FILE; + const isDriveFiles = ev.dataTransfer.types[0] === DATA_TRANSFER_DRIVE_FILES; const isDriveFolder = ev.dataTransfer.types[0] === DATA_TRANSFER_DRIVE_FOLDER; + const isDriveFolders = ev.dataTransfer.types[0] === DATA_TRANSFER_DRIVE_FOLDERS; - if (isFile || isDriveFile || isDriveFolder) { + if (isFile || isDriveFile || isDriveFolder || isDriveFiles || isDriveFolders) { switch (ev.dataTransfer.effectAllowed) { case 'all': case 'uninitialized': @@ -152,7 +152,6 @@ function onDrop(ev: DragEvent) { const driveFile = ev.dataTransfer.getData(DATA_TRANSFER_DRIVE_FILE); if (driveFile != null && driveFile !== '') { const file = JSON.parse(driveFile); - emit('removeFile', file.id); misskeyApi('drive/files/update', { fileId: file.id, folderId: props.folder.id, @@ -168,7 +167,6 @@ function onDrop(ev: DragEvent) { // 移動先が自分自身ならreject if (folder.id === props.folder.id) return; - emit('removeFolder', folder.id); misskeyApi('drive/folders/update', { folderId: folder.id, parentId: props.folder.id, diff --git a/packages/frontend/src/components/MkDrive.navFolder.vue b/packages/frontend/src/components/MkDrive.navFolder.vue index 176aceee5a..8eb2083a01 100644 --- a/packages/frontend/src/components/MkDrive.navFolder.vue +++ b/packages/frontend/src/components/MkDrive.navFolder.vue @@ -32,8 +32,6 @@ const props = defineProps<{ const emit = defineEmits<{ (ev: 'move', v?: Misskey.entities.DriveFolder): void; (ev: 'upload', file: File, folder?: Misskey.entities.DriveFolder | null): void; - (ev: 'removeFile', v: Misskey.entities.DriveFile['id']): void; - (ev: 'removeFolder', v: Misskey.entities.DriveFolder['id']): void; }>(); const hover = ref(false); @@ -112,7 +110,6 @@ function onDrop(ev: DragEvent) { const driveFile = ev.dataTransfer.getData(DATA_TRANSFER_DRIVE_FILE); if (driveFile != null && driveFile !== '') { const file = JSON.parse(driveFile); - emit('removeFile', file.id); misskeyApi('drive/files/update', { fileId: file.id, folderId: props.folder ? props.folder.id : null, @@ -126,7 +123,6 @@ function onDrop(ev: DragEvent) { const folder = JSON.parse(driveFolder); // 移動先が自分自身ならreject if (props.folder && folder.id === props.folder.id) return; - emit('removeFolder', folder.id); misskeyApi('drive/folders/update', { folderId: folder.id, parentId: props.folder ? props.folder.id : null, diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue index ffbe293045..5648a1dc4c 100644 --- a/packages/frontend/src/components/MkDrive.vue +++ b/packages/frontend/src/components/MkDrive.vue @@ -13,8 +13,6 @@ SPDX-License-Identifier: AGPL-3.0-only :parentFolder="folder" @move="move" @upload="upload" - @removeFile="removeFile" - @removeFolder="removeFolder" /> @@ -79,8 +75,6 @@ SPDX-License-Identifier: AGPL-3.0-only @unchose="unchoseFolder" @move="move" @upload="upload" - @removeFile="removeFile" - @removeFolder="removeFolder" @dragstart="isDragSource = true" @dragend="isDragSource = false" /> @@ -257,8 +251,10 @@ function onFileDragstart(file: Misskey.entities.DriveFile, ev: DragEvent) { selectedFiles.value.push(file); } - ev.dataTransfer.effectAllowed = 'move'; - ev.dataTransfer.setData(DATA_TRANSFER_DRIVE_FILES, JSON.stringify(selectedFiles.value)); + if (ev.dataTransfer) { + ev.dataTransfer.effectAllowed = 'move'; + ev.dataTransfer.setData(DATA_TRANSFER_DRIVE_FILES, JSON.stringify(selectedFiles.value)); + } } isDragSource.value = true; @@ -327,7 +323,6 @@ function onDrop(ev: DragEvent) { if (driveFile != null && driveFile !== '') { const file = JSON.parse(driveFile); if (filesPaginator.items.value.some(f => f.id === file.id)) return; - removeFile(file.id); misskeyApi('drive/files/update', { fileId: file.id, folderId: folder.value ? folder.value.id : null, @@ -343,7 +338,6 @@ function onDrop(ev: DragEvent) { // 移動先が自分自身ならreject if (folder.value && droppedFolder.id === folder.value.id) return false; if (foldersPaginator.items.value.some(f => f.id === droppedFolder.id)) return false; - removeFolder(droppedFolder.id); misskeyApi('drive/folders/update', { folderId: droppedFolder.id, parentId: folder.value ? folder.value.id : null, @@ -542,16 +536,6 @@ async function moveFilesBulk() { globalEvents.emit('driveFilesMoved', selectedFiles.value, toFolder[0]); } -function removeFolder(folderToRemove: Misskey.entities.DriveFolder | string) { - const folderIdToRemove = typeof folderToRemove === 'object' ? folderToRemove.id : folderToRemove; - foldersPaginator.removeItem(folderIdToRemove); -} - -function removeFile(file: Misskey.entities.DriveFile | string) { - const fileId = typeof file === 'object' ? file.id : file; - filesPaginator.removeItem(fileId); -} - function goRoot() { // 既にrootにいるなら何もしない if (folder.value == null) return;