diff options
-rw-r--r-- | ui/src/components/post.tsx | 19 | ||||
-rw-r--r-- | ui/src/interfaces.ts | 1 | ||||
-rw-r--r-- | ui/src/translations/en.ts | 1 |
3 files changed, 21 insertions, 0 deletions
diff --git a/ui/src/components/post.tsx b/ui/src/components/post.tsx index 9ea275ce..36621248 100644 --- a/ui/src/components/post.tsx +++ b/ui/src/components/post.tsx @@ -235,6 +235,18 @@ export class Post extends Component<any, PostState> { onChange={linkEvent(this, this.handleCommentSortChange)} /> </label> + <label + className={`btn btn-sm btn-secondary pointer ${this.state + .commentSort === CommentSortType.Old && 'active'}`} + > + {i18n.t('old')} + <input + type="radio" + value={CommentSortType.Old} + checked={this.state.commentSort === CommentSortType.Old} + onChange={linkEvent(this, this.handleCommentSortChange)} + /> + </label> </div> ); } @@ -317,6 +329,13 @@ export class Post extends Component<any, PostState> { +a.comment.deleted - +b.comment.deleted || b.comment.published.localeCompare(a.comment.published) ); + } else if (this.state.commentSort == CommentSortType.Old) { + tree.sort( + (a, b) => + +a.comment.removed - +b.comment.removed || + +a.comment.deleted - +b.comment.deleted || + a.comment.published.localeCompare(b.comment.published) + ); } else if (this.state.commentSort == CommentSortType.Hot) { tree.sort( (a, b) => diff --git a/ui/src/interfaces.ts b/ui/src/interfaces.ts index b0594e8d..f83595d7 100644 --- a/ui/src/interfaces.ts +++ b/ui/src/interfaces.ts @@ -47,6 +47,7 @@ export enum CommentSortType { Hot, Top, New, + Old, } export enum ListingType { diff --git a/ui/src/translations/en.ts b/ui/src/translations/en.ts index c932014f..90aff0b9 100644 --- a/ui/src/translations/en.ts +++ b/ui/src/translations/en.ts @@ -97,6 +97,7 @@ export const en = { sort_type: 'Sort type', hot: 'Hot', new: 'New', + old: 'Old', top_day: 'Top day', week: 'Week', month: 'Month', |