
Security News
Node.js Homepage Adds Paid Support Link, Prompting Contributor Pushback
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
react-idle-timer
Advanced tools
The react-idle-timer package is a React component that helps you detect and manage idle state in your application. It allows you to perform actions based on user inactivity, such as logging out the user, showing a warning message, or triggering any other custom behavior.
Detecting Idle State
This feature allows you to detect when the user becomes idle. The `useIdleTimer` hook is used to set a timeout (in this case, 15 minutes) and a callback function (`handleOnIdle`) that gets called when the user is idle.
import React from 'react';
import { useIdleTimer } from 'react-idle-timer';
const App = () => {
const handleOnIdle = () => {
console.log('User is idle');
};
const { getRemainingTime, getLastActiveTime } = useIdleTimer({
timeout: 1000 * 60 * 15,
onIdle: handleOnIdle,
debounce: 500
});
return (
<div>
<p>Remaining time: {getRemainingTime()}</p>
<p>Last active time: {getLastActiveTime()}</p>
</div>
);
};
export default App;
Resetting Idle Timer
This feature allows you to manually reset the idle timer. The `reset` function from the `useIdleTimer` hook can be called to reset the timer, for example, when a user performs a specific action like clicking a button.
import React from 'react';
import { useIdleTimer } from 'react-idle-timer';
const App = () => {
const { reset } = useIdleTimer({
timeout: 1000 * 60 * 15,
onIdle: () => console.log('User is idle'),
debounce: 500
});
return (
<div>
<button onClick={reset}>Reset Timer</button>
</div>
);
};
export default App;
Pausing and Resuming Idle Timer
This feature allows you to pause and resume the idle timer. The `pause` and `resume` functions from the `useIdleTimer` hook can be used to control the timer based on specific user actions.
import React from 'react';
import { useIdleTimer } from 'react-idle-timer';
const App = () => {
const { pause, resume } = useIdleTimer({
timeout: 1000 * 60 * 15,
onIdle: () => console.log('User is idle'),
debounce: 500
});
return (
<div>
<button onClick={pause}>Pause Timer</button>
<button onClick={resume}>Resume Timer</button>
</div>
);
};
export default App;
The idle-js package is a lightweight JavaScript library for detecting user inactivity. It provides similar functionality to react-idle-timer but is not specifically designed for React. It can be used in any JavaScript application to detect idle state and perform actions based on user inactivity.
The react-idle package is another React component for detecting user inactivity. It offers similar features to react-idle-timer, such as detecting idle state and performing actions based on user inactivity. However, it may have a different API and set of features compared to react-idle-timer.
ā”ļø Support for React 16
š Support for Isomorphic React
Welcome to version 4 of IdleTimer! We have performed a complete rewrite of our build system and a refactor/ clean up of the source code. After accepting many pull requests things started to get ugly. We added test coverage and continuous integration tools (travis and codeclimate) that will automatically enforce style and test future pull requests.
There are a few breaking changes in version 4:
startOnLoad
has been renamed to startOnMount
in order to make more sense in a react context.activeAction
has been renamed to onActive
.idleAction
has been renamed to onIdle
.For the full patch notes please refer to the CHANGELOG
yarn add react-idle-timer
or
npm install react-idle-timer --save
Run
yarn example
to build and run the exampleexample
. The example is a create-react-app project. IdleTimer is implemented in the App Component.
import React, { Component } from 'react'
import IdleTimer from 'react-idle-timer'
export default class YourApp extends Component {
constructor(props) {
super(props)
this.idleTimer = null
this.onActive = this._onActive.bind(this)
this.onIdle = this._onIdle.bind(this)
}
render() {
return (
<IdleTimer
ref={ref => { this.idleTimer = ref }}
element={document}
onActive={this.onActive}
onIdle={this.onIdle}
timeout={1000 * 60 * 15}>
<h1>Child Components</h1>
</IdleTimer>
)
}
_onActive(e) {
console.log('user is active', e)
console.log('time remaining', this.idleTimer.getRemainingTime())
}
_onIdle(e) {
console.log('user is idle', e)
console.log('last active', this.idleTimer.getLastActiveTime())
}
}
To build the source code generated html docs run
yarn docs
and opendocs/index.html
in any browser. A markdown version is available here.
These events are bound by default:
true
. Set to false to wait for user action before starting timer.true
. Set to false to explicitly set to active mode.true
Date
the user was last active4.0.0
Version 4.0 contains a rewrite of the build system and a refactor of the source code for IdleTimer. After accepting many pull requests, the projects code style was destroyed, so some forced styling was added and PRs that don't respect this style will not be accepted. Contribution guide now on the README.
startOnLoad
has been renamed to startOnMount
to make more sense in a react context.activeAction
has been renamed to onActive
.idleAction
has been renamed to onIdle
.true
, bind events with passive mode enabled.true
, bind events with capture mode enabled.onActive
callback functions.FAQs
Activity detection for React.js
The npm package react-idle-timer receives a total of 611,447 weekly downloads. As such, react-idle-timer popularity was classified as popular.
We found that react-idle-timer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.Ā It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.
Research
Security News
The Socket Research Team investigates a malicious Python typosquat of a popular password library that forces Windows shutdowns when input is incorrect.