import React from "react"; import { useRef, useState } from "react"; import SignatureCanvas from "react-signature-canvas"; import redPen from "../../assests/redPen.png"; import bluePen from "../../assests/bluePen.png"; import blackPen from "../../assests/blackPen.png"; import Modal from "react-bootstrap/Modal"; import { themeColor } from "../../utils/ThemeColor/backColor"; import { useEffect } from "react"; function SignPad({ isSignPad, isStamp, setIsImageSelect, onSaveSign, setIsSignPad, setImage, isImageSelect, imageRef, onImageChange, onSaveImage, image, defaultSign, setSignature }) { const [penColor, setPenColor] = useState("blue"); const allColor = [bluePen, redPen, blackPen]; const canvasRef = useRef(null); const [isDefaultSign, setIsDefaultSign] = useState(false); const [isTab, setIsTab] = useState("signature"); const [isSignImg, setIsSignImg] = useState(""); //function for clear signature const handleClear = () => { if (canvasRef.current) { canvasRef.current.clear(); } setIsSignImg(""); }; //function for set signature url const handleSignatureChange = (dataURL) => { // canvasRef.current.backgroundColor = 'rgb(165, 26, 26)' setSignature(canvasRef.current.toDataURL()); setIsSignImg(canvasRef.current.toDataURL()); }; //save button component const SaveBtn = () => { return (
{!isStamp && !isImageSelect && ( )}
); }; useEffect(() => { // Load the default signature after the component mounts if (canvasRef.current) { canvasRef.current.fromDataURL(isSignImg); } }, [isTab]); return (
{/*isSignPad */}
{isStamp ? ( Upload Image ) : ( <>
{ setIsDefaultSign(false); setIsImageSelect(false); setIsTab("signature"); setImage(); }} style={{ color: isTab === "signature" ? themeColor() : "#515252", marginLeft: "2px" }} className="signTab" > Signature
{ setIsDefaultSign(false); setIsImageSelect(true); setIsTab("uploadImage"); }} style={{ color: isTab === "uploadImage" ? themeColor() : "#515252" }} className="signTab" > Upload Image
{defaultSign && (
{ setIsDefaultSign(true); setIsImageSelect(true); setIsTab("mysignature"); setImage(); }} style={{ color: isTab === "mysignature" ? themeColor() : "#515252" }} className="signTab" > My Signature
)} )}
{/* signature modal */} {isDefaultSign ? ( <>
stamp img
) : isImageSelect || isStamp ? ( !image ? (
imageRef.current.click()} >
Upload
) : ( <>
stamp img
) ) : ( <> handleSignatureChange(canvasRef.current.toDataURL()) } dotSize={1} />
{allColor.map((data, key) => { return ( pen img { if (key === 0) { setPenColor("blue"); } else if (key === 1) { setPenColor("red"); } else if (key === 2) { setPenColor("black"); } }} src={data} width={20} height={20} /> ); })}
)}
); } export default SignPad;