@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.
26 lines • 776 B
JavaScript
import React from "react";
import styled from "styled-components";
const InnerStyled = styled.div.withConfig({
displayName: "ClickOutside__InnerStyled",
componentId: "sc-20mrpy-0"
})(["width:100%;"]);
export default function ClickOutside({
children,
onClickOutside
}) {
const ref = React.useRef(null);
React.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.createElement(InnerStyled, {
ref: ref
}, children);
}