UNPKG

react-native-user-inactivity

Version:

React Native component that notifies if the user is active or not

50 lines (49 loc) 1.93 kB
import React from 'react'; import { StyleProp, ViewStyle } from 'react-native'; import { TimeoutHandler } from 'usetimeout-react-hook'; export interface UserInactivityProps<T = unknown> { /** * Number of milliseconds after which the view is considered inactive. * If it changed, the timer restarts and the view is considered active until * the new timer expires. * It defaults to 1000. */ timeForInactivity?: number; /** * If it's explicitly set to `true` after the component has already been initialized, * the timer restarts and the view is considered active until the new timer expires. * It defaults to true. */ isActive?: boolean; /** * Generic usetimeout-react-hook's TimeoutHandler implementation. * It defaults to the standard setTimeout/clearTimeout implementation. * See https://github.com/jkomyno/usetimeout-react-hook/#-how-to-use. */ timeoutHandler?: TimeoutHandler<T>; /** * Children components to embed inside UserInactivity's View. * If any children component is pressed, `onAction` is called after * `timeForInactivity` milliseconds. */ children: React.ReactNode; /** * If set to true, the timer is not reset when the keyboard appears * or disappears. */ skipKeyboard?: boolean; /** * Optional custom style for UserInactivity's View. * It defaults to { flex: 1 }. */ style?: StyleProp<ViewStyle>; /** * Callback triggered anytime UserInactivity's View isn't touched for more than * `timeForInactivity` seconds. * It's `active` argument is true if and only if the View wasn't touched for more * than `timeForInactivity` milliseconds. */ onAction: (active: boolean) => void; } declare const UserInactivity: React.FC<UserInactivityProps>; export default UserInactivity;