@atlaskit/spotlight
Version:
A spotlight introduces users to points of interest, from focused messages to multi-step tours.
31 lines • 645 B
JavaScript
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]);
};