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.

57 lines (43 loc) 1.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); const Inner = _styledComponents.default.div.withConfig({ displayName: "ClickOutside__Inner", componentId: "sc-1rfu7d2-0" })(["width:100%;"]); class ClickOutside extends React.PureComponent { constructor(...args) { super(...args); this.node = /*#__PURE__*/React.createRef(); this.handleClickOutside = ev => { const { onClickOutside } = this.props; if (onClickOutside && this.node.current && ev.target instanceof Node && !this.node.current.contains(ev.target)) { onClickOutside(ev); } }; } componentDidMount() { document.addEventListener("click", this.handleClickOutside, true); } componentWillUnmount() { document.removeEventListener("click", this.handleClickOutside, true); } render() { const { children } = this.props; return /*#__PURE__*/React.createElement(Inner, { ref: this.node }, children); } } var _default = ClickOutside; exports.default = _default;