From 1e2c271dc803dcda861b97b5243342fdee6da89f Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 09:38:19 +0800 Subject: [PATCH 1/8] feat: store position --- bun.lockb | Bin 185943 -> 185953 bytes package.json | 6 +++--- src/components/ServerCard.tsx | 9 +++++++-- src/components/ServerCardInline.tsx | 9 +++++++-- src/components/ServerDetailOverview.tsx | 20 +++++++++++++++++++- 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/bun.lockb b/bun.lockb index f707626f80cd657bfcce4e60a3453f2f931ba53f..cb015a0e94052aa764e8b8aa00abd10b1083eac4 100755 GIT binary patch delta 10687 zcmeHNeOOgh)<64jFLLk$MG&r61QG;6u6$pv7rdY(3gQPTnhAOpL=Y4KO-Ka%Xe={7 zwzZo+EG^U0rco;*vqCG&GNr81#$@bm8ZD=E#+=6wrJPzIj+=_nO&Q|bTuN4>o+(1oTf*ZEp zDM`J-4Ie2a2Y!|%Neb|ghMtgfD|-9mu*3T=19ET6f!y1C4VPyN zyK{lOJs$|W4UOp_xZ?I4F`#jbB>95B2)-9E69zax2*?B09muC~E>lduJy!&D6sE}? zjRpn*J;sS?uLE-Zdx1P01;D;Qf9Um*XtI|td5DhoifHhkBsyN6C_0=3azh7zY8-+6 z!8ZZJfKDKf^9W5I0vrJT`dz}Ic3?30cQo7r{HU@}^$&C(r!7HF)Yk`>W z24HVAF9rGm%Qg8FjUNu=aT@~UdVPU>{$4;ee$zz1Q$VhFNaOba`NBP=$sYvr{)OM- z+sXy!3mraEN`>e#1F z5@(q@y0oH7UIHmOuwPggz@+~l~u>oIxEU0XH`k1v#PqdJLEi;BkmQL4CIE}fP4i?%ID8? zA|4Z9i0h>Rxg#Gh7V8}bp4WjVkULgfU0ym5PW7p~F>Vd+z-a;c*$jTc^Tt~T)(6xV zA`OcYf`P+;+>vLOib6bBFA8ln_`tzvH~;~kL3MG(qGE)*D;jvmBajCHyTJh8gWjNR z-Lh=b3Xu;#Ef@K57RY-a)o}Dmk>ADDvz+D5qT*EWJZ_P6LigYXy`1zi)5}V)8ofI7 zs?p0?FXM|^mFeZFm7%Np^eWSvTtbA>sK#NegDw+3w=M(%X&Y`l;_#;`^B;w z){4CR?qPv#Kpx$_z&^lDKpwP}n!Ez2Zs5QGY+Q}QG(i-Q=Sv8X*O4E6phpBbxo1}o zW~W{uvC4FtB;}()qD?7Q@+xh~b{GfaaX6dq8_`rE*G%N|mH|nDL;kAy(rwaOrBlC+X!e4&|8EYM@OaR>d<-l6XeQv~_9< zZOL_zwe&K6zo53U4&%gOl9Wx;#@fkl+5-ME_;GaKSi3R`&&X`_BeXThs??@S(pbS^ z#53S#(2l!Py)wjnpoF0|fh*IMlt?^;3tim(;KqZKX;YZh_yxF;G%dt#>^A}yRH_Qp z7?pYpRHjPFc*2cWsXS0)Rq7c~V`xW$oxDz4@*K+Yk&*I7Laq09LWC18vsA^1p= z)(9)fr?rzE3WW?YgL@fuDF!eT)mRM5)uN{~fSREyv_@GKg0W@_4l|tvjz>YJ8Q^w+ zo1$_g(W(UCEP#;lC?r~qJHe@|p~zS)zFvsOm=pu3Jaxe5Kw)|bcI5|9+Ke#m)Cqi{ z>Id4DZJ;Kq9eLhd1&0LWLkC-x97K~Zl~HwMBe+;_o-_k<_olXK4rBZzNxFxoO|u)< zfVx|yzIDkmP&;?2vW=h$RO$k#Qk9xI8BZpa+6zjw24bcqs;mK2u}XadYPw2|xLc>T zfD%1AU9!Tdx(CgmCeyUSR4?ots6rlO0`B> zX>EyvtfDRWZKId*doQ)kaVUQ&fv&pp2$d2!N369(Gf;?Az+sc(8J=!6ZsZ&<8FG}? zmO2#gQb|fyTX{;RgBwZrrQ4PJLGgmZu7`Yiht`%klwM`JC0@3<^fF{?Agh8N7AefC zbb=eETT{|-Zb}4aqjg|43wZY8f!+dPNzBV@dnhq@WY%u{C=Wml>}aoZ?H zc>aRM5lT=yXTkB98ENYsRwW!KvLtZcDmM$E=Wc&U2(z;QhTw_*Gjxbf=jvla;Ny6_}dR)UKcTBzsuz-5B#!YvpTggJ%x;r6Q> z$|msB(2Cs*8_gAPo+J9&*>u68Kbz-PF0(`qCMMK4y6 zY@jVQ4swECu5l>67rOMqt;$4j+#89KL00*(h4f0vFy%0We3BmOBnK}Np+TrKQ@p_N z_+rNJ?=5hAUDZdDatWO1#-lL~Cqg_^kqc`<4TqM%kYC*kjo^RUWP_Zt$3`!i*#s!OM-?%n<}kJNS&U~e7~Fqj<-44lSA-ytkp#BLn1ly3-}ItZ#zrNSHd(}~M!L19xVu`6$b z;?Cl!jO6XsC{m#dZ7o58gA>*s1%-zQdVUK^?P(m`gemdzC$niwgTuI0@FF53@mT@8kYT1s=1Jgq8L9^*LaA+; zL-`Uio`?oYoL1v>9CXzut@0))KAM_UR#M1+UuT_qj7glwm%;dIvW|7o@rn5^7Zcywl8k$G**5s1%LKge%Rb)zK=)G ze09y5wmHULJMT0;64l-}#+gxvq3;hE`kGe^`NTKC1GoIkFZTJ!eThjS+X z*rWTWuYI1iJ8SYmM=5)wIVOt?@F7RpgnVKqq0JTfPI~nt@nqOYNuu_t) zLgv%lE0@eAh=zfEJdJo68}ET47j~7|AG3&oohc;!$h)j{HW|`fc@LRF_^%&f&p1gp zlM!YVgq54s-wCKPZeg!#R?+_kuVZUwksog`HBq$df1!4=?z71r(QYS8S;uUW<*)w% zI;*_Y!rv6|fkv~tOUT@trc_)#b75(DktDodkWWfH=&G_nyBi!dzyMNukvepJcH~-fZn<(nO+IuPY>h*w~#{ zNG?%@CbshmISNtzRkYm4c3nkFJnOtlqDeN3zD7dHCYF1RL@U{NBJlAyu%>IoM7A<# z57|UoA6bvz<19`FTwq`I1_ZDn{(uA))Ip|`9JatuHYqvjl4L>mgY0w{*~HR4<-Y8l zPU4I9r#msU0B>E*YdA~qCTF@^k6b4ux7rduu;;to)|P8X;oT#V^2l2a-01!7+HW`4 zbL?eI+^oNA-uCLO^aDLUc|j&|7W_vY4q_QR3Yn~+JM{FI+&i;g$vhL$^#iUKuj-Yv zI3MUOW2X@x5yAvLgpacZ9?-3Kx{$<9xAt*i~K@d(%;HX%^t3cKFE!0BqJ@J@y67JT{4$l<(g`ynaFas%S%pR<2%UUTNhewy7NEC zi0!ONk#osKc0`d)N&1Dui7spYHu-mJw!_C*tRBugzue-UvPf{(pjyR<$Y?Vu)Eouy zDsbuEoOm~N2_)@oU)P^!g;p^x6Th7GHyao6)v{H;8F@42pBc$d9atq3Yts%I{)f+dY|7=eeGcZ3iL0rRmo;da7 z>LUL|VoQui^8A~0xGBWi_V=slb(6oEh1`eN(fa+kOb@vQl@sQiRtrx=Dp^&6s zBYv9^?)B4%%y-=i`bDEP;-!@Mt4Bw=Tbfvm8Me1h6h2Hm_4el9U2N*>Rye?%P#`DS zeOyn!+4T9kEpG6&kFL4({MpN9xx}pB4V*gl_ES6J_t^{tJ0U_LNyk`RKNvd0asX!i zQX=rmmAJe^$;ECxU)BJHB>gfXcKGAdn>~FH72S}2FVa0A^X#TSEIR0J8P5)L+xk64 zX-n$%M9+$E-3p5s34#v~GBd!eU$pEPSz1u#hww?}LKvDtBHuUnxnYvVo)VY^agKh_x}8_oJfY<#c! z{L^pb&2%eIVNGeW-%vGx`gKg}U)OK%9gy`ex0Ze*^ueXZ;3dyZqVARrtfD`>(QkB; z$9(+S<_)jZxfQyx%}^j=Y%hm2_IZCfniMb+EStRN6^naF&)IBA5}u}EEDd5Py_^J? zz!q?>fUOQjNmQ`6IoH7Ak^v8~91btC)`7C0XCgnxI9LN0y~Q#@P)|ph*$VC(_EiYr zJPQp+J@pKg$I2chY(^*s^JQ&ToHOoVr$b>rhE=3MF^>(o16(0HZ2?!o>N&TE?E;wf zYv6Z!{OyITJw+GP^G&=3?`+;@om@e`M_%0WlhrtM^bYMLfg_Jf5Jy&ojqUSN2z3SCfUtA!f-Cw#wLWp z!4x(ZoLRp%t{BvR=8GF=j*|(FUFzAcoqZMt&-DA@$2O+Fd+hZofv}f^qZx`ujZE}_ z@9|2qFOFvVJ+X6t=zCd@nSO#|qBz5~v-t=iwh9i+@Ez&P-VB$=l4jO*AUqdQ_3w{` z&~J}VtQvTI*gdNh*x<87%L=w;AmXX6nu&bO{yb2Am2_w8BQPTqYmb1Z`i<|7&?#H4 ztn3U!=QuI*5iBMWnWkR_f8Q;{)OA^SJQVn3u@8RCoRKhep1m9?M|;1I*LG&i$emjq z=q_^0-{PB*>B>vaeR= z!FrkNm*TTeICf8pN%?C}5{;LVfvi3jr~B0`DDGA(S01>?Vg?#)T!b{?$SCo0E3@LH6MrM4~8f5tLh} z(;So_7s#?ZLw{-avv{KVCFwV9fkmt%8Dae&+y|MLP4=BKbh&tGt-tx1|JV_qrK`p; zb+YjZmIO)vI3Z!fth&~xo~f6~N%ZNCTGT&Z$a<%c-RB=&rS?g%;0-;thANvpJL%_r z&HASdKtI^{-tKgM7(bTpDsh%1OJbaq%DN9l=8R?$Ls3Py`qh){K~Mf#;y7D76v=eD zdGAo!gA544yWidre~s5{-GED9Us(M?%IEQZ+;BXvHE{|f``J|-#`@j%p$``%$*X|H zrpkdyw|#!98n=Bssx1+$J{47{e<88ug{5Ubc!hteK0j3j^)YTD8`wwCBkCE)&r@x= z&N_M5@wm|8f!QzpkTvkEobK+b9!50fLo7E9%KE1qGy7aqe1iQhxs}y}fC=yQp5S`= zry!fmv2T2KcGgt4-WhfT3Q4y;BdKoP_RyoYoMJ)4U|atjrEPQ1pm!tBj&s}gV-ui2 zLfBlcr+=*Rg6)yYJkvj(HsFng)sldhOvBjIP)N#uSbQdS;=5IBz=rLI-3s~#Ae&w~ zReoj0q^<6jmF(}_w*JLP#;5HEp1kMzTDQVp7V3ZxZOjhnr+;x$F*do|vg+JbZau?V zR_VZ_xXr=QQB z^PM?!=FFLMW`>!2@fDv>Uh!FPihjM+|T>(~s^MeO+%51`5Ihf>8IBO%RNr5@-NufB7NLND?JGJ>$qidAnz5{-(i#5QLg| z&@j*@A_yU%eKI(128{;x1MLBN#UTj2LGNS=LKNt6U<2rH(2nWZ49w&jK|?_sWJ8z8 z+ReiSp*v7omLT}BT2Oz`c+jq(-9dvvKgbpY3G|Rk+t7|_(dyR&v-XQYnYFV)nYB48 zb&lkE^FdjC4k+~2)(rr|1h zYd25l<81)#j_NAVAkf)rd7g^XK$+iSL77}vP&WQM(^UU~vUX=cncN{2?*wHNC#&Uk zpsal3g6o zj!KIb%@^?Rpjy6DrF%hHToo1-l_!=|3KQgL?@&W~32!|DwZ5p00gVL>lgE08N;~H9 zSlc2m^bW1vQp%ARWLQt8GTwGhX?|5zQK2xe$hnC1{29u9P~SR-XIxQbbyZ1erBGD4 zu)3(iDV&9U%;KWT@`|D&LAVS#Hr_D{xP|!z3o6(UH2N9pVVif|%jI0)J-M4tXzlKW zJkTG>uS|pq#rboU-i0L~fxnmuh&T)dPq1Lq!t`*a#|%$`%#D-2@e^;kzi0 z02QHttwFz)Px)rszF*1X;cHM99~VGb>-SXZSk2?RsInlxG{3OO49xu2Qy%LVS*xX! zmS$R7X<4IXhn6*3I%{csP0cbbJ=HXHWuKO1T6Ss6f|~ZVbz1&v>8Y(B+Ipd_2U=S1 zN1C!YJN_7-_FGT#xcrk!kAgDq?g0$}-2}>N~b*XAW6ex?A5Kxv! z-tt=iIC6UL9)D_=M?@w`6K#Sp2^E4|pJpYyE4*kf%f-q7ZlxHV9&PIU;}^8%3StiD$LHw?+`k#=bf3b{sRNeht6iTVKS>?7D{q{-l52%Dq`D@N2h z$szgW2m)pRQPL7;B{{NlvO`*nGB^$P5mTBDV1nX|$XwNZQZ+brUiw<4e*(=`#98ML zp=ag>QO*R~4m3qUB-JYU;V=N7F*l@I^)CSN>G&78F>>?hbRDK`oYL8^z+r4DcInUH z_-N{L({y8*WKD0ov<2J*-YXn)9cU2mHPR|&!jo*8^okAZfRcbb<@y9G5oFsmhdzFy zAUrG&nr7Fp1ox1_eeNo=B5%ekW$VCASGX(SN)&F)Wb8@`w+9?*XQk^f#$u(Y8eEaW zeFko(!r30uxM#p|bvIpQ6Q*hg>;^ZPwUBgJHIRfXLSV8(ZkpvF^>XVhhko~T7O(BI z({*67;wt$0gA$A2EZ;*ib{z! zYGsw+n7(w`S?nOoR@^cpNxm1zw!W3A+6**4!HeT6dC%tKiVW9BQv>}!`w zz%k`W#a>ovn~IR}NS_NpY`A*4yrRJOVOs++(u0-Iij@y6;vNFR zL@ftme#Xdw_5raGC_9t%4G?d~{5%{7Lxy-@tOgna#KY?(kQ$WG;=Nc9tf=#6lTR{b z+hXiYD8qID!|IEz(kDRJ1o%QrqUBad%yse|29{(%0>}ahNvWq1j|iJ9Mb5e+&JF#S|HU!F!f^~S2ucb8CuKD52ky8VSYez zVtrd8+m<<`BPe4dfPMY3N7iUwBuQ5NRG>+6O|e~XTh0~-#x;YRp>W1pwneeB1>mw6 zC%plV8H$95Z^b$u3SH!uVkA2d*Y*o=*iO*$b8t#a{R8zF4qFPyG`XqPq2J6ga^@^J zW_5tvQf?)Fva`-XO64Z}ZfC#JA65v$RMaDH;G9*mv)&=;S3xhzFjB2+|dHzlgbHQBb(K@w#rez6eZ_ba&-zkOueDu;g7 z8hA?{w92l36&%)QaJO7sR)bcyQQ_Lxrt84qJO;7&walT6D_6LhRp~lck+4py9O2^D zySQ^MF6wbj?h$Y}Z81w++zl5u@E2Nb9XOo3Aoq@o^Lj!n%W-k*HIAH-ZR;HRsHfQ3 zb3^Ty`+HTw@7UDHnrd&mvF;<>&5|I23VL}S8X zax#pV8{0l3sl+4AWTq*f6EjI_obx$ZO+df-f~+DCSa^Y4GLciz^ z;z#=jgY=;h?PMm&qzi*YgOr&e2qrXdrWd=22Abh1hSNhGBoOu6I?y#I-kR8*Oq$^< z4s+L@xI>EX)x~X~FZ$kBm#a%|-7n+Cta}yQZTE*<^fe6Js9o~D^hQC(5&z>m zMUrg7e}sP|&17B}NT>TjPP<)xC41knzr^{x&*aRC+-#a00J+8VBK*T$n4-CGJ*{O9 z-Aua$iJA*tzG)jydw7Upq&u~Eh$%+x9^Bg8rSU+I(MK`u$)*%j5>{lo(nB0B4aH{4 z&Qp!_6rlcHzz8}vObn(;IjQc~Cl*6#j9#3ne{O^z#M5u}VuV^xf2SAw zk)iZ!y%?=czI!fz;8`^yekc*6&9HW>Zdg5KXoP;o8JKN0B{8#e=uCu&*2&#-BqA)H z_r}nTYA6WH0+(#(!0Xf`jGU#-K0k~KHDg>V zemv?sE9d@Iqg8v7IGFg4%mG`DG>8PTYQkRxf;yo*#py9Gq}=@+t?C|6JJ=G?X^|+S zr@Er-|1y6J)qFdli zx&Z=61R2_KsUXd*QRj?M^e_KAGjN zd6Xs^p<8 zciSD`A8-qFrKgw;v2;(m7(_cFM7>da0X284nRM~3akJgRd9;3z7&K6Ep!N>Z^3{eN z-9xkg>6X%-V&4D0E^^tgC(7=c23pn=)@V;D19CokbNj}9OWXn?-3|c~P7g4WLeKUT z6UcZ9ssg}j$-6_ z+R|GL@=Rst7z?dsMf+%G6!PgkYP14g9&I4 zxQm-^TJ-}T+@+o*aO6=m7>wGBZram{o1%{dejt+NNhT$SchdS8F;{Fap(kU+Fyoea z{Ex6nV?WHx@4Am2r3Uab$qwq#3+I9@bZjpeXrl9gjM{r`S)ZP>U*0r(v`BF5QqFc~ z>F;~NGVNjZnN1n*oY_Am4EiiMnjvWv&m_cL#2;qi2zl*+Hve$+yV=heZbC4XpW)8Z z1#lsj3Pz~z8Yb&tte8i3Q=i_joO?C6CniFBw*9oB_npBHH%QRIMv0mw^oic^r!s2> za+vaq5yg!4wh<9t-GS9yl`uEM=vx^<|DV!#CSxS_6Ga4Z)*8_d&^cI;szhDxkFtDe)ER zVG-_*un^td@kRRH9ba4eqLt#sAo^inas1DYF9Y$Vllx&7e`1n?qTmQY_{kY^c{eWc z9`7=jGZ)c~CNZ4+mhMK38?_hUC+3R{f2`V*hjSN; zjAZ8ccWM9r@WCb8!3d$vW(3Hx{$ik-=8;;OYp>CBK6Si4F){6{t|S`wfMK*I38(vd z8j*aj7V<2$n_bHVDWuLMaqWMwxRVY#CRq%Ww7&TYp!PzyCc^=prN2SZe^9M1W1S3g zDd(Du+H-&9!HK(G6$97;k;>DXJLTTtG)AO|(?!u8p+C0znLLsGg7CAJz(U$S0B-$X zTnDL_O$?lpw36QuYZopHo;eY)ydj4wgEgm^QUvX*fRv2|OIo%(Un7#!Xyb=m)V>?Y zJ~V?a4Nj;~+N79pAO8JHT459CSbo^HoAwO>Xb{t3&(HtBoX1v`WRt~|nk<;9-#|o; zgT@U+7Ts%CSF#f=*|o%R`qV%K(>}) zw6cFH0?IaSAPw|G$Pwj?6XdDX+@Kw-srK>FVc~Dty|0QH?xxCNL=`?na|c0K`-Wn6 zNShQ88T7qdSUCt7aGkc9$!XtUY&9mm_4}&@Q{8gs=?Mr}?t4a3%)0NPN2xhOBL+ja z_8rKn?Oh|@iN8A9t=pT9g#Zbm^O&6WmBdclFU!XnzT2k5jfK^ef?K3ix(x!BoG1DB zS)X2OpfMYFeC!s`zP#AF`+VuGSrdQbu31X|%5-a=YGj_iaOAm%Uv# { + sessionStorage.setItem("fromMainPage", "true") + navigate(`/server/${serverInfo.id}`) + } + const showFlag = true const customBackgroundImage = @@ -46,7 +51,7 @@ export default function ServerCard({ now, serverInfo }: { now: number; serverInf "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
navigate(`/server/${serverInfo.id}`, { replace: true })} + onClick={cardClick} >
{ + sessionStorage.setItem("fromMainPage", "true") + navigate(`/server/${serverInfo.id}`) + } + const showFlag = true const customBackgroundImage = @@ -37,7 +42,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
@@ -121,7 +126,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
diff --git a/src/components/ServerDetailOverview.tsx b/src/components/ServerDetailOverview.tsx index 8b3966a..facc583 100644 --- a/src/components/ServerDetailOverview.tsx +++ b/src/components/ServerDetailOverview.tsx @@ -7,6 +7,7 @@ import { useWebSocketContext } from "@/hooks/use-websocket-context" import { formatBytes } from "@/lib/format" import { cn, formatNezhaInfo } from "@/lib/utils" import { NezhaWebsocketResponse } from "@/types/nezha-api" +import { useEffect, useState } from "react" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" @@ -16,12 +17,29 @@ export default function ServerDetailOverview({ server_id }: { server_id: string const { t } = useTranslation() const navigate = useNavigate() + const [hasHistory, setHasHistory] = useState(false) + + useEffect(() => { + const previousPath = sessionStorage.getItem("fromMainPage") + if (previousPath) { + setHasHistory(true) + } + }, []) + const { lastMessage, connected } = useWebSocketContext() if (!connected && !lastMessage) { return } + const linkClick = () => { + if (hasHistory) { + navigate(-1) + } else { + navigate("/") + } + } + const nezhaWsData = lastMessage ? (JSON.parse(lastMessage.data) as NezhaWebsocketResponse) : null if (!nezhaWsData) { @@ -66,7 +84,7 @@ export default function ServerDetailOverview({ server_id }: { server_id: string })} >
navigate("/")} + onClick={linkClick} className="flex flex-none cursor-pointer font-semibold leading-none items-center break-all tracking-tight gap-1 text-xl server-name" > From 2f021237877b73ebb156e89c653a8b94655eac0a Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 10:00:07 +0800 Subject: [PATCH 2/8] feat: save group selected --- src/components/GroupSwitch.tsx | 7 +++++++ src/components/Header.tsx | 8 +++++++- src/pages/Server.tsx | 29 +++++++++++++++++++++++++---- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/components/GroupSwitch.tsx b/src/components/GroupSwitch.tsx index 9446785..0298634 100644 --- a/src/components/GroupSwitch.tsx +++ b/src/components/GroupSwitch.tsx @@ -37,6 +37,13 @@ export default function GroupSwitch({ } }, []) + useEffect(() => { + const savedGroup = sessionStorage.getItem("selectedGroup") + if (savedGroup && tabs.includes(savedGroup)) { + setCurrentTab(savedGroup) + } + }, [tabs, setCurrentTab]) + useEffect(() => { const currentTagRef = tagRefs.current[tabs.indexOf(currentTab)] diff --git a/src/components/Header.tsx b/src/components/Header.tsx index c77f5fe..6a9f6f3 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -60,7 +60,13 @@ function Header() { return (
-
navigate("/")} className="cursor-pointer flex items-center sm:text-base text-sm font-medium"> +
{ + sessionStorage.removeItem("selectedGroup") + navigate("/") + }} + className="cursor-pointer flex items-center sm:text-base text-sm font-medium" + >
("0") const [showMap, setShowMap] = useState("0") const [inline, setInline] = useState("0") + const containerRef = useRef(null) const [settingsOpen, setSettingsOpen] = useState(false) const [currentGroup, setCurrentGroup] = useState("All") @@ -39,6 +40,19 @@ export default function Servers() { // @ts-expect-error CustomBackgroundImage is a global variable (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined + const restoreScrollPosition = () => { + const savedPosition = sessionStorage.getItem("scrollPosition") + if (savedPosition && containerRef.current) { + containerRef.current.scrollTop = Number(savedPosition) + } + } + + const handleTagChange = (newGroup: string) => { + setCurrentGroup(newGroup) + sessionStorage.setItem("selectedGroup", newGroup) + sessionStorage.setItem("scrollPosition", String(containerRef.current?.scrollTop || 0)) + } + useEffect(() => { const showServicesState = localStorage.getItem("showServices") if (showServicesState !== null) { @@ -53,6 +67,13 @@ export default function Servers() { } }, []) + useEffect(() => { + const savedGroup = sessionStorage.getItem("selectedGroup") || "All" + setCurrentGroup(savedGroup) + + restoreScrollPosition() + }, []) + const groupTabs = ["All", ...(groupData?.data?.map((item: ServerGroup) => item.group.name) || [])] if (!connected && !lastMessage) { @@ -233,7 +254,7 @@ export default function Servers() { > - +
@@ -306,14 +327,14 @@ export default function Servers() { {showMap === "1" && } {showServices === "1" && } {inline === "1" && ( -
+
{filteredServers.map((serverInfo) => ( ))}
)} {inline === "0" && ( -
+
{filteredServers.map((serverInfo) => ( ))} From 6fbadb7d6cca33e169924a08d73d37bad5e0a629 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 10:16:17 +0800 Subject: [PATCH 3/8] fix: network unit error --- src/components/ServerCardInline.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ServerCardInline.tsx b/src/components/ServerCardInline.tsx index 0c2d3b1..68d1c99 100644 --- a/src/components/ServerCardInline.tsx +++ b/src/components/ServerCardInline.tsx @@ -102,7 +102,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser

{t("serverCard.download")}

- {down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : up >= 1 ? `${down.toFixed(2)}M/s` : `${(down * 1024).toFixed(2)}K/s`} + {down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : down >= 1 ? `${down.toFixed(2)}M/s` : `${(down * 1024).toFixed(2)}K/s`}
From 1b0d88c8bfb54f4caba0778aeb77c66144075a66 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 3 Jan 2025 07:08:41 +0000 Subject: [PATCH 4/8] Translated using Weblate (German) Currently translated at 100.0% (86 of 86 strings) Co-authored-by: Barium Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/nezha/user-frontend/de/ Translation: Nezha/User frontend --- src/locales/de/translation.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index d5c5230..4cf9c43 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -115,5 +115,6 @@ }, "footer": { "themeBy": "Design von " - } + }, + "login": "Login" } From 4827a591ac2727e1f722a99b177dd0667548f8a6 Mon Sep 17 00:00:00 2001 From: weblate Date: Fri, 3 Jan 2025 07:09:06 +0000 Subject: [PATCH 5/8] chore: auto-fix linting and formatting issues --- bun.lockb | Bin 185953 -> 185953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index cb015a0e94052aa764e8b8aa00abd10b1083eac4..05825378530d5ad3065f3a6af4b913c70f9cfbe6 100755 GIT binary patch delta 592 zcmXZZ%PWLY7{~GRjHX0WEM_5D$O36d21RZgrIf5KCN@^e{XX~u+%1kUtZ8;=R#wBz zyyJeGVGJ7A*jQMR@SQllpPpZ*&eQXr6LTlW+{t4blH-*+o$HnIv}yIX=0qtzWx*s8 zJx;Hzn5@etrCeA-3mjG*R`hVH z1ML`&cR(My(2YS1UgqbU(orV;o#$Rs&8=D@}wn;m|}64&s0aBDEw0H!c!!cCa0sB=)`d1MDOtDCbIVNKa0s z?XUK&rAkw4xN;$aZliQN(m3E!yl}g);QYsmXq7*|}FbCyv zcxA(6T{9`=#5$VMiZ)&BlV-i-lME@)E}xVaTqY@Xg%HBH#tkC4MHF|qM@(D%l9TyL zr8m6e3D1b*0gt-TFZo$}#C`bShk-tN8^9ojwbL&Rwib%Ep&fOoKqYFlIUpTXU7YGh z4|)?7(2oHOVhF<+!6?Syz&IwfD7$Ueq7$I#AO18yGT*nF)b!kxS<}Kp3?hHzK`YLe&iP?os&rVQk)5PxiiAaM; KnWsJ~*6)8_9e$ty From 52dc3cffde68b5a9a8e00999db06c351b814a2ff Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 4 Jan 2025 17:11:21 +0800 Subject: [PATCH 6/8] chore: deps --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e52efe7..5fcebaf 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", - "@tanstack/react-query": "^5.62.11", - "@tanstack/react-query-devtools": "^5.62.11", + "@tanstack/react-query": "^5.62.14", + "@tanstack/react-query-devtools": "^5.62.14", "@tanstack/react-table": "^8.20.6", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "@types/d3-geo": "^3.1.0", @@ -51,7 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.4", + "@types/node": "^22.10.5", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", From c565e2728e011df5a666b8c058f6d221b0987c90 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 4 Jan 2025 17:11:44 +0800 Subject: [PATCH 7/8] fix: build --- bun.lockb | Bin 185953 -> 185954 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 05825378530d5ad3065f3a6af4b913c70f9cfbe6..e09c2e01f4033ceb314ed710e226831036cac5fc 100755 GIT binary patch delta 10898 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 F{2#7(H+cX6 delta 10672 zcmcgy30PD|w!U?tk;|qa2rVKIK~Q7|8)&gXjc9Ns28{-=RU{xN0xp5F={lEQA~&$lc0$UuEZsA<>?rsi4%3kWS$H1{<_uG?V5S>zV{w{r_WNS&OLSN zoT}TivSY`ySV?A1->sr*YHZ z8mIp8X_Dk8N!5FRgMod4I{@D>Nm6HE=U$Q&1pGaCJ@6VLN!|>DXL|L(zQ9XWeXBsr znx`eHEx2BNCCQbw0($_*0k;7T0QLbsnjuLFaDx>)LC&m*_P1e&^`8aIyekH72b^ui zv!CI1CjhhdY+%^6RHuPpit94@19bx=$qW2V@SebZV1V&mfc=5pf!Q#w_Tj^C8YoFm zf$xW5GDjnT1ArX{^IFw<)f%*O8wti|sI-tQbR(`&HuwZLrR zR#@e)0<->8d3&$waUht1AzVPxKef<&kiqz+9v~U7AzI^R5(_&F7S|!pNd>Nh+N(v2yIBars}s91Hu0z^wf> zV3sZxV0YjH6&#E9601IRHMeuXWB8V8J)Xzrsi-`%(p*w3nac`F&1L2J?vS%s_MXOZ zcVK3?5tz+DLGh$9X2fGC3^Bb_VCKky>3qIJz_U7V0%nfomlqdKgj4Ni+#ffKJ#f|l zJu-qPcwYVRgT({IM5JO;g7DxFVCKmCGkGCit>T5Y0K8u}H0*+aji5ZgWNJRb?TQB0 z@i628z-}7NIud{i6Tmfdik63a4xjet~%g36F&ExWWfM; zT0}XCG81Jbszy|Ys2WkuqKt1^t4x%qwG3_5C#p` z>zyc5mS^9;!l&JF5zot?Ugx+Gm_>Ixa690Yz$|EUt@09JZ2<@N#lltH(<6vDvRV^j(47F+S4|Bv>N@m> z1&t~LH9(`j0M$pMWb7+LG%5?!AdPwt)Bv?P-bg-Ew`Q4?*?lDm1F(8~6&w^82XA9C zB&naqkuZZY9b6VTStV#Y11^Pgkp`t5)EGyYe`JVSIn1OSg3PMl#h?r7kLRe(-Hb{u zC~HIzpN-(G(duf@{l+-8Inbyqfsk7yQAy5VY(doNv7Po~gHg<&;0Ihns4<{h*(Swz zfFxlCswK5P%s{f$%HbwOg$yy{!_plGH%tpgmx0#sDHc%HiRo%k2p%>@=qqEvu`tML zItIQ0+z5>$2?oU%TQFkAf|6j+Z3L%HhazLP*o0|;)MbIp(w_JyP#9pmQTYXwbxas| zkD+X;syZ8$wV;Oao(Rt!aH*R8^gx4>iFmTf(rKP70~Z6%NlnM-UDV_kOu9Ji{G-&= z7mT`vpq|&LOEy_Lvh7(-whUB`M%@5as8J(_V@J@a?Vxz8ABI|>$tX$JdNu8 zyr5Qt;yqeyvfPovgE~;dSr5enC2Q11R}*0%{nf3bO=N+3YqUvMm&4Mwd9+b?2UK5; zN=F6s)2R8NciFj*cb z-ns!4w|4^+@0*N-;P$FOaoIPZcn{C9qQ`Jh+=Er1xZV{|TrY8)kX3=w?2&r4vcN>< zsax^csNTZoG&T7}lky)0(ADN1u~NccD!y#?7q$jYFnm9x?UuBWi3 zq~gSq08Xc}MPV{H_9SFvv4QMRlZ#Et9mtqI^0L^VBo|9klF(2lgJb&e0JXFk9JkE4 z>)_aUomoG*SBW|!q^B~oM07|GHIOZ8@A%2E?aSGSg$l!{VG zN<#}Agx(HtOwWE9a$Zk`4Xb|c?NzPzc zd@*A9_XRjMvD%)b{05G9W6>ClgIJmtjYXh(L5ru-DR9;Vgaz;El4L-ehn75O>zdq0)bk@nl?vG ze%YiPgp3UXPDW#UtP)WqF$Uc@aM@~Afl=3cCR+^{wFgwLMul3~?!;u3p!zaO`4SX! z7P|?O*R7hTLMyet0M!kSTYD1}_7L>E1WN0v>sEsyvDzo&)vXqjZVl&AEKQ)8*R9q1 zQUmc-E2~Xps=5`Q8`!7vAG0KBB-&9h2+-?lWsON`JqLCn!$^_L&w*oQ=&05}LsgS! znUqtIu|#xKiP@mb!}(I%X_e1Gv8QQSMQ*CevrWXHR^k)u9zL(Bx9}OSCeJbHivECT zsi|{}y3au2Py@bgMa zm4U)hi}_-s?%Ak5uZh-ILE+E^y+bz2YoU;3+o-n%Mb4?oubOmS7vVIaroL*_&9YIa zK;aYtSQ2|vADp!-81I1etmT1vM>pW06Uw}GglSM7nA_mzEP*^M?jLK$EZ1=_d z;gs_?aJ|5_RY^yK60P#&Z_5@{rO?Kq&Ha6F$JHOnIl<>LT^rco*rDRYa1Abg%V2;5~3s{5jHA zi>B=zIHtqm3+1Ny-aSX9F84UyMStn}4%y>fWB2`1(2(1-BeN<|U)Afv*fE|bKc8=Y z{f|d0{`2&vFwo+kFu1ui(d?S zWuN1Fc@z5dp3$)Q#MI2c%o$nn<%NTp!>@U`fBWh2jLjLt_m~Rlwz|j+;_I!SpT)nI z$?&giQgQK=Qc1c4S?fB_fn)+fR2}Jo7l^a2dK46y&{d{?$smsOaxUpWzNYo#Np#)y zexz8Y@0p34j}8VDObjz9zRc_D>dj<7Av5U0vE_5zLo_5%(8_5lt8HewXF zWQmU2M||Ahf`9_PgI_0T)jksK$z~7Bql5)i!ZIc;qC57Hh=6M#{{c7w_zrLqa0bu> zI7M|0q?0?ACut>M1>kL(*g)cSTR_&*k_KY%#4;znV}%ca*Vld0K>D^J33Yc*k@sa1 zOW!+7^dz=!+gY-tqi5_&Y--*pszGl(Kl+19es`$HT@pf;(we)_T0_kqvYynxu>_yr z(^whk20hyr$d^X@0L9aQW+YT5o$M{^mCQ5*7{>O{^Q~k(O>>gl)2~{H7uw%#A@NpZ zQ*)*!H~DFMgg>%5+lnY?AlTOaleb7&m!s#`g9AIsyU+Cm+ zWFY-nCkKnEx6kAwfwkttqZ*w=8i*?b{oE0~19Z8^;C5V840Ai1<{?4EL++m<;!NLl zK@&GiCeS-fQA;yDnN2r2%kgwbGwJs5G;2*y+fwVv`LK@GDDpsZlO9%NeWJLvIN569 zkHi14a2;HX!QA2W_T(1(h5i(xlQ%Kth>L5o;1-Nu8(E}FBY4D zClByJ(>%7;L=|@{pGW>9z59w?^JIcFjY>d5TRq^#O&gq1ZI6qx)pibTVa5Nz@-U4y zwt?*bvUK!hF}1Xo<3*1AZUy~oS9wsxx@OJ0Cq&@k`FmjKTJYlO^?T%zB6-|o{CgoH z|Kl~}anHVgCHn8J<=l$@YeV@pp3}*5%NLCEnabC~IHb<+B*TLdenMz%Dg8Kqtri~Z zw!IET*fC23{g8x7w7^fU!C~);pKK%-Xs8}Z^9wz1#HLiHmuC?Z{S~4_>lI%0cJFpx zIg9={%aJ5R#U-!>N?h`N(sK3hF6|pa?JcuuPJ68RtDoh!DNYsNjw?R&581Bp6>ilc(K404v#6_hc?4zW(J4gE3TWV;e zKWwiV#(fxe?#oqwxLMQQuCR-mp+L^imzbWo8Et)`F}B;?{detpKJ;UMxxioCEu1^| z<%$h)JCYp<7D0ppM;sd40fsKqOdx-8so{6~c5GHd_k6pa7qvhkQCw!k^m;q5&Z#w` zA`FRp6?fl0S62Rc>K=Q`5PFc=7WW*5TYIcaa4NZESC~pk0DO3r`UClki<%963v_1rrTR?(iP0MxO4gO&5FOTGX1vQ zuF#$~G9RMprXI34Z3&Qd{^BAx&a*1}{I;wycI6SYCRO%M(E=#0bLxLsvaYRf#y{;^ z;znujZ`FY>|LHl^-m;XIbc8qJMyUIM1D~#1x@Cr4!Huqh0tunp8A_$cJIWCxhmt^? z!6xSOdrT+#Qlh4l3Mq6xX53IZnQ=LEK_Dukgnr353ytj#^cu}%=tElHS@w2HVCNST zwJ^~aG(8CAbcFgFz+I$ggMhBn;82uPn_zhmaiDp@5P8u?1I`yu(euHu9!X1*Ak3oC zPl3y&=cB-t&??5&(oI1A;u85Qj~~}()Q-EMoonKv@akzdZD9)H7JB;DUk$pH{u`_( z2pn}Z3wnQXEuHjc(XEM2LIAN&Fhm`HBJJttp$KLj zb?pp?w3xQ*h*=Of&nM?~zSncqJOw7$7|}9^F6@kGYEz~s2k7a}@+ZWdE(t?_J#7ku zqvE!BL-2^zx97HmpmQuAcyAgRj>w2>6HHX8{b^39*9HH#S z*EW9~F>QI(jNUx2d~`|BA4+4pK$1fed3_rRy*5$j{F^U9o8p&RZ-kVp-S^)97e~;3{ol$d&Gh zLw39zEqhrDJWv$4xK1B`(zN-x$fO_IkcgSM;-ytFIMFYl0kIETA@5UToNb{X6KQ3P zJpXq*e!vDD5-WSz78hRp)~C>wu?WC}+E*d^9n;nY>;Z>t#Mwp*v3mW?qFpJ8G9+#ccFBzS$$Z7Vj+7ZO6+&~AWLRtI(WK6reO6x%H-|WiT_OHh~ z#&?*W_yNgE|Cnt@uZ$gO*Sky)Lm~08CnL?R#~yXGmUA?qCv1x!u{5q~6YzETmBDt~ z-gGDwND!UC^u$j*)+fJFnx+5yyN-B4VTg)P#+3$r7Yd2lcyZ{92|W4JJlbjLx`TEF z@w1VYADt_{J^Hyd_LjNyZ_Kv%ok{w)O}mzl`k>OTu$=~*;6o!d0{M&Isgw-r?l!A@ z;5@sYBb~$)I^rh44Lt{Fl|#UD|KI1%Ug$$1X_7qzVcsA Date: Sat, 4 Jan 2025 17:13:00 +0800 Subject: [PATCH 8/8] feat: open dashboard on the same page --- src/components/Header.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 6a9f6f3..4af0483 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -224,7 +224,6 @@ function DashboardLink() {