
Research
PyPI Package Disguised as Instagram Growth Tool Harvests User Credentials
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
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
Version 4.1.0
brings two of the most requested features to IdleTimer
:
āļø You can now use IdleTimer
as a generic activity monitor via the new onAction
event handler. We recommend using one of the built in debounce
or throttle
properties if you dont need every single update. It really improves performance.
āļø Added a property stopOnIdle
that allows developer intervention between the idle and active states. Good for waiting for an async task to complete before restarting the IdleTimer
. If this option is set, you will have to call reset()
manually to restart IdleTimer
.
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'
import App from './App'
export default class YourApp extends Component {
constructor(props) {
super(props)
this.idleTimer = null
this.onAction = this._onAction.bind(this)
this.onActive = this._onActive.bind(this)
this.onIdle = this._onIdle.bind(this)
}
render() {
return (
<div>
<IdleTimer
ref={ref => { this.idleTimer = ref }}
element={document}
onActive={this.onActive}
onIdle={this.onIdle}
onAction={this.onAction}
debounce={250}
timeout={1000 * 60 * 15} />
{/* your app here */}
</div>
)
}
_onAction(e) {
console.log('user did something', e)
}
_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())
}
}
There are a few breaking changes in version 4:
IdleTimer
. Unless you are really good with shouldComponentUpdate
you should avoid using IdleTimer
as a wrapper component.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
.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:
onAction
function with delay in milliseconds. Defaults to 0
. Cannot be set if throttle
is set.onAction
function with delay in milliseconds. Defaults to 0
. Cannot be set if debounce
is set.true
. Set to false
to wait for user action before starting timer.false
. If set to true you will need to manually call reset()
to restart the timer.true
.true
.Timestamp
the user was last active4.2.0
Events are unbound when:
stopOnIdle
is set to true
and the user goes idlepause()
is calledEvents are bound when:
reset()
is calledresume()
is calledstopOnIdle
will now keep IdleTimer
in idle state until reset()
is called.stopOnIdle
logic was being applied to active state.onIdle
event was not firing when stopOnIdle
is setFAQs
Activity detection for React.js
The npm package react-idle-timer receives a total of 606,087 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.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.