Sha256: a05ccfd9d55e4311a152500ca59619fdb818944471d023d29d78b38ef8aec602

Contents?: true

Size: 755 Bytes

Versions: 1024

Compression:

Stored size: 755 Bytes

Contents

import { useEffect, useState } from 'react'

export const useKbdControls = (api: {[key: string]: () => void}): string => {
  const [cmdKey, setCmdKey] = useState('')

  useEffect(() => {
    const handleKeyDown = ({key}: {key: string}) => {
      const keyCmd = key.toLowerCase()
      setCmdKey(keyCmd)

      switch(keyCmd) {
        case 'escape': {
          api.onClose()
          break
        }
        case 'arrowleft': {
          api.onArrowLeft()
          break
        }
        case 'arrowright': {
          api.onArrowRight()
          break
        }
      }
    }

    window.addEventListener('keydown', handleKeyDown);

    return () => {
      window.removeEventListener('keydown', handleKeyDown);
    }
  }, [api])
  return cmdKey
}

Version data entries

1,024 entries across 1,024 versions & 1 rubygems

Version Path
playbook_ui-14.11.1.pre.alpha.PLAY17445539 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR798datepickerturbo5537 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.pbntr703collapsiblerowsrails5536 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PLAY1751pbcontenttagpt25529 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR7495495 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.11 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.10 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.9 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.8 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.7 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5437 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR719listdraggablesimple5432 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR768stickyrightcolumn5431 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.6 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5415 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5413 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.5 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.play1724darkmodeauditmap5409 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5400 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PBNTR718simiplifieddraggablereact5392 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts