diff --git a/apps/OpenSign/src/pages/Managesign.js b/apps/OpenSign/src/pages/Managesign.js index fc905a002..326040082 100644 --- a/apps/OpenSign/src/pages/Managesign.js +++ b/apps/OpenSign/src/pages/Managesign.js @@ -24,9 +24,11 @@ const ManageSign = () => { const [Initials, setInitials] = useState(""); const [isInitials, setIsInitials] = useState(false); const [id, setId] = useState(""); + const [imgInitials, setImgInitials] = useState(""); const canvasRef = useRef(null); const imageRef = useRef(null); const initailsRef = useRef(null); + const imgInitialsRef = useRef(null); useEffect(() => { fetchUserSign(); // eslint-disable-next-line @@ -54,8 +56,9 @@ const ManageSign = () => { } setImage(res?.ImageURL); if (res && res.Initials) { - setInitials(res.Initials); + // setInitials(res.Initials); setIsInitials(true); + setImgInitials(res?.Initials); } } else { if (User?.get("name")) { @@ -95,6 +98,10 @@ const ManageSign = () => { if (initailsRef.current) { initailsRef.current.clear(); } + if (imgInitialsRef.current) { + imgInitialsRef.current.value = ""; + } + setImgInitials(""); setInitials(""); if (image) { setIsValue(true); @@ -119,8 +126,7 @@ const ManageSign = () => { }; const handleSubmit = async (e) => { e.preventDefault(); - const isUrl = image.includes("https") || image.includes("http"); - + const isUrl = image?.includes("https") || image?.includes("http"); if (!isvalue) { setWarning(true); setTimeout(() => setWarning(false), 1000); @@ -142,15 +148,25 @@ const ManageSign = () => { } else { imgUrl = image; } - let initialsUrl = ""; const isInitialsUrl = - Initials.includes("https") || Initials.includes("http"); - if (!isInitialsUrl && Initials) { - const initialsImg = base64StringtoFile( - Initials, - `${replaceSpace}_initials.png` - ); - initialsUrl = await uploadFile(initialsImg); + imgInitials?.includes("https") || imgInitials?.includes("http"); + + let initialFile; + if (Initials) { + initialFile = base64StringtoFile(Initials, `${replaceSpace}_sign.png`); + } else { + if (imgInitials && !isInitialsUrl) { + initialFile = base64StringtoFile( + imgInitials, + `${replaceSpace}__sign.png` + ); + } + } + let initialsUrl; + if (initialFile && !isInitialsUrl) { + initialsUrl = await uploadFile(initialFile); + } else { + initialsUrl = imgInitials; } if (imgUrl) { await saveEntry({ @@ -191,7 +207,7 @@ const ManageSign = () => { const saveEntry = async (obj) => { const signCls = "contracts_Signature"; - const User = Parse.User.current().id; + const User = Parse?.User?.current()?.id; const userId = { __type: "Pointer", className: "_User", objectId: User }; if (id) { try { @@ -202,20 +218,13 @@ const ManageSign = () => { updateSign.set("SignatureName", obj.name); updateSign.set("UserId", userId); const res = await updateSign.save(); - setIsLoader(false); - setIsAlert({ - type: "success", - message: t("signature-saved-alert") - }); - setTimeout(() => setIsAlert({}), 2000); + setIsAlert({ type: "success", message: t("signature-saved-alert") }); return res; } catch (err) { console.log(err); + setIsAlert({ type: "danger", message: `${err.message}` }); + } finally { setIsLoader(false); - setIsAlert({ - type: "danger", - message: `${err.message}` - }); setTimeout(() => setIsAlert({}), 2000); } } else { @@ -226,20 +235,13 @@ const ManageSign = () => { updateSign.set("SignatureName", obj.name); updateSign.set("UserId", userId); const res = await updateSign.save(); - setIsLoader(false); - setIsAlert({ - type: "success", - message: t("signature-saved-alert") - }); - setTimeout(() => setIsAlert({}), 2000); + setIsAlert({ type: "success", message: t("signature-saved-alert") }); return res; } catch (err) { console.log(err); + setIsAlert({ type: "success", message: `${err.message}` }); + } finally { setIsLoader(false); - setIsAlert({ - type: "success", - message: `${err.message}` - }); setTimeout(() => setIsAlert({}), 2000); } } @@ -250,7 +252,29 @@ const ManageSign = () => { }; const handleInitialsChange = () => { setInitials(initailsRef.current.toDataURL()); - setIsValue(true); + if (image || signature) { + setIsValue(true); + } + }; + const handleUploadInitials = () => { + imgInitialsRef.current.click(); + }; + const onImgInitialsChange = async (event) => { + if (initailsRef.current) { + initailsRef.current.clear(); + } + setInitials(""); + if (event.target.files && event.target.files[0]) { + const file = event.target.files[0]; + const base64Img = await toDataUrl(file); + setImgInitials(base64Img); + if (image || signature) { + setIsValue(true); + } + } else { + setImgInitials(""); + setIsValue(false); + } }; return (