summaryrefslogtreecommitdiffstats
path: root/ui/src/components/inbox.tsx
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2019-10-18 17:20:27 -0700
committerDessalines <tyhou13@gmx.com>2019-10-18 17:20:27 -0700
commit4e5561283392d2ab1545cabb4455a8ffc490f86b (patch)
treea4ee9cc096826dc32faf3675212c7f95f1b3ea5e /ui/src/components/inbox.tsx
parent82ea5ae9186e5a8e631c87a61077e16713eb87a4 (diff)
Running prettier on code.
- #305 , #309
Diffstat (limited to 'ui/src/components/inbox.tsx')
-rw-r--r--ui/src/components/inbox.tsx172
1 files changed, 120 insertions, 52 deletions
diff --git a/ui/src/components/inbox.tsx b/ui/src/components/inbox.tsx
index c9f46b36..9d548f8d 100644
--- a/ui/src/components/inbox.tsx
+++ b/ui/src/components/inbox.tsx
@@ -1,8 +1,15 @@
import { Component, linkEvent } from 'inferno';
import { Link } from 'inferno-router';
-import { Subscription } from "rxjs";
+import { Subscription } from 'rxjs';
import { retryWhen, delay, take } from 'rxjs/operators';
-import { UserOperation, Comment, SortType, GetRepliesForm, GetRepliesResponse, CommentResponse } from '../interfaces';
+import {
+ UserOperation,
+ Comment,
+ SortType,
+ GetRepliesForm,
+ GetRepliesResponse,
+ CommentResponse,
+} from '../interfaces';
import { WebSocketService, UserService } from '../services';
import { msgOp } from '../utils';
import { CommentNodes } from './comment-nodes';
@@ -10,7 +17,8 @@ import { i18n } from '../i18next';
import { T } from 'inferno-i18next';
enum UnreadType {
- Unread, All
+ Unread,
+ All,
}
interface InboxState {
@@ -21,14 +29,13 @@ interface InboxState {
}
export class Inbox extends Component<any, InboxState> {
-
private subscription: Subscription;
private emptyState: InboxState = {
unreadType: UnreadType.Unread,
replies: [],
sort: SortType.New,
page: 1,
- }
+ };
constructor(props: any, context: any) {
super(props, context);
@@ -36,12 +43,19 @@ export class Inbox extends Component<any, InboxState> {
this.state = this.emptyState;
this.subscription = WebSocketService.Instance.subject
- .pipe(retryWhen(errors => errors.pipe(delay(3000), take(10))))
- .subscribe(
- (msg) => this.parseMessage(msg),
- (err) => console.error(err),
+ .pipe(
+ retryWhen(errors =>
+ errors.pipe(
+ delay(3000),
+ take(10)
+ )
+ )
+ )
+ .subscribe(
+ msg => this.parseMessage(msg),
+ err => console.error(err),
() => console.log('complete')
- );
+ );
this.refetch();
}
@@ -51,7 +65,9 @@ export class Inbox extends Component<any, InboxState> {
}
componentDidMount() {
- document.title = `/u/${UserService.Instance.user.username} ${i18n.t('inbox')} - ${WebSocketService.Instance.site.name}`;
+ document.title = `/u/${UserService.Instance.user.username} ${i18n.t(
+ 'inbox'
+ )} - ${WebSocketService.Instance.site.name}`;
}
render() {
@@ -61,52 +77,86 @@ export class Inbox extends Component<any, InboxState> {
<div class="row">
<div class="col-12">
<h5 class="mb-0">
- <span><T i18nKey="inbox_for" interpolation={{user: user.username}}>#<Link to={`/u/${user.username}`}>#</Link></T></span>
+ <span>
+ <T i18nKey="inbox_for" interpolation={{ user: user.username }}>
+ #<Link to={`/u/${user.username}`}>#</Link>
+ </T>
+ </span>
</h5>
- {this.state.replies.length > 0 && this.state.unreadType == UnreadType.Unread &&
- <ul class="list-inline mb-1 text-muted small font-weight-bold">
- <li className="list-inline-item">
- <span class="pointer" onClick={this.markAllAsRead}><T i18nKey="mark_all_as_read">#</T></span>
- </li>
- </ul>
- }
+ {this.state.replies.length > 0 &&
+ this.state.unreadType == UnreadType.Unread && (
+ <ul class="list-inline mb-1 text-muted small font-weight-bold">
+ <li className="list-inline-item">
+ <span class="pointer" onClick={this.markAllAsRead}>
+ <T i18nKey="mark_all_as_read">#</T>
+ </span>
+ </li>
+ </ul>
+ )}
{this.selects()}
{this.replies()}
{this.paginator()}
</div>
</div>
</div>
- )
+ );
}
selects() {
return (
<div className="mb-2">
- <select value={this.state.unreadType} onChange={linkEvent(this, this.handleUnreadTypeChange)} class="custom-select custom-select-sm w-auto">
- <option disabled><T i18nKey="type">#</T></option>
- <option value={UnreadType.Unread}><T i18nKey="unread">#</T></option>
- <option value={UnreadType.All}><T i18nKey="all">#</T></option>
+ <select
+ value={this.state.unreadType}
+ onChange={linkEvent(this, this.handleUnreadTypeChange)}
+ class="custom-select custom-select-sm w-auto"
+ >
+ <option disabled>
+ <T i18nKey="type">#</T>
+ </option>
+ <option value={UnreadType.Unread}>
+ <T i18nKey="unread">#</T>
+ </option>
+ <option value={UnreadType.All}>
+ <T i18nKey="all">#</T>
+ </option>
</select>
- <select value={this.state.sort} onChange={linkEvent(this, this.handleSortChange)} class="custom-select custom-select-sm w-auto ml-2">
- <option disabled><T i18nKey="sort_type">#</T></option>
- <option value={SortType.New}><T i18nKey="new">#</T></option>
- <option value={SortType.TopDay}><T i18nKey="top_day">#</T></option>
- <option value={SortType.TopWeek}><T i18nKey="week">#</T></option>
- <option value={SortType.TopMonth}><T i18nKey="month">#</T></option>
- <option value={SortType.TopYear}><T i18nKey="year">#</T></option>
- <option value={SortType.TopAll}><T i18nKey="all">#</T></option>
+ <select
+ value={this.state.sort}
+ onChange={linkEvent(this, this.handleSortChange)}
+ class="custom-select custom-select-sm w-auto ml-2"
+ >
+ <option disabled>
+ <T i18nKey="sort_type">#</T>
+ </option>
+ <option value={SortType.New}>
+ <T i18nKey="new">#</T>
+ </option>
+ <option value={SortType.TopDay}>
+ <T i18nKey="top_day">#</T>
+ </option>
+ <option value={SortType.TopWeek}>
+ <T i18nKey="week">#</T>
+ </option>
+ <option value={SortType.TopMonth}>
+ <T i18nKey="month">#</T>
+ </option>
+ <option value={SortType.TopYear}>
+ <T i18nKey="year">#</T>
+ </option>
+ <option value={SortType.TopAll}>
+ <T i18nKey="all">#</T>
+ </option>
</select>
</div>
- )
-
+ );
}
replies() {
return (
<div>
- {this.state.replies.map(reply =>
- <CommentNodes nodes={[{comment: reply}]} noIndent markable />
- )}
+ {this.state.replies.map(reply => (
+ <CommentNodes nodes={[{ comment: reply }]} noIndent markable />
+ ))}
</div>
);
}
@@ -114,21 +164,31 @@ export class Inbox extends Component<any, InboxState> {
paginator() {
return (
<div class="mt-2">
- {this.state.page > 1 &&
- <button class="btn btn-sm btn-secondary mr-1" onClick={linkEvent(this, this.prevPage)}><T i18nKey="prev">#</T></button>
- }
- <button class="btn btn-sm btn-secondary" onClick={linkEvent(this, this.nextPage)}><T i18nKey="next">#</T></button>
+ {this.state.page > 1 && (
+ <button
+ class="btn btn-sm btn-secondary mr-1"
+ onClick={linkEvent(this, this.prevPage)}
+ >
+ <T i18nKey="prev">#</T>
+ </button>
+ )}
+ <button
+ class="btn btn-sm btn-secondary"
+ onClick={linkEvent(this, this.nextPage)}
+ >
+ <T i18nKey="next">#</T>
+ </button>
</div>
);
}
- nextPage(i: Inbox) {
+ nextPage(i: Inbox) {
i.state.page++;
i.setState(i.state);
i.refetch();
}
- prevPage(i: Inbox) {
+ prevPage(i: Inbox) {
i.state.page--;
i.setState(i.state);
i.refetch();
@@ -144,7 +204,7 @@ export class Inbox extends Component<any, InboxState> {
refetch() {
let form: GetRepliesForm = {
sort: SortType[this.state.sort],
- unread_only: (this.state.unreadType == UnreadType.Unread),
+ unread_only: this.state.unreadType == UnreadType.Unread,
page: this.state.page,
limit: 9999,
};
@@ -168,11 +228,14 @@ export class Inbox extends Component<any, InboxState> {
if (msg.error) {
alert(i18n.t(msg.error));
return;
- } else if (op == UserOperation.GetReplies || op == UserOperation.MarkAllAsRead) {
+ } else if (
+ op == UserOperation.GetReplies ||
+ op == UserOperation.MarkAllAsRead
+ ) {
let res: GetRepliesResponse = msg;
this.state.replies = res.replies;
this.sendRepliesCount();
- window.scrollTo(0,0);
+ window.scrollTo(0, 0);
this.setState(this.state);
} else if (op == UserOperation.EditComment) {
let res: CommentResponse = msg;
@@ -188,7 +251,9 @@ export class Inbox extends Component<any, InboxState> {
// If youre in the unread view, just remove it from the list
if (this.state.unreadType == UnreadType.Unread && res.comment.read) {
- this.state.replies = this.state.replies.filter(r => r.id !== res.comment.id);
+ this.state.replies = this.state.replies.filter(
+ r => r.id !== res.comment.id
+ );
} else {
let found = this.state.replies.find(c => c.id == res.comment.id);
found.read = res.comment.read;
@@ -208,18 +273,21 @@ export class Inbox extends Component<any, InboxState> {
this.setState(this.state);
} else if (op == UserOperation.CreateCommentLike) {
let res: CommentResponse = msg;
- let found: Comment = this.state.replies.find(c => c.id === res.comment.id);
+ let found: Comment = this.state.replies.find(
+ c => c.id === res.comment.id
+ );
found.score = res.comment.score;
found.upvotes = res.comment.upvotes;
found.downvotes = res.comment.downvotes;
- if (res.comment.my_vote !== null)
- found.my_vote = res.comment.my_vote;
+ if (res.comment.my_vote !== null) found.my_vote = res.comment.my_vote;
this.setState(this.state);
}
}
sendRepliesCount() {
- UserService.Instance.sub.next({user: UserService.Instance.user, unreadCount: this.state.replies.filter(r => !r.read).length});
+ UserService.Instance.sub.next({
+ user: UserService.Instance.user,
+ unreadCount: this.state.replies.filter(r => !r.read).length,
+ });
}
}
-