wip
This commit is contained in:
parent
cfd95ce9ac
commit
0126523bc4
|
|
@ -147,7 +147,11 @@ function onDrop(ev: DragEvent) {
|
|||
fileIds: droppedData.map(f => f.id),
|
||||
folderId: props.folder.id,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFilesMoved', droppedData, props.folder);
|
||||
globalEvents.emit('driveFilesUpdated', droppedData.map(x => ({
|
||||
...x,
|
||||
folderId: props.folder.id,
|
||||
folder: props.folder,
|
||||
})));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -166,7 +170,11 @@ function onDrop(ev: DragEvent) {
|
|||
folderId: droppedFolder.id,
|
||||
parentId: props.folder.id,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFoldersMoved', [droppedFolder], props.folder);
|
||||
globalEvents.emit('driveFoldersUpdated', [droppedFolder].map(x => ({
|
||||
...x,
|
||||
parentId: props.folder.id,
|
||||
parent: props.folder,
|
||||
})));
|
||||
}).catch(err => {
|
||||
switch (err.code) {
|
||||
case 'RECURSIVE_NESTING':
|
||||
|
|
@ -216,6 +224,11 @@ function rename() {
|
|||
misskeyApi('drive/folders/update', {
|
||||
folderId: props.folder.id,
|
||||
name: name,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFoldersUpdated', [{
|
||||
...props.folder,
|
||||
name: name,
|
||||
}]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
@ -227,6 +240,12 @@ function move() {
|
|||
misskeyApi('drive/folders/update', {
|
||||
folderId: props.folder.id,
|
||||
parentId: folder[0] ? folder[0].id : null,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFoldersUpdated', [{
|
||||
...props.folder,
|
||||
parentId: folder[0] ? folder[0].id : null,
|
||||
parent: folder[0] ?? null,
|
||||
}]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,11 @@ function onDrop(ev: DragEvent) {
|
|||
fileIds: droppedData.map(f => f.id),
|
||||
folderId: props.folder ? props.folder.id : null,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFilesMoved', droppedData, props.folder ?? null);
|
||||
globalEvents.emit('driveFilesUpdated', droppedData.map(x => ({
|
||||
...x,
|
||||
folderId: props.folder ? props.folder.id : null,
|
||||
folder: props.folder ?? null,
|
||||
})));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -114,7 +118,11 @@ function onDrop(ev: DragEvent) {
|
|||
folderId: droppedFolder.id,
|
||||
parentId: props.folder ? props.folder.id : null,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFoldersMoved', [droppedFolder], props.folder ?? null);
|
||||
globalEvents.emit('driveFoldersUpdated', [droppedFolder].map(x => ({
|
||||
...x,
|
||||
parentId: props.folder ? props.folder.id : null,
|
||||
parent: props.folder ?? null,
|
||||
})));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,7 +330,11 @@ function onDrop(ev: DragEvent) {
|
|||
fileIds: droppedData.map(f => f.id),
|
||||
folderId: folder.value ? folder.value.id : null,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFilesMoved', droppedData, folder.value);
|
||||
globalEvents.emit('driveFilesUpdated', droppedData.map(x => ({
|
||||
...x,
|
||||
folderId: folder.value ? folder.value.id : null,
|
||||
folder: folder.value,
|
||||
})));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -348,7 +352,11 @@ function onDrop(ev: DragEvent) {
|
|||
folderId: droppedFolder.id,
|
||||
parentId: folder.value ? folder.value.id : null,
|
||||
}).then(() => {
|
||||
globalEvents.emit('driveFoldersMoved', [droppedFolder], folder.value);
|
||||
globalEvents.emit('driveFoldersUpdated', [droppedFolder].map(x => ({
|
||||
...x,
|
||||
parentId: folder.value ? folder.value.id : null,
|
||||
parent: folder.value,
|
||||
})));
|
||||
}).catch(err => {
|
||||
switch (err.code) {
|
||||
case 'RECURSIVE_NESTING':
|
||||
|
|
@ -418,8 +426,7 @@ async function renameFolder(folderToRename: Misskey.entities.DriveFolder) {
|
|||
name: name,
|
||||
});
|
||||
|
||||
// FIXME: 画面を更新するために自分自身に移動
|
||||
cd(updatedFolder);
|
||||
globalEvents.emit('driveFoldersUpdated', [updatedFolder]);
|
||||
}
|
||||
|
||||
function deleteFolder(folderToDelete: Misskey.entities.DriveFolder) {
|
||||
|
|
@ -533,7 +540,11 @@ async function moveFilesBulk() {
|
|||
folderId: toFolder[0] ? toFolder[0].id : null,
|
||||
});
|
||||
|
||||
globalEvents.emit('driveFilesMoved', selectedFiles.value, toFolder[0]);
|
||||
globalEvents.emit('driveFilesUpdated', selectedFiles.value.map(x => ({
|
||||
...x,
|
||||
folderId: toFolder[0] ? toFolder[0].id : null,
|
||||
folder: toFolder[0] ?? null,
|
||||
})));
|
||||
}
|
||||
|
||||
function goRoot() {
|
||||
|
|
@ -651,12 +662,19 @@ useGlobalEvent('driveFileCreated', (file) => {
|
|||
}
|
||||
});
|
||||
|
||||
useGlobalEvent('driveFilesMoved', (files, to) => {
|
||||
useGlobalEvent('driveFilesUpdated', (files) => {
|
||||
for (const f of files) {
|
||||
filesPaginator.removeItem(f.id);
|
||||
}
|
||||
if ((to?.id ?? null) === (folder.value?.id ?? null)) {
|
||||
filesPaginator.unshiftItems(files);
|
||||
if (filesPaginator.items.value.some(x => x.id === f.id)) {
|
||||
if (f.folderId === (folder.value?.id ?? null)) {
|
||||
filesPaginator.updateItem(f.id, () => f);
|
||||
} else {
|
||||
filesPaginator.removeItem(f.id);
|
||||
}
|
||||
} else {
|
||||
if (f.folderId === (folder.value?.id ?? null)) {
|
||||
filesPaginator.prepend(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -666,12 +684,19 @@ useGlobalEvent('driveFilesDeleted', (files) => {
|
|||
}
|
||||
});
|
||||
|
||||
useGlobalEvent('driveFoldersMoved', (folders, to) => {
|
||||
useGlobalEvent('driveFoldersUpdated', (folders) => {
|
||||
for (const f of folders) {
|
||||
foldersPaginator.removeItem(f.id);
|
||||
}
|
||||
if ((to?.id ?? null) === (folder.value?.id ?? null)) {
|
||||
foldersPaginator.unshiftItems(folders);
|
||||
if (foldersPaginator.items.value.some(x => x.id === f.id)) {
|
||||
if (f.parentId === (folder.value?.id ?? null)) {
|
||||
foldersPaginator.updateItem(f.id, () => f);
|
||||
} else {
|
||||
foldersPaginator.removeItem(f.id);
|
||||
}
|
||||
} else {
|
||||
if (f.parentId === (folder.value?.id ?? null)) {
|
||||
foldersPaginator.prepend(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ type Events = {
|
|||
notePosted: (note: Misskey.entities.Note) => void;
|
||||
noteDeleted: (noteId: Misskey.entities.Note['id']) => void;
|
||||
driveFileCreated: (file: Misskey.entities.DriveFile) => void;
|
||||
driveFilesMoved: (files: Misskey.entities.DriveFile[], to: Misskey.entities.DriveFolder | null) => void;
|
||||
driveFilesUpdated: (files: Misskey.entities.DriveFile[]) => void;
|
||||
driveFilesDeleted: (files: Misskey.entities.DriveFile[]) => void;
|
||||
driveFoldersMoved: (folders: Misskey.entities.DriveFolder[], to: Misskey.entities.DriveFolder | null) => void;
|
||||
driveFoldersUpdated: (folders: Misskey.entities.DriveFolder[]) => void;
|
||||
driveFoldersDeleted: (folders: Misskey.entities.DriveFolder[]) => void;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue