From 795ced7f3892c8524975f3d243dc5aa42ee9861a Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 2 Nov 2024 21:30:46 +0800 Subject: [PATCH 1/2] refactor: server name text no wrap --- app/(main)/footer.tsx | 2 +- app/(main)/header.tsx | 4 +- app/(main)/page.tsx | 2 +- bun.lockb | Bin 463254 -> 467766 bytes components/ServerCard.tsx | 105 ++++++++++++++++++++++---------------- components/ui/tooltip.tsx | 2 +- next.config.mjs | 2 +- package.json | 4 +- 8 files changed, 70 insertions(+), 51 deletions(-) diff --git a/app/(main)/footer.tsx b/app/(main)/footer.tsx index a09a84e..5a0ba55 100644 --- a/app/(main)/footer.tsx +++ b/app/(main)/footer.tsx @@ -1,7 +1,7 @@ import pack from "@/package.json"; import { useTranslations } from "next-intl"; -export const experimental_ppr = true +export const experimental_ppr = true; export default function Footer() { const t = useTranslations("Footer"); diff --git a/app/(main)/header.tsx b/app/(main)/header.tsx index 92fae08..a91bf97 100644 --- a/app/(main)/header.tsx +++ b/app/(main)/header.tsx @@ -11,7 +11,7 @@ import Image from "next/image"; import { useRouter } from "next/navigation"; import React, { useEffect, useRef, useState } from "react"; -export const experimental_ppr = true +export const experimental_ppr = true; function Header() { const t = useTranslations("Header"); @@ -64,7 +64,7 @@ function Header() { // https://github.com/streamich/react-use/blob/master/src/useInterval.ts const useInterval = (callback: () => void, delay: number | null) => { - const savedCallback = useRef<() => void>(() => { }); + const savedCallback = useRef<() => void>(() => {}); useEffect(() => { savedCallback.current = callback; }); diff --git a/app/(main)/page.tsx b/app/(main)/page.tsx index b632f9b..2b271a3 100644 --- a/app/(main)/page.tsx +++ b/app/(main)/page.tsx @@ -1,7 +1,7 @@ import ServerList from "@/components/ServerList"; import ServerOverview from "@/components/ServerOverview"; -export const experimental_ppr = true +export const experimental_ppr = true; export default function Home() { return (
k3k2?}|8sx`1mm6qc&g_J=Dq@`TnJD?9aX4p zr}0)VQ~9W2FQ7`Q6RCXF0xCZ>_9c|RI+H3ueMl9k#=n9pl|S#5wnlT+`)_RwE@pLV z8gDsLan0(Wwg|Rpr&g XhFUz**d%%u&Fr0OYHV>`ygID7F2{(QDf96K7eW|ig%@BYijeuDh>Ta{ zfx EB_(}^FijJ{rf>4l*yUoQfUia{VR$gZ&j9G1fDVc!&H z1%^M~ 8_>v2>im-C9%Yboks)2D`m51Qg$h<%sh+hSyO`Lx&vPOU`I|OnO3yF)Tv9M6s zCNM6ZCc-Mho-M4Yuu5Qagf# cuY?U2))4Hqupz=4fxQtnR9Iuwuhd2h7)pl$^7|$bPD>fc z2ytu*yBxkO2hBA@zh;n7VWY&aIoN4gAESlg;et{EjJsfru$HiY!`d=(C6AQ?TfsgG z$dx=^99zQ k6N5=W*!XxYn zc`uF&g!KaZOV~nTy}>>RTO_Ox*x$ky3+oH^QP>h;{lGp6TMA}m#r+|l1uhfE0bpN* zeJ?Bp%p7Z>mJ3UTt&w3}AuJ6{Cv2s#fne6cRtZaI|BDG+EieO)C4{XJmI+o-*jizO zz$yt_CoBsrOxSv1* 5w*Hj0KKh?A;7VTQDBZ!e+uQD*?&X%rN$|0P|#}yNja<%pQ(h$-HW2 zfwLi&lDPyJE1m=SODgdemIw9{46ECGnMFSp@<9A>)-#tk7wn)BkSpF#GS7oONgVx! z%?HZ{<1Ppgwg7e}7 61E8TRs-@w^UTVQEQb65#=}?!ki)tJvI3C1 zpq#L!uvZETkph>2^+hGz8KL6$J!}{Fac6{qv6AJG!?MzOs^%!HfDD8m7kp%qpHW$f zM25g9K>R7IAeq9d2wM%7EiA4mv$6&(M_5fT*0&ZiSXdqLTL NB#eIIxDPge2_zdJ zY(MOV!cxK5m;;bT!qS8t1Zym8ps+(=O@yTjI}FxTScVSs&*3@(X(n(G969_)A $)>_y|@%xoqfxm^0gdQdEB wiKHVur8z6j|mj3+bZ{R7fX*i2sk6JCP!5I9R5FN5_IW)gM r==YuqDtx33~>6HP}+<{b2Z0o ^+F_`)K?=upq0-pe~k}r^f!k!7^P^1ehWM=sAvaBx{!}tp@ zHbx7U1jbPOTKp`)T7og`z7eJaGd2a>2ly6{73%@3fgOhZ9t?kq0W1dW2<(plti%$m zim)$WNGewNhyXhZn+t}_8Xu9uG+@kY16B#_80TLH$VzMhJpdW~ti-Vxm>n1+ovjpT z2lfeb$4FNUj6-b?b{CA1&PDu+gWVJ63Wj172e3cD7_7X_ewcqpzy*K|8a{w*j1!n8 zntB7azZB>UW-Tm0m)hiNgz+AqE1g@nA{aa34aSvD79r*Nh#$AJF;X1) zT#k-}G2+O_a=f769*-5~2lf+e?(r(Z_*l*YdAY}{g0X=Ck{5eii4(s-u#d30b!$MQ z!$zeP;0GkQcjJqoQd%-|@74lCQVGJxWmLj#T3h_efQ`q*a+}r_zhJOjVfDb+n6l!> zt=mxi_y{i767x^kNF4bHjw^-xxv4l-0MiO<2F7U$0kaU+Li|F(bi!H+s|aQg)=F3< zFiT;rjRN_Ig%vYsv=J5##)`?>g0W&gc45V2iQ*Rt#)`?3gz-@fD<*3%EDDSjlXVbg zj0QZ0VP$0M2*^re!2X8Kz|>h-EEwmGtc$QJVDFIk3s_e$B$cZ8crUD*uxema!06Cj z@>YlaiO=5|!FmdegUvWk)>~K&*d5VoMzy}eYQpAPU{vcbEFLx+&8U_lECDtfO_nCC z7VP54%RrZ|$NWQ^AHg{Y%zz_V9ej{6`eh2M3)>lt(Ql9xSPwQAFr#0#_|=EaN*Mie zgf)Q8^2i1YYsm929T^gb2y7&dWJ85DhRva7lpH3k32Y8E*>GV^VRK{{IY)qTI-9}f z+G6A!DSrIHk88_FI7%E_z~ 5u57<+LEfm%hjF}nL77ObIn|T@4mI~_)n|aB; z7uE+h^D@w_05h`UzDRKEFw(6O$9}N6b;#BT>rX#q4uM`LYyj*JV2pkngr&gdP&4{% z5|#@4FW8KJe3_H=rfD$$Yz?E|j{*n6W@8xrwh2pz&Bl=J5SBqd jK6P2B8yRni%98js#m%8~Rs5uo1!-giZ?MT481ems9G%5S_E} zw0t#6zG?`4M%ZZBEVdE!Sz%*fvp TQnn3?9Y#eM(3`55SVdG(QVi-F9 zC}Kus0ur1V!pq{AOGjj8IJqipB5YRD68gHZNw7IH3@3jIn+%(cW;iJjHU%~-X6U#r zY%1)JjNXKI1x_PGfea`2g-wUeiWyEG3Y!6&!Ia_TF&LCG6CZ30!^sozn+2QaErye4 z!c4Fk9g?97zn;BkBf+WW4t^nybA)kcz7m!vj2rHaFjW}WJ>P!jl+180TY!Pfu6GuZQY%y%+VTTODmIz~q ztb{EsVn&5MvJtpU9ND8{!oG*iR Edpc9QF! zc~`+^1KCM8KD}e_Rtsb=c@0ap1~xOZM_!V7tuXe;N7y=H?2(_a^}^VpKw%qTv(fBO z5EzuQkvo#DCM+Xx6KpOJ_A*%553re;Jt`|~Gi>H1D<^CVY&M#`EDw#Zl^=z%lcB=4 z!e)6!_A*Q|Z-dPO$-;$g7f1FyLf8)RBa0N4FMb@2%EESvA6b;JUE;?PissWhXk|A( zSTSLYIQ|5iqrhQ{751|*jz$$>dtkFC?0HpTdttLYGCu2sQug74ejJVJ!uB(I(~*!5 zK ;+*CFB+4HRKKCE#w{KJ>)OQ2gu)$kC0E0&k(*J zGYf*(U-BnM>P~5*_-eElqy)qp;sf!8_(A+30gzIV(hw(zGsMMKoff6@(i&{lby2z? z8@~UogJ^8?uSDs7)Y|iXYQAG#7E;bOe}1g4t-gg75_}h@HKZD3I3~>p16hFGyA;BA zID#RO7}G%b@-6U{u=ym6Pr2qm%x{*1^OcQR`IT$vt`@Ut-nM8Slrfx#05?}8ogq#T zM+kqI`eKpawy~~#`H&7Mguh-TLbro7gjgb7A6gGx2U-VR3pzpd&(OKs@Ygf`(x&Lt zAx(4%M*hN97D=)Y=paaK2!A}YhuA@iL2Myh(FOR<2KFUrrumSRJ`RxLkaidcwlxCZ zxj?%?N f^nm8?SYPBQ0h_M?c|!akmB!!$ z$C{OD(;QvUgq$2*eol@)(MwI4sH><83l9xb h15W4s|V`uGMso42=kl#@RSs^)u;@Y7eBV z^IM`mi`n`K+PExr%51%dc3+mdYPLRHdp=9OGF#u%`$m?AZ~TlLusL~9(y>>~P)t;4 zrO-;)Ls@FaImq!UOU;_2A6Y*XCsiz$k-alEefdy)eIFNASSd6Nu?yeW _~#F-XH%xZOEp1yYejXZsV#-{h` zB6`L@zua8C|4^66(9B*#!dO~FNVnva #BZ{o`+D26d^cA-IS&w=_gqeXYAF zE0DLkxVXVfO?CU4wbDYpt-93B(1*GF^2@p#9A2m~oAoZL`J2?|27`LZ!%$2c7O9?d zGL&{M`hTv9Ar*^^kg!Ujs^%kR>#M(|8vL_95KAFkjsIu}a^(Me!QK3SUm-D}QjUs} zE!C`_^{(p7zx6)q=7suVs`F-jNh~(h6Xel*(17HWo*5NWQoHv+cB&9eT9g{L6r*5v zFWiig?79>m=4AR7y_4itUvAe2X~Od(tSs%VY#ijj(}DxkMh=#x)f5LyFWW?c_}4YH OS&pu>y3@h(#(x2&&-d~G delta 12281 zcmdtocT`m8x(4t)!wk)a9V`)4uwW2G1r?EE*VqeS#ja67M8!IGiCs}P)`)_d;;{!! zj)}&albD#IF~%geSYm>T-KgB>8J?V# Ihk5*hxk${}GA^fuS*wmSE44<=kZ~3x+Np^@ zhgoySnQN&xp +9t)U)W#BN-;A@})~wpb(#-l>in$hK4H$1;K z1xjUHZXIU5GTuyRi&v+mnrqS8597oJXZ+N!nTPuXixG}GmyGPzVfHA@HO$!1xtTR} zg1NRG*7GUFx#8^HVIGe##{;luWOokph?r Ij+}vsP=r$ zWmIj|%p+h@QI%W9<=8NfftZUxm3u~F+c4|;NqHAKSQ_{`*!!-cf4HE%j+WE^)Y{;` z>Gi+27Wi#A+uzmxp*ptoe6%Id{)yI#_61sQ58bvG8)yIhzqVYV1^u1V|Jvq-jIp@< zzdgA4rIxw#qt4E3crIb>zxJK!omFO3WCySGEgSFjZ}sf)>4}qKX59GB#Zu@}@P65` zD_-PoJoVxAeVHHU+`96hc15?oi@dWV8cn-mRxNM!cKEJ8Tj#4EqrZLWGke2p^Z#6N zqI}KDRi_@`ZyHwvz19yu+qB?e<~J*vm@jMRz4)+XiO86&tIvFUcDvquL-pmqj2hSv zm&0P%(D@AGEnXT;w&4dyWVcI+JMqV+l{-?8Z+UU>#@?F+G4<-dSEclnV#DkS6H`;? zSyN{FeCrau?BauS?;RLj^-|doi~V?_CE H5XJgxK#qRkX zeSL88Q>zF2j$C>3%~+rK^V9NvOs?l>)#G-jz^~ia%g>q6>0 l^+ubeGd?`>`QyfC)+Rr@V@|Jt-MhMP;i4)he^~oGzSgnB zNx75TH;Gx+=HdO;1v%02fn{uK@(0|1x4~~8x-85*(L1)&kek8lE1&tL IsY )S^EQoGCTYm;{Oypz|o_`a;UC35yym)o1ZdB<|acSGc=dNZ45 znANm m6i1ppWGGT{`V)qQ~7TyY zb2lOD0igU7Kv^^K383vmz;Qx(v-DHI6T*b2fQsf3!uCf1|7QRnbKEmP++%BrytB`& zp MY+zRQu|=B+KDH^2%1$zjLX6P7)_gG3ka4u8 zxg!E(78nO}4@3i*i|R1G8-G0nY%&hn7x@AvyA1C?jAl+T9EPiqPl^^rXt=@fW0XX6 zl6k5QZ(@uU+&ZRWGTulTFz#4!7>~0wVwLK=VE8f0AXdxDI+t}AMp>XKET@Ib!PdyU zVO%lZTp5jJm7EJ3Mg>@ytg;Lj!U&gD(X!sKX0q2*=L3sz2&)Mz0b9y^WxPb*MVHR- z(+aD=D#>c7t}3jmtR~Ek`PUF$vO21(20MtHlcTQC7c&cmfigeX6&^aKdN8Kd5!Ylv zFfLL9@tOvT5CGGf2o5Bi8p!;S`^rLLSdGKkvHXOMiqNQq!cBOUoiR*S8+k1lJ7W_V z`%4`J-a0uuV{6sb#e4>WueXJ9)q#j}=!EP$?PT?kXL#cJv-7kUzK(nq3TYi=LC9Cj zI>LDH^%0q}PO@NFT^&dl7|(hLA`r&T*hA~%U6X=kIrVf1Lot)6g?q_(WS!9$*m-)( z8X^Cfrv+1-tTFOWWbrUp%!eTk%Lb?pZx)TCvVk&36W|G9q7d&fjgv5Tyg@SFuZz@? z2Fvii(pU^*XB+}!hii^_O?4wxhqvH{Ka3r86pSzPR zlq`!uZpy~VVqt4!DYBNZwX*TDR N;ZkMqRwh-aSo)Zy*nn%}^mn!7tT6{^~QG zVU=OL3udaW3-WK!x!93sX?^%3#W(?DN1mg)ZpcHhtb@IFuCP1uP;F$MtOu+SjCJ#6 zJ(1_5V{%#`<2(8>sAES?m-R-DN0xJXOBRQ@JoGJgWQ;cs=jo5fOayOiOp8#6A0q+L zT((pT_kl&qmdX0UqGZcu{b12B-We-o{gK~QM_(x$fbARigc-ttC@hezk|o0K%T~(< z!5+xiL3yBq5szi;ptK=~C$cQrP}ox%uRnV&3x^?|sgS*vHXQM%Y@KWb?73{cY$WW3 zY=dkR?4@j@>`hpq>}{BX8ySsoj;m-ksc;N(i%x5{Y%I(s+bm0hdC0cNl3~SVIkIuE z%CcNp3Xi|OaI0`U3WH_aWT~(a*>>3kSOeKRFy3Ml5uvj8WRqYGWjkbPu*Ocq`QND( zP6nRm5Qb@&Yzp!pWV>ZkVPC*FobJ&Iry>7Db^BB|9kvXE8Ar+eFuv=Vfmkj(0*m1F zXPCklT6iXGHjL9t*(~JoFb=1Mvf0R+sE*?*&%zu;1o9}fR 5E z%F)UuoR6Hw(aJ7cAmf1JDoaOx8iNW495>lpG7dQIvW3W9P{+wbwg~w^oPON)4#N}3 z9b1e@EJCA%3YWlo!Z;R`gz@N>B6`6%@tqBA8KRB`q%yMQuuS#za y|>&3d&h?}ab>|7x>3i}ks9?!R9tTPb{RmZ0z zEekQp0mN-!R1>a2o(kh#;452;d^C)AfuC$0^1XP_^Dd|k<5^gb*a_oQ6UMW;0g(ga zT~JH55qYl6QCBN`8#oFZ;jIyTFTx*UR~B2##8++ zqK2%E>^)dbS6qKC+!n~w^*+L1g&nlQ9k6<`H?;6SV6V$M$#%k;$U4h*!J5jtz_^Xw zh-R|x4j_+s4 C!jE8WWW!bWPgq;o2-O{ewUdpKeGF^wiu<3Zf3z0<1bGJ) zj*%UPb(D>j9f7?eOOkyG>m*Bt@vI(2be5&Sc>0eay2vKjaQ)%NaYR?)WG#FG)=f4Q z#?y5Y(Oou8b_&)*HeL1^tfy>->|e0nvcE3-=h(gxC!D3iFJSSq*|O8HKC(G59^IFS zzOs3;uVDRT3$*MRSbtf%>}%Knn1iSPE#WuF2dZ$P>|0o(jPL)s;qMTGWJ^?c7B*P6 zRCW$FRK_PE&*1lnVY20X|4%%R7%p6)!XIEGWGiJCU}Iz%vL9g`k $8M$-Hg7H9p=Ce0VxK<1Qf)^&s*2ylxrpVT7;mfdo7%};f+6d!Dt|0or z_>jt$T}3_*#)njn>>BceIFRMM{@Z|D_pgZ3dJt`gaSyK}xDh_N-qpf4kee`0J5+ZQ zd6sOa)^`hb8^(v!E-m{T@{QOqpA~yy4i2ri5!-=$SR4S-en)JBZA5zrh9Bb(#6iA@ z=?H*3ozEH6ZASAcj5~b?Q4zKU?J+HT7rD3Wl$O26=YJtqn2Q%b)4~PF=b>;b+Rs&Z zANhRQ7qSO1Ze%;!(=hxP4-wo5?Q7LNLcSgE132D)BYTW|8EhA?|F=Ny^%KNgAjjvk zFka86h^a6R#phu>!_N>CU>u4s$^Jw>8pfgcCX8q1IU-4R3&w4{K#Y^!rt$i}M5GA+ z(87hVQ813<`7rJb*BTGwP<&5ye5=+C#$mTWW`%WvaoD{N u-f?>x|XTfC!8y+xk7)L)ljN9;p zm4IQOa~SSG%p1k<>jkbIM>-D}PjzwFuP}~urBzn~c3oBmhV>XFVc)|zSox@~6l@)g zV@4$ycg73G&lWj8yymRK`7aIh5LVN|WneQA95j4oWidYuaS7%pD~I{%vg)$(m_LaP zUqf9D7*Br%*kKqaf7MllRpjS?zXAh*JT>0H%{cTM$m_^_Scrvr@79CyNGieD(`msl z%sM{{U>$Gg5Y<&t9j%e-s>0&265isD#zKC6_Yrd5<6$y>e&>P}@*WR|aR+_1Fz@kZ zs`G s;jL!T3glCfw80TcJ81$epF|5!}TY21ahzWS)GdtJE^c9%qHtB zdmZK~>mmz+xyic9>chBUjv3u#!7!_=JI7ycn4iUP!z}En!UiyInAS_ik7u}HT5nlH z7&lCdlkp=Pc0vwJ@i1 $n#+wp6APYBEKU`*Rs7}cV%zcas4rG^v17y!i6e~gB8dY$>L%6Ws7AAFrFDc z1D3$JGkuVAgyS<{nd ;w@=L%b(Juc(l1{^;)2%UtXF{a`d&kP5lQ!>7Ppm7lTj24bUzJcJv99;gT!Wk;$ z;PSbQeT8*x(SBie4YQSXoYqUTKs=!KXupK g`5Y@;pAu8Lgd^q zhmK3KMaa2f+7;Pi8rH|*=@@M??hU3X~;Zo!rOgWs~grRYMfq^^2;pCR;mLunL zi^Iun*$U(w9tNQOL(8s2&MVD3IA3)cGTxYX9l}*Y-f;!8)iQSc2eM4${9}oI@{!C$ z&No@?YENL;2O~>$>}otiyqs&0b7y$D*wP$pHN#WMCoFLta$YB%4GUV@dgR tZ5a>9L$(Py*5fdEM8$yI>uls4BzZ(7VQ7ra_{Bkz#s?>D3x07Y zc$ChkGc1QMz<8AG (32u6Y_{E;YHeZ8IP!{>>U}8$XE6* za_%&bs0Iv;@g9D0r)f21?;~gb;6eJ!cJPkm!aSk?;XjabVOlNOPUPHc9%XH`c-hz` z<5336b|dHdc$7g}b`Nr{k5*r{S9J~^d9ZMw3TYv-{VL?yXdwGQb+k}fp6Ymp8p;l+ zj@C$a5IN5R&st+%f3(Jj!X0SCRQM5c9tn>;T=q}oJQ7+H*&)^OY&4a9tU6jV*(b=k zVV)s=PKw4jY#CjIJRQx2M^wlo=ZB{({8YxH 1BAy{`AZ{XVAvR+rs}Pw86R`%d9I?zW_e9wOJf|X`hDbB= zu0+}PSWEI7$oyL8OGKe(-sV_aFMFAvFvD--^gu))rn{IW+u15qeFEoqOmne@m52-k zKbx9_IG5M1o$bfso>BZL4^zuDp6-AO#W2f%8@VIg5d6QFi;*|1mn|XCVFU1=SyqGv z!On4+OCvvzhV$ppvWEY+;{UVwMGCGg6t8)rEso%SbLyhb2dy`vA|eR$< sC@d_E881XB1plX$mWE%LR%V)>b8G?FoUx$(99v%fIrjKUW L@hc%8%weWi|Gso;ooDhHVerKztf8(IwpkVxI zhF6N?m9#~vhsyr`YzbazfL9vuOX23?9Q#b`_EfWEuH8Fm4=PKd@=T+0J>oAua4To& z->9haudkC&TX7`8?Xd3#tL1L0*(2B9!}C%mo;#R)v&=oY_Lg~1a_vzT&n{U-8se1~ zv(4@|wOnXW>hLKcTwCbtgA>Olrc4eBH78Yfon@AJ;abz2S;N)SjIZKa$Lw6gwZy+I zqA0sm!?o$Z&CC3%ylXA@zgA 6QIUf%aUZtm`$$zFJyjVayByyfTSZ+caC^DcHkh_CRQ#pc-j K&A94rKmQk~fyN#H diff --git a/components/ServerCard.tsx b/components/ServerCard.tsx index c90d44c..5ad964b 100644 --- a/components/ServerCard.tsx +++ b/components/ServerCard.tsx @@ -4,10 +4,11 @@ import ServerUsageBar from "@/components/ServerUsageBar"; import { Badge } from "@/components/ui/badge"; import { Card } from "@/components/ui/card"; import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover"; + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; import getEnv from "@/lib/env-entry"; import { cn, formatBytes, formatNezhaInfo } from "@/lib/utils"; import { useTranslations } from "next-intl"; @@ -36,7 +37,7 @@ export default function ServerCard({ } > @@ -48,17 +49,30 @@ export default function ServerCard({ > {showFlag ? : null}
- {name} -
+ ++ {name} +
+ +{name}
+{t("CPU")}
- {name} -
-{t("Offline")}
-+ {name} +
+ +{name}
+