Files
cstb-next/src/app/(main)/gear/page.tsx

78 lines
2.0 KiB
TypeScript
Raw Normal View History

"use client"
2025-03-13 03:44:48 +08:00
import {
Card,
CardBody,
CardHeader,
CardIcon,
CardTool,
} from "@/components/window/Card"
import { ToolButton } from "@/components/window/ToolButton"
import { Chip } from "@heroui/react"
2025-03-13 03:44:48 +08:00
import { Refresh, SettingConfig } from "@icon-park/react"
import { version } from "@tauri-apps/plugin-os"
2025-03-13 03:44:48 +08:00
import { useEffect, useState } from "react"
import { type AllSystemInfo, allSysInfo } from "tauri-plugin-system-info-api"
2024-09-20 23:15:42 +08:00
export default function Page() {
return (
<Card className="h-full">
<CardHeader>
<CardIcon type="menu">
<SettingConfig />
</CardIcon>
<CardTool>
{/* <ToolButton>
<UploadOne />
</ToolButton> */}
<ToolButton>
<Refresh />
</ToolButton>
</CardTool>
</CardHeader>
<CardBody>
<HardwareInfo />
</CardBody>
</Card>
)
}
function HardwareInfo() {
const [allSysData, setAllSysData] = useState<AllSystemInfo>()
// const [memInfo, setMemInfo] = useState("")
// const [staticData, setStaticData] = useState("")
// const [cpuData, setCpuData] = useState("")
// const [batteryData, setBatteryData] = useState("")
const osVersion = version()
useEffect(() => {
const fetchData = async () => {
const sys = await allSysInfo()
console.log(sys)
setAllSysData(sys)
// console.log(await memoryInfo())
// console.log(await staticInfo())
// console.log(await cpuInfo())
// console.log(await batteries())
}
2025-03-13 03:44:48 +08:00
void fetchData()
}, [])
return (
<div className="flex flex-col gap-1.5">
<Chip>CPU型号 {allSysData?.cpus[0]?.brand}</Chip>
<Chip>线 {allSysData?.cpu_count}</Chip>
<Chip>
{allSysData?.name} {allSysData?.os_version} {osVersion}
</Chip>
<Chip>
2025-03-13 03:44:48 +08:00
{allSysData?.total_memory &&
`${(allSysData.total_memory / 1024 / 1024 / 1024).toFixed(0)}GB`}
</Chip>
</div>
)
2024-09-20 23:15:42 +08:00
}