import { ReactNode, useRef } from "react"; import clsx from "clsx"; import { useClickAway } from "ahooks"; export const ButtonModal = ({ children, buttonText, buttonClass, modalClass, visible, setVisible, }: { children: ReactNode; buttonText: ReactNode; buttonClass?: string; modalClass?: string; visible?: boolean; setVisible: React.Dispatch>; }) => { const clickAwayRef = useRef(null); useClickAway( () => { setVisible(false); }, clickAwayRef, "mousedown" ); return ( <> setVisible((prev) => !prev)} checked={visible} /> {visible && (
{children}
)} ); };