Fix/ws error messages (#334)

* Updating translations.

* Translation updates

* Adding websocket error and reconnect toasts. Fixes #129
This commit is contained in:
Dessalines 2021-07-17 11:38:28 -04:00 committed by GitHub
parent efa4a639f4
commit a0d9e5c672
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 3 deletions

@ -1 +1 @@
Subproject commit 6dd3968a5e2da60884fe783a90e366bae7a96cc2
Subproject commit 4c122b5bed79e291957b9d913dd361a75b583271

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());
}