Skip to content

Commit 740b5ea

Browse files
fix: placeholder disappear issue in template flow
1 parent 1f60b0b commit 740b5ea

File tree

7 files changed

+64
-86
lines changed

7 files changed

+64
-86
lines changed

apps/OpenSign/src/components/pdf/Placeholder.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,6 @@ function Placeholder(props) {
329329

330330
//condition for only placeholder and template flow
331331
if (props.data && props?.pos?.type !== textWidget) {
332-
props.setSignerObjId(props?.data?.signerObjId);
333332
props.setUniqueId(props?.data?.Id);
334333
const checkIndex = props.xyPostion.findIndex(
335334
(data) => data.Id === props.data.Id
@@ -360,7 +359,6 @@ function Placeholder(props) {
360359
//and on save or cancel button of copy all page popup i have set this temp signer Id in unique id
361360

362361
if (props.data && props?.pos?.type !== textWidget) {
363-
props.setSignerObjId(props?.data?.signerObjId);
364362
props.setUniqueId(props?.data?.Id);
365363
const checkIndex = props.xyPostion.findIndex(
366364
(data) => data.Id === props.data.Id
@@ -369,7 +367,6 @@ function Placeholder(props) {
369367
props.setIsSelectId(checkIndex || 0);
370368
} else if (props.data && props.pos.type === textWidget) {
371369
props.setTempSignerId(props.uniqueId);
372-
props.setSignerObjId(props?.data?.signerObjId);
373370
props.setUniqueId(props?.data?.Id);
374371
const checkIndex = props.xyPostion.findIndex(
375372
(data) => data.Id === props.data.Id

apps/OpenSign/src/components/pdf/RecipientList.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const RecipientList = (props) => {
1616
//function for onhover signer name change background color
1717
const inputRef = useRef(null);
1818
const isWidgetExist = (Id) => {
19-
return props.signerPos.some((x) => x.Id === Id);
19+
return props.signerPos.some((x) => x.Id === Id && x.placeHolder);
2020
};
2121

2222
//handle drag start
@@ -63,9 +63,7 @@ const RecipientList = (props) => {
6363
remainingItems.splice(index, 0, ...draggedItem);
6464
//set current draggable recipient details,objectId,index,contract_className ... after replace recipient list
6565
props?.setSignersData(remainingItems);
66-
props?.setSignerObjId(remainingItems[index]?.objectId || "");
6766
props?.setIsSelectId(index);
68-
props?.setContractName(remainingItems[index]?.className || "");
6967
props?.setUniqueId(remainingItems[index]?.Id);
7068
props?.setRoleName(remainingItems[index]?.Role);
7169
props?.setBlockColor(remainingItems[index]?.blockColor);
@@ -121,9 +119,7 @@ const RecipientList = (props) => {
121119
}}
122120
onClick={(e) => {
123121
e.preventDefault();
124-
props.setSignerObjId(obj?.objectId || "");
125122
props.setIsSelectId(ind);
126-
props.setContractName(obj?.className || "");
127123
props.setUniqueId(obj.Id);
128124
props.setRoleName(obj.Role);
129125
props.setBlockColor(obj?.blockColor);

apps/OpenSign/src/components/pdf/RenderPdf.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ function RenderPdf({
4141
setUniqueId,
4242
signersdata,
4343
setIsPageCopy,
44-
setSignerObjId,
4544
setShowDropdown,
4645
setIsInitial,
4746
setIsValidate,
@@ -319,7 +318,6 @@ function RenderPdf({
319318
index={pageNumber}
320319
xyPostion={signerPos}
321320
setXyPostion={setSignerPos}
322-
setSignerObjId={setSignerObjId}
323321
data={data}
324322
setIsResize={setIsResize}
325323
setShowDropdown={setShowDropdown}
@@ -508,7 +506,6 @@ function RenderPdf({
508506
index={pageNumber}
509507
xyPostion={signerPos}
510508
setXyPostion={setSignerPos}
511-
setSignerObjId={setSignerObjId}
512509
data={data}
513510
setIsResize={setIsResize}
514511
setShowDropdown={setShowDropdown}

apps/OpenSign/src/components/pdf/WidgetComponent.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ function WidgetComponent({
2020
addPositionOfSignature,
2121
signersdata,
2222
isSelectListId,
23-
setSignerObjId,
2423
setIsSelectId,
25-
setContractName,
2624
isSigners,
2725
dataTut,
2826
isMailSend,
@@ -360,9 +358,7 @@ function WidgetComponent({
360358
signerPos={signerPos}
361359
signersdata={signersdata}
362360
isSelectListId={isSelectListId}
363-
setSignerObjId={setSignerObjId}
364361
setIsSelectId={setIsSelectId}
365-
setContractName={setContractName}
366362
setUniqueId={setUniqueId}
367363
setRoleName={setRoleName}
368364
handleDeleteUser={handleDeleteUser}

apps/OpenSign/src/pages/PlaceHolderSign.js

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ function PlaceHolderSign() {
7777
const [xySignature, setXYSignature] = useState({});
7878
const [dragKey, setDragKey] = useState();
7979
const [signersdata, setSignersData] = useState([]);
80-
const [signerObjId, setSignerObjId] = useState();
8180
const [signerPos, setSignerPos] = useState([]);
8281
const [isSelectListId, setIsSelectId] = useState();
8382
const [isSendAlert, setIsSendAlert] = useState({});
@@ -98,7 +97,6 @@ function PlaceHolderSign() {
9897
const [tourStatus, setTourStatus] = useState([]);
9998
const [signerUserId, setSignerUserId] = useState();
10099
const [pdfOriginalWH, setPdfOriginalWH] = useState([]);
101-
const [contractName, setContractName] = useState("");
102100
const [containerWH, setContainerWH] = useState();
103101
const { docId } = useParams();
104102
const signRef = useRef(null);
@@ -341,8 +339,6 @@ function PlaceHolderSign() {
341339
else if (documentData[0].Signers && documentData[0].Signers.length > 0) {
342340
const currEmail = documentData[0].ExtUserPtr.Email;
343341
setCurrentId(currEmail);
344-
setSignerObjId(documentData[0].Signers[0].objectId);
345-
setContractName(documentData[0].Signers[0].className);
346342
setIsSelectId(0);
347343
//if condition when placeholder array present then update signers local array according to placeholder length
348344
if (
@@ -466,8 +462,6 @@ function PlaceHolderSign() {
466462
getSignerPos(item, monitor);
467463
};
468464
const getSignerPos = (item, monitor) => {
469-
// setSignerObjId("");
470-
// setContractName("");
471465
if (uniqueId) {
472466
const posZIndex = zIndex + 1;
473467
setZIndex(posZIndex);
@@ -583,7 +577,6 @@ function PlaceHolderSign() {
583577
Role: "prefill",
584578
Id: key
585579
};
586-
587580
signerPos.push(prefileTextWidget);
588581
setSignerPos(signerPos);
589582
} else {
@@ -760,9 +753,10 @@ function PlaceHolderSign() {
760753
} else {
761754
const updatedData = signerPos.map((item) => {
762755
if (item.Id === Id) {
763-
// Destructuring to remove the name field
764-
const { placeHolder, ...rest } = item;
765-
return rest;
756+
// Create a copy of the item object and delete the placeHolder field
757+
const updatedItem = { ...item };
758+
delete updatedItem.placeHolder;
759+
return updatedItem;
766760
}
767761
return item;
768762
});
@@ -848,9 +842,9 @@ function PlaceHolderSign() {
848842
const filterPrefill = signerPos?.filter((data) => data.Role !== "prefill");
849843
const getPrefill = signerPos?.filter((data) => data.Role === "prefill");
850844
let isLabel = false;
845+
const prefillPlaceholder = getPrefill[0]?.placeHolder;
851846
//condition is used to check text widget data is empty or have response
852847
if (getPrefill && getPrefill.length > 0) {
853-
const prefillPlaceholder = getPrefill[0].placeHolder;
854848
if (prefillPlaceholder) {
855849
prefillPlaceholder.map((data) => {
856850
if (!isLabel) {
@@ -860,28 +854,33 @@ function PlaceHolderSign() {
860854
}
861855
}
862856
let isSignatureExist = true; // variable is used to check a signature widget exit or not then execute other code
863-
//for loop is used to check signature widget exist or not
864-
for (let item of filterPrefill) {
865-
let signatureExist = false; // Reset for each iteration
866-
for (let x of item.placeHolder) {
867-
if (!signatureExist) {
868-
const typeExist = x.pos.some((data) => data?.type);
869-
if (typeExist) {
870-
signatureExist = x.pos.some((data) => data?.type === "signature");
871-
} else {
872-
signatureExist = x.pos.some((data) => !data.isStamp);
857+
if (prefillPlaceholder) {
858+
//for loop is used to check signature widget exist or not
859+
for (let item of filterPrefill) {
860+
let signatureExist = false; // Reset for each iteration
861+
for (let x of item.placeHolder) {
862+
if (!signatureExist) {
863+
const typeExist = x.pos.some((data) => data?.type);
864+
if (typeExist) {
865+
signatureExist = x.pos.some((data) => data?.type === "signature");
866+
} else {
867+
signatureExist = x.pos.some((data) => !data.isStamp);
868+
}
873869
}
874870
}
875-
}
876-
if (!signatureExist) {
877-
isSignatureExist = false;
878-
setIsSendAlert({ mssg: "sure", alert: true });
871+
if (!signatureExist) {
872+
isSignatureExist = false;
873+
setIsSendAlert({ mssg: "sure", alert: true });
874+
}
879875
}
880876
}
881877
if (getPrefill && isLabel) {
882878
setIsSendAlert({ mssg: textWidget, alert: true });
883879
} else if (isSignatureExist) {
884-
if (filterPrefill.length === signersdata.length) {
880+
const isPlaceholderExist = filterPrefill.every(
881+
(data) => data.placeHolder
882+
);
883+
if (isPlaceholderExist) {
885884
const IsSignerNotExist = filterPrefill?.filter((x) => !x.signerObjId);
886885
if (IsSignerNotExist && IsSignerNotExist?.length > 0) {
887886
setSignerExistModal(true);
@@ -1629,8 +1628,6 @@ function PlaceHolderSign() {
16291628
setUniqueId(newId);
16301629
setIsSelectId(signersdata.length - 1);
16311630
setBlockColor(color[signersdata.length]);
1632-
setContractName("contracts_Contactbook");
1633-
setSignerObjId(data.objectId);
16341631
};
16351632

16361633
const closePopup = () => {
@@ -2063,7 +2060,6 @@ function PlaceHolderSign() {
20632060
setIsPageCopy={setIsPageCopy}
20642061
signersdata={signersdata}
20652062
setSignKey={setSignKey}
2066-
setSignerObjId={setSignerObjId}
20672063
handleLinkUser={handleLinkUser}
20682064
setUniqueId={setUniqueId}
20692065
isDragging={isDragging}
@@ -2112,9 +2108,7 @@ function PlaceHolderSign() {
21122108
signerPos={signerPos}
21132109
signersdata={signersdata}
21142110
isSelectListId={isSelectListId}
2115-
setSignerObjId={setSignerObjId}
21162111
setIsSelectId={setIsSelectId}
2117-
setContractName={setContractName}
21182112
isSigners={true}
21192113
setIsShowEmail={setIsShowEmail}
21202114
isMailSend={isMailSend}
@@ -2143,9 +2137,7 @@ function PlaceHolderSign() {
21432137
signerPos={signerPos}
21442138
signersdata={signersdata}
21452139
isSelectListId={isSelectListId}
2146-
setSignerObjId={setSignerObjId}
21472140
setIsSelectId={setIsSelectId}
2148-
setContractName={setContractName}
21492141
setUniqueId={setUniqueId}
21502142
setRoleName={setRoleName}
21512143
sendInOrder={pdfDetails[0].SendinOrder}

apps/OpenSign/src/pages/TemplatePlaceholder.js

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ const TemplatePlaceholder = () => {
6262
const [xySignature, setXYSignature] = useState({});
6363
const [dragKey, setDragKey] = useState();
6464
const [signersdata, setSignersData] = useState([]);
65-
const [signerObjId, setSignerObjId] = useState();
6665
const [signerPos, setSignerPos] = useState([]);
6766
const [isSelectListId, setIsSelectId] = useState();
6867
const [isSendAlert, setIsSendAlert] = useState(false);
@@ -84,7 +83,6 @@ const TemplatePlaceholder = () => {
8483
const [tourStatus, setTourStatus] = useState([]);
8584
const [signerUserId, setSignerUserId] = useState();
8685
const [pdfOriginalWH, setPdfOriginalWH] = useState([]);
87-
const [contractName, setContractName] = useState("");
8886
const [containerWH, setContainerWH] = useState();
8987
const signRef = useRef(null);
9088
const dragRef = useRef(null);
@@ -241,8 +239,6 @@ const TemplatePlaceholder = () => {
241239
setPdfDetails(documentData);
242240
setIsSigners(true);
243241
if (documentData[0].Signers && documentData[0].Signers.length > 0) {
244-
setSignerObjId(documentData[0].Signers[0].objectId);
245-
setContractName(documentData[0].Signers[0].className);
246242
setIsSelectId(0);
247243
if (
248244
documentData[0].Placeholders &&
@@ -446,8 +442,8 @@ const TemplatePlaceholder = () => {
446442
pos: dropData
447443
};
448444
}
449-
450-
const getPlaceHolder = signer?.placeHolder;
445+
let filterSignerPos = signerPos.find((data) => data.Id === uniqueId);
446+
const getPlaceHolder = filterSignerPos?.placeHolder;
451447
if (getPlaceHolder) {
452448
//checking exist placeholder on same page
453449
currentPagePosition = getPlaceHolder.find(
@@ -601,10 +597,6 @@ const TemplatePlaceholder = () => {
601597
//function for delete signature block
602598
const handleDeleteSign = (key, Id) => {
603599
const updateData = [];
604-
// const filterSignerPos = signerPos.filter(
605-
// (data) => data.signerObjId === signerId
606-
// );
607-
608600
const filterSignerPos = signerPos.filter((data) => data.Id === Id);
609601

610602
if (filterSignerPos.length > 0) {
@@ -637,11 +629,11 @@ const TemplatePlaceholder = () => {
637629

638630
setSignerPos(newUpdateSigner);
639631
} else {
640-
const updateFilter = signerPos.filter((data) => data.Id !== Id);
641632
const getRemainPage = filterSignerPos[0].placeHolder.filter(
642633
(data) => data.pageNumber !== pageNumber
643634
);
644-
635+
//condition to check placeholder length is greater than 1 do not need to remove whole placeholder
636+
//array only resove particular widgets
645637
if (getRemainPage && getRemainPage.length > 0) {
646638
const newUpdatePos = filterSignerPos.map((obj) => {
647639
if (obj.Id === Id) {
@@ -655,7 +647,16 @@ const TemplatePlaceholder = () => {
655647

656648
setSignerPos(signerupdate);
657649
} else {
658-
setSignerPos(updateFilter);
650+
const updatedData = signerPos.map((item) => {
651+
if (item.Id === Id) {
652+
// Create a copy of the item object and delete the placeHolder field
653+
const updatedItem = { ...item };
654+
delete updatedItem.placeHolder;
655+
return updatedItem;
656+
}
657+
return item;
658+
});
659+
setSignerPos(updatedData);
659660
}
660661
}
661662
}
@@ -690,12 +691,12 @@ const TemplatePlaceholder = () => {
690691
const handleMouseLeave = () => {
691692
setSignBtnPosition([xySignature]);
692693
};
693-
694694
const alertSendEmail = async () => {
695-
if (signerPos.length !== signersdata.length) {
696-
setIsSendAlert(true);
697-
} else {
695+
const isPlaceholderExist = signerPos.every((data) => data.placeHolder);
696+
if (isPlaceholderExist) {
698697
handleSaveTemplate();
698+
} else {
699+
setIsSendAlert(true);
699700
}
700701
};
701702

@@ -944,8 +945,6 @@ const TemplatePlaceholder = () => {
944945
// save Role in entry in signerList and user
945946
const handleAddRole = (e) => {
946947
e.preventDefault();
947-
setSignerObjId("");
948-
setContractName("");
949948
const count = signersdata.length > 0 ? signersdata.length + 1 : 1;
950949
const Id = randomId();
951950
const index = signersdata.length;
@@ -1577,7 +1576,6 @@ const TemplatePlaceholder = () => {
15771576
signersdata={signersdata}
15781577
setIsPageCopy={setIsPageCopy}
15791578
setSignKey={setSignKey}
1580-
setSignerObjId={setSignerObjId}
15811579
isDragging={isDragging}
15821580
setShowDropdown={setShowDropdown}
15831581
setCurrWidgetsDetails={setCurrWidgetsDetails}
@@ -1620,9 +1618,7 @@ const TemplatePlaceholder = () => {
16201618
signerPos={signerPos}
16211619
signersdata={signersdata}
16221620
isSelectListId={isSelectListId}
1623-
setSignerObjId={setSignerObjId}
16241621
setIsSelectId={setIsSelectId}
1625-
setContractName={setContractName}
16261622
isSigners={isSigners}
16271623
setIsShowEmail={setIsShowEmail}
16281624
isMailSend={isMailSend}
@@ -1652,10 +1648,8 @@ const TemplatePlaceholder = () => {
16521648
setSignerPos={setSignerPos}
16531649
signersdata={signersdata}
16541650
isSelectListId={isSelectListId}
1655-
setSignerObjId={setSignerObjId}
16561651
setRoleName={setRoleName}
16571652
setIsSelectId={setIsSelectId}
1658-
setContractName={setContractName}
16591653
handleAddSigner={handleAddSigner}
16601654
setUniqueId={setUniqueId}
16611655
handleDeleteUser={handleDeleteUser}

0 commit comments

Comments
 (0)