UNPKG

@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
"use strict"; 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); }