import type { ElementType } from 'react'; import React, { useState } from 'react'; import { Popover, Transition } from '@headlessui/react'; import { usePopper } from 'react-popper'; import classNames from 'classnames'; export function ClickPopover({ children, card, as = 'cite', }: { children: React.ReactNode; card: React.ReactNode | ((args: { open: boolean; close: () => void }) => React.ReactNode); as?: ElementType; }) { const [referenceElement, setReferenceElement] = useState(null); const [popperElement, setPopperElement] = useState(null); const { styles, attributes } = usePopper(referenceElement, popperElement); return ( {({ open, close }) => ( <> {children} {open && (typeof card === 'function' ? card({ open, close }) : card)} )} ); }