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.0.pre.rc.17 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.16 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play16825301 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.15 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.14 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.13 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.12 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.PLAY1774timelinelabelstepspacing5274 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1465attempt25272 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play16825244 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.11 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.0.pre.rc.10 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5214 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5213 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5210 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5208 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5207 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play16825206 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.play1662cssbargraph5204 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts