diff --git a/packages/frontend/src/components/MkPagination.vue b/packages/frontend/src/components/MkPagination.vue index f1a1fdbbe..a9d7b646d 100644 --- a/packages/frontend/src/components/MkPagination.vue +++ b/packages/frontend/src/components/MkPagination.vue @@ -518,11 +518,20 @@ const prepend = (item: MisskeyEntity): void => { if ( !isPausingUpdate.value && // タブがバックグラウンドの時/スクロール調整中はキューに追加する queueSize.value === 0 && // キューに残っている場合はキューに追加する - active.value && // keepAliveで隠されている間はキューに追加する - !backed // 先頭に表示されていない時はキューに追加する + active.value // keepAliveで隠されている間はキューに追加する ) { - if (items.value.has(item.id)) return; // 既にタイムラインにある場合は何もしない - unshiftItems([item]); + if (!backed) { + // 先頭にいる場合は単に追加する + if (items.value.has(item.id)) return; // 既にタイムラインにある場合は何もしない + unshiftItems([item]); + } else if (!weakBacked) { + // ちょっと先頭にいる場合はスクロールを調整する + prependQueue(item); + executeQueue(); + } else { + // 先頭にいない場合はキューに追加する + prependQueue(item); + } } else { prependQueue(item); }