1.2.2 • Published 4 years ago
use-shake-callback v1.2.2
use-shake-callback
🐍 useShakeCallback hook for listening shake events in React Native
📦 Installation
- 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
🚀 Usage
- 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'
👻 Typings
- All typings are exported. Yay! 🎉
import { ShakeCallback, ShakeConfig } from 'use-shake-callback';
type ShakeCallback
- 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
.
Parameters
Name | Type | Description |
---|---|---|
speed | number | Speed of the current shake |
interface ShakeConfig
- Configuration object of the hook.
Fields
- 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 |