fix: sort posts by number instead of creation datetime (#3282)

Co-authored-by: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com>
This commit is contained in:
David Wheatley 2022-02-09 21:58:11 +01:00 committed by GitHub
parent c622070366
commit 6e3051b36a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 5 additions and 5 deletions

View File

@ -210,7 +210,7 @@ export default class DiscussionPage<CustomAttrs extends IDiscussionPageAttrs = I
record.relationships.discussion.data.id === discussionId record.relationships.discussion.data.id === discussionId
) )
.map((record) => app.store.getById<Post>('posts', record.id)) .map((record) => app.store.getById<Post>('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); .slice(0, 20);
} }

View File

@ -289,7 +289,7 @@ class PostStreamState {
if (loadIds.length) { if (loadIds.length) {
return app.store.find('posts', loadIds).then((newPosts) => { 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());
}); });
} }

View File

@ -41,7 +41,7 @@ class ListPostsController extends AbstractListController
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public $sortFields = ['createdAt']; public $sortFields = ['number', 'createdAt'];
/** /**
* @var PostFilterer * @var PostFilterer

View File

@ -132,7 +132,7 @@ class ShowDiscussionController extends AbstractShowController
*/ */
private function loadPostIds(Discussion $discussion, User $actor) 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 = $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(); $posts = $query->get();