From bae92a944dc81b5033e918fd78052a206cb6f10f Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Fri, 15 Aug 2025 12:40:37 +0900 Subject: [PATCH] enhance(frontend): improve enableInfiniteScroll stability Close #16318 --- CHANGELOG.md | 1 + .../frontend/src/components/MkStreamingNotesTimeline.vue | 2 +- .../src/components/MkStreamingNotificationsTimeline.vue | 2 +- packages/frontend/src/directives/appear.ts | 5 ++++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b998dfee6f..fab0f01629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: ページのタブバーを下部に表示できるように +- Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: コントロールパネルを検索できるように - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました diff --git a/packages/frontend/src/components/MkStreamingNotesTimeline.vue b/packages/frontend/src/components/MkStreamingNotesTimeline.vue index c2b4d6cd04..9ace0b32d5 100644 --- a/packages/frontend/src/components/MkStreamingNotesTimeline.vue +++ b/packages/frontend/src/components/MkStreamingNotesTimeline.vue @@ -47,7 +47,7 @@ SPDX-License-Identifier: AGPL-3.0-only - diff --git a/packages/frontend/src/components/MkStreamingNotificationsTimeline.vue b/packages/frontend/src/components/MkStreamingNotificationsTimeline.vue index ac1f06619a..93ffee8d98 100644 --- a/packages/frontend/src/components/MkStreamingNotificationsTimeline.vue +++ b/packages/frontend/src/components/MkStreamingNotificationsTimeline.vue @@ -33,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only - diff --git a/packages/frontend/src/directives/appear.ts b/packages/frontend/src/directives/appear.ts index 802477e00b..f5fec108dc 100644 --- a/packages/frontend/src/directives/appear.ts +++ b/packages/frontend/src/directives/appear.ts @@ -3,6 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { throttle } from 'throttle-debounce'; import type { Directive } from 'vue'; export default { @@ -10,12 +11,14 @@ export default { const fn = binding.value; if (fn == null) return; - const observer = new IntersectionObserver(entries => { + const check = throttle(1000, (entries) => { if (entries.some(entry => entry.isIntersecting)) { fn(); } }); + const observer = new IntersectionObserver(check); + observer.observe(src); src._observer_ = observer;