/* eslint-disable */ import { useState, useEffect } from "react"; import { useTimeoutFn } from "react-use"; export default ( baseState: T, ms: number = 1000 ): [T, (transientValue: T) => void] => { const [value, setValue] = useState(baseState); const [, cancel, restart] = useTimeoutFn(() => setValue(baseState), ms); useEffect(() => { cancel(); setValue(baseState); }, [baseState, ms]); const setTransientValue = (transientValue: T): void => { setValue(transientValue); restart(); }; return [value, setTransientValue]; };