botframework-webchat-component
Version:
React component of botframework-webchat
38 lines (37 loc) • 8.4 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useFocusWithin;
var _react = require("react");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function useFocusWithin(targetRef) {
var _useState = (0, _react.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
focusWithin = _useState2[0],
setFocusWithin = _useState2[1];
var handleBlur = (0, _react.useCallback)(function () {
return setFocusWithin(false);
}, [setFocusWithin]);
var handleFocus = (0, _react.useCallback)(function (_ref) {
var _targetRef$current;
var target = _ref.target;
var targetElement = target;
setFocusWithin(targetRef.current === targetElement || !!((_targetRef$current = targetRef.current) !== null && _targetRef$current !== void 0 && _targetRef$current.contains(targetElement)));
}, [setFocusWithin, targetRef]);
(0, _react.useEffect)(function () {
document.addEventListener('blur', handleBlur);
document.addEventListener('focus', handleFocus);
return function () {
document.removeEventListener('blur', handleBlur);
document.removeEventListener('focus', handleFocus);
};
}, [handleBlur, handleFocus]);
return Object.freeze([focusWithin]);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9hcnIiLCJfbiIsIl9kIiwiX3MiLCJfZSIsIm5leHQiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiZXJyIiwiaXNBcnJheSIsInVzZUZvY3VzV2l0aGluIiwidGFyZ2V0UmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiZm9jdXNXaXRoaW4iLCJzZXRGb2N1c1dpdGhpbiIsImhhbmRsZUJsdXIiLCJ1c2VDYWxsYmFjayIsImhhbmRsZUZvY3VzIiwiX3JlZiIsIl90YXJnZXRSZWYkY3VycmVudCIsInRhcmdldCIsInRhcmdldEVsZW1lbnQiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZnJlZXplIl0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvaW50ZXJuYWwvdXNlRm9jdXNXaXRoaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VGb2N1c1dpdGhpbih0YXJnZXRSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4pOiByZWFkb25seSBbYm9vbGVhbl0ge1xuICBjb25zdCBbZm9jdXNXaXRoaW4sIHNldEZvY3VzV2l0aGluXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0Rm9jdXNXaXRoaW4oZmFsc2UpLCBbc2V0Rm9jdXNXaXRoaW5dKTtcbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjayhcbiAgICAoeyB0YXJnZXQgfTogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgc2V0Rm9jdXNXaXRoaW4odGFyZ2V0UmVmLmN1cnJlbnQgPT09IHRhcmdldEVsZW1lbnQgfHwgISF0YXJnZXRSZWYuY3VycmVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCkpO1xuICAgIH0sXG4gICAgW3NldEZvY3VzV2l0aGluLCB0YXJnZXRSZWZdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlQmx1cik7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cyk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGhhbmRsZUJsdXIpO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cyk7XG4gICAgfTtcbiAgfSwgW2hhbmRsZUJsdXIsIGhhbmRsZUZvY3VzXSk7XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoW2ZvY3VzV2l0aGluXSkgYXMgcmVhZG9ubHkgW2Jvb2xl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
;