From 62356e7dba03d040578d53ed1ba021293fe4f9da Mon Sep 17 00:00:00 2001 From: Joseph Chalabi <100090645+chalabi2@users.noreply.github.com> Date: Mon, 6 Jan 2025 07:36:35 -0700 Subject: [PATCH] feat: mobile on desktop (#150) --------- Signed-off-by: Joseph Chalabi <100090645+chalabi2@users.noreply.github.com> Co-authored-by: Felix C. Morency <1102868+fmorency@users.noreply.github.com> --- bun.lockb | Bin 575452 -> 585124 bytes components/react/modal.tsx | 348 ++++++++++++++++++++++---- components/react/qrCode.tsx | 120 +++++++++ components/react/views/Connecting.tsx | 8 +- components/react/views/Error.tsx | 11 +- components/react/views/NotExist.tsx | 8 +- components/react/views/QRCode.tsx | 54 ---- components/react/views/QRCodeView.tsx | 199 +++++++++++++++ components/react/views/WalletList.tsx | 63 +++-- components/react/views/index.ts | 2 +- components/wallet.tsx | 40 ++- package.json | 5 +- pages/_app.tsx | 7 +- 13 files changed, 714 insertions(+), 151 deletions(-) create mode 100644 components/react/qrCode.tsx delete mode 100644 components/react/views/QRCode.tsx create mode 100644 components/react/views/QRCodeView.tsx diff --git a/bun.lockb b/bun.lockb index f11ee1b7f96a41dbe8a3a15c7837a76cdf5e94e5..4c238f9ee1d883c30b744b4b7f1bcd3c909109c0 100755 GIT binary patch delta 136248 zcmeFacX(CB`u@H5h7DQt-g^_IH+M+c5R@iJQM$A=AdrxdgciXNP(&037P>&ih6QXO z#S%rpc5LUU*s&c{?7bUB-_N~fc8ngr=lA`+*Y*DMUhK=wJ@+&1nP;APX4dS5yme*! zTi$HHp+}eGU)$~Jb=HeR4>lj$we{1V%xc^7w!<4r>bqy1S@!LMJ6o@B@I_oepE(;R zwJshxDeRL#U;)@95LmfvQJyc!tQ-h9@WR}@+=ATv!fBR|0c%P=H$O9zl8xZi;RTD* z^HU2l11+lt0uA7KS^24jnFWEIBGbWd$W^XzZsvll*~<)s!BT#KClR%X+O ziXR4Rft##+Dn!kn14@md6jJ%7AU&=8#^Q(M)AY(!6mASI0oC6f>vd`uVOkX#F|avQ^4lnTc8v;3v3AHXBOmUFD}ju^uk)L5p)8j zKod|Sots*ayJSHiFppYNaEWcWHq)*A^n!xSg7iQj3%NM+U5G5uj9yi~A9A&~Aay}* zRz@H&5ndl22TIXpsX5t!VrFcVE%;_LQ!xrxgR47?qQ>)?cL1~zinLj79 zPaqJJZ^cZS^QmpjNG`Q}4_tGc+}8NY?9_t7g>;agxu`(8XJjvi1p=SauKG!zn>#-% zBQ<|^L1yvd%msx7+u9ioPit>{IX^QsBO@z6FLlAPoYcbfxvBYc{05HFfE4(nl9|iz zKy|E4DNMceLelqlH1eUHjQk$B@>4)5;Fs&3RnVs+_Qw%dzD`4Ol7E7-z(G(ZEADLa zcfr+h7f=oSvx{-AQc!bRuy{_7d6@hTxXNt<7h7CdoS&YXkr@aqV~Erb zH0^G@GY-_M{-v8y;0sVAeHN4g<9e789kcRREY8kakkOq`w6Uid$Qp}z-LrGk2`pe% zPF7(cuX|y>oT@lIJ8MxEiP*AR);oRyG?2Gojs_IC!giROUdW^s2KM3)SaD@#P$N9p z*Er=ppcJl)T$bC}&xE0&a2C|c>&cg8uIg{fU150f$_q%;C&Q&+8*nj*!>*hLvLIG2 zjhGSlhHKrn2J3-G<4r@4gX-WGQ1veXRX+`E0K7v*p+NBl zh(oVj@pr4h)-w(N0q!7=1)Q`+1!=iV=JvBp{p_p-^QCCk zf`Y=-?CijHoL246&dtxsBB#aBK%f;o3>Hf>8uJUp4>Kn13~H{3W`)c0G6UZYF(&^A zR73B8Qs5Pf*|{011#<&|t#)->X)z;pneRgxsaXZf@Ur%28w;!lRX=@Ec5!ZgRv@r~ z3YyabTk*sw!^fV3w#dH&HTQGKmjWwB8|PaHil;5`S6?6%F2zg7nEbTN^tpZUmwVyr z@I3NsfrrPMDd{2FfY37R=4e&nhe^9p^q%wN;;e)RWVH zh(5wsLG`z2kpeu2f!uW8^0gQyGV&Eh%@zG%Fe@w$_Y;XP0u5}WAtaCz88pwwJ6 zJ6Ej*a%X1}`~rbzC%dcShSnQ*zA2WIovo!Cs65?08rLdx*7?q zB?W=Ga5dJSTD8HJwsuy*8U4~&$SqRs5DU65Dagh~me<4eR4;RBW;&w4LAXq@2h^Bv z17-8P)WW&l=Vvav#_-~m8%Ssrmw;*@cR^-hR!(Lhhk%pbef9ze1?2ZbGfjTkRHIlD zvAsF+)?iC82+BR*n{C$PqhK5OO<-GaHK_ayn}0UgObfXu2{qIR)PgLdBYDriK}C`y zpeFktpw`t76HWeej9%s6hHF~(g7UVtIcDTfS)P}*z@L}X`Li+k9;ku-2>J{8BNDY$ zG0${#6jVn?k;`S!YgO~FDOPIDGsWExspP{@{-6L=M_2A=~}Zcc8V@3%RNjl9DW zqi_vSmUsfxy8M}ZDO9l3jQB$8OX1X|S-AxaXx=jHuZ1v;QPl#^17(`AMb>3;gzgz> zffTq#(%=G9F129Uf^@c(JQ`HJ`nEp)>wlUoHzSVmO604bbjr&T<5!sW$6iPvmBxt| z8WVN~Wr2nkD}frxw^Wb?j#+#WRD*{t-fQtTP!>I{#F+Y8%d>MA;GTiNPeJ1|d8zZ6 zJhnvo_nqeOIR*Fj$36PU1wIzPOvHYE~xo_?J{GE-ndz*zQ3??QmXMIfzkt$gxobLj0`#Mn#iGq7KMRyUoDbFl$AMBLjdJ2=fvv#P zz?NVvl*eL6EN0Xqzo|C!hdiTs%Ppqi?VC)wAHgQbkAezX>DQPk zc-rPW*P5U+AJkMnVC7ptwb$o5?61Uf5^87#8H$GEx0#i2Ca972163}~=HGI?=_s}Z zUIv#13qZ9qhH~}65jUDC>j!EI8iBG*(oH5jKX()MuZLhig2v#xOo77g?wd^mL$@0X zv;#XJuLQORe_}4B=EY5=L3 z1>JRkssh)Dzq!ZYO`t6EmgP&x*8qz5A&?1YT0tyq4zv79@-;=h;8LtPsD_`4)k8t~ zNaj9csi~lr>nN}mn7H4_^U~&L%5O&hfV%5Q1Vwmb&w0nLZ?$sQ&Hs+WAeV1^X%*g(?x|@ z+48ym2T?@p|8^2;h{JYwo<`^PJ7hZEh+GlxMYx>lG`LJ!4{Qil0o8HL8DqF_lo{a< zj~d^&39h++>@m|$Y`?h;K0^`8#^RNn{qyH@1pDR*)4?uKrrHE5fV}gh>2Nh%3dhd2 z=fi8l7lBeR_GJ1+H+N6{PN9pRc8}KYRNU_=W52n!bgWjal`+UQoUYFqy!dH@OW?An z^H0;uuW7WcQ`+o{*_-}yfAb+Xq{i~ofjy;XVziCGLF4zG1edMcwGr;CxM;d4b4tU$d z;rBtwp9fVw=6Q7~Cmwm%guM`43Vs4F)(-LYNMq_v|27tgU7q|Kc^&dEJZ3t23a;=p z`8_j5N5B^FLGPP}&w#gs$K?AdFBiY_12ZMtZ9lV)n|fD_#Qri}lMhXUQz{t~j|Jsi z^*%DrH4v^j&iL3k-y~43J<{@?pr(d9+1y2Q=Jr`yn7JSWlgFY^Ec(Qv&9F~Q`ASub zO-G3cYS2KeqPbJd4D>-RMPdj3WZO|gP^N$Eb2Gxqa4ER*3p0i9p}3rP%a>*fSA!bp z_sC_@BNh)8+k$t4GS%f@n`PqPDKdiJ;8NgQP+{)CH^!8i`T2@VOAEg>WtnGyX! zz8X9R%DI}@DJlyYUpNkG#PxnL`M3XUeCH+PvW&exFAnrCGbZZ@)*&Ny#n%WfFLgk5 zbb^MY01xrqxg5)k)yv3C%U#6tSkWQ^CA0o09cW}R-uicAxfsuZYn9ak{cEE){xBnd z(&9c)8m47sWNFuK7!3MT6QY6?$jdFvOHH32m_0k2d$>R#gIn6%z8QgkQBHyBeoz+u z{)DkCY87fP^RfG!?2Ce?oq?5ufw~FB1~Mxh6g zt9nN}M zn?Na4V0qUjrrg)`Bj0@*F3U|&zeI|a(`><8o0^pK@H%C{-&MxExrWGf*F|^{Dcz- za9P}a$=uY!Cy^^0W##bmk=Fle+prUFDx@ypGKc^<-*(Uz)Li|D$u#GS2bd|@3D?|v zpe#}XYN}>}>UcCLg>!9wVQN}hYFc*Yg~So%=YW2so=QTd9SUkBUb1nv)1s#1^xW)R zGz}bsD^hnKXaZ7fle`VNBIPDf^+!=(itZm|+L@JNR>xPM4pJjP)2T;p)9qnjpen>JFt8Xo|ab(bc#BVl=_1~HTOA)BU4xk!ZZl_?!Ic84Vj5Z@( z0?HC~L6uuezBa|HL3Q+Zg^rFfilpbKch^OKGq|Skm9b{Z>WpFiOVe0`aWt&Cj5QeR z;6gf3xpWkhqLn}?aPfIYp*)LepcIPT_+K&JSoUI2?G}Nu(0E(!;o=EKFbsjF;O`Gg zNyt@UUg|QuA`qB0$tbcLRDtKl@>Lg-F3k2zgEEFhD=bH4Ejp1@Qru+Uc{5ZFJ> zn7Y?=vntwv^0gqSj%$M~&*Jh&yZ-)qRPg5+X71m!SciO_Ylh7-&d0Coeupnx zz6I3Cvs29gxIoaxB~HJQ0gtp z_YbmxTWMBn!2>n3mw{SjixwKSvq8D)O5{>+F(|ucTYM_ts80;U!2^Lu;N-Vod8bLN z+z+aOj7)x?&MF9`*@{y#-E|#W75`7aVgIzq^p{z%a8V||X7ipv_I%pkvDoOz3mn}s z=^XnTLtyR_qt|yCW*UBntJ^#6yl(~N@z*X32HJv4i~RO^MTLYsZziaLPr1MhXbfEQ zSD2cojVBO+YwKJ|19FU5e4Yc>{ExQS{z4NTZv_<{KU-ny6&C0^slcE2v}LUIl~O>r zT3Pu#0pz9?Wc$Cf1}agp4HeIzL3P*~lw&!dJo}SXro&aMjfL*L*vw$vH71(f3~J;@ zDW{p`HY-1KPUg~gE;8~>%94Oa%2-KcFm3+zfUT#mYYw1veORR83M|8 zyMwYw6HpsTRZtCnLp@pM%PS3k%JK(5DSQ{Gsoe(3A{#(W`NE6X!Blai%@_b`0@dJSn~nS)%hz3H)PP>|ieUS~Rf5tMhwE!6!_c0HFLj%>b4#z17Ci#kt?`WjBRIcH|4t1 zo?Mie=ZCcotZI!rwlSVo;y*{%T1nJ00|jfkHM_Jgo_L!v-HV{+_7Er)_JUH;zOz>T z`cTZ|8JP$LvtIg7TG>yUc3Y3YTx3 zzFSj8ph>kIrDt_#lgSN4(OgFF2Wk@X?O}i4y{2MdkCERFm!h!{e4GiC&(z;*=KOz( zc(JYYOUl)lPK8)x`xgyJ)7VRQNA{bkc@&gFT+jO!O1$4#U^`qUUt>Go_<*t4tDx3% z+Ldm#uA}$<+-*b9J=C>VlgIB_GPqvwtP5`L`|9W$Zv7>4-tafRt$bnst?q`do!z{y zO`0^{S^VxjAMFo}esu5nS07HhwpZ@+TQ@dd(ck^LYm++b^5-3xe)cC%F0V5E+T_b` zUEmJt)~n5>*S$Ka^28d4mRvOZ!yaQ6^{=+=*wKrszTfxyH4mM+<3z37+@;;d);YK; zWAB~UjGT0D%~l^=x_)PO_o;5Zn$&or-D~5#aqU|4try?%g$~OaybdCm(N z%P*PN;psE}xT!}*X8%jVn>xRl_~x6hRbR9Ej$=31tuf=eHXnAI*xHRB)45m4q^^x` z+dqAFlhZCrefh>dV<)`yd55ChI#bU2Hu&xFM+y(^__=E1OPXBTX~ac~e;m8&k$>%- z+wbl)X6JuoD9?QQknS#j{C^a1tU7m|7n z>XGzV=Ev*Ko4D`loh{xvGV|ikcO~D{VE=^9S9g3Wb5XtX9^134iu-c!p_jF-`OVG0 zRB5?o;EZnh7cEi@V{~_{ZG1Ggt22 zaOT|LrXlfh&rZDhpGRI^HFIzLkT#X$4!6&^zuVIt*STXy#>c%sWWXDd%?TH~yU!lp zq}ywUUJlIfUUcEdZww#zkHw7^Ju~g+mOGYKbALX2vb%QVaQF3*bT?{?yL&`u_unJh zxN&Fi=={;>MF(bPbs65id5hHRzsj6`)ik$%*9Ga$Z+{%zGwZdFG8T4Q_hq|x>b>kv z9x=#$ebkn{OV4>KxOe!N$(7q|>^XIPr~SzToZO@*KOJ|?L(clbMe*x5w5avyha--DML8hL4ex;GTFn$^8Y{ba%j{fik=jxZjAXT>?`hmAzn%pr0pJRsB2l2wOv8A-7~(#L0xIgGxTT9Tsoc?D)!% zKJJQ%iB4A{SD#pw(DWK^QC2i`u!dWj6?MwUQxzKb;^T-+2@uB(rbV0!V78|j5$Ac> zS>y%Xl8F(gKKqtRR&oz#MMCpxxe4>5&Rtd*=NHK%ny5%sU$yKA59{Z5DQn$e^QyQhQzD`Fo4BP@qM_58x@ACCQ#WC1G_<#=TQoK5e8i40ntIH@ z#7L-rGq-edG?d%SEdy?7<`&I}Iv+PHH#SptIw!XwRH*HxtO>?fh9&vBKi%9dofdU| zK`_>DkDi?oT*1hk#z`-MNn@Xdo^9cl&4`BTv~&|@MxC?S3XT4Uak8~AGkY@i5t!;3 zpK0Byf_K%-fb}L%CT-}JWctfEd==6&+!JLlR=%^HTa+Gk-bbimh2)gs`1bgWdth3k zvx-!C;c%&#dth>+^DQX_ILtsJZ92FKQ=(342eW4Upb-4l{bk`mr+_PhL<-iEp3Y;i zzA+a3(S0y~pfjeEu_3d*EfTu4lbcWw4L ztvlUKSR8d8L8v+mg|%0uYk7Rb>xNs#3do8$>ny`^tgq+9{B=^RTe+vQ2&Tg1QfvsD zBF+|=%uw46rbe6|-2;JhO<$B;3DbJ@y(Ih$jP;tD=+wd7Dah+dO=l`hzGOytHB8YU z><9lBUJPAS=>mznv>zDJCOo#A`L8d81y z)-|CISXRZa^C?Vv_)FdCz*;~+>sm(RVXEi19$o`W^3DG!DWj1*>GeKt(b8ymFxDC1 z9+;HqyhLg&)rj9T(jFU{U?!FWlM!lq!HI-K*eF;d-_xr14+KWSa0pC15vCp1@r`#I zY%r{vzYssRd2w#=xA-_zQAEL#*e4q{(`ScgM?%k@;TByGbvj0P(l>3*iiB20+%kj* z5spAeh$oE4v1HCP443*W-Ys1ob$Sml8ktDH9Hyq(@xFP$H0sZ+hFRh zs;|-4uybH>K1*h0X?522nFrIbYWiMP7t4%;h27w5@xdfFp%^WZ$%oJqA8MBz2uz0I zY0P91OvWT2W=3j02GeZSB9w)^!wt=mq-Jl7s49OGUwU%!F~k%9vvdUK{Hxgex?9kx zfq49XmOgfJaev04Me{dJEeK9*r`_EXI{K%t zd4t`uRZ-_&iYR{h(ZTr~W}LsIAQEbIrdzr?8lKKnC%GqzlHy2cIR)I3P4P7dr?^jr zF8yZX&vHvIiiUH^?dKodc99w+9sJ`!8BA-&U;Uxehq$E|N5iRjVinvgAvMRC5FBj>XxmEhDHo?6E2B{t{CPPT@nqyzzA8o1nnwBG+80! z2Gb+qb76zD1VfvKyG3iG&c6_7^^(mV5QjUT;jUPl7><%+e5r}yB2vljfvm*P{UhAc zOQWIBM!03bfV16%by4SPmZlo;j|R>QFqR}ra!LwS9_f~?i-yLHbQ3O%hH9VV7F`w% zXXDBf+!dE4hT=xMWtT;rb)$_j0&Xxr5`G4j=$^PNF&t(+3{c96k}_dLO6I{*{1X2l zMd00*7I`JDYTo_%3@tj(Ek(Ekp}fd{ z9tgiL=4;Ywyj!#}>fDOoYt|j_@GQ;(%}FB^rbU9maQd5tL51G&GAg~C&HS_uu9>Xu#=byj0DDMh%rhQ?u>dKM-+ z=bvxtu!0DUSHo1wUr*tu#N6a*NpU1(HRCM3rnyC4)JdBb6Q-_j}j+zivu>>EadWrtzd%d)mv{2*4&R>S_R_b%+uddc(5E@S%J2%A`5?<3f`?ld~C&f@t^xQsey8aZ*$LP&6=yb>;iRwWQ9ZmI)*8 zzy|s(m=zzlz+~a0%YD+@w9a}>$u;V+pTVKP6fp7VSt&xUVjFe&3xCCgY~FzJV} zncU+r8Jkl8e$#%To3JAq&RmG2y9e?U!&i~&=N%XqOo~&=Z(N6g6R`1OUho2DGryu; zw!_ByC3Q^v4o0Atqfd#1lM8fQ)#Kyp0=MXnsPiNOxf;uzKvJbpI+N`TB_+LZB}R4; zOzQv>u+R^|*zruAP}4`x_h3iUfmj%3s zIs}tLMa$f>-BIVUW#zVJjaDs+%}>fj@xdaubXPRw6}e@**jmZb6cING2kkCUn2;G} zlZr=jOCXn5|049s2eWKv}kL;V0tVz3z!swNd1X7(}tWgJZs!zDsL0@Ku(E0*8N z858IvtTYovN!a4Quswe=TKN*jsdi-}FQry6QnPP~IeAtI@J@$&?*#wR*eOIBp%9^m zpZj{RF@=fnXghz6TT~i#Za`@21bIk&8`jHRF(WZl^Ab1V zp{O(X60`W&YjEeqFt$#1k-JFsK`Fnj@H=Ae31Us3wHjOUhQ#nu6?uu_ z-$)Jj7vWi#xk+QgQ}Sj%P$>`2pBK7;|30Mbk#} z*ah1V32oTu7Cjyf)!gKkJ|1;0amzJiO}q#*t#E>M>TWj7JaAnB8|&+(ONDn}ehl-1 zQ;D%xS-t#~l?_usH0x}K%`^M;=dcNWo`P1&)hrY5Ko&>0t9^A|MKI1(y)wSCrwxdM zM>vnvNX5wTKS`zdkKR4D#I_+>ZT(-^QJB`R*|6$wwdYqar5IiRWaAB!rF{E_p4#dr zJQH>5T@%xSfak1$ofB&;{0wZMuRxn?%_Fht36>bk3#VKM^9LPA zs=Q_A80@@QDQC{M*q*B+Gvv?aK7o}t=XAI}_P|Yqa2|oFN#pv}Z!q4&Ntlb9Ghrjk z^R9rEM;7Nb*ue6#i z3#Y+Yo{uMnA0x%H+vADO`0d7T2%343(3b6P(TmYg*><<|#i(=cEyf(a*E+Yt&Z1@Z zMp~|VYiu7Bn+cPCrsP4`B*S>h&A81?cqtnC$8B!WOHpU|?XhvCJQNANeY;zRuFC+^M}&x2?{|ohIt}N6k?2PPgl$1HAExX%<4yJ}50d~R?=!tEcknldNAB>Ar9-kZE!{8M0 zL+9V)mc0=T-?0lXa+BXoirXFA0ko`=V5XLiOL?$A9bxZZ*pIM39jO1k6-zFKmAhK_ zFf2t~Ro>$({zjrRl2kX8<5;>T;w+IIW<2Z=%=nc2`vh!QdEQxjD|T}U?9V;%DVXMh z*t;PT&fTZjt5epUq!g3=IdVRMX_n13-;n*WxSX;f;%tMN!7HY|2$MN6AjYkJpY=yC zr44=`WBxgE8_d5R483umTlDX!Q|JCzCn*Hk@s{CO?3epsoGLjSeNRe?vGt@!oIVd2 zKVfOm-BQc&Hd=TGHr5}4f@qHiHJ3Ub=95wjw9H1m8|Gh;guf=mZ3suUPNgPnn<#Z5 z%q%KSFyTjG{oLeTNpVW}&Eu5Lh=VHD5m?xu!$z`(fBw>f=_hFZ2E|Tg`PR*kTUWTFXG$;lWH`__2ny% zxCtLcYYaVT192b_*z`y@oui!lkePlNn)4eho@y+?^hjvnAvfXUXn4gTJru1tKQa6n zscF7_h8;EmBIq5i6pT2RLrq8~UO4Z<2Kk-qT-Ewfvuk6QPvYYsayA|$aJKtk19dYL zuJafTDCMM+GC_(c5PJJDH{r8rsK?`O5wP%axAe1U-KQQmMHq%&lnC5bevYXAgxSxy zn&#M1{b^QbfGNi&!JiPO0nHXIH7$J@}SPr3y8DSTg#aq zv%ZGO4OkJgBTn?GfPV*3*9{)!(gmh9)zH7B-2;;yIsRaQPhovv=J~qC)3M;AO>-1% z0D0B?6TwE9EXRp`R(u>pjhOr5hR+zr(-Y2i4(trSpxAE9SP@Uh$3c?F;#|b}qusOC zE4`9|Tsl4LCVU$W-+(YtkA}`sQtHqgsUpuA#vPL!Wa9W(;%q-blF7KXnk) zN|{W`7=@vRuY<+A$ukq3mr3=cWn6e;BwXoV%z>M{I5Bk2zudC#qv4AXaFAs=Kdcl5 z*?Y10_b^2lxO}Vi1P2R;kd%$FIO0s{ge8DaKG3vB>(P+ta#p99Clo#EE zpQ52#UUZ9o;@217X~U zewG+MLTaS%r7d6PMNrzp$e%@=`(Z<1)%`=|&99i{N|%@IeEp|f@9QLfs3+%4U(2URO;Re<`nZ3qzWliE zb(tmSMN-3jMN97B1&0q~ox(z!KJ?1M!Km{(QaOSj14FGp@`|dULi$Hqm0HDlADgv7 z;Af}Y4Ku6zTPyeXk?@31q}+kj#L(7Hyt1ma`#lncHrmCfI(_OD#WBR3PrXvm+54%9 zQhuw>kFX@l;*AqD3g`MHoD7io4H2mC*!L&98){8vi z3t^)eb{5S4H7)!q%-^TNeZKGy)BFJJkviLy=e%|drj=*5+sK#YH$-fL_rS)J7xE74 zk?pJ4($hI_Jd7z)J=XSh6)6Gdo_p z@5>Jwj35UlPoN~>;&zyJ+sa;WCfmdJUQu0IOZ>q+Dq(5%;A?*H$|SA*qX{j!X@aBUNzutF+TE_Iz8hY$)d!ue1S5J^YJT1_txJ0ZoGgL${TA2@Mhd zSmqT82mb1ng5jcH{g^j9(Rq;6U^-!JljDQGdPR*W*8exJRG9OdR|Yxj|&4F=ZmZ8!2aUT-i#Z3L~h_eZHj;|^#{4R{&{c!Nk!Jz+J0P$^ld?*<79%>d$cD_I= zEt!^ykxK1DK`*g+FuBrX5*H|O1&N20c!$KVO0=j%nHD7Gk+^__v%ON#-=SHQY=>{c z65V8ewI5qK=o_uEf8)OiHprOp@kpg3m1(zSFu6v652B9;~gKv zn;iz}CASSGhCe15HOWrZ%99x+hx$_I4ki5ou(rYts|N!!{70!3qv~0?^FiI9 zy%^(c<_xVDv?p9053Yd8vnzQeb%T-63-!FBPE@T|-zyshj;`;O!ky>p2mMV1Zzhn} zZ{Q`IhIB@Qp#QLHg2gu2XnznaDwMeKaS-iD96}oLbWn%Cs;d=D z+ZcZ}OtHcA^kgG1p$k3LXdLwSY7QsdaExp0l}fr5se(3TAK}p)rr=ANe@C1_P0EeU z?z*OlS9&@Q@D|b(??9(uqSLaenPrOe2G4YuU)f7(j!vb}A>}�rM5s=$)a>VtLZ# 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%0A~TQk;TXp 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 delta 129571 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 diff --git a/components/react/modal.tsx b/components/react/modal.tsx index 474960f..a403654 100644 --- a/components/react/modal.tsx +++ b/components/react/modal.tsx @@ -1,4 +1,20 @@ /* eslint-disable @next/next/no-img-element */ + +/** + * TailwindModal + * + * This component handles the wallet connection modal, displaying different views + * based on the current wallet status or user actions. + * + * It includes logic for: + * - Displaying a wallet list (with browser or social login options). + * - Handling Email / SMS flows (which need extra input / login hints). + * - Handling WalletConnect QR codes for desktop usage (to scan using a mobile device). + * - Handling various error states (NotExist, Connection Errors, Provider Errors, etc.). + * + * The code below is refactored for better readability and composability, especially around + * the onWalletClicked() function (which is the main handler for selecting / connecting to wallets). + */ import type { ChainWalletBase, WalletModalProps } from 'cosmos-kit'; import { WalletStatus } from 'cosmos-kit'; import React, { useCallback, Fragment, useState, useMemo, useEffect } from 'react'; @@ -8,16 +24,19 @@ import { Connecting, Error, NotExist, - QRCode, + QRCodeView, WalletList, Contacts, EmailInput, SMSInput, } from './views'; -import { useRouter } from 'next/router'; + import { ToastProvider } from '@/contexts/toastContext'; import { Web3AuthClient, Web3AuthWallet } from '@cosmos-kit/web3auth'; import { useDeviceDetect } from '@/hooks'; +import { State } from '@cosmos-kit/core'; +import { ExpiredError } from '@cosmos-kit/core'; + export enum ModalView { WalletList, QRCode, @@ -30,6 +49,25 @@ export enum ModalView { SMSInput, } +// Add new error types +const WALLET_ERRORS = { + NO_MATCHING_KEY: 'No matching key', + PROPOSAL_EXPIRED: 'Proposal expired', + RECORD_DELETED: 'Record was recently deleted', +} as const; + +/** + * Helper to check if an error message matches known wallet connection errors + */ +const isWalletConnectionError = (message?: string): boolean => { + if (!message) return false; + return ( + message.includes(WALLET_ERRORS.NO_MATCHING_KEY) || + message.includes(WALLET_ERRORS.PROPOSAL_EXPIRED) || + message.includes(WALLET_ERRORS.RECORD_DELETED) + ); +}; + export const TailwindModal: React.FC< WalletModalProps & { showContacts?: boolean; @@ -48,15 +86,14 @@ export const TailwindModal: React.FC< showMemberManagementModal = false, showMessageEditModal = false, }) => { - const router = useRouter(); - const [currentView, setCurrentView] = useState(ModalView.WalletList); const [qrWallet, setQRWallet] = useState(); const [selectedWallet, setSelectedWallet] = useState(); + const [qrState, setQRState] = useState(State.Init); + const [qrMessage, setQrMessage] = useState(''); const current = walletRepo?.current; const currentWalletData = current?.walletInfo; - const walletStatus = current?.walletStatus || WalletStatus.Disconnected; const currentWalletName = current?.walletName; const { isMobile } = useDeviceDetect(); @@ -71,7 +108,11 @@ export const TailwindModal: React.FC< setCurrentView(ModalView.WalletList); break; case WalletStatus.Connecting: - setCurrentView(ModalView.Connecting); + if (current?.walletInfo.mode === 'wallet-connect' && !isMobile) { + setCurrentView(ModalView.QRCode); + } else { + setCurrentView(ModalView.Connecting); + } break; case WalletStatus.Connected: setCurrentView(ModalView.Connected); @@ -88,45 +129,250 @@ export const TailwindModal: React.FC< } } } - }, [isOpen, walletStatus, currentWalletName, showContacts]); + }, [isOpen, walletStatus, currentWalletName, showContacts, current?.walletInfo.mode, isMobile]); + + /** + * Handle the lifecycle for QR Code actions. + * When the view is QRCode and qrWallet is set, we tie the qrUrl's state updates + * and error events to our local states (qrState, qrMessage). + */ + useEffect(() => { + if (currentView === ModalView.QRCode && qrWallet) { + // The .setActions() is a special method from the wallet client to listen for + // QR URL changes, errors, and messages that might occur during the handshake. + (qrWallet.client as any)?.setActions?.({ + qrUrl: { + state: (s: State) => setQRState(s), + message: (msg: string) => setQrMessage(msg), + }, + onError: (err: Error) => { + if (err.message?.includes('No matching key')) { + setQRState(State.Error); + setQrMessage(err.message); + qrWallet.setMessage?.(err.message); + } + }, + }); + } + }, [currentView, qrWallet]); + + /** + * Helper to handle Email or SMS wallet flows. + * These wallets need user input (email or phone), so we switch views accordingly. + */ + const handleEmailOrSmsIfNeeded = useCallback((wallet: ChainWalletBase | undefined): boolean => { + if (!wallet) return false; + + const { prettyName } = wallet.walletInfo; + + // If the wallet is "Email" or "SMS", we set appropriate inputs. + if (prettyName === 'Email') { + setCurrentView(ModalView.EmailInput); + return true; + } + if (prettyName === 'SMS') { + setCurrentView(ModalView.SMSInput); + return true; + } + return false; + }, []); + + /** + * Helper to handle a metamask extension that doesn't fully register as 'NotExist' + * in the standard wallet flow. We force set the view to NotExist if we detect the error message. + */ + const handleMetamaskErrorCheck = useCallback((wallet: ChainWalletBase) => { + if ( + wallet?.walletInfo.name === 'cosmos-extension-metamask' && + wallet.message?.includes("Cannot read properties of undefined (reading 'request')") + ) { + setCurrentView(ModalView.NotExist); + setSelectedWallet(wallet); + return true; + } + + if (wallet?.isWalletNotExist) { + setCurrentView(ModalView.NotExist); + setSelectedWallet(wallet); + return true; + } + + return false; + }, []); + + /** + * Connect with a wallet that has 'wallet-connect' mode. + * For desktop: show the QR code for scanning from a mobile device. + * For an actual mobile device: skip QR code and proceed connecting directly. + */ + const handleWalletConnectFlow = useCallback( + (wallet: ChainWalletBase, name: string) => { + // If user is already on a mobile device, do not display QR code. + if (isMobile) { + setCurrentView(ModalView.Connecting); + walletRepo?.connect(name).catch(error => { + console.error('Wallet connection error:', error); + // Check for specific wallet errors + if (isWalletConnectionError(error?.message)) { + setQRState(State.Error); + setQrMessage(error.message); + } + setCurrentView(ModalView.Error); + }); + return; + } + + // Show QR code for desktop, so the user can scan with their mobile wallet. + setQRWallet(wallet); + setCurrentView(ModalView.QRCode); + + walletRepo + ?.connect(name) + .then(() => { + if (wallet?.walletStatus === WalletStatus.Connected) { + setCurrentView(ModalView.Connected); + } + }) + .catch(error => { + console.error('Wallet connection error:', error); + // Always keep QRCode view but update its state for these errors + if (isWalletConnectionError(error?.message)) { + setQRState(State.Error); + setQrMessage(error.message); + } else { + // For other errors, show the Error view + setCurrentView(ModalView.Error); + } + }); + + // Remove the timeout and handle errors through the catch block + }, + [isMobile, walletRepo] + ); + + /** + * For wallets that do not use 'wallet-connect', + * we simply show "Connecting" while the connection is established, + * then on success, we switch to "Connected" or "Error" if it fails/times out. + */ + const handleStandardWalletFlow = useCallback( + (wallet: ChainWalletBase, name: string) => { + setQRWallet(undefined); + setCurrentView(ModalView.Connecting); + + const timeoutId = setTimeout(() => { + if (wallet?.walletStatus === WalletStatus.Connecting) { + wallet.disconnect(); + setCurrentView(ModalView.Error); + } + }, 30000); + + walletRepo + ?.connect(name) + .catch(error => { + console.error('Wallet connection error:', error); + setCurrentView(ModalView.Error); + }) + .finally(() => { + clearTimeout(timeoutId); + }); + }, + [walletRepo] + ); + /** + * The main handler for clicking on a wallet in the WalletList. + * 1) We fetch the wallet from walletRepo by name. + * 2) Check for Email / SMS (special flow). + * 3) Delay a bit (setTimeout) to handle a special metamask extension error check. + * 4) Depending on wallet mode, proceed with "wallet-connect" or normal flow. + */ const onWalletClicked = useCallback( (name: string) => { const wallet = walletRepo?.getWallet(name); - if (wallet?.walletInfo.prettyName === 'Email') { - setCurrentView(ModalView.EmailInput); - return; - } - if (wallet?.walletInfo.prettyName === 'SMS') { - setCurrentView(ModalView.SMSInput); + if (!wallet) return; + + // Step 1: Check for Email or SMS. If found, we set the corresponding view & exit. + if (handleEmailOrSmsIfNeeded(wallet)) { return; } - walletRepo?.connect(name); - + // Step 2: We do a small setTimeout to check for metamask extension error + // or if the wallet doesn't exist. This ensures the error message has time + // to populate in the wallet's state after calling `getWallet()`. setTimeout(() => { - if ( - wallet?.walletInfo.name === 'cosmos-extension-metamask' && - wallet.message?.includes("Cannot read properties of undefined (reading 'request')") - ) { - setCurrentView(ModalView.NotExist); - setSelectedWallet(wallet); - } else if (wallet?.isWalletNotExist) { - setCurrentView(ModalView.NotExist); - setSelectedWallet(wallet); - } else if (wallet?.walletInfo.mode === 'wallet-connect') { - setCurrentView(isMobile ? ModalView.Connecting : ModalView.QRCode); - setQRWallet(wallet); + if (handleMetamaskErrorCheck(wallet)) { + return; } }, 1); + + // Step 3: If the wallet is "wallet-connect" style, handle phone vs. desktop flows + if (wallet?.walletInfo.mode === 'wallet-connect') { + handleWalletConnectFlow(wallet, name); + return; + } + + // Step 4: Otherwise, handle standard extension or browser-based wallet + handleStandardWalletFlow(wallet, name); }, - [walletRepo] + [ + walletRepo, + handleEmailOrSmsIfNeeded, + handleMetamaskErrorCheck, + handleWalletConnectFlow, + handleStandardWalletFlow, + ] ); + /** + * Whenever the modal closes, if we had a QR wallet that was mid-connection, we disconnect it. + * We also reset the QR states, so next time we open it, it's fresh. + */ + useEffect(() => { + if (!isOpen) { + if (qrWallet?.walletStatus === WalletStatus.Connecting) { + qrWallet.disconnect(); + setQRWallet(undefined); + } + setQRState(State.Init); + setQrMessage(''); + } + }, [isOpen, qrWallet]); + + /** + * Called whenever the user closes the modal. + * If there's a wallet in "Connecting" state, we want to disconnect it before closing. + */ const onCloseModal = useCallback(() => { + if (qrWallet?.walletStatus === WalletStatus.Connecting) { + qrWallet.disconnect(); + } setOpen(false); - }, [setOpen]); + }, [setOpen, qrWallet]); + + /** + * If the user clicks "Back to Wallet List" while a QR code is displayed, + * and the wallet is mid-connection, we disconnect. Then we reset the QrWallet + * and show the wallet list. + */ + const onReturnToWalletList = useCallback(() => { + if (qrWallet?.walletStatus === WalletStatus.Connecting) { + qrWallet.disconnect(); + setQRWallet(undefined); + } + setCurrentView(ModalView.WalletList); + }, [qrWallet]); + /** + * Decide what to render based on currentView. + * We have: + * - WalletList (default) + * - EmailInput, SMSInput (social login flows) + * - Connected, Connecting + * - QRCode + * - Error, NotExist + * - Contacts (an address book / contact list view) + */ const _render = useMemo(() => { switch (currentView) { case ModalView.WalletList: @@ -137,6 +383,7 @@ export const TailwindModal: React.FC< wallets={walletRepo?.wallets || []} /> ); + case ModalView.EmailInput: return ( @@ -173,12 +420,14 @@ export const TailwindModal: React.FC< | undefined; if (smsWallet?.client instanceof Web3AuthClient) { + // Provide the user's phone number to the client before connecting smsWallet.client.setLoginHint(phone); walletRepo?.connect(smsWallet.walletInfo.name); } }} /> ); + case ModalView.Connected: return ( ); + case ModalView.Connecting: + // Decide a tailored message if it's a WalletConnect flow let subtitle: string; if (currentWalletData!?.mode === 'wallet-connect') { - subtitle = `Approve ${currentWalletData!.prettyName} connection request on your mobile.`; + subtitle = `Approve ${currentWalletData!.prettyName} connection request on your mobile device.`; } else { subtitle = `Open the ${ currentWalletData!?.prettyName } browser extension to connect your wallet.`; } - return ( ); + case ModalView.QRCode: return ( - setCurrentView(ModalView.WalletList)} - qrUri={qrWallet?.qrUrl.data} - name={qrWallet?.walletInfo.prettyName} - /> + ); + case ModalView.Error: return ( onWalletClicked(currentWalletData?.name!)} /> ); + case ModalView.NotExist: return ( ); + case ModalView.Contacts: return ( ); + + default: + // A fallback if we are syncing or re-connecting + return ( +
+

Reconnecting your wallet...

+
+
+ ); } }, [ currentView, onCloseModal, onWalletClicked, walletRepo, - walletRepo?.wallets, currentWalletData, current, - qrWallet?.qrUrl.data, - qrWallet?.walletInfo.prettyName, - router, onSelect, currentAddress, - showMemberManagementModal, showMessageEditModal, selectedWallet, + qrState, + qrMessage, + qrWallet, + onReturnToWalletList, + currentWalletName, ]); + /** + * Render the Modal with transitions. We wrap our entire view in ToastProvider + * to ensure we can display toast messages if needed. + */ return ( diff --git a/components/react/qrCode.tsx b/components/react/qrCode.tsx new file mode 100644 index 0000000..2be7187 --- /dev/null +++ b/components/react/qrCode.tsx @@ -0,0 +1,120 @@ +import Image from 'next/image'; +import QRCodeUtil from 'qrcode'; +import React, { FunctionComponent, ReactElement, useMemo } from 'react'; + +const generateMatrix = ( + value: string, + errorCorrectionLevel: QRCodeUtil.QRCodeErrorCorrectionLevel +) => { + const arr = Array.prototype.slice.call( + QRCodeUtil.create(value, { errorCorrectionLevel }).modules.data, + 0 + ); + const sqrt = Math.sqrt(arr.length); + return arr.reduce( + (rows, key, index) => + (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, + [] + ); +}; + +export const QRCode: FunctionComponent<{ + errorCorrectionLevel?: QRCodeUtil.QRCodeErrorCorrectionLevel; + logoUrl?: string; + logoSize?: number; + size?: number; + value: string; +}> = ({ errorCorrectionLevel = 'M', logoSize = 50, logoUrl, size = 280, value }) => { + const dots = useMemo(() => { + const dots: ReactElement[] = []; + const matrix = generateMatrix(value, errorCorrectionLevel); + const cellSize = size / matrix.length; + let qrList = [ + { x: 0, y: 0 }, + { x: 1, y: 0 }, + { x: 0, y: 1 }, + ]; + + qrList.forEach(({ x, y }) => { + const x1 = (matrix.length - 7) * cellSize * x; + const y1 = (matrix.length - 7) * cellSize * y; + for (let i = 0; i < 3; i++) { + dots.push( + + ); + } + }); + + const clearArenaSize = Math.floor(logoSize / cellSize); + const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2; + const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1; + + matrix.forEach((row: QRCodeUtil.QRCode[], i: number) => { + row.forEach((_: any, j: number) => { + if (matrix[i][j]) { + if ( + !( + (i < 7 && j < 7) || + (i > matrix.length - 8 && j < 7) || + (i < 7 && j > matrix.length - 8) + ) + ) { + if ( + !( + i > matrixMiddleStart && + i < matrixMiddleEnd && + j > matrixMiddleStart && + j < matrixMiddleEnd + ) + ) { + dots.push( + + ); + } + } + } + }); + }); + + return dots; + }, [errorCorrectionLevel, logoSize, size, value]); + + const logoPosition = size / 2 - logoSize / 2; + + return ( +
+
+ {logoUrl && ( +
+ Wallet logo +
+ )} + + + {dots} + +
+
+ ); +}; diff --git a/components/react/views/Connecting.tsx b/components/react/views/Connecting.tsx index c5c4a55..9a46043 100644 --- a/components/react/views/Connecting.tsx +++ b/components/react/views/Connecting.tsx @@ -4,7 +4,6 @@ import { Dialog } from '@headlessui/react'; import { XMarkIcon } from '@heroicons/react/24/outline'; import { ChevronLeftIcon } from '@heroicons/react/20/solid'; import { getRealLogo } from '@/utils'; -import { useTheme } from '@/contexts'; export const Connecting = ({ onClose, @@ -21,7 +20,8 @@ export const Connecting = ({ title: string; subtitle: string; }) => { - const { theme } = useTheme(); + const isDarkMode = document.documentElement.classList.contains('dark'); + return (
@@ -46,9 +46,7 @@ export const Connecting = ({
{name} void; logo: string; }) => { - const { theme } = useTheme(); + const isDarkMode = document.documentElement.classList.contains('dark'); + return (
@@ -48,9 +49,9 @@ export const Error = ({
Wallet type logo - + Reconnect
diff --git a/components/react/views/NotExist.tsx b/components/react/views/NotExist.tsx index b9d710b..0504a7b 100644 --- a/components/react/views/NotExist.tsx +++ b/components/react/views/NotExist.tsx @@ -3,7 +3,6 @@ import { Dialog } from '@headlessui/react'; import { XMarkIcon, ArrowDownTrayIcon } from '@heroicons/react/24/outline'; import { ChevronLeftIcon } from '@heroicons/react/20/solid'; import { getRealLogo } from '@/utils'; -import { useTheme } from '@/contexts'; export const NotExist = ({ onClose, @@ -18,7 +17,8 @@ export const NotExist = ({ logo: string; name: string; }) => { - const { theme } = useTheme(); + const isDarkMode = document.documentElement.classList.contains('dark'); + return (
@@ -43,9 +43,7 @@ export const NotExist = ({
{name} void; - onReturn: () => void; - qrUri?: string; - name?: string; -}) => { - return ( -
-
- - - {name} - - -
-
-
- -
-
-
- ); -}; diff --git a/components/react/views/QRCodeView.tsx b/components/react/views/QRCodeView.tsx new file mode 100644 index 0000000..4309ae1 --- /dev/null +++ b/components/react/views/QRCodeView.tsx @@ -0,0 +1,199 @@ +/* eslint-disable @next/next/no-img-element */ + +import { Dialog } from '@headlessui/react'; +import { XMarkIcon } from '@heroicons/react/24/outline'; +import { ChevronLeftIcon } from '@heroicons/react/20/solid'; + +import React, { Suspense, useEffect, useMemo, useState } from 'react'; +import { ChainWalletBase, State, ExpiredError } from '@cosmos-kit/core'; + +// Lazy load the QR code component +const QRCode = React.lazy(() => import('../qrCode').then(module => ({ default: module.QRCode }))); + +// Skeleton loader for QR code +const QRCodeLoader = ({ + logoUrl, + logoSize, + message, +}: { + logoUrl: string; + logoSize: number; + message?: string; +}) => ( +
+
+
+
+ Wallet logo +
+
+ + {message &&

{message}

} +
+); + +export const QRCodeView = ({ + onClose, + onReturn, + wallet, +}: { + onClose: () => void; + onReturn: () => void; + wallet: ChainWalletBase; +}) => { + const qrUrl = wallet?.qrUrl; + + // Enhanced error detection + const isExpired = + qrUrl?.message === ExpiredError.message || + (wallet?.message && wallet.message.includes('Proposal expired')); + + const hasError = + qrUrl?.state === State.Error || + (wallet?.message && + (wallet.message.includes('No matching key') || + wallet.message.includes('Record was recently deleted') || + wallet.message.includes('Proposal expired'))); + + const statusDict: Record = { + [State.Pending]: 'pending', + [State.Done]: 'done', + [State.Error]: isExpired ? 'expired' : 'error', + [State.Init]: undefined, + }; + + // If the wallet has an error message, treat it as "error" + const status = hasError ? 'error' : statusDict[qrUrl?.state ?? State.Init]; + + const errorTitle = isExpired ? 'QR Code Expired' : 'Connection Error'; + const errorMessage = isExpired + ? 'Click to refresh and try again' + : wallet?.message || qrUrl?.message || 'Failed to establish connection'; + + // Add error boundary to handle runtime errors + const handleRetry = () => { + try { + wallet?.connect(false); + } catch (error) { + console.error('Retry connection error:', error); + // Force error state if retry fails + if (error instanceof Error) { + wallet.setMessage?.(error.message); + } + } + }; + + // If the user specifically expects the QR code but there's no data or recognized status, + // show a "Re-establishing connection" fallback rather than a blank screen: + if (!status) { + return ( +
+
+ + + {wallet?.walletInfo.prettyName} + + +
+
+ +
+
+ ); + } + + // Normal flow if status = 'error' | 'expired' | 'pending' | 'done': + return ( +
+
+ + + {wallet?.walletInfo.prettyName} + + +
+ +
+ {(status === 'error' || status === 'expired') && ( +
+ {/* Dimmed QR background */} +
+
+ +
+ {/* Error overlay */} +
+

{errorTitle}

+

{errorMessage}

+
+ + +
+
+
+ )} + + {status === 'pending' && ( + <> + + + )} + + {status === 'done' && qrUrl?.data && ( + + } + > + + + )} +
+
+ ); +}; diff --git a/components/react/views/WalletList.tsx b/components/react/views/WalletList.tsx index 026f7bd..48b17d7 100644 --- a/components/react/views/WalletList.tsx +++ b/components/react/views/WalletList.tsx @@ -10,7 +10,7 @@ export const WalletList = ({ wallets, }: { onClose: () => void; - onWalletClicked: (name: string) => void; + onWalletClicked: (name: string, isMobileConnect?: boolean) => void; wallets: ChainWalletBase[]; }) => { const isDarkMode = document.documentElement.classList.contains('dark'); @@ -27,11 +27,17 @@ export const WalletList = ({ ); const mobile = wallets.filter(wallet => - ['Wallet Connect', 'Keplr Mobile', 'Cosmostation Mobile', 'Leap Mobile'].includes( - wallet.walletInfo.prettyName - ) + ['Wallet Connect', 'Keplr Mobile', 'Leap Mobile'].includes(wallet.walletInfo.prettyName) ); + const { isMobile } = useDeviceDetect(); + const hasMobileVersion = (prettyName: string) => { + return mobile.some(w => w.walletInfo.prettyName.startsWith(prettyName)); + }; + + const getMobileWalletName = (browserName: string) => { + return mobile.find(w => w.walletInfo.prettyName.startsWith(browserName))?.walletInfo.name; + }; return (

Connect Wallet

@@ -47,24 +53,37 @@ export const WalletList = ({
{browser.map(({ walletInfo: { name, prettyName, logo } }) => ( - +
+ +
))}
diff --git a/components/react/views/index.ts b/components/react/views/index.ts index ee96802..8620b19 100644 --- a/components/react/views/index.ts +++ b/components/react/views/index.ts @@ -2,7 +2,7 @@ export * from './Connected'; export * from './Connecting'; export * from './Error'; export * from './NotExist'; -export * from './QRCode'; +export * from './QRCodeView'; export * from './WalletList'; export * from './Contacts'; export * from './EmailInput'; diff --git a/components/wallet.tsx b/components/wallet.tsx index dad1247..d37dab8 100644 --- a/components/wallet.tsx +++ b/components/wallet.tsx @@ -1,4 +1,4 @@ -import React, { MouseEventHandler, useEffect, useMemo, useState } from 'react'; +import React, { MouseEventHandler, useEffect, useMemo, useState, useRef } from 'react'; import { ArrowDownTrayIcon, ArrowPathIcon } from '@heroicons/react/24/outline'; import { ArrowUpIcon, CopyIcon } from './icons'; @@ -38,20 +38,32 @@ export const WalletSection: React.FC = ({ chainName }) => { const { connect, openView, status, username, address } = useChain(chainName); const [localStatus, setLocalStatus] = useState(status); + const timeoutRef = useRef>(); useEffect(() => { - let timeoutId: ReturnType; - if (status === WalletStatus.Connecting) { - timeoutId = setTimeout(() => { + // Clear any existing timeout + if (timeoutRef.current) { + clearTimeout(timeoutRef.current); + } + + // Set new timeout + timeoutRef.current = setTimeout(() => { setLocalStatus(WalletStatus.Error); - }, 10000); // 10 seconds timeout + }, 30000); // 30 seconds timeout } else { setLocalStatus(status); + // Clear timeout when status changes + if (timeoutRef.current) { + clearTimeout(timeoutRef.current); + } } + // Cleanup on unmount return () => { - if (timeoutId) clearTimeout(timeoutId); + if (timeoutRef.current) { + clearTimeout(timeoutRef.current); + } }; }, [status]); @@ -204,7 +216,11 @@ export const IconWallet: React.FC = ({ chainName }) => { } let onClick; - if (status === WalletStatus.Disconnected || status === WalletStatus.Rejected) + if ( + status === WalletStatus.Disconnected || + status === WalletStatus.Rejected || + status === WalletStatus.Error + ) onClick = onClickConnect; else onClick = openView; @@ -213,12 +229,10 @@ export const IconWallet: React.FC = ({ chainName }) => { return (
diff --git a/package.json b/package.json index d8039b4..d2f389d 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "next": "^14.2.8", "octokit": "^4.0.2", "postcss": "^8.4.45", - "qrcode.react": "^3.1.0", + "qrcode": "^1.5.4", "react": "18.3.1", "react-apexcharts": "^1.4.1", "react-confetti": "^6.1.0", @@ -73,6 +73,7 @@ "react-icons": "^5.3.0", "react-intersection-observer": "^9.13.1", "react-scroll": "^1.9.0", + "tailwind-scrollbar-hide": "^2.0.0", "tailwindcss": "^3.4.10", "three": "^0.169.0", "yup": "^1.4.0" @@ -88,6 +89,7 @@ "@types/bad-words": "^3.0.3", "@types/crypto-js": "^4.2.2", "@types/identicon.js": "^2.3.4", + "@types/qrcode": "^1.5.5", "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "@types/react-scroll": "^1.8.10", @@ -100,7 +102,6 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "prettier": "^3.3.3", - "tailwind-scrollbar-hide": "^1.1.7", "typescript": "4.9.3" }, "files": [ diff --git a/pages/_app.tsx b/pages/_app.tsx index b208ec4..de6b8b1 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -11,6 +11,7 @@ import { useEffect, useMemo, useState } from 'react'; import SignModal from '@/components/react/authSignerModal'; import { manifestAssets, manifestChain } from '@/config'; import { SignerOptions, wallets } from 'cosmos-kit'; + import { wallets as cosmosExtensionWallets } from '@cosmos-kit/cosmos-extension-metamask'; import { ChainProvider } from '@cosmos-kit/react'; import { Registry } from '@cosmjs/proto-signing'; @@ -154,7 +155,11 @@ function ManifestApp({ Component, pageProps }: ManifestAppProps) { ); // combine the web3auth wallets with the other wallets - const combinedWallets = [...web3AuthWallets, ...wallets, ...cosmosExtensionWallets]; + const combinedWallets = [ + ...web3AuthWallets, + ...wallets.for('keplr', 'cosmostation', 'leap', 'station', 'ledger'), + ...cosmosExtensionWallets, + ]; // this is stop ssr errors when we render the web3auth signing modal const [isBrowser, setIsBrowser] = useState(false);