summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/src/components/post.tsx19
-rw-r--r--ui/src/interfaces.ts1
-rw-r--r--ui/src/translations/en.ts1
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',