Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

Commit bae92a9

Browse files
committed
enhance(frontend): improve enableInfiniteScroll stability
Close misskey-dev#16318
1 parent 7d30768 commit bae92a9

File tree

4 files changed

+7
-3
lines changed

4 files changed

+7
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
- URLに`?safemode=true`を付ける
3434
- PWAのショートカットで Safemode を選択して起動する
3535
- Feat: ページのタブバーを下部に表示できるように
36+
- Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました
3637
- Enhance: コントロールパネルを検索できるように
3738
- Enhance: トルコ語 (tr-TR) に対応
3839
- Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました

packages/frontend/src/components/MkStreamingNotesTimeline.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ SPDX-License-Identifier: AGPL-3.0-only
4747
<MkNote v-else :class="$style.note" :note="note" :withHardMute="true" :data-scroll-anchor="note.id"/>
4848
</template>
4949
</component>
50-
<button v-show="paginator.canFetchOlder.value" key="_more_" :disabled="paginator.fetchingOlder.value" class="_button" :class="$style.more" @click="paginator.fetchOlder">
50+
<button v-show="paginator.canFetchOlder.value" key="_more_" v-appear="prefer.s.enableInfiniteScroll ? paginator.fetchOlder : null" :disabled="paginator.fetchingOlder.value" class="_button" :class="$style.more" @click="paginator.fetchOlder">
5151
<div v-if="!paginator.fetchingOlder.value">{{ i18n.ts.loadMore }}</div>
5252
<MkLoading v-else :inline="true"/>
5353
</button>

packages/frontend/src/components/MkStreamingNotificationsTimeline.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only
3333
<XNotification v-else :class="$style.content" :notification="notification" :withTime="true" :full="true"/>
3434
</div>
3535
</component>
36-
<button v-show="paginator.canFetchOlder.value" key="_more_" :disabled="paginator.fetchingOlder.value" class="_button" :class="$style.more" @click="paginator.fetchOlder">
36+
<button v-show="paginator.canFetchOlder.value" key="_more_" v-appear="prefer.s.enableInfiniteScroll ? paginator.fetchOlder : null" :disabled="paginator.fetchingOlder.value" class="_button" :class="$style.more" @click="paginator.fetchOlder">
3737
<div v-if="!paginator.fetchingOlder.value">{{ i18n.ts.loadMore }}</div>
3838
<MkLoading v-else/>
3939
</button>

packages/frontend/src/directives/appear.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,22 @@
33
* SPDX-License-Identifier: AGPL-3.0-only
44
*/
55

6+
import { throttle } from 'throttle-debounce';
67
import type { Directive } from 'vue';
78

89
export default {
910
mounted(src, binding, vn) {
1011
const fn = binding.value;
1112
if (fn == null) return;
1213

13-
const observer = new IntersectionObserver(entries => {
14+
const check = throttle(1000, (entries) => {
1415
if (entries.some(entry => entry.isIntersecting)) {
1516
fn();
1617
}
1718
});
1819

20+
const observer = new IntersectionObserver(check);
21+
1922
observer.observe(src);
2023

2124
src._observer_ = observer;

0 commit comments

Comments
 (0)