diff options
Diffstat (limited to 'packages/frontend/src/utility')
| -rw-r--r-- | packages/frontend/src/utility/autocomplete.ts | 3 | ||||
| -rw-r--r-- | packages/frontend/src/utility/drive.ts | 16 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-drive-file-menu.ts | 5 |
3 files changed, 19 insertions, 5 deletions
diff --git a/packages/frontend/src/utility/autocomplete.ts b/packages/frontend/src/utility/autocomplete.ts index 82109af1a0..c0b1865617 100644 --- a/packages/frontend/src/utility/autocomplete.ts +++ b/packages/frontend/src/utility/autocomplete.ts @@ -213,10 +213,11 @@ export class Autocomplete { const _y = ref(y); const _q = ref(q); - const { dispose } = await popup(defineAsyncComponent(() => import('@/components/MkAutocomplete.vue')), { + const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkAutocomplete.vue')), { textarea: this.textarea, close: this.close, type: type, + //@ts-expect-error popupは今のところジェネリック型のコンポーネントに対応していない q: _q, x: _x, y: _y, diff --git a/packages/frontend/src/utility/drive.ts b/packages/frontend/src/utility/drive.ts index 4fe2042e78..7578ed36e6 100644 --- a/packages/frontend/src/utility/drive.ts +++ b/packages/frontend/src/utility/drive.ts @@ -301,14 +301,26 @@ export async function createCroppedImageDriveFileFromImageDriveFile(imageDriveFi }); } -export async function selectDriveFolder(initialFolder: Misskey.entities.DriveFolder['id'] | null): Promise<(Misskey.entities.DriveFolder | null)[]> { +export async function selectDriveFolder(initialFolder: Misskey.entities.DriveFolder['id'] | null): Promise<{ + canceled: false; + folders: (Misskey.entities.DriveFolder | null)[]; +} | { + canceled: true; + folders: undefined; +}> { return new Promise((resolve, reject) => { let dispose: () => void; os.popupAsyncWithDialog(import('@/components/MkDriveFolderSelectDialog.vue').then(x => x.default), { initialFolder, }, { done: folders => { - resolve(folders); + resolve(folders == null ? { + canceled: true, + folders: undefined, + } : { + canceled: false, + folders, + }); }, closed: () => dispose(), }).then(d => dispose = d.dispose, reject); diff --git a/packages/frontend/src/utility/get-drive-file-menu.ts b/packages/frontend/src/utility/get-drive-file-menu.ts index 53ca4389bf..fea7f8f1d3 100644 --- a/packages/frontend/src/utility/get-drive-file-menu.ts +++ b/packages/frontend/src/utility/get-drive-file-menu.ts @@ -44,10 +44,11 @@ async function describe(file: Misskey.entities.DriveFile) { } function move(file: Misskey.entities.DriveFile) { - selectDriveFolder(null).then(folder => { + selectDriveFolder(null).then(({ canceled, folders }) => { + if (canceled) return; misskeyApi('drive/files/update', { fileId: file.id, - folderId: folder[0] ? folder[0].id : null, + folderId: folders[0] ? folders[0].id : null, }); }); } |