π useShakeCallback hook for listening shake events in React Native
Please, don't use this module for production yet! (See issues)
- Please note that this package uses
rxjs
andreact-native-sensors
as dependencies and havereact
andreact-native
as peer dependencies.
npm add use-shake-callback
# Or with yarn
yarn add use-shake-callback
- The first argument of the hook is the callback function - It's only argument is
speed
, which is the speed of your shake at the time the callback is called. - Second argument is the configuration object - All fields optional.
- It is strongly recommended that you adjust the
threshold
value with experiments to match your needs.
import useShakeCallback from 'use-shake-callback';
useShakeCallback(() => {
console.log('π Shook Shook');
}, {
updateInterval: 100,
threshold: 5,
onError: (error) => console.log(error),
});
- This hooks is optimized to unsubscribe the sensor event listener when the app status change to
inactive
(= when the app goes to background). TheappState
, which is required to handle such process, is exported so that you can use throughout your application.
const { appState } = useShakeCallback(
() => console.log('π Shook Shook');
{
onError: (error) => console.log(error),
onUnsubscribe: () =>
console.log('[*] Unsubscribing accelerometer sensor'),
},
);
console.log(appState) // 'active' or 'inactive'
- All typings are exported. Yay! π
import { ShakeCallback, ShakeConfig } from 'use-shake-callback';
- Type of the callback, which is called when the current device speed(calculated from acceleration) is greater then the provided
threshold
. - Return type is
void
.
Name | Type | Description |
---|---|---|
speed |
number |
Speed of the current shake |
- Configuration object of the hook.
- All fields are optional and have defaults.
Name | Type | Default value | Description |
---|---|---|---|
updateInterval |
number |
100 |
Defines the update interval of the accelerometer sensor |
threshold |
number |
5 |
Threshold for detecting shake events; If the current speed is greater than the provided value, the callback will be called. |
onError |
(error: any) => void or undefined |
undefined |
Called when error occurred in subscription for accelerometer |
onUnsubscribe |
() => void or undefined |
undefined |
Called when unsubscribed from the accelerometer sensor |