Sha256: a05ccfd9d55e4311a152500ca59619fdb818944471d023d29d78b38ef8aec602

Contents?: true

Size: 755 Bytes

Versions: 1054

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,054 entries across 1,054 versions & 1 rubygems

Version Path
playbook_ui-14.11.1.pre.alpha.PLAY1750pbcontenttagkitbutton5340 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1.pre.alpha.PLAY1750pbcontenttagkitbutton5339 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.3 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.2 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.1 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.12.0.pre.rc.0 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.PLAY1774timelinelabelstepspacing5315 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.PLAY1774timelinelabelstepspacing5314 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.10.0.pre.alpha.PLAY1750pbcontenttagkitbutton5308 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
playbook_ui-14.11.1 app/pb_kits/playbook/pb_lightbox/hooks/useKbdControls.ts
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