アクション実行後のレビューキューのページネーションと無限スクロール

レビューキューでアイテム(例:「投稿を承認」)を処理した後、それ以上スクロールできなくなる(無限スクロールによる「もっと読み込む」ができなくなる)ことに気づきました。少なくとも私の場合、「ソート基準」を「作成日時」に設定している時です。

ブラウザ: Firefox デスクトップ
Discourse: 2.5.0.beta5

「いいね!」 1

過去 1 年間でこのページは大幅に改善され、読み込みの問題も解決したと確信しています。もしまだ問題が残っている場合は、再オープンするようフラグを立ててください。

「いいね!」 1

@markersocial、共有できる新しい詳細はありますか?この問題はまだ発生しているようです。

再現を試みるために、現在適用されている正確なフィルターをお知らせいただけますと幸いです。

「いいね!」 2

はい、わかります :slight_smile:

2.8.0beta4 で再度テストしましたが、デフォルトのソート順(スコア)では依然として発生します。過去のテストから、他のソートオプションでも同様の現象が起きていると考えています。

再現手順は、レビューキューに少なくとも11件のアイテムがある状態で、リストの先頭にあるアイテムを処理(承認・却下など)すると、その後リストの最後のアイテムまでスクロールしてページネーションできなくなります。再度ページネーション可能にするには、リスト全体をリフレッシュする必要があります。

「いいね!」 2

完璧です、詳細をありがとうございます!@sam さん、これを再現できました。@markersocial さんが提案された通り、少なくとも 11 件の投稿にフラグを立て、レビューキューを開き、最初のフラグを処理してから下にスクロールすれば、簡単に再現できます。

「いいね!」 3

まず、Ember に詳しくないため、ところどころ用語を間違えるかもしれませんが、ご了承ください。

reviewable の解決が完了すると、reject を呼び出すことで現在の reviewables リストから削除されます。

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/controllers/review-index.js#L107

reject は配列を返します。reviewables 変数が新しい配列(114 行目)に設定されると、loadMore() のような追加メソッドを持つクラスが、基本的な配列に置き換えられてしまいます。(追記:これが、アイテムを解決する前は読み込みが正しく動作するのに、解決後は動作しなくなる理由です)

考えられる修正方法は、this.set("reviewables", newList);this.reviewables.set("content", newList); に置き換えることです。

「いいね!」 3

これはここで修正されました :arrow_down:

「いいね!」 5