From 1fdc3e5d8e2a3b186225d36ef159cfb700837a9e Mon Sep 17 00:00:00 2001 From: Aswin S Date: Fri, 24 Dec 2021 03:48:09 +0530 Subject: [PATCH 1/2] fix: LHN unread status for new messages --- src/pages/home/report/ReportActionsView.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pages/home/report/ReportActionsView.js b/src/pages/home/report/ReportActionsView.js index f4c23496183d..0492dd91ef4c 100755 --- a/src/pages/home/report/ReportActionsView.js +++ b/src/pages/home/report/ReportActionsView.js @@ -106,6 +106,7 @@ class ReportActionsView extends React.Component { this.recordTimeToMeasureItemLayout = this.recordTimeToMeasureItemLayout.bind(this); this.loadMoreChats = this.loadMoreChats.bind(this); this.sortedReportActions = []; + this.appStateChangeListener = null; this.didLayout = false; @@ -127,7 +128,7 @@ class ReportActionsView extends React.Component { } componentDidMount() { - AppState.addEventListener('change', this.onVisibilityChange); + this.appStateChangeListener = AppState.addEventListener('change', this.onVisibilityChange); // If the reportID is not found then we have either not loaded this chat or the user is unable to access it. // We will attempt to fetch it and redirect if still not accessible. @@ -243,7 +244,9 @@ class ReportActionsView extends React.Component { this.keyboardEvent.remove(); } - AppState.removeEventListener('change', this.onVisibilityChange); + if (this.appStateChangeListener) { + this.appStateChangeListener.remove(); + } Report.unsubscribeFromReportChannel(this.props.reportID); } From c1f0a49bf834f26413df6f6be4135a01fc9b89ad Mon Sep 17 00:00:00 2001 From: Aswin S Date: Fri, 24 Dec 2021 03:48:50 +0530 Subject: [PATCH 2/2] fix: Replace deprecated removeEventListener method with remove() for AppState --- src/Expensify.js | 6 ++++-- src/libs/AppStateMonitor/index.js | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Expensify.js b/src/Expensify.js index dbe03ca0d76e..bd26c28318bd 100644 --- a/src/Expensify.js +++ b/src/Expensify.js @@ -85,6 +85,7 @@ class Expensify extends PureComponent { ActiveClientManager.init(); this.setNavigationReady = this.setNavigationReady.bind(this); this.initializeClient = this.initializeClient.bind(true); + this.appStateChangeListener = null; this.state = { isNavigationReady: false, isOnyxMigrated: false, @@ -110,7 +111,7 @@ class Expensify extends PureComponent { this.setState({isOnyxMigrated: true}); }); - AppState.addEventListener('change', this.initializeClient); + this.appStateChangeListener = AppState.addEventListener('change', this.initializeClient); } componentDidUpdate(prevProps) { @@ -134,7 +135,8 @@ class Expensify extends PureComponent { } componentWillUnmount() { - AppState.removeEventListener('change', this.initializeClient); + if (!this.appStateChangeListener) { return; } + this.appStateChangeListener.remove(); } setNavigationReady() { diff --git a/src/libs/AppStateMonitor/index.js b/src/libs/AppStateMonitor/index.js index 63f2f448ac35..2410fb293865 100644 --- a/src/libs/AppStateMonitor/index.js +++ b/src/libs/AppStateMonitor/index.js @@ -24,9 +24,9 @@ function addBecameActiveListener(callback) { } appState = state; } - AppState.addEventListener('change', appStateChangeCallback); + const appStateChangeSubscription = AppState.addEventListener('change', appStateChangeCallback); return () => { - AppState.removeEventListener('change', appStateChangeCallback); + appStateChangeSubscription.remove(); }; }