UNPKG

@atlaskit/spotlight

Version:

A spotlight introduces users to points of interest, from focused messages to multi-step tours.

31 lines 645 B
import { useEffect } from 'react'; import { bind } from 'bind-event-listener'; import { getDocument } from '@atlaskit/browser-apis'; const onKeyDown = (event, { onEscape }) => { switch (event.key) { case 'Escape': onEscape(); break; default: break; } }; export const useOnEscape = onEscape => { useEffect(() => { const doc = getDocument(); if (!doc) { return; } const unbindFocusIn = bind(doc, { type: 'keydown', listener: event => onKeyDown(event, { onEscape: () => onEscape(event) }) }); return () => { unbindFocusIn(); }; }, [onEscape]); };