summaryrefslogtreecommitdiffstats
path: root/ui/src
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-02-11 10:14:09 -0500
committerDessalines <tyhou13@gmx.com>2020-02-11 10:14:09 -0500
commit774518e4fe336ac60c6e8ccdbc9a98e0cb8b9310 (patch)
treee210171524334915a06e6baa03ac2f569b42efda /ui/src
parentf1392dc9a7beebcb86d7109a2b408344c2abcecc (diff)
Fixing unread indicator on link click. Fixes #527
Diffstat (limited to 'ui/src')
-rw-r--r--ui/src/components/inbox.tsx2
-rw-r--r--ui/src/components/navbar.tsx8
-rw-r--r--ui/src/components/post.tsx4
-rw-r--r--ui/src/interfaces.ts1
-rw-r--r--ui/src/services/UserService.ts7
5 files changed, 14 insertions, 8 deletions
diff --git a/ui/src/components/inbox.tsx b/ui/src/components/inbox.tsx
index 027a1db0..56bf1578 100644
--- a/ui/src/components/inbox.tsx
+++ b/ui/src/components/inbox.tsx
@@ -443,9 +443,9 @@ export class Inbox extends Component<any, InboxState> {
this.state.messages.filter(
r => !r.read && r.creator_id !== UserService.Instance.user.id
).length;
+ UserService.Instance.user.unreadCount = count;
UserService.Instance.sub.next({
user: UserService.Instance.user,
- unreadCount: count,
});
}
}
diff --git a/ui/src/components/navbar.tsx b/ui/src/components/navbar.tsx
index c675cfe7..75cdd554 100644
--- a/ui/src/components/navbar.tsx
+++ b/ui/src/components/navbar.tsx
@@ -60,8 +60,10 @@ export class Navbar extends Component<any, NavbarState> {
// Subscribe to user changes
this.userSub = UserService.Instance.sub.subscribe(user => {
this.state.isLoggedIn = user.user !== undefined;
- this.state.unreadCount = user.unreadCount;
- this.requestNotificationPermission();
+ if (this.state.isLoggedIn) {
+ this.state.unreadCount = user.user.unreadCount;
+ this.requestNotificationPermission();
+ }
this.setState(this.state);
});
@@ -304,9 +306,9 @@ export class Navbar extends Component<any, NavbarState> {
}
sendUnreadCount() {
+ UserService.Instance.user.unreadCount = this.state.unreadCount;
UserService.Instance.sub.next({
user: UserService.Instance.user,
- unreadCount: this.state.unreadCount,
});
}
diff --git a/ui/src/components/post.tsx b/ui/src/components/post.tsx
index b5b1fce3..d8f662cf 100644
--- a/ui/src/components/post.tsx
+++ b/ui/src/components/post.tsx
@@ -156,6 +156,10 @@ export class Post extends Component<any, PostState> {
auth: null,
};
WebSocketService.Instance.editComment(form);
+ UserService.Instance.user.unreadCount--;
+ UserService.Instance.sub.next({
+ user: UserService.Instance.user,
+ });
}
}
diff --git a/ui/src/interfaces.ts b/ui/src/interfaces.ts
index 23551b59..5846b548 100644
--- a/ui/src/interfaces.ts
+++ b/ui/src/interfaces.ts
@@ -93,6 +93,7 @@ export interface User {
lang: string;
avatar?: string;
show_avatars: boolean;
+ unreadCount?: number;
}
export interface UserView {
diff --git a/ui/src/services/UserService.ts b/ui/src/services/UserService.ts
index 03380e59..47e28c73 100644
--- a/ui/src/services/UserService.ts
+++ b/ui/src/services/UserService.ts
@@ -7,9 +7,8 @@ import { Subject } from 'rxjs';
export class UserService {
private static _instance: UserService;
public user: User;
- public sub: Subject<{ user: User; unreadCount: number }> = new Subject<{
+ public sub: Subject<{ user: User }> = new Subject<{
user: User;
- unreadCount: number;
}>();
private constructor() {
@@ -32,7 +31,7 @@ export class UserService {
this.user = undefined;
Cookies.remove('jwt');
setTheme();
- this.sub.next({ user: undefined, unreadCount: 0 });
+ this.sub.next({ user: undefined });
console.log('Logged out.');
}
@@ -45,7 +44,7 @@ export class UserService {
if (this.user.theme != 'darkly') {
setTheme(this.user.theme);
}
- this.sub.next({ user: this.user, unreadCount: 0 });
+ this.sub.next({ user: this.user });
console.log(this.user);
}