import { Dispatch, MutableRefObject, SetStateAction, useEffect, useRef, useState, } from 'react' export function useRefState( initialState: S | (() => S) ): [S, Dispatch>, MutableRefObject] { const [state, setState] = useState(initialState) const stateRef = useRef(state) useEffect(() => { stateRef.current = state }, [state]) return [state, setState, stateRef] } export function useTimer() {} export function useValueRef(value: V) { const ref = useRef(value) useEffect(() => { ref.current = value }, [value]) return ref }