diff --git a/apps/OpenSign/src/pages/Managesign.js b/apps/OpenSign/src/pages/Managesign.js index 80f465a73..49f1aae04 100644 --- a/apps/OpenSign/src/pages/Managesign.js +++ b/apps/OpenSign/src/pages/Managesign.js @@ -2,11 +2,11 @@ import React, { useState, useRef, useEffect } from "react"; import SignatureCanvas from "react-signature-canvas"; import "../styles/managesign.css"; import "../styles/signature.css"; -import axios from "axios"; import { toDataUrl } from "../constant/Utils"; - +import Parse from "parse"; +import { appInfo } from "../constant/appinfo"; const ManageSign = () => { - let appName; + const appName = appInfo.appname; const [penColor, setPenColor] = useState("blue"); const [initialPen, setInitialPen] = useState("blue"); const [image, setImage] = useState(); @@ -25,59 +25,40 @@ const ManageSign = () => { const imageRef = useRef(null); const initailsRef = useRef(null); useEffect(() => { - getLocalStorageValue(); + fetchUserSign(); // eslint-disable-next-line }, []); - //function for get localstorage value first and than call another function. - const getLocalStorageValue = () => { - let User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - appName = - localStorage.getItem("_appName") && localStorage.getItem("_appName"); + const fetchUserSign = async () => { + const User = Parse.User.current(); if (User) { - fetchUserSign(User); - } - }; - - const fetchUserSign = async (User) => { - const userId = { - __type: "Pointer", - className: "_User", - objectId: User.objectId - }; - const strObj = JSON.stringify(userId); - const url = - localStorage.getItem("baseUrl") + - `classes/${appName}_Signature?where={"UserId":${strObj}}&limit=1`; - - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .get(url, { headers: headers }) - .then((res) => { - if (res.data.results.length > 0) { - setId(res.data.results[0].objectId); - setSignName(res.data.results[0].SignatureName); - setImage(res.data.results[0].ImageURL); - if (res.data.results[0] && res.data.results[0].Initials) { - setInitials(res.data.results[0].Initials); + const userId = { + __type: "Pointer", + className: "_User", + objectId: User.id + }; + try { + const signCls = `${appName}_Signature`; + const signQuery = new Parse.Query(signCls); + signQuery.equalTo("UserId", userId); + const signRes = await signQuery.first(); + if (signRes) { + const res = signRes.toJSON(); + setId(res.objectId); + setSignName(res?.SignatureName); + setImage(res.ImageURL); + if (res && res.Initials) { + setInitials(res.Initials); setIsInitials(true); } + } else { + setSignName(User?.get("name") || ""); } setIsLoader(false); - return res; - }) - .catch((error) => { - console.log(error); - alert(`${error.message}`); - }); - return res; + } catch (err) { + console.log("Err", err); + alert(`${err.message}`); + } + } }; const handleSignatureChange = () => { if (imageRef.current) { @@ -108,18 +89,6 @@ const ManageSign = () => { setIsInitials(false); }; - // const handleReset = () => { - // if (canvasRef.current) { - // canvasRef.current.clear(); - // } - // if (imageRef.current) { - // imageRef.current.value = ""; - // } - // setImage(""); - // setSignature(""); - // setIsValue(false); - // setSignName(""); - // }; const onImageChange = async (event) => { if (canvasRef.current) { canvasRef.current.clear(); @@ -146,28 +115,31 @@ const ManageSign = () => { const replaceSpace = signName.replace(/ /g, "_"); let file; if (signature) { - file = base64StringtoFile(signature, `${replaceSpace}.png`); + file = base64StringtoFile(signature, `${replaceSpace}_sign.png`); } else { if (!isUrl) { - file = base64StringtoFile(image, `${replaceSpace}.png`); + file = base64StringtoFile(image, `${replaceSpace}__sign.png`); } } - // console.log("isUrl ", isUrl); let imgUrl; if (!isUrl) { imgUrl = await uploadFile(file); } else { - imgUrl = { data: { imageUrl: image } }; + imgUrl = image; } let initialsUrl = ""; - if (Initials) { - const initialsImg = base64StringtoFile(Initials, `${replaceSpace}.png`); + const isInitialsUrl = Initials.includes("https"); + if (!isInitialsUrl && Initials) { + const initialsImg = base64StringtoFile( + Initials, + `${replaceSpace}_initials.png` + ); initialsUrl = await uploadFile(initialsImg); } - if (imgUrl.data && imgUrl.data.imageUrl) { + if (imgUrl) { await saveEntry({ name: signName, - url: imgUrl.data.imageUrl, + url: imgUrl, initialsUrl: initialsUrl }); } @@ -186,110 +158,54 @@ const ManageSign = () => { } const uploadFile = async (file) => { - let parseBaseUrl = localStorage.getItem("baseUrl"); - parseBaseUrl = parseBaseUrl.slice(0, -4); - const url = parseBaseUrl + `file_upload`; - const formData = new FormData(); - formData.append("file", file); - const config = { - headers: { - "content-type": "multipart/form-data", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - } - }; - const response = await axios - .post(url, formData, config) - .then((res) => { - if (res.data.status === "Error") { - alert(res.data.message); - } - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return response; + try { + const parseFile = new Parse.File(file.name, file); + const response = await parseFile.save(); + return response?.url(); + } catch (err) { + console.log("sign upload err", err); + setIsLoader(false); + alert(`${err.message}`); + } }; const saveEntry = async (obj) => { + const signCls = `${appName}_Signature`; + const User = Parse.User.current().id; + const userId = { __type: "Pointer", className: "_User", objectId: User }; if (id) { - const User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - const url = - localStorage.getItem("baseUrl") + - `classes/${localStorage.getItem("_appName")}_Signature/${id}`; - const body = { - Initials: obj.initialsUrl ? obj.initialsUrl.data.imageUrl : "", - ImageURL: obj.url, - SignatureName: obj.name, - UserId: { - __type: "Pointer", - className: "_User", - objectId: User.objectId - } - }; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .put(url, body, { headers: headers }) - .then((res) => { - // handleReset(); - setIsLoader(false); - setIsSuccess(true); - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return res; + try { + const updateSign = new Parse.Object(signCls); + updateSign.id = id; + updateSign.set("Initials", obj.initialsUrl ? obj.initialsUrl : ""); + updateSign.set("ImageURL", obj.url); + updateSign.set("SignatureName", obj.name); + updateSign.set("UserId", userId); + const res = await updateSign.save(); + setIsLoader(false); + setIsSuccess(true); + return res; + } catch (err) { + console.log(err); + setIsLoader(false); + alert(`${err.message}`); + } } else { - const User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - const url = - localStorage.getItem("baseUrl") + - `classes/${localStorage.getItem("_appName")}_Signature`; - const body = { - Initials: obj.initialsUrl ? obj.initialsUrl.data.imageUrl : "", - ImageURL: obj.url, - SignatureName: obj.name, - UserId: { - __type: "Pointer", - className: "_User", - objectId: User.objectId - } - }; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .post(url, body, { headers: headers }) - .then((res) => { - // handleReset(); - setIsLoader(false); - setIsSuccess(true); - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return res; + try { + const updateSign = new Parse.Object(signCls); + updateSign.set("Initials", obj.initialsUrl ? obj.initialsUrl : ""); + updateSign.set("ImageURL", obj.url); + updateSign.set("SignatureName", obj.name); + updateSign.set("UserId", userId); + const res = await updateSign.save(); + setIsLoader(false); + setIsSuccess(true); + return res; + } catch (err) { + console.log(err); + setIsLoader(false); + alert(`${err.message}`); + } } }; const handleSignatureBtn = () => { @@ -337,7 +253,6 @@ const ManageSign = () => { Signature saved successfully! )} -