@accessible/use-key
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

useKey()

Bundlephobia Code coverage Build status NPM Version MIT License

npm i @accessible/use-key

A React hook for handling keydown events on specific event.key values. It also normalizes non-standard event.key values from IE to their modern equivalents.

Quick Start

import * as React from 'react'
import useKey from '@accessible/use-key'

const Component = () => {
  const ref = React.useRef(null)

  // Listens to keydown events on the `ref` above
  useKey(ref, {
    // Logs event when the Escape key is pressed
    Escape: console.log,
    // Logs "Key was pressed: Enter" to the console when Enter is pressed
    Enter: (event) => console.log('Key was pressed:', event.key),
  })

  // Listens to keydown events on the window
  useKey(window, {
    // Logs event when the Escape key is pressed
    Escape: console.log,
    // Logs "Key was pressed: Enter" to the console when Enter is pressed
    Enter: (event) => console.log('Key was pressed:', event.key),
  })

  return <div ref={ref} />
}

API

useKey(target, handlers)

Arguments

Argument Type Required? Description
target React.RefObject<T> | T | Window | Document | null Yes A React ref, element, window, or document to add the key listener to
handlers Record<string, (event?: KeyboardEvent) => any> Yes A mapping with keys matching the event.key string you want to listen on. The value for each key should be an event listener.

Returns void

LICENSE

MIT

Dependencies (1)

Dev Dependencies (24)

Package Sidebar

Install

npm i @accessible/use-key

Weekly Downloads

1,094

Version

1.0.2

License

MIT

Unpacked Size

34.2 kB

Total Files

17

Last publish

Collaborators

  • jaredlunde