From cc0455f1819daa54d31e39e248ac15731445cc5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Sun, 19 Jul 2020 12:05:26 +0100 Subject: [PATCH] fix(ui): migrate idle timer to use hooks --- ui/src/Components/NavBar/index.tsx | 94 +++++++++++++----------------- 1 file changed, 42 insertions(+), 52 deletions(-) diff --git a/ui/src/Components/NavBar/index.tsx b/ui/src/Components/NavBar/index.tsx index fabfd6b47..65d27aa15 100644 --- a/ui/src/Components/NavBar/index.tsx +++ b/ui/src/Components/NavBar/index.tsx @@ -1,11 +1,11 @@ -import React, { FC, useState, useRef, useEffect, useCallback } from "react"; +import React, { FC, useState, useEffect, useCallback } from "react"; import { reaction } from "mobx"; import { useObserver } from "mobx-react-lite"; import useDimensions from "react-cool-dimensions"; -import IdleTimer from "react-idle-timer"; +import { useIdleTimer } from "react-idle-timer"; import { CSSTransition } from "react-transition-group"; @@ -29,7 +29,6 @@ const NavBar: FC<{ silenceFormStore: SilenceFormStore; fixedTop?: boolean; }> = ({ alertStore, settingsStore, silenceFormStore, fixedTop = true }) => { - const idleTimer = useRef(null as null | IdleTimer); const [isIdle, setIsIdle] = useState(false); const [containerClass, setContainerClass] = useState("visible"); @@ -54,6 +53,13 @@ const NavBar: FC<{ setIsIdle(true); }, []); + const { pause, reset } = useIdleTimer({ + timeout: IsMobile() ? MobileIdleTimeout : DesktopIdleTimeout, + onIdle: onIdle, + onActive: onActive, + debounce: 500, + }); + useEffect(() => { let timer: number; if (isIdle) { @@ -75,67 +81,51 @@ const NavBar: FC<{ alertStore.status.paused || alertStore.filters.values.filter((f) => f.applied === false).length > 0, - (paused) => - paused - ? idleTimer.current && idleTimer.current.pause() - : idleTimer.current && idleTimer.current.reset(), + (paused) => (paused ? pause() : reset()), { fireImmediately: true } ), [] // eslint-disable-line react-hooks/exhaustive-deps ); return useObserver(() => ( - -
- {}} - onExited={() => {}} - enter - exit +
+ {}} + onExited={() => {}} + enter + exit + > +
- + + + + +
+
)); };