react-native-inactivity-timeout
v1.0.1
Published
A reusable React Native hook to detect user inactivity and auto logout
Maintainers
Readme
React Native Inactivity Timeout
A lightweight, customizable hook for handling user inactivity and session timeouts in React Native applications.
Installation
Install the package using npm:
npm install react-native-inactivity-timeoutOr using yarn:
yarn add react-native-inactivity-timeoutBasic Usage
Import and use the hook in your React Native component:
import { useInactivityTimeout } from 'react-native-inactivity-timeout';
import { View } from 'react-native';
const App = () => {
const { panResponder } = useInactivityTimeout({
onLogout: () => {
// Handle logout
console.log('User logged out due to inactivity');
},
timeoutDuration: 300000, // 5 minutes
alertMessage: 'Session expired due to inactivity'
});
return (
<View {...panResponder.panHandlers}>
{/* Your app content */}
</View>
);
};Advanced Usage with Token Validation
import { useInactivityTimeout } from 'react-native-inactivity-timeout';
import { checkTokenValidity } from './auth-service';
const App = () => {
const { panResponder } = useInactivityTimeout({
onLogout: handleLogout,
checkExpiration: async () => {
// Custom token validation logic
return await checkTokenValidity();
},
timeoutDuration: 600000, // 10 minutes
alertMessage: 'Your session has expired'
});
return (
<View {...panResponder.panHandlers}>
{/* Your app content */}
</View>
);
};API Reference
Props
| Prop | Type | Required | Default | Description | |------|------|----------|---------|-------------| | onLogout | () => void | Yes | - | Callback function called when timeout occurs | | checkExpiration | () => Promise | No | - | Optional async function for token validation | | timeoutDuration | number | No | 300000 | Timeout duration in milliseconds | | alertMessage | string | No | 'Session expired' | Message shown when session expires |
Return Value
| Property | Type | Description | |----------|------|-------------| | panResponder | PanResponderInstance | Pan responder to detect user activity |
Features
- 🔒 Secure session management
- 🔄 Automatic timeout reset on user interaction
- ⚡ Lightweight implementation
- 📱 Cross-platform support (iOS & Android)
- 🎯 TypeScript support
- ⚙️ Configurable timeout duration
- 🔑 Optional token validation
- 📝 Custom alert messages
TypeScript Support
The package includes TypeScript definitions. No additional types need to be installed.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Author
Adeyemo Adekunle
Support
If you're having any problem, please raise an issue on GitHub.
