import { Card, Popover, Icon } from '@servicetitan/design-system'; import { FC, useState, useRef, useEffect, ReactNode } from 'react'; import * as Styles from './actions-button.module.less'; export const ActionsButton: FC<{ children: ReactNode; }> = ({ children }) => { const [isOpen, setIsOpen] = useState(false); const wrapElem = useRef(null); useEffect(() => { const handleClick = (event: MouseEvent) => { if (!wrapElem.current) { return; } const isClickedInside = wrapElem.current.contains(event.target as Node); if (!isClickedInside) { close(); } }; window.addEventListener('click', handleClick); return () => { window.removeEventListener('click', handleClick); }; }, []); const toggle = () => { setIsOpen(!isOpen); }; const close = () => { setIsOpen(false); }; return (
{ e.stopPropagation(); }} > } > {children}
); };