From a321ce463f50ed1d87d06deb6cf6e237fa714b89 Mon Sep 17 00:00:00 2001 From: Quan Pham Date: Tue, 2 Nov 2021 14:33:42 +0700 Subject: [PATCH] Update the lib to 5.x.x --- README.md | 18 +++++++++++++++++- package.json | 30 +++++++++++++++--------------- src/index.ts | 12 +++++------- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index be8768f..aad9744 100644 --- a/README.md +++ b/README.md @@ -67,4 +67,20 @@ class MyComponent extends React.Component { RNShake.removeListener(); } } -``` \ No newline at end of file + +// For v5.x.x onwards: +import React from 'react' + +export const MyComponent = () => { + React.useEffect(() => { + const subscription = RNShake.addListener(() => { + // Your code here... + }) + + return () => { + // Your code here... + subscription.remove() + } + }, []) +} +``` diff --git a/package.json b/package.json index 6a8a700..2b52933 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-shake", - "version": "4.0.2", + "version": "5.1.0", "description": "Detect shake event on Android and iOS", "homepage": "https://github.com/Doko-Demo-Doa/react-native-shake", "main": "lib/index.js", @@ -36,21 +36,21 @@ "test": "jest" }, "devDependencies": { - "@babel/core": "^7.13.14", - "@babel/runtime": "^7.13.10", - "@react-native-community/eslint-config": "^2.0.0", - "@types/jest": "^26.0.22", - "@types/react-native": "^0.64.2", - "@types/react-test-renderer": "^17.0.1", - "babel-jest": "^26.6.3", - "eslint": "^7.23.0", - "eslint-plugin-simple-import-sort": "^7.0.0", - "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.65.2", - "react": "^17.0.2", + "@babel/core": "7.13.14", + "@babel/runtime": "7.13.10", + "@react-native-community/eslint-config": "3.0.1", + "@types/jest": "26.0.22", + "@types/react-native": "0.64.2", + "@types/react-test-renderer": "17.0.1", + "babel-jest": "26.6.3", + "eslint": "7.23.0", + "eslint-plugin-simple-import-sort": "7.0.0", + "jest": "26.6.3", + "metro-react-native-babel-preset": "0.65.2", + "react": "17.0.2", "react-native": "^0.64.0", - "react-test-renderer": "^17.0.2", - "typescript": "^4.2.3" + "react-test-renderer": "17.0.2", + "typescript": "4.2.3" }, "peerDependencies": { "react": "*", diff --git a/src/index.ts b/src/index.ts index 943ee69..e987ed3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,15 +3,13 @@ import { NativeEventEmitter, NativeModules } from 'react-native' const _eventEmitter = new NativeEventEmitter(NativeModules.RNShakeEvent) export default { - addListener: (callback: () => void | undefined) => - _eventEmitter.addListener('ShakeEvent', () => { + addListener: (callback: () => void | undefined) => { + const _subscription = _eventEmitter.addListener('ShakeEvent', () => { callback?.() - }), + }) - removeListener: (callback: () => void | undefined) => - _eventEmitter.removeListener('ShakeEvent', () => { - callback?.() - }), + return _subscription + }, removeAllListeners: () => _eventEmitter.removeAllListeners('ShakeEvent'),