summaryrefslogtreecommitdiff
path: root/packages/frontend/src/os.ts
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-06-02 08:43:04 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-06-02 08:43:04 +0900
commitd40c083233509fdf10508bf83b006d066557ff77 (patch)
treef89aaa943b2c93f94c45552ce4db509b420728d7 /packages/frontend/src/os.ts
parentfix(backend): ログインできなくなるため、ugcVisibilityForVisitor... (diff)
downloadmisskey-d40c083233509fdf10508bf83b006d066557ff77.tar.gz
misskey-d40c083233509fdf10508bf83b006d066557ff77.tar.bz2
misskey-d40c083233509fdf10508bf83b006d066557ff77.zip
enhance(frontend): 非同期的なコンポーネントの読み込み時のハンドリングを強化
Diffstat (limited to 'packages/frontend/src/os.ts')
-rw-r--r--packages/frontend/src/os.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts
index d50f50cf20..be247f96c4 100644
--- a/packages/frontend/src/os.ts
+++ b/packages/frontend/src/os.ts
@@ -211,13 +211,17 @@ export async function popupAsyncWithDialog<T extends Component>(
props: ComponentProps<T>,
events: Partial<ComponentEmit<T>> = {},
): Promise<{ dispose: () => void }> {
- const closeWaiting = waiting();
-
let component: T;
+ let closeWaiting = () => {};
+
+ const timer = window.setTimeout(() => {
+ closeWaiting = waiting();
+ }, 100); // コンポーネントがキャッシュされている場合にもwaitingが表示されて画面がちらつくのを防止するためにラグを追加
try {
component = await componentFetching;
} catch (err) {
+ window.clearTimeout(timer);
closeWaiting();
alert({
type: 'error',
@@ -227,6 +231,7 @@ export async function popupAsyncWithDialog<T extends Component>(
throw err;
}
+ window.clearTimeout(timer);
closeWaiting();
markRaw(component);