botframework-webchat-component
Version:
React component of botframework-webchat
40 lines (33 loc) • 3.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useFocusAccessKeyEffect;
var _react = require("react");
var _useContext = _interopRequireDefault(require("./internal/useContext"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function removeInline(array, item) {
var index = array.indexOf(item);
~index && array.splice(index, 1);
}
function useFocusAccessKeyEffect(key, ref) {
if (key && typeof key !== 'string') {
throw new Error('useFocusAccessKeyEffect: If defined, "key" must be of type "string".');
} else if (!ref || !('current' in ref)) {
throw new Error('useFocusAccessKeyEffect: "ref" must be defined and has "current" property.');
}
var context = (0, _useContext.default)();
(0, _react.useEffect)(function () {
if (key) {
var entry = {
keys: key.split(/[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+/g),
ref: ref
};
context.focii.push(entry);
return function () {
return removeInline(context.focii, entry);
};
}
}, [context, key, ref]);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9VdGlscy9BY2Nlc3NLZXlTaW5rL3VzZUZvY3VzQWNjZXNzS2V5RWZmZWN0LmpzIl0sIm5hbWVzIjpbInJlbW92ZUlubGluZSIsImFycmF5IiwiaXRlbSIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsInVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0Iiwia2V5IiwicmVmIiwiRXJyb3IiLCJjb250ZXh0IiwiZW50cnkiLCJrZXlzIiwic3BsaXQiLCJmb2NpaSIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7OztBQUVBLFNBQVNBLFlBQVQsQ0FBc0JDLEtBQXRCLEVBQTZCQyxJQUE3QixFQUFtQztBQUNqQyxNQUFNQyxLQUFLLEdBQUdGLEtBQUssQ0FBQ0csT0FBTixDQUFjRixJQUFkLENBQWQ7QUFFQSxHQUFDQyxLQUFELElBQVVGLEtBQUssQ0FBQ0ksTUFBTixDQUFhRixLQUFiLEVBQW9CLENBQXBCLENBQVY7QUFDRDs7QUFFYyxTQUFTRyx1QkFBVCxDQUFpQ0MsR0FBakMsRUFBc0NDLEdBQXRDLEVBQTJDO0FBQ3hELE1BQUlELEdBQUcsSUFBSSxPQUFPQSxHQUFQLEtBQWUsUUFBMUIsRUFBb0M7QUFDbEMsVUFBTSxJQUFJRSxLQUFKLENBQVUsc0VBQVYsQ0FBTjtBQUNELEdBRkQsTUFFTyxJQUFJLENBQUNELEdBQUQsSUFBUSxFQUFFLGFBQWFBLEdBQWYsQ0FBWixFQUFpQztBQUN0QyxVQUFNLElBQUlDLEtBQUosQ0FBVSw0RUFBVixDQUFOO0FBQ0Q7O0FBRUQsTUFBTUMsT0FBTyxHQUFHLDBCQUFoQjtBQUVBLHdCQUFVLFlBQU07QUFDZCxRQUFJSCxHQUFKLEVBQVM7QUFDUCxVQUFNSSxLQUFLLEdBQUc7QUFBRUMsUUFBQUEsSUFBSSxFQUFFTCxHQUFHLENBQUNNLEtBQUosQ0FBVSx1RUFBVixDQUFSO0FBQTRCTCxRQUFBQSxHQUFHLEVBQUhBO0FBQTVCLE9BQWQ7QUFFQUUsTUFBQUEsT0FBTyxDQUFDSSxLQUFSLENBQWNDLElBQWQsQ0FBbUJKLEtBQW5CO0FBRUEsYUFBTztBQUFBLGVBQU1YLFlBQVksQ0FBQ1UsT0FBTyxDQUFDSSxLQUFULEVBQWdCSCxLQUFoQixDQUFsQjtBQUFBLE9BQVA7QUFDRDtBQUNGLEdBUkQsRUFRRyxDQUFDRCxPQUFELEVBQVVILEdBQVYsRUFBZUMsR0FBZixDQVJIO0FBU0QiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZUFjY2Vzc0tleVNpbmtDb250ZXh0IGZyb20gJy4vaW50ZXJuYWwvdXNlQ29udGV4dCc7XG5cbmZ1bmN0aW9uIHJlbW92ZUlubGluZShhcnJheSwgaXRlbSkge1xuICBjb25zdCBpbmRleCA9IGFycmF5LmluZGV4T2YoaXRlbSk7XG5cbiAgfmluZGV4ICYmIGFycmF5LnNwbGljZShpbmRleCwgMSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0KGtleSwgcmVmKSB7XG4gIGlmIChrZXkgJiYgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUZvY3VzQWNjZXNzS2V5RWZmZWN0OiBJZiBkZWZpbmVkLCBcImtleVwiIG11c3QgYmUgb2YgdHlwZSBcInN0cmluZ1wiLicpO1xuICB9IGVsc2UgaWYgKCFyZWYgfHwgISgnY3VycmVudCcgaW4gcmVmKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3Q6IFwicmVmXCIgbXVzdCBiZSBkZWZpbmVkIGFuZCBoYXMgXCJjdXJyZW50XCIgcHJvcGVydHkuJyk7XG4gIH1cblxuICBjb25zdCBjb250ZXh0ID0gdXNlQWNjZXNzS2V5U2lua0NvbnRleHQoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChrZXkpIHtcbiAgICAgIGNvbnN0IGVudHJ5ID0geyBrZXlzOiBrZXkuc3BsaXQoL1xccysvZ3UpLCByZWYgfTtcblxuICAgICAgY29udGV4dC5mb2NpaS5wdXNoKGVudHJ5KTtcblxuICAgICAgcmV0dXJuICgpID0+IHJlbW92ZUlubGluZShjb250ZXh0LmZvY2lpLCBlbnRyeSk7XG4gICAgfVxuICB9LCBbY29udGV4dCwga2V5LCByZWZdKTtcbn1cbiJdfQ==