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"
/>
@@ -24,8 +22,6 @@ SPDX-License-Identifier: AGPL-3.0-only
:class="[$style.navPathItem]"
@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;