fix(global): disable overview click event

This commit is contained in:
hamster1963 2024-11-21 10:20:06 +08:00
parent 722ec67091
commit 753c7dec10
3 changed files with 23 additions and 8 deletions

View File

@ -119,9 +119,6 @@ export default function ServerListClient() {
<section className="flex items-center gap-2 w-full overflow-hidden"> <section className="flex items-center gap-2 w-full overflow-hidden">
<button <button
onClick={() => { onClick={() => {
setStatus("all");
setFilter(false);
sessionStorage.removeItem("selectedTag");
router.push(`/?global=true`); router.push(`/?global=true`);
}} }}
className="rounded-[50px] bg-stone-100 p-[10px] transition-all hover:bg-stone-200 dark:hover:bg-stone-700 dark:bg-stone-800" className="rounded-[50px] bg-stone-100 p-[10px] transition-all hover:bg-stone-200 dark:hover:bg-stone-700 dark:bg-stone-800"

View File

@ -43,12 +43,14 @@ export default function ServerOverviewClient() {
<section className="grid grid-cols-2 gap-4 lg:grid-cols-4"> <section className="grid grid-cols-2 gap-4 lg:grid-cols-4">
<Card <Card
onClick={() => { onClick={() => {
setFilter(false);
if (!global) { if (!global) {
setFilter(false);
setStatus("all"); setStatus("all");
} }
}} }}
className="cursor-pointer hover:border-blue-500 transition-all" className={cn("cursor-pointer hover:border-blue-500 transition-all", {
"pointer-events-none": global,
})}
> >
<CardContent className="px-6 py-3"> <CardContent className="px-6 py-3">
<section className="flex flex-col gap-1"> <section className="flex flex-col gap-1">
@ -74,8 +76,8 @@ export default function ServerOverviewClient() {
</Card> </Card>
<Card <Card
onClick={() => { onClick={() => {
setFilter(false);
if (!global) { if (!global) {
setFilter(false);
setStatus("online"); setStatus("online");
} }
}} }}
@ -84,6 +86,9 @@ export default function ServerOverviewClient() {
{ {
"ring-green-500 ring-2 border-transparent": status === "online", "ring-green-500 ring-2 border-transparent": status === "online",
}, },
{
"pointer-events-none": global,
},
)} )}
> >
<CardContent className="px-6 py-3"> <CardContent className="px-6 py-3">
@ -111,8 +116,8 @@ export default function ServerOverviewClient() {
</Card> </Card>
<Card <Card
onClick={() => { onClick={() => {
setFilter(false);
if (!global) { if (!global) {
setFilter(false);
setStatus("offline"); setStatus("offline");
} }
}} }}
@ -121,6 +126,9 @@ export default function ServerOverviewClient() {
{ {
"ring-red-500 ring-2 border-transparent": status === "offline", "ring-red-500 ring-2 border-transparent": status === "offline",
}, },
{
"pointer-events-none": global,
},
)} )}
> >
<CardContent className="px-6 py-3"> <CardContent className="px-6 py-3">
@ -148,8 +156,8 @@ export default function ServerOverviewClient() {
</Card> </Card>
<Card <Card
onClick={() => { onClick={() => {
setStatus("all");
if (!global) { if (!global) {
setStatus("all");
setFilter(true); setFilter(true);
} }
}} }}
@ -158,6 +166,9 @@ export default function ServerOverviewClient() {
{ {
"ring-purple-500 ring-2 border-transparent": filter === true, "ring-purple-500 ring-2 border-transparent": filter === true,
}, },
{
"pointer-events-none": global,
},
)} )}
> >
<CardContent className="relative px-6 py-3"> <CardContent className="relative px-6 py-3">

View File

@ -1,13 +1,20 @@
"use client"; "use client";
import { useFilter } from "@/lib/network-filter-context";
import { useStatus } from "@/lib/status-context";
import { ServerStackIcon } from "@heroicons/react/20/solid"; import { ServerStackIcon } from "@heroicons/react/20/solid";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { useEffect } from "react"; import { useEffect } from "react";
export default function GlobalBackButton() { export default function GlobalBackButton() {
const router = useRouter(); const router = useRouter();
const { setStatus } = useStatus();
const { setFilter } = useFilter();
useEffect(() => { useEffect(() => {
setStatus("all");
setFilter(false);
sessionStorage.removeItem("selectedTag");
router.prefetch(`/`); router.prefetch(`/`);
}, []); }, []);