Sha256: e5b64b69e61c27cbcb657de26951f4fc066bfd36ef0c5bf5ad60718d1880f9e4

Contents?: true

Size: 588 Bytes

Versions: 1092

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

1,092 entries across 1,092 versions & 1 rubygems

Version Path
playbook_ui-12.26.0.pre.alpha.multiselectfixes825 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown822 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.multiselectfixes821 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown818 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown817 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown815 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown813 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.alphafix812 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.alphafix810 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.railsmultilevelimprovements805 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.multiselectfixes798 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.multiselectfixes797 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.multiselectfixes796 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.multiselectfixes795 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0.pre.alpha.PLAY603datepickerquickpickinputpresetdropdown794 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.25.0.pre.alpha.play824786 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.26.0 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.25.0.pre.alpha.railsmultilevelimprovements785 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.25.0.pre.alpha.railsmultilevelimprovements780 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js
playbook_ui-12.25.0.pre.alpha.PLAY818multilevelrebuild779 app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js