import { useEffect } from 'react'; import { Close } from '../../Icons/generated'; import { useAnalytics } from '../../Hooks/useAnalytics'; import { Separator } from '../Misc/Separator'; export const Dialog: React.FC<{ id: string; title?: string; children: React.ReactNode; dialogRef: React.MutableRefObject; }> = ({ id, title, children, dialogRef }) => { const analytics = useAnalytics(); useEffect(() => { if (!dialogRef.current) { return; } dialogRef.current.addEventListener('click', (e) => { const dialogDimensions = dialogRef.current!.getBoundingClientRect(); if ( (e.clientX < dialogDimensions.left || e.clientX > dialogDimensions.right || e.clientY < dialogDimensions.top || e.clientY > dialogDimensions.bottom) && dialogRef.current?.open ) { analytics.trackEvent(`${id}_outside_clicked`); dialogRef.current?.close(); } }); }); return (
{title && (

{title}

)}
{children}
); };