import { useEffect, useRef, useState } from 'react'; import { Button } from 'antd'; import SignaturePad, { type SignaturePadHandle } from './SignaturePad'; import './SignatureOverlay.css'; interface SignatureOverlayProps { open: boolean; onCancel: () => void; onConfirm: (dataUrl: string) => void; } function SignatureOverlay({ open, onCancel, onConfirm }: SignatureOverlayProps) { const padRef = useRef(null); const [, setData] = useState(''); useEffect(() => { if (!open) return; const prevOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; return () => { document.body.style.overflow = prevOverflow; }; }, [open]); if (!open) return null; const handleClear = () => { padRef.current?.clear(); setData(''); }; const handleConfirm = () => { const pad = padRef.current; if (!pad || pad.isEmpty()) return; onConfirm(pad.getDataURL()); }; return (
请在框内签名
); } export default SignatureOverlay;