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
)
.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);
}

View File

@ -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());
});
}

View File

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

View File

@ -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();