Commit 21July Updates
This commit is contained in:
parent
20043aefd2
commit
eb643165c7
|
|
@ -380,6 +380,9 @@ const SignDocument = () => {
|
||||||
let value = fitObj[indx].value;
|
let value = fitObj[indx].value;
|
||||||
if (value === "FIT") value = "100";
|
if (value === "FIT") value = "100";
|
||||||
setZoomScale?.(Number(value));
|
setZoomScale?.(Number(value));
|
||||||
|
setTimeout(() => {
|
||||||
|
setIsFitDd(false)
|
||||||
|
}, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// const zoom = (percentage: number, contentClass: string) => {
|
// const zoom = (percentage: number, contentClass: string) => {
|
||||||
|
|
@ -675,6 +678,8 @@ const SignDocument = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(createTagsAndSubmit)
|
||||||
|
|
||||||
// return;
|
// return;
|
||||||
try {
|
try {
|
||||||
dispatch(showLoader("Signing ..."));
|
dispatch(showLoader("Signing ..."));
|
||||||
|
|
@ -1089,7 +1094,7 @@ const SignDocument = () => {
|
||||||
key={indx}
|
key={indx}
|
||||||
// onClick={() => setSelFitIndx(indx)}
|
// onClick={() => setSelFitIndx(indx)}
|
||||||
onClick={() => handleFitSelect(indx)}
|
onClick={() => handleFitSelect(indx)}
|
||||||
className='flex z-50 items-center justify-between gap-2 w-[70px] p-2 text-xs cursor-default hover:bg-slate-100'>
|
className='flex z-50 items-center justify-between gap-2 w-[70px] p-2 text-xs cursor-default hover:bg-slate-100 text-slate-600'>
|
||||||
<div
|
<div
|
||||||
|
|
||||||
className='flex items-center justify-between w-full'>
|
className='flex items-center justify-between w-full'>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { useState } from 'react'
|
import React, { useEffect, useRef, useState } from 'react'
|
||||||
import { DroppedItem, TagsTypes } from '../../utlity/types';
|
import { DroppedItem, TagsTypes } from '../../utlity/types';
|
||||||
import { RiDragMoveFill } from 'react-icons/ri';
|
import { RiDragMoveFill } from 'react-icons/ri';
|
||||||
import { IoMdClose } from 'react-icons/io';
|
import { IoMdClose } from 'react-icons/io';
|
||||||
|
|
@ -325,6 +325,68 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// useEffect(() => {
|
||||||
|
|
||||||
|
// if ((!signatureContainerRef.current || !signatureFontRef.current) || (!initialContainerRef.current || !initialFontRef.current)) return;
|
||||||
|
|
||||||
|
// if (signatureContainerRef.current && signatureFontRef.current) {
|
||||||
|
// const containerWidth = signatureContainerRef.current.offsetWidth;
|
||||||
|
// // Start with base font
|
||||||
|
// signatureFontRef.current.style.fontSize = "100px";
|
||||||
|
// const textWidth = signatureFontRef.current.offsetWidth;
|
||||||
|
// const scale = containerWidth / textWidth;
|
||||||
|
// signatureFontRef.current.style.fontSize = `${100 * scale}px`;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (initialContainerRef.current && initialFontRef.current) {
|
||||||
|
// const containerWidth = initialContainerRef.current.offsetWidth;
|
||||||
|
// // Start with base font
|
||||||
|
// initialFontRef.current.style.fontSize = "100px";
|
||||||
|
// const textWidth = initialFontRef.current.offsetWidth;
|
||||||
|
// const scale = containerWidth / textWidth;
|
||||||
|
// initialFontRef.current.style.fontSize = `${100 * scale}px`;
|
||||||
|
// }
|
||||||
|
// }, [saved.signature]);
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const signatureContainers = document.querySelectorAll(".signature-container");
|
||||||
|
const initialContainers = document.querySelectorAll(".initial-container");
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
|
||||||
|
signatureContainers.forEach(container => {
|
||||||
|
const span = container.querySelector(".signature-text");
|
||||||
|
|
||||||
|
if (!span) return;
|
||||||
|
|
||||||
|
span.style.fontSize = "100px";
|
||||||
|
|
||||||
|
const containerWidth = container.clientWidth;
|
||||||
|
const textWidth = span.scrollWidth;
|
||||||
|
|
||||||
|
if (textWidth === 0) return;
|
||||||
|
|
||||||
|
span.style.fontSize = `${100 * containerWidth / textWidth}px`;
|
||||||
|
});
|
||||||
|
|
||||||
|
initialContainers.forEach(container => {
|
||||||
|
const span = container.querySelector(".initial-text");
|
||||||
|
|
||||||
|
if (!span) return;
|
||||||
|
|
||||||
|
span.style.fontSize = "100px";
|
||||||
|
|
||||||
|
const containerWidth = container.clientWidth;
|
||||||
|
const textWidth = span.scrollWidth;
|
||||||
|
|
||||||
|
if (textWidth === 0) return;
|
||||||
|
|
||||||
|
span.style.fontSize = `${100 * containerWidth / textWidth}px`;
|
||||||
|
});
|
||||||
|
}, 0)
|
||||||
|
}, [saved.signature, signConfObj]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{currDocTags.map((item, index) => {
|
{currDocTags.map((item, index) => {
|
||||||
|
|
@ -744,9 +806,9 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
item.type == "SIGNATURE" &&
|
item.type == "SIGNATURE" &&
|
||||||
<div
|
<div
|
||||||
tabIndex={1}
|
tabIndex={1}
|
||||||
id={item.navigationOrder}
|
id={item.navigationOrder + ""}
|
||||||
onClick={() => handleSignClick(index, item.id)}
|
onClick={() => handleSignClick(index, item.id)}
|
||||||
className={`flex justify-center items-center h-full w-full rounded cursor-pointer ${transparentTags || hideTags ? "pointer-events-none bg-transparent" : "bg-slate-200 shadow-sm border-slate-100 opacity-80"}`}
|
className={`signature-container flex justify-center items-center h-full w-full rounded cursor-pointer ${transparentTags || hideTags ? "pointer-events-none bg-transparent" : "bg-slate-200 shadow-sm border-slate-100 opacity-80"}`}
|
||||||
// style={{ height: item.dimensions.height + "px" }}
|
// style={{ height: item.dimensions.height + "px" }}
|
||||||
>
|
>
|
||||||
{/* <input type="checkbox" className="" /> */}
|
{/* <input type="checkbox" className="" /> */}
|
||||||
|
|
@ -755,9 +817,9 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
(
|
(
|
||||||
(item.id != null && item.id != undefined && item.id != "")
|
(item.id != null && item.id != undefined && item.id != "")
|
||||||
? (
|
? (
|
||||||
(`${item.id}`) in signConfObj && signConfObj[`${item.id}`].accepted
|
(`${item.id}`) in signConfObj && signConfObj[`${item.id}`]?.accepted
|
||||||
) : (
|
) : (
|
||||||
(`${index}`) in signConfObj && signConfObj[`${index}`].accepted
|
(`${index}`) in signConfObj && signConfObj[`${index}`]?.accepted
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)) ? (
|
)) ? (
|
||||||
|
|
@ -765,13 +827,13 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
) : saved && saved.saveType != null && saved.saveType == "SELECT" ? (
|
) : saved && saved.saveType != null && saved.saveType == "SELECT" ? (
|
||||||
<>
|
<>
|
||||||
<span
|
<span
|
||||||
className={`absolute left-0 bottom-0 text-nowrap`}
|
className={`signature-text absolute left-0 bottom-0 text-nowrap`}
|
||||||
style={{
|
style={{
|
||||||
color: item.styles.color,
|
color: item?.styles?.color,
|
||||||
fontSize: `${item.styles?.textSize}px`,
|
// fontSize: `${item.styles?.textSize}px`,
|
||||||
fontStyle: item.styles.italic ? "italic" : "normal",
|
fontStyle: item?.styles?.italic ? "italic" : "normal",
|
||||||
fontWeight: item.styles.bold ? "600" : "400",
|
fontWeight: item?.styles?.bold ? "600" : "400",
|
||||||
textDecoration: item.styles.underline ? "underline" : "none",
|
textDecoration: item?.styles?.underline ? "underline" : "none",
|
||||||
fontFamily: saved?.font
|
fontFamily: saved?.font
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
@ -802,7 +864,7 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
tabIndex={1}
|
tabIndex={1}
|
||||||
id={item.navigationOrder}
|
id={item.navigationOrder}
|
||||||
onClick={() => handleSignClick(index, item.id)}
|
onClick={() => handleSignClick(index, item.id)}
|
||||||
className={`flex justify-center items-center h-full w-full rounded cursor-pointer ${transparentTags || hideTags ? "pointer-events-none" : "bg-slate-200 shadow-sm border-slate-100 opacity-80"}`}
|
className={`initial-container flex justify-center items-center h-full w-full rounded cursor-pointer ${transparentTags || hideTags ? "pointer-events-none" : "bg-slate-200 shadow-sm border-slate-100 opacity-80"}`}
|
||||||
// style={{ height: item.dimensions.height + "px" }}
|
// style={{ height: item.dimensions.height + "px" }}
|
||||||
>
|
>
|
||||||
{((!transparentTags && !hideTags) && !(saved.save &&
|
{((!transparentTags && !hideTags) && !(saved.save &&
|
||||||
|
|
@ -819,10 +881,10 @@ const TagsCon: React.FC<TagsConProps> = ({
|
||||||
: saved && saved.saveType != null && saved.saveType == "SELECT" ? (
|
: saved && saved.saveType != null && saved.saveType == "SELECT" ? (
|
||||||
<>
|
<>
|
||||||
<span
|
<span
|
||||||
className={`absolute left-0 bottom-0`}
|
className={`initial-text absolute left-0 bottom-0`}
|
||||||
style={{
|
style={{
|
||||||
color: item.styles.color,
|
color: item.styles.color,
|
||||||
fontSize: `${item.styles?.textSize}px`,
|
// fontSize: `${item.styles?.textSize}px`,
|
||||||
fontStyle: item.styles.italic ? "italic" : "normal",
|
fontStyle: item.styles.italic ? "italic" : "normal",
|
||||||
fontWeight: item.styles.bold ? "600" : "400",
|
fontWeight: item.styles.bold ? "600" : "400",
|
||||||
textDecoration: item.styles.underline ? "underline" : "none",
|
textDecoration: item.styles.underline ? "underline" : "none",
|
||||||
|
|
|
||||||
|
|
@ -483,7 +483,6 @@ const DocumentContainer = forwardRef<DocumentContainerRef, DocumentContainerProp
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const handleTransactionProcess = async (save: boolean = false, isNavigate: boolean = false, navigateTo: string = "/") => {
|
const handleTransactionProcess = async (save: boolean = false, isNavigate: boolean = false, navigateTo: string = "/") => {
|
||||||
|
|
||||||
// if (TRANSACTION_TEMPLATE_TOGGLE.TEMPLATES === transactionTemplateToggle) save = true;
|
// if (TRANSACTION_TEMPLATE_TOGGLE.TEMPLATES === transactionTemplateToggle) save = true;
|
||||||
|
|
@ -804,7 +803,7 @@ const DocumentContainer = forwardRef<DocumentContainerRef, DocumentContainerProp
|
||||||
<div className="zoom-con"
|
<div className="zoom-con"
|
||||||
style={{
|
style={{
|
||||||
transform: `scale(${scaleFactor})`,
|
transform: `scale(${scaleFactor})`,
|
||||||
transformOrigin: 'top left', // ← change to top left
|
transformOrigin: 'top left',
|
||||||
width: `${100 / scaleFactor}%`,
|
width: `${100 / scaleFactor}%`,
|
||||||
height: scaleFactor < 1
|
height: scaleFactor < 1
|
||||||
? `${100 / scaleFactor}%` // zoomed out — expand to fill
|
? `${100 / scaleFactor}%` // zoomed out — expand to fill
|
||||||
|
|
@ -912,7 +911,6 @@ const DocumentContainer = forwardRef<DocumentContainerRef, DocumentContainerProp
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}) : <Loader />
|
}) : <Loader />
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,10 @@ const fitObj = [
|
||||||
label: "50%",
|
label: "50%",
|
||||||
value: "50"
|
value: "50"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "130%",
|
||||||
|
value: "130"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: "150%",
|
label: "150%",
|
||||||
value: "150"
|
value: "150"
|
||||||
|
|
@ -226,6 +230,9 @@ const NavTwo: React.FC<NavTwoProps> = ({
|
||||||
let value = fitObj[indx].value;
|
let value = fitObj[indx].value;
|
||||||
if (value === "FIT") value = "100";
|
if (value === "FIT") value = "100";
|
||||||
onZoomChange?.(Number(value));
|
onZoomChange?.(Number(value));
|
||||||
|
setTimeout(() => {
|
||||||
|
setIsFitDd(false)
|
||||||
|
}, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,9 +134,7 @@ const ClientSignCon: React.FC<ClientSignConProps> = ({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const [selectedSignature, setSelectedSignature] = useState<SelectStyle>(
|
const [selectedSignature, setSelectedSignature] = useState<SelectStyle>({ id: fontsMap[0].acronym, style: fontsMap[0].family });
|
||||||
signatureOptions.length > 0 ? { id: signatureOptions[0].id, style: signatureOptions[0].style } : { id: 0, style: "" }
|
|
||||||
);
|
|
||||||
|
|
||||||
// Store the actual file
|
// Store the actual file
|
||||||
const [file1, setFile1] = useState<File | null>(null);
|
const [file1, setFile1] = useState<File | null>(null);
|
||||||
|
|
@ -679,7 +677,7 @@ const ClientSignCon: React.FC<ClientSignConProps> = ({
|
||||||
<button
|
<button
|
||||||
className="cursor-pointer px-4 py-3 sm:py-2 w-full sm:w-auto text-xs md:text-sm font-medium rounded-lg bg-[var(--mainPrimaryBtn)] text-white hover:opacity-90 hover:shadow-lg flex items-center justify-center gap-1 md:gap-2 disabled:opacity-60 disabled:cursor-not-allowed transition-all duration-200"
|
className="cursor-pointer px-4 py-3 sm:py-2 w-full sm:w-auto text-xs md:text-sm font-medium rounded-lg bg-[var(--mainPrimaryBtn)] text-white hover:opacity-90 hover:shadow-lg flex items-center justify-center gap-1 md:gap-2 disabled:opacity-60 disabled:cursor-not-allowed transition-all duration-200"
|
||||||
onClick={handleSubmit}
|
onClick={handleSubmit}
|
||||||
disabled={isSubmitting}
|
disabled={isSubmitting || (activeTab === "SELECT" && (initials == '' || fullName == ''))}
|
||||||
>
|
>
|
||||||
{isSubmitting ? (
|
{isSubmitting ? (
|
||||||
<>
|
<>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue