UNPKG

jobiqo-cl

Version:

[![CircleCI](https://circleci.com/gh/jobiqo/jobiqo-cl.svg?style=svg&circle-token=5a24efa5b8bbc4879276123e77d0d3f35ca7144c)](https://circleci.com/gh/jobiqo/jobiqo-cl)

36 lines (33 loc) 1.34 kB
import { __rest } from '../../../../node_modules/tslib/tslib.es6.js'; import React__default, { useRef, useState } from 'react'; import useOutsideClick from '../../../hooks/clickOustside.js'; import { PopoverWrapper, PopoverContent } from './styles.js'; /** * @file index.tsx * * @fileoverview Shows contents inside a popover. Also displays a * trigger for displaying the popover. */ const Popover = (_a) => { var { children, trigger, position = 'bottom', onToggle, maxHeight } = _a, props = __rest(_a, ["children", "trigger", "position", "onToggle", "maxHeight"]); const ref = useRef(); const [shown, setShown] = useState(false); const Trigger = trigger; useOutsideClick(ref, () => { setShown(false); if (onToggle) { onToggle(false); } }); return (React__default.createElement(PopoverWrapper, Object.assign({ ref: ref, position: position }, props), React__default.cloneElement(Trigger, { onClick: e => { setShown(!shown); if (onToggle) { onToggle(false); } } }), shown && (React__default.createElement(PopoverContent, Object.assign({ position: position, maxHeight: maxHeight }, props), children)))); }; export { Popover };