diff --git a/CHANGELOG.md b/CHANGELOG.md index fd56700e1f2c..d63b070b6a17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 +- Fix: デッキでリンクをダブルクリックすると、ウィンドウが2枚開いてしまう問題を修正 ### Server - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index a1a76a7e7da8..ee59077008fa 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -135,11 +135,19 @@ const columnComponents = { roleTimeline: XRoleTimelineColumn, }; +// ダブルクリック時には2回クリックされた扱いになるので、2回目抑止するためのタイマー +// これによりウィンドウが2枚開かれることを防ぐ +let routerNavTimer: number | null = null; + mainRouter.navHook = (path, flag): boolean => { if (flag === 'forcePage') return false; + if (routerNavTimer != null) return true; const noMainColumn = !deckStore.state.columns.some(x => x.type === 'main'); if (deckStore.state.navWindow || noMainColumn) { os.pageWindow(path); + routerNavTimer = setTimeout(() => { + routerNavTimer = null; + }, 300); return true; } return false;