From 397e4786da109282048bc3a8be5eb81be02ab0e4 Mon Sep 17 00:00:00 2001 From: David Wheatley Date: Wed, 9 Feb 2022 21:58:11 +0100 Subject: [PATCH] fix: sort posts by number instead of creation datetime (#3282) Co-authored-by: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com> --- framework/core/js/src/forum/components/DiscussionPage.tsx | 2 +- framework/core/js/src/forum/states/PostStreamState.js | 2 +- framework/core/src/Api/Controller/ListPostsController.php | 2 +- .../core/src/Api/Controller/ShowDiscussionController.php | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/core/js/src/forum/components/DiscussionPage.tsx b/framework/core/js/src/forum/components/DiscussionPage.tsx index b8dfeaa57..0a8d39a1c 100644 --- a/framework/core/js/src/forum/components/DiscussionPage.tsx +++ b/framework/core/js/src/forum/components/DiscussionPage.tsx @@ -210,7 +210,7 @@ export default class DiscussionPage app.store.getById('posts', record.id)) - .sort((a?: Post, b?: Post) => (a?.createdAt()?.getTime() ?? 0) - (b?.createdAt()?.getTime() ?? 0)) + .sort((a?: Post, b?: Post) => (a?.number() ?? 0) - (b?.number() ?? 0)) .slice(0, 20); } diff --git a/framework/core/js/src/forum/states/PostStreamState.js b/framework/core/js/src/forum/states/PostStreamState.js index 1cb7920cb..1a2272a8b 100644 --- a/framework/core/js/src/forum/states/PostStreamState.js +++ b/framework/core/js/src/forum/states/PostStreamState.js @@ -289,7 +289,7 @@ class PostStreamState { if (loadIds.length) { return app.store.find('posts', loadIds).then((newPosts) => { - return loaded.concat(newPosts).sort((a, b) => a.createdAt() - b.createdAt()); + return loaded.concat(newPosts).sort((a, b) => a.number() - b.number()); }); } diff --git a/framework/core/src/Api/Controller/ListPostsController.php b/framework/core/src/Api/Controller/ListPostsController.php index f35d5f57a..0c9ef05a9 100644 --- a/framework/core/src/Api/Controller/ListPostsController.php +++ b/framework/core/src/Api/Controller/ListPostsController.php @@ -41,7 +41,7 @@ class ListPostsController extends AbstractListController /** * {@inheritdoc} */ - public $sortFields = ['createdAt']; + public $sortFields = ['number', 'createdAt']; /** * @var PostFilterer diff --git a/framework/core/src/Api/Controller/ShowDiscussionController.php b/framework/core/src/Api/Controller/ShowDiscussionController.php index 7f870b411..7132d4981 100644 --- a/framework/core/src/Api/Controller/ShowDiscussionController.php +++ b/framework/core/src/Api/Controller/ShowDiscussionController.php @@ -132,7 +132,7 @@ class ShowDiscussionController extends AbstractShowController */ private function loadPostIds(Discussion $discussion, User $actor) { - return $discussion->posts()->whereVisibleTo($actor)->orderBy('created_at')->pluck('id')->all(); + return $discussion->posts()->whereVisibleTo($actor)->orderBy('number')->pluck('id')->all(); } /** @@ -186,7 +186,7 @@ class ShowDiscussionController extends AbstractShowController { $query = $discussion->posts()->whereVisibleTo($actor); - $query->orderBy('created_at')->skip($offset)->take($limit)->with($include); + $query->orderBy('number')->skip($offset)->take($limit)->with($include); $posts = $query->get();