@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
31 lines (30 loc) • 1.04 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
exports.__esModule = true;
exports.default = ClickOutside;
var _react = _interopRequireDefault(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
const InnerStyled = _styledComponents.default.div.withConfig({
displayName: "ClickOutside__InnerStyled",
componentId: "sc-20mrpy-0"
})(["width:100%;"]);
function ClickOutside({
children,
onClickOutside
}) {
const ref = _react.default.useRef(null);
_react.default.useEffect(() => {
const handleClickOutside = ev => {
if (onClickOutside && ref.current && !ref.current.contains(ev.currentTarget)) {
onClickOutside(ev);
}
};
document.addEventListener("mousedown", handleClickOutside);
return () => {
document.removeEventListener("mousedown", handleClickOutside);
};
}, [onClickOutside]);
return /*#__PURE__*/_react.default.createElement(InnerStyled, {
ref: ref
}, children);
}