From 24fbf2c7b2901d5f1ae75edc1420775efc5fc03e Mon Sep 17 00:00:00 2001 From: Fasal kp <70838195+fasal26@users.noreply.github.com> Date: Fri, 24 May 2024 02:51:43 +0530 Subject: [PATCH] MM-58025 Resolved automatic tz not reflecting without refresh by listening to app visibility event (#26957) * updated timeZone by listening to app visibility event * eslint fixes * linting issues * linting issues --------- Co-authored-by: fasal --- .../src/components/logged_in/logged_in.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/webapp/channels/src/components/logged_in/logged_in.tsx b/webapp/channels/src/components/logged_in/logged_in.tsx index bbed0befae..f3f034225b 100644 --- a/webapp/channels/src/components/logged_in/logged_in.tsx +++ b/webapp/channels/src/components/logged_in/logged_in.tsx @@ -65,11 +65,14 @@ export default class LoggedIn extends React.PureComponent { // Initialize websocket WebSocketActions.initialize(); - this.props.actions.autoUpdateTimezone(getBrowserTimezone()); + this.updateTimeZone(); // Make sure the websockets close and reset version window.addEventListener('beforeunload', this.handleBeforeUnload); + // listen for the app visibility state + window.addEventListener('visibilitychange', this.handleVisibilityChange, false); + // Listen for focused tab/window state window.addEventListener('focus', this.onFocusListener); window.addEventListener('blur', this.onBlurListener); @@ -140,6 +143,16 @@ export default class LoggedIn extends React.PureComponent { return this.props.children; } + private handleVisibilityChange = (): void => { + if (!document.hidden) { + this.updateTimeZone(); + } + }; + + private updateTimeZone(): void { + this.props.actions.autoUpdateTimezone(getBrowserTimezone()); + } + private onFocusListener(): void { GlobalActions.emitBrowserFocus(true); }