From d4b42d3b11442b33cf3a80a5efa3e69c301caaa5 Mon Sep 17 00:00:00 2001 From: =bhagwanSingh <=bhagwan.r@hicglobalsolutions.com> Date: Tue, 7 Oct 2025 17:01:26 +0530 Subject: [PATCH] 07-10 --- .env | 4 +- index.html | 2 +- public/favicon.png | Bin 0 -> 1279 bytes public/favicon/android-chrome-192x192.png | Bin 0 -> 18724 bytes public/favicon/android-chrome-512x512.png | Bin 0 -> 74001 bytes public/favicon/apple-touch-icon.png | Bin 0 -> 16904 bytes public/favicon/favicon-16x16.png | Bin 0 -> 822 bytes public/favicon/favicon-32x32.png | Bin 0 -> 1982 bytes public/favicon/favicon.ico | Bin 0 -> 15406 bytes public/favicon/site.webmanifest | 1 + src/App.tsx | 8 +- src/components/ExpiredPage.tsx | 72 +++ src/components/accounts/Account.tsx | 47 +- src/components/accounts/Accounts.tsx | 22 +- src/components/accounts/DownloadDocument.tsx | 6 +- .../accounts/TransactionDataTable.tsx | 7 +- src/components/auth/UsertAuthUI.tsx | 7 + src/components/client/CompletionScreen.tsx | 39 +- src/components/client/SignDocument.tsx | 279 ++++++---- src/components/client/TagsCon.tsx | 40 +- src/components/home/Home.tsx | 25 +- .../processStepOne/RecipientAddCard.tsx | 3 + .../processStepTwo/DocumentContainer.tsx | 21 +- .../processStepTwo/DroppedItemsTagsCon.tsx | 21 +- .../process/processStepTwo/FieldList.tsx | 116 +++++ .../process/processStepTwo/NavTwo.tsx | 30 +- .../setting/Signature/AddSignatureModal.tsx | 8 +- .../setting/Signature/DrawSignatureCanvas.tsx | 8 +- src/components/templates/TemplateTable.tsx | 488 +++++++++--------- .../transactions/TransactionView.tsx | 17 +- src/config/api.tsx | 3 +- src/config/axiosInstance.tsx | 63 ++- src/store/slices/selectedDocsSlice.ts | 4 - 33 files changed, 889 insertions(+), 452 deletions(-) create mode 100644 public/favicon.png create mode 100644 public/favicon/android-chrome-192x192.png create mode 100644 public/favicon/android-chrome-512x512.png create mode 100644 public/favicon/apple-touch-icon.png create mode 100644 public/favicon/favicon-16x16.png create mode 100644 public/favicon/favicon-32x32.png create mode 100644 public/favicon/favicon.ico create mode 100644 public/favicon/site.webmanifest create mode 100644 src/components/ExpiredPage.tsx diff --git a/.env b/.env index a291dd4..03d87bb 100644 --- a/.env +++ b/.env @@ -6,5 +6,5 @@ # VITE_BASE_URI="https://smashing-albacore-engaging.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="http://52.10.89.255:8083" -VITE_SSE_URI="http://52.10.89.255:8083" \ No newline at end of file +VITE_BASE_URI="http://52.10.89.255" +VITE_SSE_URI="http://52.10.89.255" \ No newline at end of file diff --git a/index.html b/index.html index c118459..17f9bd3 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + Sign Made Easy diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..63c92c5b3d71020d65d88e8c715a42363b49a58a GIT binary patch literal 1279 zcmV!MqmU+V1$mq2*>_i0m#w}9i0B&;{Y>mnMD*Ngej?uT57564mHuhiKZ)q0)BYZ4 z5Y&zBB_MwJDOAK2-j$c$t^^U?L(b+WN<}k30~S5837Uv*xH~g54Xx>BXdbxm4(o0A z&=@`aZNJcJ;QBwHiRi&6Rmc0&G!I-~3ewN+3pz4z?H(FdPHx+erV|5~-w6AFW(UHD ziyhAoZ5X(G__?72CZ-PF3~qF+8q!SQ^Wt{AvDNorTBTS#Eo8fzDOF>2-!q1t>)x z_o)(ibNB8vsfMoDWoPJ6++AQLy%AVR&CpU{q!hvnStR`k$vZ8y(F%Lo8+4Hsrr~GS zbdeQS1s#~xFJ1c3WrkH8ZeYM zckjppwmQA|!$fpzc;IUYRG%w>?(vZg{KE$-K%rdvF0tOmZ@@8l$aL$xHv=sCz z78a9r8t7IlOgF$x(3V(O)C#MD=9b2i$jx?7(5w{}o4eBWAaB-m>P0%?wZ+zEL37hK z!GM7eTngQ?j=Q$3I2g-vrsrz$Ob9M^Ze-|Os5cu6n-Mx?ewt!on?v*R>1+%-Ay{lZ3A(-6 zjSSU)lJ2b*$eW`XzHku}6yNP8U_7TgGy~&(gn-rW9Sf(86Xf0cPQQ^#j=MrLFut#_ zncaKGTEnWMqVDc_SPvy&se7GlVgaRYj$Knw&$tJ0vL2JKp&{^&E)BsyU&P-DEceB_ ztXkb$>{P^LW%+DgR;UvG*#HI>biKtSWJp+#2o+=QNg4v+&^BO^!fV4lIFCB~DIbJ< zaegTudVcLWX?$p>>JJha%y~MZQLfJk%v~OhLw#^V1?rYiibX>w`ure}PVQ z?~ydsD$7OF7frYJp@GZm?hQK_oBJW=z;aiMCcc5IKsgXt?K{Lzkvhu(vl!;Fb9>=* p;CD{&dbIP-9bgv;xZvU4`~^;1y$WE+ADI9E002ovPDHLkV1f@WaM=I= literal 0 HcmV?d00001 diff --git a/public/favicon/android-chrome-192x192.png b/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..021e776e1ae08ad7bea0020e22ad76eda5c45f74 GIT binary patch literal 18724 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 TF@vrX00000NkvXXu0mjf(vtSI literal 0 HcmV?d00001 diff --git a/public/favicon/android-chrome-512x512.png b/public/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..81c55b14096bf6feff03d877fc85ec7ad4bfd816 GIT binary patch literal 74001 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 literal 0 HcmV?d00001 diff --git a/public/favicon/apple-touch-icon.png b/public/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..70c1240b64689b2920432c60ca3af9d3e123580f GIT binary patch literal 16904 zcmV)nK%KvdP)R=L~Xa7DWxQIDJ$mX(f0aFt7nr3t)8sr5>Qp3(O-Hcp(TRgN0r%7W;fy zs(Y{o8g7KZ-NZMI0)IP!^xMFo;T!PczX}~!_>5TO25S3&f}J~IW=o}6G!^+rPtf>h5uKN&-~{JT=(P&T$?POI)STyQ;#d2IEl;Y+-up! zoPG~V*u05DYB(fJbn*d!>3ASWufRHj7{%M4CrshXSl>?*EtZs7AsStx<%+k$i28%N zh1P2X?Fc<|33HDZRR?;pe*Acc}qL)?snsEqygX5$aH)MDaEoK(!O$|tdM<} zp>sLF5xm~zmDl!osVd(Ip z$1PD$10EngP6-4?@uB06%2RD|Acf3VWuq~gZ)Rx3Xc=V^vIrdHU9q*-1JUe8x$56O z9c!h;jkME-VGhj5+zM=SC@+=i)bdt# z;M)10i;Z}M{rT&;1^9iX6=*X3ZlS;J{MvWNZ8`AU6{GtiOMc(hXN;v1?^H75rZ z9Hj*YK;;>Q7O;q{=4Z!o!-w5i-|fRRA7b-c z@)-NzH-9W*jHSh6k#B5h=+tss3v{2?K)2w268N-1QQ~&!nEQduQyD0=c%=!Jms?Tz zW+x_{?7?}*99YerhpU>MSkv!AEoCz!f&NdWoT=wUty0hQEafPoEIBgb9FZHLBWr}3 znazJZiJD&?#_A_eWPyha)&7@4;7#KyK zp))c$L~i64fZ-QMkn?XxQP}9g%vLwnwK#ASml#*LbJXyn;bJ}7Lk{MjR1vXTrcmn@qI^`kiS$eQUjGavrM&##3c$BHWM zR;;7?cT$3z`JlIy*HLF>(uNG_l{#dTNoP{`qIf%DZ|l z$`=)2a*-L+I1SHX-c&ksF=Hc^|K{zfaV z*w=}R+gzCG(_v3VE2<&+wg( zQ1CZTE>++(`rK5yvUsH%y&WOpU#h{C`I~jv*lQKZ6Do2qs zN^x{4qA&>K(9!vZq=@W&fhtNQBQMOYE>!O6!RkHT`0QyXZgS{Y!hPmKmMI!W(L!i4 zl^Z}b4&$agHru929c9fJSx1pGN^$f?qA*CULq`_}x4i<}P1{g?+ZHUW@5jnM7gqOs zv4%795--=yJOMm&lpO=VP$W@w4pn6$FQNs;k42Mr=r{(ive|KSqtjT>MWUB>|cWC7~QM8-8SDKe?mZj%!l+*f5Sm={j z?bdNQANtmEi7}JabBTx{v@^xfcto!86=t@z_+*=)9{J&rzLE&^H5+O|hfWYJgR#q`I<#lrnPSb3x$%XtE*PX7{q1vF_P&t(Q`MR$(qpR_|OX9lF1_OhR_p!~U3Ed4_> zu6w@=pX&5trOStE9+=p;J*Qp|O}ag{GZEsofO_bNx6U}FPtL)p^e=Y8_*8?)`(raI z4tHQ?ha0Qfow%;cjce)5i*=xwWd1oqeJSvoL0MUW$&`n5@lCm)W5)1IKa80OX=ylV zhkhX!*2fQF_M=DeiESPDWVaWqJw8lVj!d`8A&ddZndbI$;3}OaO(*Yw{3(q6;`+Z* z$TTu5)fbT|vb!{#wGwk^DaG8UrFr4YGN<(v%G-Td+~mZy9Ugp2{VLlBl+he9@D3*y zYbO;{cPS_)99k;MX81+*e`T|jStVOIYsKJnqxD$$3hed*%rY792^X+|4!n-X*yr&` zyMpeM&l+mI%xJ7ax(3Qv=`+!8tQLsNq4@x)5r(=l6qqeoA~f8@ec!v-*m?+5F&^bf zDno%~i3i0XfS9?c3W_)`6;*`^jAIML+}p~Lsi&HKYi_B;j5<4J<`^)8c~iMCR!a;k z)1!jAH7JZKh$lla2q2z%{Km|bVXA|7Se<`|L3 znR)DW4JQEyf%;zrVc?MC-eNeikoh4D5RxusnG`lk4K3X`2f$D5j{eOR!*ZPqEo71TM_aj)ku?ZJ6yD*a{e}#0FjCXxF znMdYRK6j@FJ={j@U|Bc8@dz&SnTi$y28c#?4wut6)Pb7mq?EP?4x{Y7t(af`CNAss z;YL67!B|~O+|czlF0Y!0<(IZ%Mn5o#rYj^5E1`TWtS^!-<`9ty8&c)!&?L9H4W;k2 zW5&zPSn+xbEMgX2U$+TLo#DOPSJXh#k~CMH5k zETH_uQUl}~U8wW=a2cnIyP@IReu%+XT{F!-`Kso_Cv_bcm;v=3d?lsGC3pz~{Vl@e z7@>#^0znBBNDswiteBg(wj=jD`%ri92Uz|>GuEGQ;`|mDW^>l7>i410Bca~g7^;^A z3Ed#j$)(WYA~Sa6nXr!!uJtcApj!yxB)kOengx=c1tR>nt;o4!C#HU32UdO1gG(Gb z*60%FQ?;d|AhDF^6U&>OSiQLoYkznM7k_6DK5^@ITyfRAxZ;vGaMh~6;L2;>k{5mF zL%Hz14p}RuEG2RX`e|(4MnX0n6j)ge1rxJ!I{Q(6q7O^=_u`Ys`*B;32kW^#S3}kV z^%SK7iNgg|tPrkzAYV}^3|tL-vz38F%-`go+YLBXW5YY^O7P58<@n1Dl{mJ*0Z+_K zk|d-INpct`)uj|4xKMDg2TMQh!-je%Zsr|v1s%FLj0VD~qoCe_Id8Y&l2;nB;oWxJ zanyl(+gXV4y5EMt-K?+Pn_td&Dxvrd9nSGOVi<7DAd&}OhvA<6sQBv-Fzn&Ay`)f0? z@2k_$^5d)EO_5L`*bL8#e;5w0pNgxPEf=n_7#VcCV0G&HB$tl4oPFneb*RbC9*!;j z$J*yZ84uv55_9Rqi(Njfq$97Q-PA9dE_CVgq9!*ke7y~8o~*}`KQ&2hd_Xygy3GRn zi9KTplZFqC8g_F={y-CWUkL01@SfR#trb?hb@LRw{&%ym;|n!7JUth!LWo|%O-RyB zgh&?P%n+$KP(~k7him3Wz`nE;_FR)j^UI*gEoC0OSKh0Dz*9^E;Qjmp5*+a!GIqK;8#*$vs=R<>ZxYsUdCsv#EY>GlyR&@ zh}?ec)-sS$exVDM7Zjta%z{Fb0cNg!k@zRHbvSVuZ5nJ={Q82V000mGNklJaqyUziq;K_5GNyNz`!SQ_e<1GeoK!s!UZ;7*VFO2*KHzUFn~dm9H`j z3L~h`Tq>e7SAZb(03;|Uq+7z((uZE&0@|x=NCRXHJZ+@0wNJJ;baE-ty(%BQYs%o< zPy^R5mJ81_HwoYULg+#WseoZ0IqZu14ZEJWh|dBWJ7Isi0dszL8lTwSiL3blx5xug z-=L-5BcTe2h4e4(6pp`aP4z2n>LKlibhmIr)tNXl=EoB&*0qIEonb03=;!Ij( zHjQ!riDdZfR8H3*c+zL&OkyIqjRv(xoN`4Z{f?^xcdHlO2Ri%?-9d{ehi0=(g$Y`i z{MfVEaO}hrl*27BevCJ`yJ09c!@!3%ZZaX|PCU#u0+RdIo^~htUu{Ac%hZE@)E%qj z9hxmogtOZMbY|teCTf|pyc9V(Mp)?42BC79nP`YqT@7_Yayg@OiQ^MO_*V$g+M00a zXcjuB%EP*t@)PcoB5$e%MY(3!jRK~jb+f9b5QD9P$>^}7Y6t-j8|&wpLzhXQ$6|!b z;A2apC_`tkE(=0&X7)rl*DMg$5e&41+6yk9oQuj*GY{W1Iy4495@9zM1}TQ3uq_Ny zm<8Gj&DcHJhK4QfwB;xwNRr7x}w+Ps}pY<1N35~L+tm$vaJPm?{;A2?ryB*VajavDk$j&Xa~M| znS5}0;X3U^=c^rPAh#BxPYB^-98=)QWi&cH8bQ=@IM zIqt)=FiQ@y^*>mqOj4zM0d-byP1Q1<0FWjdh#2^WrKw@xsJGhGj)w9L)ouY8y9YDBxd-dMu^ZQ&3-~7W^kYOE zN%yalHd1-I%l>9JF8}8HSoDn#QSu`ECxCW#amms`RFs>MZ`Qy~2PB9*7MEZEiqY0CVmZ9Q1Avjdg37XP-K+N!IlFrlWz zj3Rooh0ZYABUDZRBnTP8mrI)g9nP44%-Wk#oa) zs}fFUWfjN#j7j<=gW#<}AxSoAuC9!t5WX2zIuhZjV<-_LXwKo6|1wP5k$?pc+wNVc4L`6+#g3Vbj&&L3@)6r&!!b z^bpGX7{wRDJ9K<}!c$Xy;XyyQQ;ssZMF_kc3H0Ze6(Z4$eVL#R3Xye5shk+mmd5Lm zc~NW|kSCmdng6At-V+kSH?j=wSw-ixY{TV#RNXz=fL zMDn48%6P=>$}^&^%z_g{eUS<6T{`-O5N^UpWUoW}H5R;?DcsLFU;;X_&;}a-!Bd&s zvNDukkc;XHD~c@|)XoM{{E>Dex@zq>$cMkTJ~;_HuCKs}D=Xnjww;X3(8&rpQ9m;l zc%~kv#}A_X7e{d3hdo%rhqb9(p5&*Yb!pPjTgut_!eZ>cc``n_Z91C1I4zOA=i$<2 zu|tdDl8(t$Hpq}U#sB>zY%jH9`m>F=RmXZmAqIy|PVk|YCK4I5K%zaSyCArGVxU(U z$-_h#D0GsD@*73(+4+`+f#1Y>{aGS&z~MG*{EqyKe?=zig^8Qjb9 zrF~L*yS#9`+JJ7>RI{`C<3O2kXf~H*@XSY%LBk4@j?eL_`DCB9-Z z;TpRMb9MtZ&XOi}t8!}Pyee&9U4p!PBdpv~GXiRkf)auoB9E4HxF)lY#N+K6GqI+$u+E{ zM&QUo7=6$vwF%O1$Xrrq05T+g?Q?umX@~9H3--_HQQ_km;s&# zf>R7&U^<5=t+rxPsTD=MgIY;1klK$l3v`v5@X?GMY+g`+x91h%$ebcLhd0CNZg@r< zR}wspj)OidX=EYj&5|S1Yc{~i(XU2mnjr`I2Vx9f55|VUSc@JT12lm;fjE#qeqsmh z@3k2r^6Y+RR*o!=0orL7@{jkU+9^@TS+m?AU>At8D0LbnMv+FJG(q+>ht2z^jyx)d1$Qxyvenq#--xG7B~hql}tD8u0`M9&BCE? zO~;#mHv@l8KLpzdAVhmJL*ykbmt>p4NJks-^ZeGJUf-IDSH3nIJ8zkW`ck|9Ht%7- z>jzq3+}4hoZ5=rO!%nQ{Y(1~vixN6?V!kopS7bdp(4k!?ooM@gBTnoD)T^SMLI@?t zXyQ0>RFeVn#Dosijxpx!;N-b|)6`t-ugk@IDMwBkc*ZTKM!kZO4KkgPf%gBP#)2c2 zX8*pgTDK}k(mVPgyb=apm>FAj9cC$zxL4$an|wNPrDx{)FFn8v5$}zH#Dw0HExG@`IjEm!^DlYg@Sxa9Gvd&(i<3G^ zHDXi8EfbtFDzVlN{MoVSs>j~by0S?tisDXWxAjzgwvXHMb=_QCK^AEWA@k7LOn z8?m<8iMbw$5^6lmA0kSm3Kdu>QXmQM%4jOL;^6vX9KNIkt?LW@yDX8a#Z|^OhUkYW zFqE5ygp^!L4M4p&FoA(TyOl0G2xaeZ-T0gX#=kUS$~!GswY?Kpo^oPIzYpc19tN40 z@S>L|+wkbp)9FT6lLrk(BN{1_dUr!Ddzegp$cRJJxJHVuUKFonTs;A#+XiK{v3d!~ zOxqiXVg2mrf!5~tQr)8r@z7M(L{pVcF|>ccQaQ_p^gqov!0@?I}yaVA(4D`@PPX=CLXGo6mHYulGp+Y1~XOmorR zw7z=q<8v9*onXihi%eX=3a*z0ASGiG#uH@B!~)z6@bMtUdAJ8XhoIKZaIv~h#1trE zNV;(O8FA=G55fL)BPKstkEKtXz}i^xn>c7=G@i20p43i&9)_T&0LMYl)<(tb31QgL5)O#8x#%dX2KLCl9Fo_;0I$auP0o?+2g?^okEDrk-On(^x#T zLE zFP1iwqdB9ivN4aZ;q}4W>w$-Sy@ZcYIw^-PwHQ!SXhw+{P;b?#K4J0jpooX(#C~Pc zL|3sHAD)+w7giVJrL|?)yM6|`fjIV_*$GJC6H=K3_(ZJYb-~4knn?69<=mASh+S;Y z57k~Etzvb3c0ru6slfYm?*sJU)6}tx`Z@^j^9?Y(+JeHD8d3Ld8|HO+Fqt!WF3U#w z?x+kB#S?hM-DlNsWPU!je0?Uie02_v-B*MDczDD^8!RvVoS48T000mGNklC|O(`e1(`IcTy0_%9Op^7!E4-gD>iE}Y`A_vuog6Y$?H7^NpDB^1){ z(3F4cRp`0qV(ib=@Tx4p@3I~GIFK=%4fP!S!L8$smcux(EDvooznY=-$t5t?J5hSL zA5)L?VSbAfQ@H<}M~6QFKW!C}Tkxv3!%S$ zvGDF(E$*hB z>CkF_TY7XzI0bW~LgpcOrpf|aOVw-Y;sg%OWwHae=o=^!w zn}GWN1__;zNkiE*>@>Cy&`!FLd#oFi_>eZ0vt}h7FIOVXW3fgp3`2H&}eg7j& z`u-6t{g30gWKS0scY9Gz!jSaLPdNA_JUw1?wmNW{oqReE=;ZE(J7If%7-cSKnP}?KH&O7= zhgkT-gSh@*PT}^H;Pgm7I{BW#Pg2!Rmh$=00o?lUCvoMkTQUF5UKFz*ZJeo1#E^e_ zd!T+&ZSV+~ygF<=K{Ru@VIb{5;Dt&IMk<*wbP4qmlIOG+4l+?tr<6L=84c-oXemXL z4+YImENu4Rdd9b>2O9Z`L8vsC&SJPJTQHowjsq<&d2729SM>NW-|HN3XnKx`@UN@s z*xKw0Xjb9Vn4t}GyNQJVTM5=p zIB3ypCO^nD2{lXDd0Q&df%1`{O-JPor;$<0NAnzBKMTus$`p(cc8R2ePl__1L=k63 zo7)Q``%%rj0eADiRrgmVD4$|C6xxi!!h(T7!h{1mD!48m1RaGY)K9Tv*X$hZoRyDb zla1)h)ZTNjEP-?chgQ-n1V|H))dst!!6O8m-2Lt!2`MouZ#a#JQXZ(U=oBRB0|=C5 zHs-N+zrt`mQYQm#*$)j)p~Gu1L1*vyJL`2oYv@7FaW^V#M%0#CQDHS8S3pGQYu1i6 z_*)^dfHVp8m78&7O)=iNqZV)8QHKMcpNt-sj#-GHq@Yj=jFJgLNV5ywydCYM*Zf3zU!m|O>P$&$yp67io{e3Lo`+#+(RTWICKmoL+nB)_RSOS zofnJNotKKkTQ3v)vIX0+NS1hQvSppv|IQk5{0}Qd+to9L`U5iRAxwAFL-cuI@AsjU zsNw8f#&vcMdnUNwd6|6h>G1Wr;i&INhp=$c0+&>PFL}<1b4cD>6K^|XHB;V`8IwG| zhPbmK$}A8D0WS0);;S7*t!gR+W%-jM@^nD&m2e$(p?Bvos5^vOZj6aTE726r35VuV z$KM~R{8GkClwUG+!?j6gR!a)&&C`%qYKG0I!34<_HWK)RGuY^SUH8G))(6kUb%^^1 zun9;Own{)WEiA=EK|~7#3^+s-hnJ43JH#Zh1f5y6Zei^LZl9G^+fZmX!oqd7U|w8d zs6s$Um7x&KMR2HK2*D*|npPrDICQGIKv^?Yyb|N1_MVFhjHoQPpx7#4XXlP|#i*P| zsi86y25XX`+bqzWYsA4qGd?b`;&h&kYv%_B3C17_5--79Qqn@xEJ^bi%^*EoN4Jwb zIYW{t)zxdECERna=8~h-W`JFY)b}q>1^Wuj*grcDFL9ghxl2m%{<=zZ;64oam68PE zJ`oGURf;R0gE%hwgoxK~meyr&$VumKlJgdCl;ZRq#q@xJb&3{IcN3DvV7SNX^Lj_XP$w0 zu^su(H(|==7R+n$pw0^v(#2A{_Y8h`IA+msa+)1G@0pIR-=2jd_f1DH)MF@%*{1pq zg8`opQ<#$M3^=qD9Xd*c8*8{1dZ)pFZ>JJkB!1e+woGh0fRSZ^>p;1R19`!*$`3|x zS#UZQnnC(ea^l-OWxUmG!g99*xzT$1kur!!52Nhy6PW+odaQfD6N}p2sNi;kaj34E z92JH#5=gK z{7O6QTnd;t2nO~af_bUB0R-pAn^rvHt&?H;j5xH}0}_ zuq+UVY;TYzwPiB2ZV9wy($HZ697ZGbP(Hz#S&bGG%kpd{l$08gZ#BY9>U8v}Zq(pl z|8?bP=*$)9=M$*6Y;NQgGiA$oh@gC6IEJ+6C_$BVM`fxE7A&)&dr=3#OA7JPid;C98AE`U1^o&oHVrj3 zIViImkdw&Xa|qtUvgpjt5;Km@&Bxmpm0;7la_qab44v~fj2njzIB~$Khv^scB0Qy# zKVE{~|1$>%9+;2K_s_<&X~B7T_Pzkv#(g7@RGZ{`e=x{9DSk23|KIcQ)_sd{^h+zD zj*~;#Tl-t0@EZ%z zbsxscp~EW}W`Na&_fBX(K8W(49>T(39>ZlHbYWSC2UUC!G^X0kyb|iIx{h`ij^_&;DKMcq4`J^d zLo%i>5q|nqo}0dQ&u~_q(#y+MqA{%yNH2dV{vrcy!2e1pcM+8BXtLp9Q!}&!Jt*4S zi&^`6uNo zFfXNnM~v=5Bbs=`y_dU3JGtX>bY3ocHUR2Qn|)LBp!V8eoSJA1)Et8*Q)8=$T*7K4 z_I1O)rwtXIUQ8`CpxQ1_Kvt3aQMr2nB#tF;$HdKt_fy>2c>fD^c<0Vq9J+Nfx?-t2 zmNbzK5kfL$mk`$uc@xbfQ9yyKDpVedG6DM%laR*j#8K8bIs18_$`e2k;YJ3DR zL=`0=;E@uYIYyjVT!=%93edc=cr14|qR2Z~9JfO&yA0Nyh%#)9tqvG=okrz{U0BYY zjcXd5xUkQQI*P#+!kO;i^_hzVQ(hfqHEkoqc^i^w;CtmI*AQJYj(vQ%Zoya4(n@KC5Om!9);at4AMAyinOjNHOL&N^3`z}!l#lGJ z)HVj8Lil(LwZ@8s^De94j!Ng^=A^)?5r9NK|S_al-F;O35Op0 zzDPm>)s0D1KMSi)IP_WAsfnt@TeionLHz)Bf2jrU7n^Xr#Dtzi`DLnJ@UYG@ho(t0 zWrcCyjJ%|(aO4|taAqzxURsJjURiRL!Yrz~^m;IWo|<;PnKxwVj0 zIq0vjXe|{M94|7V!Dc`Y-8%NQEs4YGE#cv|S7U_@AAYtPJH9>xhrcxr4pV|v%BVvJ zHyqZenJE~Tt$bxJ^iP+doyXq$uCK(Ki}JCHOM=tvL~kk-(j|O7KJfx5#`*sce%W ztHj>SdO+Sf6FqlKLH(zzuzyY-j^rBAp=sbQTa0{0bOIIiaaQi&QTH(}IX>cn%F$D9 zG<^LO)DK|$x$k^tu#BjSEc#Fnzcev8bQWvjS0U~%18b=NlVk>5xIj1HdJ}LL1itRp zaILQg)0geUu#-2^XG!q)g%=(;ghUUIz5BVf=9d2K2qFf0I|PXk{@)7jFEZn~sX2IT zRz6;znU7P~EsJB2gy1_?Sur?t1ZxCI9UE0pg-j;zm)god%lws_WzCK6;=F%4fW^N* zg%w-du%^Y0OL+QrC4J&*Ze%WH2Um18r|FfDcqYBDCEHS|b9>Y%QW*sS$0Y%~HcPHC$$_ zfJquL%PVnxqZ9YO(u}*FI*CvH_LTqs?px61MkQxCGof*@kaRl z+6M>kE_!rJsj7oi0_r{I0|jQhSZ%>$lWcgUNW*@fqqo=OqpyyGMg;y6(qNTrkCb)_ zDRbzIC>+k!Lgq`c@B^8{HE~6u4KsZPoKLdLx!An1%Y!RVl>4(F000mGNkl}8?bp{ zF1i<1z)AkGzq~IL*X%%$n(0_82D8t!!cweyTH01@lqHM5g2}>wC0s&$f}{3RTrXb0 z4lTAB(Mu=pVIF59csMK9PqAa$=cnM6duHPOyDHGUc|COQf(XL!w3Oysxbv}ov#eb9 zs++t+-)!4@EzvGJwp-uwTyBZM&aR~1n%WfW0Z*+qFIyy7^azYq1gplhu z!{9DMtu){=qr_b#xq)_HBm@d`4d|V0#mAh9->J4@Z=MM)bObNgqCFihoX$7k$oyP1 zt*AyH>#1Pom%aBeDqK3wXK#O6GvX^8B=;z|fjg`=T$m?OiThDhu8_FBh-P$;I1KbFpWs6~|YXqh&#XU)LCBW!1t6=2?14owHQ3 zVPcIoC}&SKgKCTo8{Uz&%XY{DhXa)cfdx{>6|8?qqX7fKdCzPLl0IGg9HyTtsBvLX~#Y?LL}KP&U@-z)hbDwPft5h?p{ zR`yWde%^gLicL7oWz^Q2Yw^nG>#*hWA{@%eK|32$>t*!@9o68~SrXVcW3Neqy~$Ms zEFS{-#RklhJ@|yQ;x?a-8|Z9Hs8t!!M&55i;wi7hb{-hu-8P(ev>(&^yeMQ(YCIj& z`*isB+IZ^*NDiyVf|9p7G4GjrT)C?Q*J>K3*4WWGEeCtK25mMAXslaEYCG@$#+EXs z;9tI(>~@qIjabg5&P`m}+)dgq1w-Yr{I7iFSjlu10QEmq`5l|-5J7~<3zJ1scBqfD za%+_hd*>G5tvUI4yEYFyrkb($ynLLPUyKeRgmUB1JZR5U3`@UbelL zGxm#SBc9;S#xBmpw!Ph0e%gUKbmCmnsGsM%tOEL~d>CG?N8Xhxe8 zcR|+CNToA#QGZbxwobC*5O)c>*ajy;SPVWWK80W2jgs#kKv`=qrt%?l72CX#ZQsTj z{Z`_01_N&6!1w}X`V#fMMb~k0s|&NabvWrC525V#Z75Q@jfU>md1OBCFa?mvp%7;O zaH2B22Ge?;0Zp@W@WD+r*mQFZ-np;{yUn>c3ZR+jC;TBhzi6E#1Y=(%Q9FjJ$%!Y$ zp+Z!+i*bS1hR?!?J3;gSU)a%(JDxd>+x~C@pK*AxvdWJ9`T00S$J<_R#`AQhUvn$& zrJ5Y6F-%@n(Zx8tqFX8dWg4ZBvAqGyo-<*#*M!Q=I~{Pi|m)!{*< zN5>J)w108%DEMF>O1HLRQL_uRZXJ2#VVA&smS5j5@%i1IxZ~9(+|GlVE9q>Nm1Z=M z_creFzFlI*8+5YwC{GKW+DbX5_j<5;Pakgh^$FbaVk2(<$brvm)NLe`z6vArO=jG| zdxAO;nnhWZPK*E!CY}3u9lbsrDbVmCpBWDEh`gl&a0ns11UGp6q-W(<+8sJ6tKAPF zjF`lZyNK)IJ1Fcu3S4X4%M-FMcX@GVs~fkty;xdngXc4o@$Nl!_`~g!@hG3>e{^Xj zUij*CoVchOmSQXHW(_7G;4vF;xWbH$H&o%tyQgF8XD6YL4|+8nUM%Nf#nmkiT+^c? zhYy2qyPbHd)r$j1dr^I$7whS;bDcmTXIeEgFN45m=^=kj=f9`li@O~@T*V!QoR!7c z{>907iu=5e-CB!(<2v>kI{J3X-@*sXTsN?=(~VE^f%Nknkau(4e-C-yt3aB26;xX3 zs$x2-D!T`OAGF7p*|s{}oWVR5T>NrzkU4obYTw<76Fdz)z`T=0w-AD2GIf>*+AWJU zybsb~LI)jsKY-Wikgsv3dy6yPmSPLu$uZ&$-u^f8cD{-0#y9xTw`D~M-v9Ju9DM40 zG~72E{p*WiDglaFC*PuRi68(A;43r3y`}`7`fgM{c^WGpJ&7w@oScwW{!rxaJJuM0{%?hpC->=vHeH=03P!JuXg+J(dHf~N9OjVU>2p# z;=pc6iFDcR&_c+*V$^eM>Q$c^Kbn_=2XCywPj0KhFK?NGpMSC%|8j9Del*{XNAoRs zUUy>)t#XiPBUC5ScTqrRFDo*mkWRqmGBlF`rhGH(eQuNYf z-B&qGs266u-9y)}JqfcJEZk&rE^mb2adO zwGR6Kngi{B&WDB0kw2{nrL@WT*hn0SC+teZ3Ubhz^>0$!F>ny{XFaZ^(@H$J{S1zLI}m@_sd~=>oStWt;ElfL>!7T5Cvb%xy&PYE~*D(*7Qk0VwDyZ#DVo_8`grhl+b*B<)yGuDs9n*@Z z%4auYA+G~<7ci~Ls*D1Kyv^Iy%*>g<-0MZ{DJRx)$KwX>L)T8vMZ@h=u<1*6IB`oI za*8aN$GQPNinnSjx7-Bx&~fYy{-~vyi?2%)MZ-%9>KAa zQSqEYx>5;4Ap$Tk?FR~BKoQ^{plV>KL8@e^WuDSs4OaCqIEUAv^q$82GQv)%2S$xf zEtpP!$V@9?^@z=(4PooYRPe8dVSo52Y9Bs?6%QT6#Zhr6EX_LBy^vTGEAgo}Q96f2*o$C8hGF|EgoA{{Vsjhw@siZVXLP3~}G@@Xfkc6Xs>Q!C~? zbsQ^xbP(&wGr&)!Ra-0m^%xfML2J&NZK&PTiAe#x*MTXoHe=pn$FVA?-o+0erXHcO z?xDlD@S($U)x!s|l66Ai0_H1z0bMWTwL-AYO16NU{`iN7u%2=*`~68wt9L=I?{nBm z%BdNpK8*5Tnff-OaSWD03rno1RH=%?62(v;rTAR~a$h`!nJ+bA?aR%$HWT1h*tLId z##PUq#+5HM;F5h^Si~KLO78y}15(qujofRl{-_)0zuJPUlai|?gkFuzQwXKA%5M~@ zw?z}K{!25~?Cr&zem5$qYXPC|kjeHW*^CZj;J>4V7|c-$DwiF+Okc!pBvYFQ1w5pv zYIkF5roi=a9owA3wrhHPC~-^J*a5*hYn-Wbxo2BJnd*qdWphQ)OO*w~8G$xQ`%vFH zZf92Z`B3DLP_wggW_6EM{S6F!<81o`)C%t0;X1PC!6^(X_6;wZxQf#P%7(#+vwBL& zl^iK$m>tZNS_Z?kRkyKuwy0fJW}^SO+^aKN`TQgtPkU$>6Os=tl*ZKe;?YzJ`3DynH+~9u%3t_x*`j5XmuH-Mk2*z%YzZ8=0hWs`^aKP z+z{A7XBz;RP7B12xaCSx4%#EBHbd6eu#-#0kLlE>JRWpWCkLUNn$b87GP>Nfg`X(M zq5aos_!5$*Ztc1m@6xG%%`LMBM}l+XsJvk`Iv(VVGXTl-SpY#Dc&~a;#R|jpWmzoO zoG2a~Nk>~g41wQzjo2n^IK>X_Ce(>x3~oWnaT=6z3K?){;O#Z&oxTFU zVq%6KG{i(S&Mh!7L64UiT1lH>gO5Rz8P@RZX)b754oYUTeyLh-#i8REG#Q6<6Qscw z&<8KrXXC`72L&D#jnOnZN{;c6ahBVP&a8SNWez51B02r1OD9Ynxz0f$yr z@G{fs7U*+&;NpdsWLk~^_SyL;{K*`s->BtFDJ{eh1J;=caatgp@l+?o$?BXWr~erV z>vvYeUT%ifq`^p=GGJ(zL)p>|ps!0qSFesfj}Kl=K+7>Ax5|P^RwE|2xKP#w*k1?y zza%D8F##F34RjfQowL!-3D`lc5)4g%D!|2pebKHq#j~>IN|8Wc#ymlIMmjLS5$Ld$e>Njg@<_-fHCf`5Xk8xQx z%QnXLk(p^aA583ZhZ1!AFgP1VRgS73%gu6uf>U(oH-!50004vNkl%#g*7ye6q zAMWV(;xey}Iw?6r3wZnvttM$YwR$tlyJasN9xqNBHS9EKcvI>)>C$28^Sii3u ztGc{c;`ZS@`lpS4ddjZh9lHUWha6ftwL;AXxTjh0(PT58t1#o=xOU!1qT@cm!0Ekq zUk_GpYQa?-TX5r>t=RBR8$L6E@n!>&!9J72+IpM*vSkpl`psLUf3ppr+SG>YUv0&e zANOE6eX)ifr1GBN~{{sL3|Nn=kg|Ywu00v1!K~w_(;B9!$ TyC`mK00000NkvXXu0mjfU_6G8 literal 0 HcmV?d00001 diff --git a/public/favicon/favicon-16x16.png b/public/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb3fbf97054e1b99af91c204113b1a818628214 GIT binary patch literal 822 zcmV-61Ihe}P)+Hw93V#>H*zrz%`r11#tQz3_ z13tcx<>Rvb?Yb&3!3@H}nxmLE0`t+^EC~k{uGvZe=vAAX%UpN~JuuyrL1E`BWPMF$& zmN4^mi7U}YqG3dY$KF|$0Av^=&!-)pcFwIF)Egj6&AM>LVe#W68%4BKBxI`0%|A$44Cq*&5pmBl$z1~Kn(qQRX zT-FR*9cWGc2yPi4U(!z|GAo zs5{@sbt7R^Y;*CIjvTr#8j$=f#zJmVG9Y8o_lq4vbC`cWN4=9v^kjIRy`L7){&5DK z!*kplVhY4wlw_ha8>V6v*04%@Id_*E&dekPcNip!O{8FEve;yj7zNWDaF+yhc1eJ< zOZ;N}oSm`;yMF@!0RR7{%8(`i000I_L_t&o00q5mQ*I06y8r+H07*qoM6N<$g7i># ARsaA1 literal 0 HcmV?d00001 diff --git a/public/favicon/favicon-32x32.png b/public/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..4d32c59bb25b88c6cd5f9b180367ebdd2d031b05 GIT binary patch literal 1982 zcmV;v2SNCWP)QNXrnDkl&6-q%fQf-UrT#k=%uMWew24>y{fj8!^0 zMyF@RU)V%X-r7McE>QsK0?gKgKXlTflcQ+h#KYSLuyb2KcD{8QZ;x7dK>1OxG7W4G z*P36|n>f{jbHH)25)&J+@WAJzxQW-rB^zxfU$B{OJ#ZFpK&dIABAkeYRF6j3Vr%up zT|a3>cXQZ=86l&^naA}!(Ns?~qCOiMM{lwKW_uEDM+WjliO#iNnQ~0iZG+lIowYk?WJvfXFBZTgJ zKb}g14^L(C>$3DR+`Mw8Iw=z%7s<1a)?{E!?L2%gUwtIWli=9|d<1DOOzR}uf9gE` zA~AueLkVQ=7(%~r{s;iu7HU9bXAn`o?Lc@MY|7WZYdKH*WE(x{>%6RuF%|S#m0ujceOPdR`09YvsJ@S+uP` zfu91Y+i_KndgG4S_!LgFOo)q-+s$Hm6m#Z>v1tKgeh8a{C#`5MA}~2@Q*q_yKXUiY zC>|MCH`;_!_xODZV}0XzQ}NTwz5)xpH>5(oiQrZ@3nzbnCAJ7wd8}|3I#%Z7l+hNW zyB1sO%JAl*=}@NlHB7T{QU0eZqS5q;(pEaUGLzI;fwS$WuWy;9>zfr+_cFjGiLe@7z)U}+#SN+_K2!!kAOi8 zwqexl);{yEvAe3(uMUl1O3yhgg{Ku~VCyU8>aa)BXRc2`J_`wm4K|}P*n;f_%Gjvu zWBZSjF>DV-$;2Hk+=5p&AEn}*eWAXj@WBU)<42g}tM=osU0**VaAH!k&t0v`0CwxfVTxQ-D(r z2Og_XryiZB8VoGQitlo(VPi6`G~ZaR8Xlf!9X~yRU|$0BkZSgvLcDZunKc0LnM0au zg#)Gl`O(+D@}w!PBn3WKBczW~x;&g@A329*9L;3to?&6IXBgYXkvy^bbvHyWZRvo# ze_G@ZOj}9Q5g|IUrj7Df$LSaHpV3K48rfX3e|tM9DDB z9YrxGptlfN$>0I|M5?@r77YQf9vP-px6GhG)w{HGVLKI6#>ijUNq$*KChh4%2j8^u zTpvEZIuE~G{0^R!?|mfKhiSa5A;6^9P$@SAR7LH`@^<|B>TE3Jce%SXprX6`RZVFQ z-9@8#uq=T!xg&UJMLVtg*?aV-&l9Ne0d2R;z_OQrq#En%m2FmYO9Yp~8?ehGq?r>i zBm0Ek?V)SyV)XQC#x;4kZE663v}Zk|F~S9i_o-8oS&VCE2j7{?|XU3zAOt1 zX6B;m2Su1Ww-6sz=MAtjxYWhX2-f&^?#L`;P8f zooC-u%l=BuQ*o~^JZ(KEU-a8L>HdHZ*L?{90RR6-!OiIa000I_L_t&o0E=!9)+Srm QPyhe`07*qoM6N<$g54*=xBvhE literal 0 HcmV?d00001 diff --git a/public/favicon/favicon.ico b/public/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8786e4f756111a4cb1631ff777c7a3e2e04d339b GIT binary patch literal 15406 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 C{76Xv literal 0 HcmV?d00001 diff --git a/public/favicon/site.webmanifest b/public/favicon/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/favicon/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 8c731dc..94b09fe 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -25,6 +25,8 @@ import Contacts from "./components/contacts/Contacts"; import TransactionSentSuccess from "./components/process/CompletionScreen/TransactionSentSuccess"; import CompletionScreen from "./components/client/CompletionScreen"; import SessionExpired from "./components/client/SessionExpired"; + +import ExpiredPage from "./components/ExpiredPage"; const App = () => { return ( @@ -113,8 +115,10 @@ const App = () => { } /> } /> - } /> - } /> + } /> + } /> + + } /> {/* Links work wothout Login */} diff --git a/src/components/ExpiredPage.tsx b/src/components/ExpiredPage.tsx new file mode 100644 index 0000000..516bd11 --- /dev/null +++ b/src/components/ExpiredPage.tsx @@ -0,0 +1,72 @@ +"use client" + +import { FiClock } from "react-icons/fi" +import { Link } from "react-router-dom" + +export interface ExpiredPageProps { + title?: string + message?: string + actionLabel?: string + actionHref?: string + onAction?: () => void + secondaryLabel?: string + secondaryHref?: string +} + +export default function ExpiredPage({ + title = "Link expired", + message = "This link has expired or is no longer valid. Request a new one to continue.", + actionLabel = "Go back home", + actionHref = "/", + onAction, + secondaryLabel, + secondaryHref, +}: ExpiredPageProps) { + return ( +
+
+
+ {/* Decorative icon */} +
+ +
+

+ {title} +

+

{message}

+
+ +
+ {onAction ? ( + // Primary button (handler) + + ) : ( + // Primary button (link) + + {actionLabel} + + )} + + {secondaryHref && secondaryLabel ? ( + + {secondaryLabel} + + ) : null} +
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/accounts/Account.tsx b/src/components/accounts/Account.tsx index 333deec..acd414a 100644 --- a/src/components/accounts/Account.tsx +++ b/src/components/accounts/Account.tsx @@ -12,6 +12,7 @@ import { CgSandClock } from "react-icons/cg"; import TransactionDataTable from "./TransactionDataTable"; import { useSelector } from "react-redux"; import { RootState } from "../../store/store"; +import { RiDraftLine } from "react-icons/ri"; interface Transaction { id: number; @@ -45,15 +46,25 @@ const Account = () => { shadowColor: "shadow-yellow-100", navigateTo: "/transactions/waiting_for_response" }, + // { + // title: "Expiring Soon", + // count: data.expiring || 0, + // icon: , + // iconBg: "bg-red-100 border-red-200", + // textColor: "text-red-600", + // gradient: "bg-white", + // shadowColor: "shadow-red-100", + // navigateTo: "/transactions/expiring_soon" + // }, { - title: "Expiring Soon", - count: data.expiring || 0, - icon: , - iconBg: "bg-red-100 border-red-200", - textColor: "text-red-600", + title: "Draft", + count: data.draft || 0, + icon: , + iconBg: "bg-indigo-100 border-indigo-200", + textColor: "text-indigo-600", gradient: "bg-white", - shadowColor: "shadow-red-100", - navigateTo: "/transactions/expiring_soon" + shadowColor: "shadow-indigo-100", + navigateTo: "/transactions/draft" }, { title: "Completed", @@ -185,17 +196,17 @@ const Account = () => { } let res = await api.post(`/api/v1/accounts/${data.i_accountName}/invite`, payloadInvite) if (res?.data) { - toast.success("Invite Sent Successfully...!", { - position: "top-center", - autoClose: 1500, - hideProgressBar: false, - closeOnClick: false, - pauseOnHover: true, - draggable: true, - progress: undefined, - theme: "light", - transition: Bounce, - }); + // toast.success("Invite Sent Successfully...!", { + // position: "top-center", + // autoClose: 1500, + // hideProgressBar: false, + // closeOnClick: false, + // pauseOnHover: true, + // draggable: true, + // progress: undefined, + // theme: "light", + // transition: Bounce, + // }); await fetchTransactions() setIsModalOpen(false); } diff --git a/src/components/accounts/Accounts.tsx b/src/components/accounts/Accounts.tsx index ddca8a1..0eaf64f 100644 --- a/src/components/accounts/Accounts.tsx +++ b/src/components/accounts/Accounts.tsx @@ -62,17 +62,17 @@ const Accounts = () => { } let res = await api.post(`/api/v1/user/accounts`, payloadAccount) if (res?.data) { - toast.success("Account Add Successfully...!", { - position: "top-center", - autoClose: 5000, - hideProgressBar: false, - closeOnClick: false, - pauseOnHover: true, - draggable: true, - progress: undefined, - theme: "light", - transition: Bounce, - }); + // toast.success("Account Add Successfully...!", { + // position: "top-center", + // autoClose: 5000, + // hideProgressBar: false, + // closeOnClick: false, + // pauseOnHover: true, + // draggable: true, + // progress: undefined, + // theme: "light", + // transition: Bounce, + // }); await fetchAccounts() setIsModalOpen(false); } diff --git a/src/components/accounts/DownloadDocument.tsx b/src/components/accounts/DownloadDocument.tsx index 878bb6b..5b8ee86 100644 --- a/src/components/accounts/DownloadDocument.tsx +++ b/src/components/accounts/DownloadDocument.tsx @@ -40,15 +40,15 @@ const DownloadDocument: React.FC = ({ showMenu, setShowMenu Choose file to download
diff --git a/src/components/accounts/TransactionDataTable.tsx b/src/components/accounts/TransactionDataTable.tsx index 31e6235..09cf9b1 100644 --- a/src/components/accounts/TransactionDataTable.tsx +++ b/src/components/accounts/TransactionDataTable.tsx @@ -52,7 +52,7 @@ const TransactionDataTable = ({ activeAccountId }) => { let addParams = `?sortBy=createdAt desc&page=${page}&size=${Math.min(size, 30)}` switch(filter) { case "action_required": - addParams = addParams+"&filter=inbox" + addParams = addParams+"&filter=inbox&status=SENT" break; case "waiting_for_response": addParams = addParams+"&status=sent" @@ -61,7 +61,10 @@ const TransactionDataTable = ({ activeAccountId }) => { addParams = addParams+"&filter=inbox" break; case "completed": - addParams = addParams+"&status=completed&filter=completed" + addParams = addParams+"&filter=completed" + break; + case "draft": + addParams = addParams+"&filter=draft" break; default: break; diff --git a/src/components/auth/UsertAuthUI.tsx b/src/components/auth/UsertAuthUI.tsx index 202d9bc..67ec3b0 100644 --- a/src/components/auth/UsertAuthUI.tsx +++ b/src/components/auth/UsertAuthUI.tsx @@ -8,6 +8,7 @@ import { AppDispatch } from "../../store/store"; import { fetchUserDetails } from "../../store/slices/userSlice"; import LoginRegisterImg from "../../assets/illustration_1_.png"; import SMELogo from "../../assets/SMELogo.png"; +import api from "../../config/api"; function UserAuthUI() { const [isLogin, setIsLogin] = useState(true); @@ -34,6 +35,12 @@ function UserAuthUI() { // Your register API call logic here }; + useEffect(() => { + (async () => { + await api.get(`/api/v1/user/details`); + })() + }, []); + return (
{/* Left Side - Branding */} diff --git a/src/components/client/CompletionScreen.tsx b/src/components/client/CompletionScreen.tsx index d360607..581094d 100644 --- a/src/components/client/CompletionScreen.tsx +++ b/src/components/client/CompletionScreen.tsx @@ -1,5 +1,6 @@ -import React from "react"; +import React, { useEffect } from "react"; import { RiFileList3Line } from "react-icons/ri"; +import confetti from 'canvas-confetti' interface CompletionScreenProps { hit?: string; @@ -14,6 +15,40 @@ const CompletionScreen: React.FC = ({ message = "Your document is now complete and securely stored. We’ve emailed you a copy for your reference.", textColorSuccess = true }) => { + + + useEffect(() => { + + + const duration = 3000; + const end = Date.now() + duration; + + const interval = setInterval(() => { + if (Date.now() > end) { + clearInterval(interval); + return; + } + + confetti({ + particleCount: 5, // fewer particles per burst for smoothness + angle: 90, // falling straight down + spread: 30, // slight spread + startVelocity: 8, // gentle falling speed + origin: { + x: Math.random(), // random horizontal position across the top + y: 0, + }, + scalar: 1, + zIndex: 9999, + }); + }, 50); // fire every 50ms for continuous effect + + return () => clearInterval(interval); + + }, []); + + + return (
@@ -49,7 +84,7 @@ const CompletionScreen: React.FC = ({ {/* */} -

+

Access your documents anytime — just Login

diff --git a/src/components/client/SignDocument.tsx b/src/components/client/SignDocument.tsx index a3aa60c..7c7707c 100644 --- a/src/components/client/SignDocument.tsx +++ b/src/components/client/SignDocument.tsx @@ -33,6 +33,7 @@ import CompletionScreen from "./CompletionScreen"; import { GrPrint } from "react-icons/gr"; import ClientDownloadBtn from "./ClientDownloadBtn"; import ClientAuditModal from "./ClientAuditModal"; +import axiosInstance from "../../config/axiosInstance"; @@ -250,9 +251,10 @@ const SignDocument = () => { // Ping Request - START useEffect(() => { const intervalId = setInterval(() => { - axios.get( - `${import.meta.env.VITE_BASE_URI}/api/v1/session/ping?sessionId=${recipientId}`, + axiosInstance.get( + `/api/v1/session/ping?sessionId=${recipientId}`, { + maxRedirects: 5, headers: { "ngrok-skip-browser-warning": "69420" }, } ).catch(err => console.error("Ping failed:", err)); @@ -333,7 +335,6 @@ const SignDocument = () => { accepted: true, index: index } - setSignConfObj((prev) => { return ( { ...prev, [index]: { ...newObj } } @@ -343,8 +344,9 @@ const SignDocument = () => { }, [saved]) const fetchData = (isSign: boolean = false) => { - axios.get(`${import.meta.env.VITE_BASE_URI}/api/v1/sign/${recipientId}`, + axiosInstance.get(`/api/v1/sign/${recipientId}`, { + maxRedirects: 5, headers: { "ngrok-skip-browser-warning": "69420", } }) @@ -376,9 +378,35 @@ const SignDocument = () => { // setShowCompletionScreen(true) setTransparentTags(true) setHideTags(true) - } + + if (res?.data?.tagJsons && res?.data?.tagJsons.length > 0) { + for (const tag of res?.data?.tagJsons) { + if (tag.type === "SIGNATURE" && "value" in tag && tag.value) { + + axiosInstance.get(`/api/v1/sign/${recipientId}/signatures/${tag.value}`).then((res) => { + console.log(res, "line 386") + }).catch((err) => { + console.log(err) + }) + + // const [saved, setSaved] = useState({ + // signatureId: null, + // saveType: null, + // save: false, + // signature: null, + // initial: null, + // }); + + + } else if (tag.type === "INITIALS") { + + } + } + } + + dispatch(hideLoader()); } @@ -389,9 +417,28 @@ const SignDocument = () => { } const handleFormSubmit = async () => { + let newSignatureIdForCreateDefault = null; + + if (saved.isDefaultAndClicked) { + try { + const res = await axiosInstance.post(`/api/v1/sign/${recipientId}/signatures`, { + signatureId: saved.signatureId + }); + + if (res.status === 201 || res.status === 202) { + newSignatureIdForCreateDefault = res.data.id; + } + } catch (err) { + console.log(err); + } + } + const submitData: TagsSubmitDataObj = { tags: [] } + const createTagsAndSubmit: TagsSubmitDataObj = { + tags: [] + } if (!droppedItems) return; @@ -407,13 +454,13 @@ const SignDocument = () => { return; } - for (const tag of droppedItems) { + for (let tag of droppedItems) { if ("required" in tag && tag.required && ((tag.type !== "SIGNATURE" && tag.type !== "INITIALS") && (tag.value === undefined || tag.value === null || tag.value === "" || !("value" in tag)))) { // handleToastError(`${tag.label} is required`) return; } - if (tag.type === "SIGNATURE" || tag.type === "INITIALS") { + if ("id" in tag && (tag.type === "SIGNATURE" || tag.type === "INITIALS")) { const tagData: TagSubmitData = { id: tag.id as string, type: tag.type, @@ -422,7 +469,7 @@ const SignDocument = () => { value: saved.signatureId as string } submitData.tags.push(tagData) - } else { + } else if ("id" in tag) { const tagData: TagSubmitData = { id: tag.id as string, type: tag.type, @@ -431,20 +478,49 @@ const SignDocument = () => { value: tag.value ? tag.value as string : "" } submitData.tags.push(tagData); + } else if (tag.type === "SIGNATURE" || tag.type === "INITIALS") { + // Not getting recipient id in details it is undefined - not working self sign + tag.recipientId = recipient.id; + tag.documentId = Number(tag.documentId) + + createTagsAndSubmit.tags.push( + { + ...tag, + type: tag.type, + // subType: saved.saveType as string, + signed: true, + value: newSignatureIdForCreateDefault as string + }) + } else { + tag.recipientId = recipient.id + tag.documentId = Number(tag.documentId) + createTagsAndSubmit.tags.push( + { + ...tag, + type: tag.type, + // subType: tag.subType ? tag.subType : "", + signed: true, + value: tag.value ? tag.value as string : "" + }) } } // return; try { dispatch(showLoader("Signing ...")); - await axios.put(`${import.meta.env.VITE_BASE_URI}/api/v1/sign/${recipientId}/tags`, submitData, { headers: { "ngrok-skip-browser-warning": "69420", } }) - const signRes = await axios.post(`${import.meta.env.VITE_BASE_URI}/api/v1/sign/${recipientId}`, {}, { headers: { "ngrok-skip-browser-warning": "69420", } }) + if (submitData.tags.length) { + await axiosInstance.put(`/api/v1/sign/${recipientId}/tags`, submitData, { headers: { "ngrok-skip-browser-warning": "69420", } }) + } else if (createTagsAndSubmit.tags.length) { + await axiosInstance.post(`/api/v1/sign/${recipientId}/tags`, createTagsAndSubmit, { headers: { "ngrok-skip-browser-warning": "69420", } }) + } + + const signRes = await axiosInstance.post(`/api/v1/sign/${recipientId}`, {}, { headers: { "ngrok-skip-browser-warning": "69420", } }) dispatch(hideLoader()); if (signRes.status === 200) { dispatch(hideLoader()); setTransparentTags(true) - setShowConfetti(true) + // setShowConfetti(true) // setShowCompletionScreen(true) setSelectedTag(null) // navigate("/transaction-complete") @@ -548,7 +624,21 @@ const SignDocument = () => { useEffect(() => { const allRequiredFields = droppedItems.filter((item, idx) => { if (!item.required) return false - if ((item.required && item.value && item.type != "SIGNATURE" && item.type != "INITIALS") || (idx in signConfObj && saved.save)) return false + if ((item.required && item.value && item.type != "SIGNATURE" && item.type != "INITIALS") || + + + ( + (item.id !== null && item.id !== undefined && item.id !== "") + ? ( + (`${item.id}`) in signConfObj && signConfObj[`${item.id}`].accepted + ) : ( + (`${idx}`) in signConfObj && signConfObj[`${idx}`].accepted + ) + ) + + + + ) return false return true }) @@ -558,7 +648,7 @@ const SignDocument = () => { }, 0) setHorizontalFormLoader({ requiredFilled: (totalRequiredFields - allRequiredFields.length), totalRequired: totalRequiredFields }) - setRequiredFilled(allRequiredFields.length ? false : true) + setRequiredFilled(allRequiredFields.length || !droppedItems.length ? false : true) }, [droppedItems, signConfObj]) @@ -663,7 +753,7 @@ const SignDocument = () => { const handleDeclineConfirm = async (reason: string, comments: string) => { try { - await axios.post(`${import.meta.env.VITE_BASE_URI}/api/v1/sign/${recipientId}/decline`, { reason: reason + ", " + comments }); + await axiosInstance.post(`/api/v1/sign/${recipientId}/decline`, { reason: reason + ", " + comments }); setSignerConsent((prev) => ({ ...prev, decline: true })); setRecSignStatus("DECLINED"); // setShowCompletionScreen(true); @@ -673,7 +763,7 @@ const SignDocument = () => { } const handleReassignConfirm = (data: { firstName: string; lastName: string; email: string; message: string }) => { - axios.post(`${import.meta.env.VITE_BASE_URI}/api/v1/sign/${recipientId}/reassign`, { + axiosInstance.post(`/api/v1/sign/${recipientId}/reassign`, { name: data.firstName ? data.firstName + " " + data.lastName : data.lastName, email: data.email, message: data.message, @@ -845,77 +935,27 @@ const SignDocument = () => { transactionId={"1"} /> - {!transparentTags && recipient?.type !== "CC" && <> -
-

By Signing I agree Sign Made Easy Terms & Conditions.

- {/*
- handleTagNavClick("P")} - className="bg-[var(--mainPrimaryBtn)] p-1 text-2xl text-white rounded-md" /> -
- {focusElement?.navigationOrder} - / - {droppedItems.length} - Fields -
- handleTagNavClick("N")} - className="bg-[var(--mainPrimaryBtn)] p-1 text-2xl text-white rounded-md" /> -
*/} -
- {/*

Sign

*/} - -
- {/* FIT - START */} -
setIsFitDd(false)} - > -
setIsFitDd(!isFitDd)} - className='bg-white flex items-center gap-1 cursor-pointer text-xs px-2 py-1 rounded-sm ml-2'> -

Fit

- -
- - {isFitDd &&
- {fitObj.map((val, indx) => { - return (
setSelFitIndx(indx)} - className='flex z-50 items-center justify-between gap-2 w-[70px] p-2 text-xs cursor-default hover:bg-slate-100'> -
-

{val.label}

- {selFitIndx === indx && } -
-
) - }) - } -
} -
- {/* FIT - END */} -
-
- } - - - {!transparentTags && recipient?.type !== "CC" && <> -
+ {!transparentTags && recipient?.type !== "CC" && ( +

All Set to Wrap This Up?

-

You've completed the required fields. Review your work, then select Finish.

+

+ You've completed the required fields. Review your work, then select Finish. +

+ disabled={!requiredFilled} + className="font-semibold text-sm px-8 py-2 bg-slate-100 rounded-md text-[var(--primary)] cursor-pointer" + > + Finish +
- } + )}
@@ -944,13 +984,13 @@ const SignDocument = () => { {/* Document Container Start */} -
+
{/* Left Side pages start */} {/*
*/}
+ className={`absolute w-[220px] left-0 top-[42px] border-r-2 sm:border-none border-slate-200 z-10 sm:static sm:w-auto sm:col-span-2 h-full p-4 overflow-y-auto ${recipient?.type !== "CC" ? "bg-white" : ""} ${!provideTags && isFields ? "hidden" : ""}`}> {!transparentTags &&
@@ -1017,13 +1057,13 @@ const SignDocument = () => { style={{ "width": page.width, "height": page.height, "maxWidth": "100%", "maxHeight": "100%" }} draggable="false" // onLoad={(imgElem) => { - // setPageScales((prev) => ({ - // ...prev, - // [page.index]: { - // x: imgElem.clientWidth / page.width, - // y: imgElem.clientHeight / page.height, - // }, - // })); + // setPageScales((prev) => ({ + // ...prev, + // [page.index]: { + // x: imgElem.clientWidth / page.width, + // y: imgElem.clientHeight / page.height, + // }, + // })); // }} width={page.width} height={page.height} @@ -1182,6 +1222,67 @@ const SignDocument = () => { // onConfirm={({ firstName, lastName, email, message }) => handleReassignConfirm({ firstName, lastName, email, message })} /> + + + {!transparentTags && recipient?.type !== "CC" && <> +
+

By Signing I agree Sign Made Easy Terms & Conditions.

+ {/*
+ handleTagNavClick("P")} + className="bg-[var(--mainPrimaryBtn)] p-1 text-2xl text-white rounded-md" /> +
+ {focusElement?.navigationOrder} + / + {droppedItems.length} + Fields +
+ handleTagNavClick("N")} + className="bg-[var(--mainPrimaryBtn)] p-1 text-2xl text-white rounded-md" /> +
*/} +
+ {/*

Sign

*/} + +
+ {/* FIT - START */} +
setIsFitDd(false)} + > +
setIsFitDd(!isFitDd)} + className='bg-white flex items-center gap-1 cursor-pointer text-xs px-2 py-1 rounded-sm ml-2'> +

Fit

+ +
+ + {isFitDd &&
+ {fitObj.map((val, indx) => { + return (
setSelFitIndx(indx)} + className='flex z-50 items-center justify-between gap-2 w-[70px] p-2 text-xs cursor-default hover:bg-slate-100'> +
+

{val.label}

+ {selFitIndx === indx && } +
+
) + }) + } +
} +
+ {/* FIT - END */} +
+
+ } + +
) } diff --git a/src/components/client/TagsCon.tsx b/src/components/client/TagsCon.tsx index 192a64f..898ad82 100644 --- a/src/components/client/TagsCon.tsx +++ b/src/components/client/TagsCon.tsx @@ -238,8 +238,8 @@ const TagsCon: React.FC = ({ // }); } - const handleSignClick = async (index: number, id: number) => { - + const handleSignClick = async (index: number, id: number | undefined) => { + id = (id !== undefined && id !== null) ? id : index setSignTagId(id) if (saved.save) { if (saved.isDefaultAndClicked) { @@ -256,15 +256,15 @@ const TagsCon: React.FC = ({ } - if (index in signConfObj) { + if (id in signConfObj) { setOpenSign(true); return }; setSignConfObj({ ...signConfObj, - [index]: { + [id]: { accepted: true, - index: index + index: id } }) return @@ -279,9 +279,9 @@ const TagsCon: React.FC = ({ // }) // }) const newObj = { - [index]: { + [id]: { "accepted": false, - index: index + index: id } } setSignConfObj({ ...newObj }) @@ -302,10 +302,12 @@ const TagsCon: React.FC = ({ } + console.log(signConfObj, "Line 305") + return ( <> {currDocTags.map((item, index) => { - if (item.pageIndex !== pageIndex || item.documentId != documentId) return <>; + if (item.pageIndex !== pageIndex || Number(item.documentId) !== Number(documentId)) return <>; console.log('pageWidth:', pageWidth, 'computed left:', (item.dimensions.left / pageWidth) * 100); return (
= ({ > {/* */} { - (!transparentTags && !hideTags && !(saved.save && (index in signConfObj && signConfObj[index].accepted))) ? ( + (!transparentTags && !hideTags && !(saved.save && + ( + (item.id !== null && item.id !== undefined && item.id !== "") + ? ( + (`${item.id}`) in signConfObj && signConfObj[`${item.id}`].accepted + ) : ( + (`${index}`) in signConfObj && signConfObj[`${index}`].accepted + ) + ) + )) ? ( ) : saved.saveType === "SELECT" ? ( <>{saved.fullName} @@ -647,7 +658,16 @@ const TagsCon: React.FC = ({ 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"}`} // style={{ height: item.dimensions.height + "px" }} > - {((!transparentTags && !hideTags) && !(saved.save && (index in signConfObj) && signConfObj[index].accepted)) ? + {((!transparentTags && !hideTags) && !(saved.save && + ( + (item.id !== null && item.id !== undefined && item.id !== "") + ? ( + (`${item.id}`) in signConfObj && signConfObj[`${item.id}`].accepted + ) : ( + (`${index}`) in signConfObj && signConfObj[`${index}`].accepted + ) + ) + )) ? : { shadowColor: "shadow-yellow-100", navigateTo: "/transactions/waiting_for_response" }, + // { + // title: "Expiring Soon", + // count: data.expiring || 0, + // icon: , + // iconBg: "bg-red-100 border-red-200", + // textColor: "text-red-600", + // gradient: "bg-white", + // shadowColor: "shadow-red-100", + // navigateTo: "/transactions/expiring_soon" + // }, { - title: "Expiring Soon", - count: data.expiring || 0, - icon: , - iconBg: "bg-red-100 border-red-200", - textColor: "text-red-600", + title: "Draft", + count: data.draft || 0, + icon: , + iconBg: "bg-indigo-100 border-indigo-200", + textColor: "text-indigo-600", gradient: "bg-white", - shadowColor: "shadow-red-100", - navigateTo: "/transactions/expiring_soon" + shadowColor: "shadow-indigo-100", + navigateTo: "/transactions/draft" }, { title: "Completed", diff --git a/src/components/process/processStepOne/RecipientAddCard.tsx b/src/components/process/processStepOne/RecipientAddCard.tsx index cefc90f..13c41f3 100644 --- a/src/components/process/processStepOne/RecipientAddCard.tsx +++ b/src/components/process/processStepOne/RecipientAddCard.tsx @@ -352,11 +352,14 @@ const RecipientAddCard = ({ transactionTemplateToggle, editRecipient, editCase, document.addEventListener("mousedown", handleClickOutside); document.addEventListener("focusin", handleClickOutside); // Also handles tabbing out + handleFocus("firstName"); + setOpenContactModal(false) return () => { document.removeEventListener("mousedown", handleClickOutside); document.removeEventListener("focusin", handleClickOutside); }; + }, []); diff --git a/src/components/process/processStepTwo/DocumentContainer.tsx b/src/components/process/processStepTwo/DocumentContainer.tsx index 5c788f5..124c0ca 100644 --- a/src/components/process/processStepTwo/DocumentContainer.tsx +++ b/src/components/process/processStepTwo/DocumentContainer.tsx @@ -282,8 +282,25 @@ const DocumentContainer: React.FC = ({ transactionSaving // if (!field) return; // If not found, exit const dropZone = event.currentTarget.getBoundingClientRect(); - const x = event.clientX - dropZone.left - dragElemData.offsetX; - const y = event.clientY - dropZone.top - dragElemData.offsetY; + let x = event.clientX - dropZone.left - dragElemData.offsetX; + let y = event.clientY - dropZone.top - dragElemData.offsetY; + + // Handling Drop Over Right + if(dropZone.width < x + dragElemData.width) { + x -= (x + dragElemData.width) - dropZone.width; + } + // Handling Drop Over Bottom + if(dropZone.height < y + dragElemData.height) { + y -= (y + dragElemData.height) - dropZone.height; + } + // Handling Drop Over Left + if(x < 0) { + x = 0; + } + // Handling Drop Over Top + if(y < 0) { + y = 0; + } const key = `${docId}_${pageIndex}`; // const IconComponent = typeToIconMap[field.type] || ; diff --git a/src/components/process/processStepTwo/DroppedItemsTagsCon.tsx b/src/components/process/processStepTwo/DroppedItemsTagsCon.tsx index 2d948fb..0ec7b0d 100644 --- a/src/components/process/processStepTwo/DroppedItemsTagsCon.tsx +++ b/src/components/process/processStepTwo/DroppedItemsTagsCon.tsx @@ -284,9 +284,21 @@ const DroppedItemsTagsCon = forwardRef(({ const handleMouseMove = (event: MouseEvent) => { + + const dropZone: DOMRect = targetContainer?.getBoundingClientRect() as DOMRect; + const droppedElemRect: DOMRect = targetElement?.getBoundingClientRect() as DOMRect; + + + + + + console.log(dropZone, "dropZone Line 309") + console.log(droppedElemRect, "rect Line 309") + let newWidth = startWidth + (event.clientX - startX); let newHeight = startHeight + (event.clientY - startY); - + + if (newHeight > 200 || newWidth > 400) { if (newHeight > 200) { newHeight = 200 @@ -296,6 +308,13 @@ const DroppedItemsTagsCon = forwardRef(({ newWidth = 400 } } + + if ((dropZone.right - (droppedElemRect.left + newWidth)) < 0) { + newWidth = startWidth + } + if ((dropZone.bottom - (droppedElemRect.bottom + newHeight)) < 0) { + newHeight = startHeight + } // Apply the new width & height setDroppedItems({ diff --git a/src/components/process/processStepTwo/FieldList.tsx b/src/components/process/processStepTwo/FieldList.tsx index c3ca6ff..9927641 100644 --- a/src/components/process/processStepTwo/FieldList.tsx +++ b/src/components/process/processStepTwo/FieldList.tsx @@ -153,6 +153,122 @@ const FieldList: React.FC = ({ color, recipientId, recipientIndx }) .catch((err) => { console.error(err.message); + let data = [ + { + "editable": true, + "required": false, + "navigationOrder": 1, + "type": "RADIO" + }, + { + "editable": true, + "required": true, + "navigationOrder": 10, + "type": "SIGNATURE" + }, + { + "editable": true, + "required": false, + "navigationOrder": 9, + "type": "STAMP" + }, + { + "editable": true, + "required": false, + "navigationOrder": 9, + "type": "NAME", + "lastName": true, + "firstName": true + }, + { + "editable": true, + "required": false, + "navigationOrder": 9, + "type": "TEXT", + "maxLength": 256, + "minLength": 0, + "readOnly": false, + "multiLine": false, + "regex": [] + }, + { + "editable": true, + "required": false, + "navigationOrder": 1, + "type": "TEMPORAL", + "format": "date", + "dateFormat": "MM/dd/YYYY", + "currentTimeStamp": true + }, + { + "editable": true, + "required": false, + "navigationOrder": 1, + "type": "SELECT", + "multiSelect": false + }, + { + "editable": true, + "required": false, + "navigationOrder": 1, + "type": "ATTACHMENT" + }, + { + "editable": true, + "required": false, + "navigationOrder": 9, + "type": "NUMBER", + "decimalPlace": 0 + }, + { + "editable": true, + "required": false, + "navigationOrder": 1, + "type": "COMPANY" + }, + { + "editable": true, + "required": false, + "navigationOrder": 9, + "type": "CHECKBOX" + }, + { + "editable": true, + "required": false, + "navigationOrder": 8, + "type": "EMAIL" + }, + { + "editable": true, + "required": true, + "navigationOrder": 10, + "type": "INITIALS" + } + ] + + const priorityOrder = ['SIGNATURE', 'INITIALS', 'STAMP']; + + data = data.filter((obj, indx) => { + if (obj.type === "STAMP" || obj.type === "RADIO" || obj.type === "CHECKBOX" || obj.type === "ATTACHMENT") return false + return true + }); + + // Separate prioritized and other tags + const prioritized = data.filter((tag: any) => + priorityOrder.includes(tag.type) + ); + + const others = data + .filter((tag: any) => !priorityOrder.includes(tag.type)) + .sort((a: any, b: any) => a.type.localeCompare(b.type)); + + // Maintain the custom order of priority + const prioritizedSorted = priorityOrder + .map((type) => prioritized.find((tag: any) => tag.type === type)) + .filter(Boolean); // remove undefined in case not found + + + setTagsData([...prioritizedSorted, ...others]); }); }, []); diff --git a/src/components/process/processStepTwo/NavTwo.tsx b/src/components/process/processStepTwo/NavTwo.tsx index 5718da8..a5f1881 100644 --- a/src/components/process/processStepTwo/NavTwo.tsx +++ b/src/components/process/processStepTwo/NavTwo.tsx @@ -190,17 +190,17 @@ const NavTwo: React.FC = ({ } } else { navigate(`/templates`); - toast.success("Template Saved...!", { - position: "top-center", - autoClose: 1500, - hideProgressBar: false, - closeOnClick: false, - pauseOnHover: true, - draggable: true, - progress: undefined, - theme: "light", - transition: Bounce, - }); + // toast.success("Template Saved...!", { + // position: "top-center", + // autoClose: 1500, + // hideProgressBar: false, + // closeOnClick: false, + // pauseOnHover: true, + // draggable: true, + // progress: undefined, + // theme: "light", + // transition: Bounce, + // }); } }, 1000) } @@ -328,9 +328,9 @@ const NavTwo: React.FC = ({ className="absolute right-0 mt-2 w-48 rounded-md bg-white shadow-sm ring-1 ring-black/5 z-10">
- + */} - + */}
}
diff --git a/src/components/setting/Signature/AddSignatureModal.tsx b/src/components/setting/Signature/AddSignatureModal.tsx index caecc0f..9b75e0d 100644 --- a/src/components/setting/Signature/AddSignatureModal.tsx +++ b/src/components/setting/Signature/AddSignatureModal.tsx @@ -348,7 +348,7 @@ const AddSignatureModal: React.FC = ({

The maximum file size for the image is 300kb. File types supported include .png, .jpg, .jpeg

-
+
{/* Upload 1 - Full Signature */}
+ )} + + {showTemplateDeleteWarnModal.show && ( + handleDeleteClick(showTemplateDeleteWarnModal.templateId)} + /> + )} +
+ ); +}; + +export default TemplateTable; diff --git a/src/components/transactions/TransactionView.tsx b/src/components/transactions/TransactionView.tsx index 406c650..3391886 100644 --- a/src/components/transactions/TransactionView.tsx +++ b/src/components/transactions/TransactionView.tsx @@ -114,7 +114,7 @@ const TransactionView = () => { const handleNavigateToSign = (id: number) => { - signSessionRedirect(accountId, transactionId, id+"" as string) + signSessionRedirect(accountId, transactionId, id + "" as string) } const getStatusBadge = (status: string) => { @@ -202,18 +202,21 @@ const TransactionView = () => { Host: {recipient.hostEmail}

)} + {"message" in recipient &&

+ {recipient.message} +

}
{/* Right section: status and actions */} -
+ {recipient.type.toLowerCase() !== "cc" &&

{recipient.status}

- {transactionDetails.transaction.status === "SENT" && recipient.email === user.email && recipient.status !== "COMPLETED" && ( + {transactionDetails.transaction.status === "SENT" && recipient.email === user.email && recipient.status === "PENDING" && (
+
}

@@ -274,12 +277,12 @@ const TransactionView = () => {

{/* 1 of {docsD?.pages?.length} */} - - downloadDocumentUtils(accountId, transactionId, docsD.id)} size={18} /> - +

diff --git a/src/config/api.tsx b/src/config/api.tsx index fc46c37..7532c7a 100644 --- a/src/config/api.tsx +++ b/src/config/api.tsx @@ -1,10 +1,9 @@ // src/api.js import axios from "axios"; -import { redirect } from "react-router-dom"; // if using react-router -// or use your preferred navigation method const api = axios.create({ baseURL: import.meta.env.VITE_BASE_URI, + maxRedirects: 5, withCredentials: true, headers: { "Content-Type": "application/json", diff --git a/src/config/axiosInstance.tsx b/src/config/axiosInstance.tsx index 74de498..fa32d9c 100644 --- a/src/config/axiosInstance.tsx +++ b/src/config/axiosInstance.tsx @@ -1,31 +1,46 @@ -import axios from "axios"; +// api/axios.ts +import axios, { AxiosInstance } from "axios"; -export const createAxiosInstance = () => { +const defaultHeaders = { + "Content-Type": "application/json", + "ngrok-skip-browser-warning": "69420", +}; - const persistedRoot = localStorage.getItem('persist:root'); - const parsedRoot = JSON.parse(persistedRoot); +const axiosInstance: AxiosInstance = axios.create({ + baseURL: import.meta.env.VITE_BASE_URI, + withCredentials: true, + headers: defaultHeaders, + validateStatus: (status) => status >= 200 && status < 400, +}); - if(!persistedRoot || !("user" in parsedRoot)) { - return axios.create({ - baseURL: import.meta.env.VITE_BASE_URI, - withCredentials: true, - headers: { - "Content-Type": "application/json", - "ngrok-skip-browser-warning": "69420", - }, - }); + +axiosInstance.interceptors.response.use( + (response) => { + // ✅ Handle backend "soft redirects" + if (response?.data?.redirect) { + const redirectUrl = response.data.redirect; + + // Use location.replace to avoid back button returning to invalid page + window.location.replace(redirectUrl); + // OR window.location.href = redirectUrl; if you want history entry + + // Optionally return a rejected promise to stop normal handling + return Promise.reject({ redirected: true }); } - const user = JSON.parse(parsedRoot.user); - const accessToken = user.accessToken; + // Otherwise just continue as normal + return response; + }, + (error) => { + // Optionally handle backend 302 or 3xx here (if returned as error) + if (error.response?.status === 302 && error.response?.headers?.location) { + window.location.replace(error.response.headers.location); + return Promise.reject({ redirected: true }); + } - return axios.create({ - baseURL: import.meta.env.VITE_BASE_URI, - withCredentials: true, - headers: { - "ngrok-skip-browser-warning": "69420", - authorization: accessToken, + // Pass through all other errors + return Promise.reject(error); + } +); - }, - }); -}; +export default axiosInstance; diff --git a/src/store/slices/selectedDocsSlice.ts b/src/store/slices/selectedDocsSlice.ts index 73b2e9e..1075d1d 100644 --- a/src/store/slices/selectedDocsSlice.ts +++ b/src/store/slices/selectedDocsSlice.ts @@ -1,8 +1,4 @@ import { createSlice, createAsyncThunk, PayloadAction } from "@reduxjs/toolkit"; -import axios from "axios"; -import { createAxiosInstance } from "../../config/axiosInstance"; - -const axiosInstance = createAxiosInstance(); export type SignType = "self-sign" | "multiple-sign";