use-shake-callback
v1.2.2
Published
useShakeCallback hook for listening shake events in React Native
Downloads
3
Readme
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 |