]> Untitled Git - lemmy.git/commitdiff
Fixing post sorting by stickied on front end. Fixes #575
authorDessalines <tyhou13@gmx.com>
Wed, 4 Mar 2020 16:46:34 +0000 (11:46 -0500)
committerDessalines <tyhou13@gmx.com>
Wed, 4 Mar 2020 16:46:34 +0000 (11:46 -0500)
ui/src/components/post-listings.tsx
ui/src/utils.ts

index d61f624d425beeb29b8b6e7a391b9bbf05d648dd..5e6acc0ca3c871c5623c0e226c689c1b9501dd99 100644 (file)
@@ -53,7 +53,7 @@ export class PostListings extends Component<PostListingsProps, any> {
     }
 
     if (this.props.sort !== undefined) {
-      postSort(out, this.props.sort);
+      postSort(out, this.props.sort, this.props.showCommunity == undefined);
     }
 
     return out;
index d531a7ca9bdd6de4934a04b14effd338db98e443..5987070cf41bede77dae9bfff4bc80828091743e 100644 (file)
@@ -729,7 +729,11 @@ function convertCommentSortType(sort: SortType): CommentSortType {
   }
 }
 
-export function postSort(posts: Array<Post>, sort: SortType) {
+export function postSort(
+  posts: Array<Post>,
+  sort: SortType,
+  communityType: boolean
+) {
   // First, put removed and deleted comments at the bottom, then do your other sorts
   if (
     sort == SortType.TopAll ||
@@ -740,13 +744,17 @@ export function postSort(posts: Array<Post>, sort: SortType) {
   ) {
     posts.sort(
       (a, b) =>
-        +a.removed - +b.removed || +a.deleted - +b.deleted || b.score - a.score
+        +a.removed - +b.removed ||
+        +a.deleted - +b.deleted ||
+        (communityType && +b.stickied - +a.stickied) ||
+        b.score - a.score
     );
   } else if (sort == SortType.New) {
     posts.sort(
       (a, b) =>
         +a.removed - +b.removed ||
         +a.deleted - +b.deleted ||
+        (communityType && +b.stickied - +a.stickied) ||
         b.published.localeCompare(a.published)
     );
   } else if (sort == SortType.Hot) {
@@ -754,6 +762,7 @@ export function postSort(posts: Array<Post>, sort: SortType) {
       (a, b) =>
         +a.removed - +b.removed ||
         +a.deleted - +b.deleted ||
+        (communityType && +b.stickied - +a.stickied) ||
         hotRankPost(b) - hotRankPost(a)
     );
   }