Adding websocket error and reconnect toasts. Fixes #129

This commit is contained in:
Dessalines 2021-07-17 11:19:16 -04:00
parent 153f6222b8
commit 00e24fd772
2 changed files with 17 additions and 2 deletions

View file

@ -81,6 +81,8 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
componentDidMount() {
// Subscribe to jwt changes
if (isBrowser()) {
this.websocketEvents();
this.searchTextField = createRef();
console.log(`isLoggedIn = ${this.state.isLoggedIn}`);
@ -393,6 +395,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
}
return;
} else if (msg.reconnect) {
toast(i18n.t("websocket_reconnected"), "success");
WebSocketService.Instance.send(
wsClient.userJoin({
auth: authField(),
@ -530,11 +533,19 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
}
get canCreateCommunity(): boolean {
let adminOnly = this.props.site_res.site_view?.site
.community_creation_admin_only;
let adminOnly =
this.props.site_res.site_view?.site.community_creation_admin_only;
return !adminOnly || this.canAdmin;
}
/// Listens for some websocket errors
websocketEvents() {
let msg = i18n.t("websocket_disconnected");
WebSocketService.Instance.closeEventListener(() => {
toast(msg, "danger");
});
}
requestNotificationPermission() {
if (UserService.Instance.localUserView) {
document.addEventListener("DOMContentLoaded", function () {

View file

@ -56,6 +56,10 @@ export class WebSocketService {
this.ws.send(data);
}
public closeEventListener(listener: (event: CloseEvent) => void) {
this.ws.addEventListener("close", listener);
}
public static get Instance() {
return this._instance || (this._instance = new this());
}