-
-
- {children}
-
+ Logout
+
+ {children}
);
};
diff --git a/src/hooks/useIdleTimer.js b/src/hooks/useIdleTimer.js
new file mode 100644
index 0000000..564b732
--- /dev/null
+++ b/src/hooks/useIdleTimer.js
@@ -0,0 +1,24 @@
+import { useEffect, useRef } from "react";
+
+const useIdleTimer = (onIdle, timeout = 60000) => {
+ const timerRef = useRef(null);
+
+ const resetTimer = () => {
+ clearTimeout(timerRef.current);
+ timerRef.current = setTimeout(onIdle, timeout);
+ };
+
+ useEffect(() => {
+ const events = ["mousemove", "keydown", "mousedown", "touchstart"];
+ events.forEach(e => window.addEventListener(e, resetTimer));
+
+ resetTimer(); // initialize timer
+
+ return () => {
+ clearTimeout(timerRef.current);
+ events.forEach(e => window.removeEventListener(e, resetTimer));
+ };
+ }, []);
+};
+
+export default useIdleTimer;