08-10 - Latest

This commit is contained in:
=bhagwanSingh 2025-10-08 15:32:50 +05:30
parent cf7a516d38
commit c94ebd72a2
3 changed files with 58 additions and 57 deletions

4
.env
View File

@ -6,5 +6,5 @@
# VITE_BASE_URI="https://smashing-albacore-engaging.ngrok-free.app" # VITE_BASE_URI="https://smashing-albacore-engaging.ngrok-free.app"
# VITE_BASE_URI="https://basically-polished-yeti.ngrok-free.app" # VITE_BASE_URI="https://basically-polished-yeti.ngrok-free.app"
# VITE_BASE_URI="https://sacha-countryfied-evolutionistically.ngrok-free.dev" # VITE_BASE_URI="https://sacha-countryfied-evolutionistically.ngrok-free.dev"
VITE_BASE_URI="http://52.10.89.255" VITE_BASE_URI="https://web.signmadeasy.app"
VITE_SSE_URI="http://52.10.89.255" VITE_SSE_URI="https://web.signmadeasy.app"

View File

@ -703,77 +703,78 @@ const ClientSignCon: React.FC<ClientSignConProps> = ({
case 'SAVED': case 'SAVED':
return ( return (
<div className="h-full flex flex-col "> <div className="h-full flex flex-col">
<div className="mb-6"> {/* Header */}
<h2 className="text-xl font-semibold text-gray-900 mb-2">Saved Signature's</h2> <div className="mb-6 px-4 sm:px-6">
{/* <p className="text-sm text-gray-600">Select from pre-designed signature styles</p> */} <h2 className="text-2xl font-semibold text-gray-900 mb-2">Saved Signatures</h2>
<p className="text-sm text-gray-600">Select from your pre-saved signatures</p>
</div> </div>
<div className="flex-1 overflow-y-auto"> {/* Signatures List */}
<div className="flex-1 overflow-y-auto px-2 sm:px-6">
<div className="space-y-4"> <div className="space-y-4">
{preSaveSignatures.map((signature) => ( {preSaveSignatures.map((signature) => (
<div key={signature?.id} className="grid grid-cols-12 gap-4 px-6 py-9 hover:bg-gray-50 transition-colors duration-150"> <div
{/* Signature Column */} key={signature?.id}
<div className="col-span-5"> className="flex flex-col md:flex-row md:space-x-4 bg-white rounded-xl border border-gray-200 p-4 hover:shadow-lg transition-shadow duration-200"
<div className="flex flex-col space-y-2 relative ps-6 border-l-3 border-blue-600 rounded-bl-2xl rounded-tl-2xl"> >
<div className="text-sm text-gray-600 font-medium mb-1"> {/* Full Signature */}
Signed by: <div className="flex-1 flex flex-col space-y-2 border-l-4 border-blue-500 rounded-l-xl pl-4 md:pl-6 py-2">
</div> <span className="text-sm font-medium text-gray-600">Signed by:</span>
{/* Signature Image or Fallback Text */} <div className="bg-gray-50 rounded-lg p-2 flex items-center justify-center min-h-[50px]">
<div className="bg-white rounded-lg p-1 flex items-center justify-center"> {signature?.signatureType !== 'SELECT' && signature?.signatureBlob ? (
{signature?.signatureType !== 'SELECT' ? ( <img
<img src={`data:${signature?.signatureMimeType};base64,${signature?.signatureBlob}`}
src={`data:${signature?.signatureMimeType};base64,${signature?.signatureBlob}`} className="max-h-[60px] w-full object-contain"
className="h-[50px] w-[250px] object-contain" alt={`${signature?.firstName ?? ''} ${signature?.lastName ?? ''} signature`}
alt="Signature" />
/> ) : (
) : ( renderSignatureText(
renderSignatureText(signature?.signatureType, signature?.font, signature?.firstName, signature?.lastName, 'name') signature?.signatureType,
)} signature?.font,
</div> signature?.firstName,
signature?.lastName,
{/* Name */} 'name'
<div className="text-xs text-gray-500 truncate"> )
{signature?.signatureHash ?? ' '} )}
</div>
</div> </div>
<span className="text-xs text-gray-500 truncate">{signature?.signatureHash ?? ' '}</span>
</div> </div>
{/* Initial Column */} {/* Initials */}
<div className="col-span-5"> <div className="flex-1 flex flex-col space-y-2 border-l-4 border-green-500 rounded-l-xl pl-4 md:pl-6 py-2 mt-4 md:mt-0">
<div className="flex flex-col space-y-2 relative ps-6 border-l-3 border-green-600 rounded-bl-2xl rounded-tl-2xl"> <span className="text-sm font-medium text-gray-600">Initials</span>
<div className="text-sm text-gray-600 font-medium mb-1">
Initials
</div>
{/* Initials Image */} <div className="bg-gray-50 rounded-lg p-2 flex items-center justify-center min-h-[50px]">
<div className="bg-white rounded-lg p-1 flex items-center justify-center"> {signature?.signatureType !== 'SELECT' && signature?.initialsBlob ? (
{signature?.signatureType !== 'SELECT' ? ( <img
<img src={`data:${signature?.initialsMimeType};base64,${signature?.initialsBlob}`}
src={`data:${signature.initialsMimeType};base64,${signature.initialsBlob}`} className="max-h-[60px] w-full object-contain"
className="h-[50px] object-contain" alt={`${signature?.firstName ?? ''} ${signature?.lastName ?? ''} initials`}
alt="Initials" />
/> ) : (
) : ( renderSignatureText(
renderSignatureText(signature?.signatureType, signature?.font, signature?.firstName, signature?.lastName, 'initials') signature?.signatureType,
)} signature?.font,
</div> signature?.firstName,
signature?.lastName,
{/* Optional initials hash or font */} 'initials'
<div className="text-xs text-gray-500 truncate"> )
{signature?.initialsHash || " "} )}
</div>
</div> </div>
<span className="text-xs text-gray-500 truncate">{signature?.initialsHash ?? ' '}</span>
</div> </div>
</div> </div>
))} ))}
</div> </div>
</div> </div>
</div> </div>
); );
default: default:
return null; return null;
} }

View File

@ -205,8 +205,8 @@ const TransactionView = () => {
{"message" in recipient && <p className="text-xs text-gray-500 italic"> {"message" in recipient && <p className="text-xs text-gray-500 italic">
{recipient.message} {recipient.message}
</p>} </p>}
{"declineReason" in recipient && <p className="text-xs text-gray-500 italic"> {"declinedReason" in recipient && <p className="text-xs text-gray-500 italic">
{recipient.declineReason} {recipient.declinedReason}
</p>} </p>}
</div> </div>
</div> </div>