mirror of
https://github.com/Buriburizaem0n/nezha-dash-v1.git
synced 2026-02-05 13:10:09 +00:00
feat: refactor overview button
This commit is contained in:
@@ -110,8 +110,8 @@ export default function ServerDetailChart({
|
||||
gpuName={`#${index + 1}`}
|
||||
key={index}
|
||||
/>
|
||||
)
|
||||
)) : (
|
||||
))
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
<ProcessChart now={nezhaWsData.now} data={server} />
|
||||
|
||||
@@ -6,6 +6,8 @@ import {
|
||||
ArrowDownCircleIcon,
|
||||
ArrowUpCircleIcon,
|
||||
} from "@heroicons/react/20/solid";
|
||||
import { useStatus } from "@/hooks/use-status";
|
||||
import useFilter from "@/hooks/use-filter";
|
||||
|
||||
type ServerOverviewProps = {
|
||||
online: number;
|
||||
@@ -27,11 +29,19 @@ export default function ServerOverview({
|
||||
downSpeed,
|
||||
}: ServerOverviewProps) {
|
||||
const { t } = useTranslation();
|
||||
const { status, setStatus } = useStatus();
|
||||
const { filter, setFilter } = useFilter();
|
||||
|
||||
return (
|
||||
<>
|
||||
<section className="grid grid-cols-2 gap-4 lg:grid-cols-4">
|
||||
<Card className={cn("hover:border-blue-500 transition-all")}>
|
||||
<Card
|
||||
onClick={() => {
|
||||
setFilter(false);
|
||||
setStatus("all");
|
||||
}}
|
||||
className={cn("hover:border-blue-500 cursor-pointer transition-all")}
|
||||
>
|
||||
<CardContent className="flex h-full items-center px-6 py-3">
|
||||
<section className="flex flex-col gap-1">
|
||||
<p className="text-sm font-medium md:text-base">
|
||||
@@ -47,8 +57,15 @@ export default function ServerOverview({
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card
|
||||
onClick={() => {
|
||||
setFilter(false);
|
||||
setStatus("online");
|
||||
}}
|
||||
className={cn(
|
||||
" hover:ring-green-500 ring-1 ring-transparent transition-all",
|
||||
"cursor-pointer hover:ring-green-500 ring-1 ring-transparent transition-all",
|
||||
{
|
||||
"ring-green-500 ring-2 border-transparent": status === "online",
|
||||
},
|
||||
)}
|
||||
>
|
||||
<CardContent className="flex h-full items-center px-6 py-3">
|
||||
@@ -68,8 +85,15 @@ export default function ServerOverview({
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card
|
||||
onClick={() => {
|
||||
setFilter(false);
|
||||
setStatus("offline");
|
||||
}}
|
||||
className={cn(
|
||||
" hover:ring-red-500 ring-1 ring-transparent transition-all",
|
||||
"cursor-pointer hover:ring-red-500 ring-1 ring-transparent transition-all",
|
||||
{
|
||||
"ring-red-500 ring-2 border-transparent": status === "offline",
|
||||
},
|
||||
)}
|
||||
>
|
||||
<CardContent className="flex h-full items-center px-6 py-3">
|
||||
@@ -88,8 +112,15 @@ export default function ServerOverview({
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card
|
||||
onClick={() => {
|
||||
setStatus("all");
|
||||
setFilter(true);
|
||||
}}
|
||||
className={cn(
|
||||
" hover:ring-purple-500 ring-1 ring-transparent transition-all",
|
||||
"cursor-pointer hover:ring-purple-500 ring-1 ring-transparent transition-all",
|
||||
{
|
||||
"ring-purple-500 ring-2 border-transparent": filter === true,
|
||||
},
|
||||
)}
|
||||
>
|
||||
<CardContent className="flex h-full items-center relative px-6 py-3">
|
||||
|
||||
Reference in New Issue
Block a user