From 355debba68356f1a550e1921fd77e11a912b8aa3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 1 Dec 2021 08:52:44 +0000 Subject: [PATCH 1/3] Hide clear cache and reload button if crash is before client init --- src/components/views/elements/ErrorBoundary.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/elements/ErrorBoundary.tsx b/src/components/views/elements/ErrorBoundary.tsx index 7e8686a35c4..aaeea26e5f0 100644 --- a/src/components/views/elements/ErrorBoundary.tsx +++ b/src/components/views/elements/ErrorBoundary.tsx @@ -110,9 +110,9 @@ export default class ErrorBoundary extends React.PureComponent<{}, IState> {

{ _t("Something went wrong!") }

{ bugReportSection } - + { MatrixClientPeg.get() && { _t("Clear cache and reload") } - + }
; } From 69d0f4d1ee2290ff53009218fea01ca88f617f36 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 1 Dec 2021 08:55:13 +0000 Subject: [PATCH 2/3] Remove dispatcher unregister from LoggedInView --- src/components/structures/LoggedInView.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/structures/LoggedInView.tsx b/src/components/structures/LoggedInView.tsx index 777e83d5e6a..1887e889f66 100644 --- a/src/components/structures/LoggedInView.tsx +++ b/src/components/structures/LoggedInView.tsx @@ -147,7 +147,6 @@ interface IState { class LoggedInView extends React.Component { static displayName = 'LoggedInView'; - private dispatcherRef: string; protected readonly _matrixClient: MatrixClient; protected readonly _roomView: React.RefObject; protected readonly _resizeContainer: React.RefObject; @@ -213,7 +212,6 @@ class LoggedInView extends React.Component { componentWillUnmount() { document.removeEventListener('keydown', this.onNativeKeyDown, false); CallHandler.instance.removeListener(CallHandlerEvent.CallState, this.onCallState); - dis.unregister(this.dispatcherRef); this._matrixClient.removeListener("accountData", this.onAccountData); this._matrixClient.removeListener("sync", this.onSync); this._matrixClient.removeListener("RoomState.events", this.onRoomStateEvents); From 59dd0c8d73ad4b824860a86af6533561e8a6a052 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 1 Dec 2021 10:46:56 +0000 Subject: [PATCH 3/3] Add comment --- src/components/structures/LoggedInView.tsx | 2 +- src/components/views/elements/ErrorBoundary.tsx | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/structures/LoggedInView.tsx b/src/components/structures/LoggedInView.tsx index 1887e889f66..427e5f84674 100644 --- a/src/components/structures/LoggedInView.tsx +++ b/src/components/structures/LoggedInView.tsx @@ -138,7 +138,7 @@ interface IState { * This is what our MatrixChat shows when we are logged in. The precise view is * determined by the page_type property. * - * Currently it's very tightly coupled with MatrixChat. We should try to do + * Currently, it's very tightly coupled with MatrixChat. We should try to do * something about that. * * Components mounted below us can access the matrix client via the react context. diff --git a/src/components/views/elements/ErrorBoundary.tsx b/src/components/views/elements/ErrorBoundary.tsx index aaeea26e5f0..78f96ddd739 100644 --- a/src/components/views/elements/ErrorBoundary.tsx +++ b/src/components/views/elements/ErrorBoundary.tsx @@ -106,13 +106,19 @@ export default class ErrorBoundary extends React.PureComponent<{}, IState> { ; } + let clearCacheButton: JSX.Element; + // we only show this button if there is an initialised MatrixClient otherwise we can't clear the cache + if (MatrixClientPeg.get()) { + clearCacheButton = + { _t("Clear cache and reload") } + ; + } + return

{ _t("Something went wrong!") }

{ bugReportSection } - { MatrixClientPeg.get() && - { _t("Clear cache and reload") } - } + { clearCacheButton }
; }