Sha256: e5b64b69e61c27cbcb657de26951f4fc066bfd36ef0c5bf5ad60718d1880f9e4
Contents?: true
Size: 588 Bytes
Versions: 889
Compression:
Stored size: 588 Bytes
Contents
import { debounce } from 'lodash' import { useCallback, useMemo, useState } from 'react' export default function useVisibility(initialState = false) { const [visible, setVisible] = useState(initialState) const hide = useCallback(() => setVisible(false), []) const show = useCallback(({ afterDelay = 0 } = {}) => { debounce(() => setVisible(true), afterDelay)() }, []) const toggle = useCallback(() => setVisible((current) => !current), []) return useMemo( () => ({ hide, show, toggle, visible, }), [hide, show, toggle, visible] ) }
Version data entries
889 entries across 889 versions & 1 rubygems