1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-21 21:35:28 +02:00

fix(frontend): popupのemit型が正しく利用できるように修正 (#16826)

* fix(frontend): popupのemit型が正しく利用できるように修正

* fix: revert unnecessary code (for testing purpose)

* fix lint

* fix type errors

* fix types

* add comment

* fix

* fix

* fix: OverloadToUnionの仕組みを変更

* add comments, clean up

* fix lint

* fix types

* clean up [ci skip]

* fix

* add comments [ci skip]
This commit is contained in:
かっこかり
2026-01-09 12:21:08 +09:00
committed by GitHub
parent 75b5dc1cd8
commit 2a14025c29
24 changed files with 196 additions and 167 deletions

View File

@@ -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,

View File

@@ -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);

View File

@@ -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,
});
});
}