talalmajali / react-native-countdown-component

React Native CountDown
MIT License
274 stars 238 forks source link

'removeEventListener' removed in recent versions of react-native. Replaced with '.remove()' #126

Open UsamaIrfan opened 1 year ago

UsamaIrfan commented 1 year ago

Hi! ๐Ÿ‘‹

Firstly, thanks for your work on this project! ๐Ÿ™‚

Today I used patch-package to patch react-native-countdown-component@2.7.1 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-countdown-component/index.js b/node_modules/react-native-countdown-component/index.js
index b546b82..339f065 100644
--- a/node_modules/react-native-countdown-component/index.js
+++ b/node_modules/react-native-countdown-component/index.js
@@ -50,13 +50,17 @@ class CountDown extends React.Component {
     this.timer = setInterval(this.updateTimer, 1000);
   }

+  changeListener = null
+
   componentDidMount() {
-    AppState.addEventListener('change', this._handleAppStateChange);
+    this.changeListener = AppState.addEventListener('change', this._handleAppStateChange);
   }

   componentWillUnmount() {
     clearInterval(this.timer);
-    AppState.removeEventListener('change', this._handleAppStateChange);
+    if (this.changeListener) {
+      this.changeListener.remove()
+    }
   }

   componentDidUpdate(prevProps, prevState) {

This issue body was partially generated by patch-package.

xww828 commented 2 months ago

Could you update your patch in the GitHub repository ?