From 564809d848b5fa5524a63f409c0a108defa43c4a Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 13 Dec 2024 17:31:59 +0800 Subject: [PATCH 1/4] test: lint --- src/components/ui/input.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 8609d3e..a43e452 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -15,7 +15,7 @@ const Input = React.forwardRef( ref={ref} {...props} /> - ) + ); }, ) Input.displayName = "Input" From 1b7fc8d5e8dea456b0170978e85fee2c928a5d77 Mon Sep 17 00:00:00 2001 From: hamster1963 Date: Fri, 13 Dec 2024 09:32:35 +0000 Subject: [PATCH 2/4] chore: auto-fix linting and formatting issues --- bun.lockb | Bin 180652 -> 180652 bytes src/components/ui/input.tsx | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 2a6200c8e29f9df19fa7d16f350d0e8259cf89d2..86a7e3871fcd7ffb0cf2e87fc2b2a8ee0ed43c1f 100755 GIT binary patch delta 25 hcmZ3}%)O?WyI~9C{;TYaaRz#3dY0RdU1fas8UTX-3c~;Z delta 25 hcmZ3}%)O?WyI~9C{;Nz(4AU2WVHDqf<0|8o*8q#x3#tGB diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index a43e452..8609d3e 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -15,7 +15,7 @@ const Input = React.forwardRef( ref={ref} {...props} /> - ); + ) }, ) Input.displayName = "Input" From aaa4b1a4c5e5e1e8eedbe8f669be30a7fdac7995 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 13 Dec 2024 18:06:01 +0800 Subject: [PATCH 3/4] style: temperature list collapsible display --- bun.lockb | Bin 180652 -> 185332 bytes package.json | 1 + src/components/ServerDetailOverview.tsx | 23 +++++++---- src/components/ui/accordion.tsx | 51 ++++++++++++++++++++++++ src/locales/en/translation.json | 3 +- src/locales/zh-CN/translation.json | 3 +- src/locales/zh-TW/translation.json | 3 +- tailwind.config.js | 22 ++++++++++ 8 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 src/components/ui/accordion.tsx diff --git a/bun.lockb b/bun.lockb index 86a7e3871fcd7ffb0cf2e87fc2b2a8ee0ed43c1f..de5dba476cc81bf72b495b8c1c1983beeaed2a41 100755 GIT binary patch delta 31561 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 z zSR|H(DZPzB_6UGKnV)e#wYc@o^bw1#TC3vdX(^LM<2D!~dR!!mnqMOBX`?)&yj&_q zb%1B+W2~Gg6=T|>Y366xp9mWI@b!haLXZ(165VrsirCW@U2J}!{kw*N-VNr3#=ye3 zr#XL`c%@dB=!>X!O1qFb)Adu;U(Uw4?f!H&;vVsxXQPeP!fbrAoi-cShX2K6jQ{J& z*cWO4(PVrlT=|>H*s{Go89So4MgR8yzbB)Y^44_mQ3U+>FTIqt^ZR?ptmQR3BLB>5 z;8cGYdC@FN@llFriAXHc3FhbT-}dO9@yL~l-)J7CU1`xDhNc_r8 z{(Kf5bc!3%ioeonws;8Z=IuEt!)J@bvCfl<5}GZpM=N*h&;PtJZ}@b@@6TIzTfX8% zjMA*WStDbeFbfwgW6@)`r^tu$FA6Zvg11$)rVJxHzdO!5Z7nrA?e?bDm2%rnJF(QJG{EggVN+rg{%c7S=IJF(1@n~sT}oEgYcYMfCP(AGbzHQx zWZv3DcpTo*^-0urs(du-cYABxWNE&B<1uuBn3o7wj9jpPPa^gx^$Qm0TSEQnz{}4C zR|9NZi?!{`KHYueTjxF2kA{gKk~j;o5o`vFKWsBm9c)mriDS$kws~4i!3dF>jAi1E z8!^oyZMc{Wi-bFFQ8f$mZ_O-r*)?Hw)8rZ2CQggNHt%_+HUCz`@p}D5*KZ15bXu5y zO~UK?_2>bwC*(R~#tjz@Q&2PW?@yebKdx)^+K;Q87H5ZxjKRxs@yH~d=KJ6uVWc_T~gVH=&fW8>|XirnwGY1i_| zTB^Hs*T-+|^xNC1iQ$O2RbQ}FjAB~zuUG6$S~Gco_fMN$a7)b=8HwmN_lVKeG{b z;f=TEH}8Z0r)8Gga+!!sLt66>a}@MVXgII54|>(KF#mMNGaFv`&nI7RTknjSv`oxK zS|w|#SevHw4!N{aZ@;xD^_6ck*W(_?T-?0ps*iIJZo}ZszYd~qy3z@cK=7_qR$l&e z{JoxTBi?QOL-^jXWHBsV36PUT87L?RuFdIwdeE##hCC7IT?Cmo;3`@SYJAH*?z35< z5+AlzVzIcVD=m?ViG7ldrA*w6?UesiuVx>0(93nN+CRXKWlNObuek1C-cgC}x4+M7 I<*|(a2a&~|egFUf diff --git a/package.json b/package.json index 460f159..41cb330 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "dependencies": { "@fontsource/inter": "^5.1.0", "@heroicons/react": "^2.2.0", + "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-checkbox": "^1.1.2", "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2", diff --git a/src/components/ServerDetailOverview.tsx b/src/components/ServerDetailOverview.tsx index 5e3d0a1..93b83e8 100644 --- a/src/components/ServerDetailOverview.tsx +++ b/src/components/ServerDetailOverview.tsx @@ -10,6 +10,8 @@ import { NezhaWebsocketResponse } from "@/types/nezha-api" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./ui/accordion" + export default function ServerDetailOverview({ server_id }: { server_id: string }) { const { t } = useTranslation() const navigate = useNavigate() @@ -228,12 +230,15 @@ export default function ServerDetailOverview({ server_id }: { server_id: string ) : null} +
{server?.state.temperatures && server?.state.temperatures.length > 0 && ( -
- - -
-

{"温度"}

+
+ + + + {t("serverDetail.temperature")} + +
{server?.state.temperatures.map((item, index) => (
@@ -241,11 +246,13 @@ export default function ServerDetailOverview({ server_id }: { server_id: string
))}
-
- - + + +
)} +
+
diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx new file mode 100644 index 0000000..ee72507 --- /dev/null +++ b/src/components/ui/accordion.tsx @@ -0,0 +1,51 @@ +import { cn } from "@/lib/utils" +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import { ChevronDown } from "lucide-react" +import * as React from "react" + +const Accordion = AccordionPrimitive.Root + +const AccordionItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AccordionItem.displayName = "AccordionItem" + +const AccordionTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + svg]:rotate-180", + className, + )} + {...props} + > + {children} + + + +)) +AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName + +const AccordionContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + +
{children}
+
+)) + +AccordionContent.displayName = AccordionPrimitive.Content.displayName + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index ce0a0f0..88fc294 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -61,7 +61,8 @@ "system": "System", "upload": "Upload", "download": "Download", - "lastActive": "Last active time" + "lastActive": "Last active time", + "temperature": "Temperature" }, "serverDetailChart": { "process": "Process", diff --git a/src/locales/zh-CN/translation.json b/src/locales/zh-CN/translation.json index 49b7b98..b0df992 100644 --- a/src/locales/zh-CN/translation.json +++ b/src/locales/zh-CN/translation.json @@ -61,7 +61,8 @@ "system": "系统", "upload": "上传", "download": "下载", - "lastActive": "最后上报时间" + "lastActive": "最后上报时间", + "temperature": "温度" }, "serverDetailChart": { "process": "进程数", diff --git a/src/locales/zh-TW/translation.json b/src/locales/zh-TW/translation.json index 8f24e4b..b9d43bb 100644 --- a/src/locales/zh-TW/translation.json +++ b/src/locales/zh-TW/translation.json @@ -61,7 +61,8 @@ "system": "系統", "upload": "上傳", "download": "下載", - "lastActive": "最後上報時間" + "lastActive": "最後上報時間", + "temperature": "溫度" }, "serverDetailChart": { "process": "進程數", diff --git a/tailwind.config.js b/tailwind.config.js index 370f977..89afbe7 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -53,6 +53,28 @@ module.exports = { 5: "hsl(var(--chart-5))", }, }, + keyframes: { + "accordion-down": { + from: { + height: "0", + }, + to: { + height: "var(--radix-accordion-content-height)", + }, + }, + "accordion-up": { + from: { + height: "var(--radix-accordion-content-height)", + }, + to: { + height: "0", + }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, }, }, plugins: [require("tailwindcss-animate")], From 6b3161dde50f63f26f651d3a4a7b45a5b0695207 Mon Sep 17 00:00:00 2001 From: hamster1963 Date: Fri, 13 Dec 2024 10:07:25 +0000 Subject: [PATCH 4/4] chore: auto-fix linting and formatting issues --- src/components/ServerDetailOverview.tsx | 43 +++++++++++++------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/components/ServerDetailOverview.tsx b/src/components/ServerDetailOverview.tsx index 93b83e8..d2cbd17 100644 --- a/src/components/ServerDetailOverview.tsx +++ b/src/components/ServerDetailOverview.tsx @@ -231,28 +231,29 @@ export default function ServerDetailOverview({ server_id }: { server_id: string ) : null}
- {server?.state.temperatures && server?.state.temperatures.length > 0 && ( -
- - - - {t("serverDetail.temperature")} - - -
- {server?.state.temperatures.map((item, index) => ( -
-

{item.Name}

: {item.Temperature.toFixed(2)} °C -
- ))} -
-
-
-
-
- )} + {server?.state.temperatures && server?.state.temperatures.length > 0 && ( +
+ + + + {t("serverDetail.temperature")} + + +
+ {server?.state.temperatures.map((item, index) => ( +
+

{item.Name}

: {item.Temperature.toFixed(2)}{" "} + °C +
+ ))} +
+
+
+
+
+ )}
- +