diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-06-01 10:44:45 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-06-01 10:44:45 +0900 |
| commit | f4167ae7f1df7c2cd4cf264fc4d79d51b8c51133 (patch) | |
| tree | 9f87a9ee76c82176daa4e81f1b117e90ec933f52 /packages/frontend/src/utility | |
| parent | fix(frontend): remove unused text (diff) | |
| download | misskey-f4167ae7f1df7c2cd4cf264fc4d79d51b8c51133.tar.gz misskey-f4167ae7f1df7c2cd4cf264fc4d79d51b8c51133.tar.bz2 misskey-f4167ae7f1df7c2cd4cf264fc4d79d51b8c51133.zip | |
enhance(frontend): 非同期的なコンポーネントの読み込み時のハンドリングを強化
Diffstat (limited to 'packages/frontend/src/utility')
| -rw-r--r-- | packages/frontend/src/utility/drive.ts | 8 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-drive-file-menu.ts | 4 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-embed-code.ts | 4 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-note-menu.ts | 4 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-user-menu.ts | 4 | ||||
| -rw-r--r-- | packages/frontend/src/utility/please-login.ts | 7 |
6 files changed, 15 insertions, 16 deletions
diff --git a/packages/frontend/src/utility/drive.ts b/packages/frontend/src/utility/drive.ts index f171a4d14d..fcc847653d 100644 --- a/packages/frontend/src/utility/drive.ts +++ b/packages/frontend/src/utility/drive.ts @@ -172,8 +172,8 @@ export function chooseFileFromPcAndUpload( export function chooseDriveFile(options: { multiple?: boolean; } = {}): Promise<Misskey.entities.DriveFile[]> { - return new Promise(resolve => { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkDriveFileSelectDialog.vue')), { + return new Promise(async resolve => { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkDriveFileSelectDialog.vue').then(x => x.default), { multiple: options.multiple ?? false, }, { done: files => { @@ -286,8 +286,8 @@ export async function createCroppedImageDriveFileFromImageDriveFile(imageDriveFi } export async function selectDriveFolder(initialFolder: Misskey.entities.DriveFolder['id'] | null): Promise<Misskey.entities.DriveFolder[]> { - return new Promise(resolve => { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkDriveFolderSelectDialog.vue')), { + return new Promise(async resolve => { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkDriveFolderSelectDialog.vue').then(x => x.default), { initialFolder, }, { done: folders => { diff --git a/packages/frontend/src/utility/get-drive-file-menu.ts b/packages/frontend/src/utility/get-drive-file-menu.ts index 4b4bab3125..040cf8f976 100644 --- a/packages/frontend/src/utility/get-drive-file-menu.ts +++ b/packages/frontend/src/utility/get-drive-file-menu.ts @@ -28,8 +28,8 @@ function rename(file: Misskey.entities.DriveFile) { }); } -function describe(file: Misskey.entities.DriveFile) { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkFileCaptionEditWindow.vue')), { +async function describe(file: Misskey.entities.DriveFile) { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkFileCaptionEditWindow.vue').then(x => x.default), { default: file.comment ?? '', file: file, }, { diff --git a/packages/frontend/src/utility/get-embed-code.ts b/packages/frontend/src/utility/get-embed-code.ts index d458e64f19..de36314ac2 100644 --- a/packages/frontend/src/utility/get-embed-code.ts +++ b/packages/frontend/src/utility/get-embed-code.ts @@ -64,7 +64,7 @@ export function getEmbedCode(path: string, params?: EmbedParams): string { * * カスタマイズ機能がいらない場合(事前にパラメータを指定する場合)は getEmbedCode を直接使ってください */ -export function genEmbedCode(entity: EmbeddableEntity, id: string, params?: EmbedParams) { +export async function genEmbedCode(entity: EmbeddableEntity, id: string, params?: EmbedParams) { const _params = { ...params }; if (embedRouteWithScrollbar.includes(entity) && _params.maxHeight == null) { @@ -75,7 +75,7 @@ export function genEmbedCode(entity: EmbeddableEntity, id: string, params?: Embe if (window.innerWidth < MOBILE_THRESHOLD) { copyToClipboard(getEmbedCode(`/embed/${entity}/${id}`, _params)); } else { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkEmbedCodeGenDialog.vue')), { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkEmbedCodeGenDialog.vue').then(x => x.default), { entity, id, params: _params, diff --git a/packages/frontend/src/utility/get-note-menu.ts b/packages/frontend/src/utility/get-note-menu.ts index dc813cb78e..5b99be5fdb 100644 --- a/packages/frontend/src/utility/get-note-menu.ts +++ b/packages/frontend/src/utility/get-note-menu.ts @@ -135,12 +135,12 @@ export function getAbuseNoteMenu(note: Misskey.entities.Note, text: string): Men return { icon: 'ti ti-exclamation-circle', text, - action: (): void => { + action: async (): Promise<void> => { const localUrl = `${url}/notes/${note.id}`; let noteInfo = ''; if (note.url ?? note.uri != null) noteInfo = `Note: ${note.url ?? note.uri}\n`; noteInfo += `Local Note: ${localUrl}\n`; - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkAbuseReportWindow.vue').then(x => x.default), { user: note.user, initialComment: `${noteInfo}-----\n`, }, { diff --git a/packages/frontend/src/utility/get-user-menu.ts b/packages/frontend/src/utility/get-user-menu.ts index 563e45c446..5c08b8c462 100644 --- a/packages/frontend/src/utility/get-user-menu.ts +++ b/packages/frontend/src/utility/get-user-menu.ts @@ -94,8 +94,8 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router }); } - function reportAbuse() { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), { + async function reportAbuse() { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkAbuseReportWindow.vue').then(x => x.default), { user: user, }, { closed: () => dispose(), diff --git a/packages/frontend/src/utility/please-login.ts b/packages/frontend/src/utility/please-login.ts index 9253105f48..737e7d7c6e 100644 --- a/packages/frontend/src/utility/please-login.ts +++ b/packages/frontend/src/utility/please-login.ts @@ -3,11 +3,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { defineAsyncComponent } from 'vue'; import { $i } from '@/i.js'; import { instance } from '@/instance.js'; import { i18n } from '@/i18n.js'; -import { popup } from '@/os.js'; +import { popupAsyncWithDialog } from '@/os.js'; export type OpenOnRemoteOptions = { /** @@ -45,7 +44,7 @@ export type OpenOnRemoteOptions = { params: Record<string, string>; }; -export function pleaseLogin(opts: { +export async function pleaseLogin(opts: { path?: string; message?: string; openOnRemote?: OpenOnRemoteOptions; @@ -59,7 +58,7 @@ export function pleaseLogin(opts: { _openOnRemote = opts.openOnRemote; } - const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), { + const { dispose } = await popupAsyncWithDialog(import('@/components/MkSigninDialog.vue').then(x => x.default), { autoSet: true, message: opts.message ?? (_openOnRemote ? i18n.ts.signinOrContinueOnRemote : i18n.ts.signinRequired), openOnRemote: _openOnRemote, |