In Next.js, you can use the useIdle
hook from the react-use
library to detect user inactivity. Here's how you can do it:
Install react-use
:
First, you need to install the react-use
library if you haven't already. You can do this using npm or yarn:
bashnpm install react-use
# or
yarn add react-use
Import and use useIdle
hook:
Once you have installed the react-use
library, you can import and use the useIdle
hook in your Next.js component:
javascriptimport { useIdle } from 'react-use';
const MyComponent = () => {
const isIdle = useIdle(5000); // 5000 milliseconds (5 seconds) of inactivity
return (
<div>
{isIdle ? <p>User is idle</p> : <p>User is active</p>}
</div>
);
};
export default MyComponent;
In this example, the component will render "User is idle" if there is no user activity for 5 seconds (5000
milliseconds), otherwise, it will render "User is active".
Adjust idle time:
You can adjust the duration of inactivity required to be considered idle by changing the value passed to the useIdle
hook. For example, if you want to detect inactivity after 10 seconds, you would use useIdle(10000)
.
Handling inactivity: You can perform any actions or trigger any events you need when the user becomes idle. This might include showing a modal, logging the user out, or any other custom behavior specific to your application.
Remember to handle any side effects or cleanup when the component unmounts, especially if you're triggering actions based on user activity or inactivity.