Skip to content

Commit b32c806

Browse files
fix: merge changes from staging
2 parents ae46427 + c5ceba8 commit b32c806

23 files changed

+985
-711
lines changed

apps/OpenSign/package-lock.json

Lines changed: 18 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/OpenSign/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
"eslint": "^8.57.0",
9191
"eslint-plugin-prettier": "^4.2.1",
9292
"eslint-plugin-react": "^7.34.1",
93-
"lint-staged": "^15.2.4",
93+
"lint-staged": "^15.2.5",
9494
"postcss": "^8.4.38",
9595
"prettier": "^2.8.8",
9696
"pretty-quick": "^3.3.1",

apps/OpenSign/src/components/BulkSendUi.js

Lines changed: 61 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -164,54 +164,72 @@ const BulkSendUi = (props) => {
164164
></div>
165165
</div>
166166
)}
167-
<form onSubmit={handleSubmit}>
168-
<div className=" min-h-max max-h-[250px] overflow-y-auto">
169-
{forms?.map((form, index) => (
170-
<div
171-
key={form.Id}
172-
className="p-3 rounded-xl border-[1px] border-gray-400 m-4 bg-white text-black grid grid-cols-1 md:grid-cols-2 gap-2 relative"
173-
>
174-
{form?.fields?.map((field, fieldIndex) => (
175-
<div className="flex flex-col " key={field.fieldId}>
176-
<label>{field.label}</label>
177-
<SuggestionInput
178-
required
179-
type="email"
180-
value={field.value}
181-
index={fieldIndex}
182-
onChange={(signer) =>
183-
handleInputChange(index, signer, fieldIndex)
184-
}
185-
/>
186-
</div>
187-
))}
188-
{index > 0 && (
167+
{props.Placeholders?.length > 0 ? (
168+
<>
169+
{props.Placeholders?.some((x) => !x.signerObjId) ? (
170+
<form onSubmit={handleSubmit}>
171+
<div className=" min-h-max max-h-[250px] overflow-y-auto">
172+
{forms?.map((form, index) => (
173+
<div
174+
key={form.Id}
175+
className="p-3 rounded-xl border-[1px] border-gray-400 m-4 bg-white text-black grid grid-cols-1 md:grid-cols-2 gap-2 relative"
176+
>
177+
{form?.fields?.map((field, fieldIndex) => (
178+
<div className="flex flex-col " key={field.fieldId}>
179+
<label>{field.label}</label>
180+
<SuggestionInput
181+
required
182+
type="email"
183+
value={field.value}
184+
index={fieldIndex}
185+
onChange={(signer) =>
186+
handleInputChange(index, signer, fieldIndex)
187+
}
188+
/>
189+
</div>
190+
))}
191+
{forms?.length > 1 && (
192+
<button
193+
onClick={() => handleRemoveForm(index)}
194+
className="absolute right-3 top-1 border border-gray-300 rounded-lg px-2 py-1"
195+
>
196+
<i className="fa-solid fa-trash"></i>
197+
</button>
198+
)}
199+
<div ref={formRef}></div>
200+
</div>
201+
))}
202+
</div>
203+
<div className="flex flex-col mx-4 mb-4 gap-3">
189204
<button
190-
onClick={() => handleRemoveForm(index)}
191-
className="absolute right-3 top-1 border border-gray-300 rounded-lg px-2 py-1"
205+
onClick={handleAddForm}
206+
className="bg-[#32a3ac] p-2 text-white w-full rounded-full focus:outline-none"
192207
>
193-
<i className="fa-solid fa-trash"></i>
208+
<i className="fa-solid fa-plus"></i> <span>Add new</span>
194209
</button>
195-
)}
196-
<div ref={formRef}></div>
210+
<button
211+
type="submit"
212+
className="bg-[#32a3ac] p-2 text-white w-full rounded-full focus:outline-none"
213+
>
214+
<i className="fa-solid fa-paper-plane"></i> <span>Send</span>
215+
</button>
216+
</div>
217+
</form>
218+
) : (
219+
<div className="text-black p-3 bg-white w-full text-sm md:text-base flex justify-center items-center">
220+
All roles in this document are currently linked to contacts. To
221+
&apos;quick send&apos; copies of this template to multiple
222+
signers, please ensure that at least one role is not linked to any
223+
contact.
197224
</div>
198-
))}
225+
)}
226+
</>
227+
) : (
228+
<div className="text-black p-3 bg-white w-full text-sm md:text-base flex justify-center items-center">
229+
Please add at least one role to this template in order to &apos;quick
230+
send&apos; copies of it to multiple signers.
199231
</div>
200-
<div className="flex flex-col mx-4 mb-4 gap-3">
201-
<button
202-
onClick={handleAddForm}
203-
className="bg-[#32a3ac] p-2 text-white w-full rounded-full focus:outline-none"
204-
>
205-
<i className="fa-solid fa-plus"></i> <span>Add new</span>
206-
</button>
207-
<button
208-
type="submit"
209-
className="bg-[#32a3ac] p-2 text-white w-full rounded-full focus:outline-none"
210-
>
211-
<i className="fa-solid fa-paper-plane"></i> <span>Send</span>
212-
</button>
213-
</div>
214-
</form>
232+
)}
215233
</>
216234
);
217235
};

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

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function Header({
4040
signerPos && signerPos?.filter((data) => data.Role !== "prefill");
4141
const isMobile = window.innerWidth < 767;
4242
const navigate = useNavigate();
43-
const [isCertificate, setIsCertificate] = useState(false);
43+
const [isDownloading, setIsDownloading] = useState("");
4444
const isGuestSigner = localStorage.getItem("isGuestSigner");
4545
//for go to previous page
4646
function previousPage() {
@@ -131,7 +131,9 @@ function Header({
131131
>
132132
<DropdownMenu.Item
133133
className="DropdownMenuItem"
134-
onClick={() => handleDownloadPdf(pdfDetails, pdfUrl)}
134+
onClick={() =>
135+
handleDownloadPdf(pdfDetails, pdfUrl, setIsDownloading)
136+
}
135137
>
136138
<div
137139
style={{
@@ -153,7 +155,7 @@ function Header({
153155
onClick={() =>
154156
handleDownloadCertificate(
155157
pdfDetails,
156-
setIsCertificate
158+
setIsDownloading
157159
)
158160
}
159161
>
@@ -194,7 +196,9 @@ function Header({
194196
)}
195197
<DropdownMenu.Item
196198
className="DropdownMenuItem"
197-
onClick={(e) => handleToPrint(e, pdfUrl)}
199+
onClick={(e) =>
200+
handleToPrint(e, pdfUrl, setIsDownloading)
201+
}
198202
>
199203
<div
200204
style={{
@@ -277,7 +281,11 @@ function Header({
277281
<DropdownMenu.Item
278282
className="flex flex-row justify-center items-center text-[13px] focus:outline-none cursor-pointer"
279283
onClick={() =>
280-
handleDownloadPdf(pdfDetails, pdfUrl)
284+
handleDownloadPdf(
285+
pdfDetails,
286+
pdfUrl,
287+
setIsDownloading
288+
)
281289
}
282290
>
283291
<i
@@ -366,7 +374,7 @@ function Header({
366374
<button
367375
type="button"
368376
onClick={() =>
369-
handleDownloadCertificate(pdfDetails, setIsCertificate)
377+
handleDownloadCertificate(pdfDetails, setIsDownloading)
370378
}
371379
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#08bc66]"
372380
>
@@ -379,7 +387,7 @@ function Header({
379387
)}
380388

381389
<button
382-
onClick={(e) => handleToPrint(e, pdfUrl)}
390+
onClick={(e) => handleToPrint(e, pdfUrl, setIsDownloading)}
383391
type="button"
384392
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#188ae2]"
385393
>
@@ -390,7 +398,9 @@ function Header({
390398
<button
391399
type="button"
392400
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#f14343]"
393-
onClick={() => handleDownloadPdf(pdfDetails, pdfUrl)}
401+
onClick={() =>
402+
handleDownloadPdf(pdfDetails, pdfUrl, setIsDownloading)
403+
}
394404
>
395405
<i className="fa fa-download py-[3px]" aria-hidden="true"></i>
396406
<span className="hidden lg:block ml-1">Download</span>
@@ -440,7 +450,11 @@ function Header({
440450
<DropdownMenu.Item
441451
className="flex flex-row justify-center items-center text-[13px] focus:outline-none cursor-pointer"
442452
onClick={() =>
443-
handleDownloadPdf(pdfDetails, pdfUrl)
453+
handleDownloadPdf(
454+
pdfDetails,
455+
pdfUrl,
456+
setIsDownloading
457+
)
444458
}
445459
>
446460
<i
@@ -462,7 +476,7 @@ function Header({
462476
<button
463477
type="button"
464478
onClick={() =>
465-
handleDownloadCertificate(pdfDetails, setIsCertificate)
479+
handleDownloadCertificate(pdfDetails, setIsDownloading)
466480
}
467481
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#08bc66]"
468482
>
@@ -474,7 +488,7 @@ function Header({
474488
</button>
475489
)}
476490
<button
477-
onClick={(e) => handleToPrint(e, pdfUrl)}
491+
onClick={(e) => handleToPrint(e, pdfUrl, setIsDownloading)}
478492
type="button"
479493
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#188ae2]"
480494
>
@@ -484,7 +498,9 @@ function Header({
484498
<button
485499
type="button"
486500
className="flex flex-row items-center shadow rounded-[3px] py-[3px] px-[11px] text-white font-[500] text-[13px] mr-[5px] bg-[#f14343]"
487-
onClick={() => handleDownloadPdf(pdfDetails, pdfUrl)}
501+
onClick={() =>
502+
handleDownloadPdf(pdfDetails, pdfUrl, setIsDownloading)
503+
}
488504
>
489505
<i className="fa fa-download py-[3px]" aria-hidden="true"></i>
490506
<span className="hidden lg:block ml-1">Download</span>
@@ -524,12 +540,25 @@ function Header({
524540
)}
525541
</div>
526542
)}
543+
{isDownloading === "pdf" && (
544+
<div className="fixed z-[200] inset-0 flex justify-center items-center bg-black bg-opacity-30">
545+
<div
546+
style={{ fontSize: "45px", color: "#3dd3e0" }}
547+
className="loader-37"
548+
></div>
549+
</div>
550+
)}
527551
<ModalUi
528-
isOpen={isCertificate}
529-
title={"Generating certificate"}
530-
handleClose={() => setIsCertificate(false)}
552+
isOpen={isDownloading === "certificate"}
553+
title={
554+
isDownloading === "certificate"
555+
? "Generating certificate"
556+
: "PDF Download"
557+
}
558+
handleClose={() => setIsDownloading("")}
531559
>
532560
<div className="p-3 md:p-5 text-[13px] md:text-base text-center">
561+
{isDownloading === "certificate"}{" "}
533562
<p>
534563
Your completion certificate is being generated. Please wait
535564
momentarily.

0 commit comments

Comments
 (0)