@chenng/react-native-shake-event
Version:
Add shake event to your React Native app
38 lines (35 loc) • 761 B
JavaScript
/**
* @providesModule RNShakeEvent
* @flow
*/
;
import React, {DeviceEventEmitter, NativeModules} from 'react-native';
import invariant from 'invariant';
var listener;
class RNShakeEvent {
static addEventListener(type, handler) {
invariant(
type === 'shake',
'RNShakeEventIOS only supports `shake` event'
);
listener = DeviceEventEmitter.addListener('ShakeEvent', () => {
if (handler) {
handler();
}
});
}
static removeEventListener(type, handler) {
invariant(
type === 'shake',
'RNShakeEventIOS only supports `shake` event'
);
if (!listener) {
return;
}
if (handler) {
handler();
}
listener.remove();
}
};
export default RNShakeEvent;