diff --git a/apps/OpenSign/src/components/opensigndrive/DriveBody.js b/apps/OpenSign/src/components/opensigndrive/DriveBody.js index 89241f54f..a550e8eef 100644 --- a/apps/OpenSign/src/components/opensigndrive/DriveBody.js +++ b/apps/OpenSign/src/components/opensigndrive/DriveBody.js @@ -280,14 +280,13 @@ function DriveBody(props) { //component to handle type of document and render according to type const handleFolderData = (data, ind, listType) => { - let createddate, status, isDecline, signerExist, isComplete, isPlaceholder; + let createddate, status, isDecline, signerExist, isComplete; if (data.Type !== "Folder") { const expireDate = data.ExpiryDate && data.ExpiryDate.iso; const createdDate = data.createdAt && data.createdAt; createddate = new Date(createdDate).toLocaleDateString(); isComplete = data.IsCompleted && data.IsCompleted ? true : false; isDecline = data.IsDeclined && data.IsDeclined; - isPlaceholder = data.Placeholders && data.Placeholders; signerExist = data.Signers && data.Signers; const signedUrl = data.SignedUrl; diff --git a/apps/OpenSign/src/components/pdf/PlaceholderType.js b/apps/OpenSign/src/components/pdf/PlaceholderType.js index 52137b19a..03e79efb6 100644 --- a/apps/OpenSign/src/components/pdf/PlaceholderType.js +++ b/apps/OpenSign/src/components/pdf/PlaceholderType.js @@ -443,7 +443,7 @@ function PlaceholderType(props) { > {/* Default/Title option */} {props.pos?.options?.values.map((data, ind) => { diff --git a/apps/OpenSign/src/components/pdf/RecipientList.js b/apps/OpenSign/src/components/pdf/RecipientList.js index a46519d49..0b413e09f 100644 --- a/apps/OpenSign/src/components/pdf/RecipientList.js +++ b/apps/OpenSign/src/components/pdf/RecipientList.js @@ -43,7 +43,8 @@ const RecipientList = (props) => { display: "flex", flexDirection: "row", borderBottom: "1px solid #e3e1e1", - alignItems: "center" + alignItems: "center", + cursor: props.sendInOrder && "move" }; return style; }; @@ -55,7 +56,8 @@ const RecipientList = (props) => { display: "flex", flexDirection: "row", borderBottom: "1px solid #e3e1e1", - alignItems: "center" + alignItems: "center", + cursor: props.sendInOrder && "move" }; return style; }; @@ -63,19 +65,61 @@ const RecipientList = (props) => { return props.signerPos.some((x) => x.Id === Id); }; + //handle drag start + const handleDragStart = (e, id) => { + // `e.dataTransfer.getData('text/plain')`is used to set the data to be transferred during a drag operation. + // The first argument specifies the type of data being set, and the second argument is the actual data you want to transfer. + e.dataTransfer.setData("text/plain", id); + }; + + //handleDragOver prevents the default behavior of the dragover event, which is necessary for the drop event to be triggered. + const handleDragOver = (e) => { + e.preventDefault(); + }; + + //handle draggable element drop + const handleDrop = (e, index) => { + e.preventDefault(); + //`e.dataTransfer.getData('text/plain')` is used to get data thet you have save. + const draggedItemId = e.dataTransfer.getData("text/plain"); + //convert string to number + const intDragId = parseInt(draggedItemId); + const draggedItem = props.signersdata.filter( + (item) => item.Id === intDragId + ); + const remainingItems = props.signersdata.filter( + (item) => item.Id !== intDragId + ); + //splice method is used to replace or add new value in array at specific index + remainingItems.splice(index, 0, ...draggedItem); + props.setSignersData(remainingItems); + + //set current draggable recipient details after replace recipient list + props.setSignerObjId(remainingItems[index]?.objectId || ""); + props.setIsSelectId(index); + props.setContractName(remainingItems[index]?.className || ""); + props.setUniqueId(remainingItems[index]?.Id); + props.setRoleName(remainingItems[index]?.Role); + }; return ( <> {props.signersdata.length > 0 && props.signersdata.map((obj, ind) => { return (