import { Popover } from 'antd'; import { useNotifications } from 'hooks/useNotifications'; import { ReactNode, useCallback, useEffect } from 'react'; import { useCopyToClipboard } from 'react-use'; function CopyClipboardHOC({ textToCopy, children, }: CopyClipboardHOCProps): JSX.Element { const [value, setCopy] = useCopyToClipboard(); const { notifications } = useNotifications(); useEffect(() => { if (value.value) { notifications.success({ message: 'Copied to clipboard', }); } }, [value, notifications]); const onClick = useCallback((): void => { setCopy(textToCopy); }, [setCopy, textToCopy]); return ( Copy to clipboard} > {children} ); } interface CopyClipboardHOCProps { textToCopy: string; children: ReactNode; } export default CopyClipboardHOC;