Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@sushiswap/ui / animation / SlideIn / useEscapeClose.ts
Size: Mime:
import { useEffect } from 'react'

type UseEscapeClose = (cb: () => void) => void
export const useEscapeClose: UseEscapeClose = (cb) => {
  useEffect(() => {
    function handleEscapeKey(event: KeyboardEvent) {
      if (event.code === 'Escape') {
        cb()
      }
    }

    document.addEventListener('keydown', handleEscapeKey)
    return () => document.removeEventListener('keydown', handleEscapeKey)

    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [])
}