@atlaskit/spotlight
Version:
A spotlight introduces users to points of interest, from focused messages to multi-step tours.
40 lines (39 loc) • 990 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useOnEscape = void 0;
var _react = require("react");
var _bindEventListener = require("bind-event-listener");
var _browserApis = require("@atlaskit/browser-apis");
var onKeyDown = function onKeyDown(event, _ref) {
var onEscape = _ref.onEscape;
switch (event.key) {
case 'Escape':
onEscape();
break;
default:
break;
}
};
var useOnEscape = exports.useOnEscape = function useOnEscape(_onEscape) {
(0, _react.useEffect)(function () {
var doc = (0, _browserApis.getDocument)();
if (!doc) {
return;
}
var unbindFocusIn = (0, _bindEventListener.bind)(doc, {
type: 'keydown',
listener: function listener(event) {
return onKeyDown(event, {
onEscape: function onEscape() {
return _onEscape(event);
}
});
}
});
return function () {
unbindFocusIn();
};
}, [_onEscape]);
};