mirror of
https://github.com/hamster1963/nezha-dash.git
synced 2025-04-24 21:10:45 +08:00
refactor!: not-found
This commit is contained in:
parent
56052d35b8
commit
1b1f565e2c
@ -9,7 +9,7 @@ import { Card, CardContent } from "@/components/ui/card";
|
|||||||
import getEnv from "@/lib/env-entry";
|
import getEnv from "@/lib/env-entry";
|
||||||
import { cn, formatBytes, nezhaFetcher } from "@/lib/utils";
|
import { cn, formatBytes, nezhaFetcher } from "@/lib/utils";
|
||||||
import { useTranslations } from "next-intl";
|
import { useTranslations } from "next-intl";
|
||||||
import { useRouter } from "next/navigation";
|
import { notFound, useRouter } from "next/navigation";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import useSWRImmutable from "swr/immutable";
|
import useSWRImmutable from "swr/immutable";
|
||||||
@ -51,6 +51,10 @@ export default function ServerDetailClient({
|
|||||||
(item) => item.id === server_id,
|
(item) => item.id === server_id,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!fallbackData) {
|
||||||
|
notFound();
|
||||||
|
}
|
||||||
|
|
||||||
const { data, error } = useSWR<NezhaAPISafe>(
|
const { data, error } = useSWR<NezhaAPISafe>(
|
||||||
`/api/detail?server_id=${server_id}`,
|
`/api/detail?server_id=${server_id}`,
|
||||||
nezhaFetcher,
|
nezhaFetcher,
|
||||||
|
@ -2,30 +2,25 @@ import { useTranslations } from "next-intl";
|
|||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
|
import Footer from "./(main)/footer";
|
||||||
|
import Header from "./(main)/header";
|
||||||
|
|
||||||
export default function NotFoundPage() {
|
export default function NotFoundPage() {
|
||||||
const t = useTranslations("NotFoundPage");
|
const t = useTranslations("NotFoundPage");
|
||||||
return (
|
return (
|
||||||
<main className="relative h-screen w-full">
|
<div className="flex min-h-screen w-full flex-col">
|
||||||
<div className="absolute inset-0 m-4 flex items-center justify-center">
|
<main className="flex min-h-[calc(100vh-calc(var(--spacing)*16))] flex-1 flex-col gap-4 bg-background p-4 md:p-10 md:pt-8">
|
||||||
<Image
|
<Header />
|
||||||
priority
|
<section className="flex flex-col items-center min-h-44 justify-center gap-2">
|
||||||
className="rounded-3xl object-cover"
|
<p className="text-sm font-semibold">{t("h1_490-590_404NotFound")}</p>
|
||||||
src="/tardis.jpg"
|
<Link href="/" className="flex items-center gap-1">
|
||||||
fill={true}
|
<p className="text-sm font-medium opacity-40">
|
||||||
alt="TARDIS"
|
{t("h1_490-590_404NotFoundBack")}
|
||||||
/>
|
|
||||||
<div className="text-container absolute right-4 p-4 md:right-20">
|
|
||||||
<h1 className="text-2xl font-bold opacity-80 md:text-5xl">
|
|
||||||
{t("h1_490-590_404NotFound")}
|
|
||||||
</h1>
|
|
||||||
<p className="text-lg opacity-60 md:text-base">
|
|
||||||
{t("p_601-665_TARDISERROR")}
|
|
||||||
</p>
|
</p>
|
||||||
<Link href={"/"} className="text-2xl opacity-80 md:text-3xl">
|
|
||||||
{t("Link_676-775_Doctor")}
|
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</section>
|
||||||
</div>
|
<Footer />
|
||||||
</main>
|
</main>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ export default function ServerCard({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return online ? (
|
return online ? (
|
||||||
<Link onClick={saveSession} href={`/${id}`} prefetch={true}>
|
<Link onClick={saveSession} href={`/server/${id}`} prefetch={true}>
|
||||||
<Card
|
<Card
|
||||||
className={cn(
|
className={cn(
|
||||||
"flex flex-col items-center justify-start gap-3 p-3 md:px-5 cursor-pointer hover:bg-accent/50 transition-colors",
|
"flex flex-col items-center justify-start gap-3 p-3 md:px-5 cursor-pointer hover:bg-accent/50 transition-colors",
|
||||||
@ -138,12 +138,7 @@ export default function ServerCard({
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{showNetTransfer && (
|
{showNetTransfer && (
|
||||||
<section
|
<section className={"flex items-center justify-between gap-1"}>
|
||||||
onClick={() => {
|
|
||||||
router.push(`/${id}`);
|
|
||||||
}}
|
|
||||||
className={"flex items-center justify-between gap-1"}
|
|
||||||
>
|
|
||||||
<Badge
|
<Badge
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
className="items-center flex-1 justify-center rounded-[8px] text-nowrap text-[11px] border-muted-50 shadow-md shadow-neutral-200/30 dark:shadow-none"
|
className="items-center flex-1 justify-center rounded-[8px] text-nowrap text-[11px] border-muted-50 shadow-md shadow-neutral-200/30 dark:shadow-none"
|
||||||
|
@ -98,7 +98,6 @@
|
|||||||
},
|
},
|
||||||
"NotFoundPage": {
|
"NotFoundPage": {
|
||||||
"h1_490-590_404NotFound": "404 Not Found",
|
"h1_490-590_404NotFound": "404 Not Found",
|
||||||
"p_601-665_TARDISERROR": "TARDIS ERROR!",
|
"h1_490-590_404NotFoundBack": " Press here to go back"
|
||||||
"Link_676-775_Doctor": "Doctor?"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,6 @@
|
|||||||
},
|
},
|
||||||
"NotFoundPage": {
|
"NotFoundPage": {
|
||||||
"h1_490-590_404NotFound": "404 見つかりませんでした",
|
"h1_490-590_404NotFound": "404 見つかりませんでした",
|
||||||
"p_601-665_TARDISERROR": "ターディスエラー!",
|
"h1_490-590_404NotFoundBack": "戻る"
|
||||||
"Link_676-775_Doctor": "Doctor?"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,6 @@
|
|||||||
},
|
},
|
||||||
"NotFoundPage": {
|
"NotFoundPage": {
|
||||||
"h1_490-590_404NotFound": "404 未找到",
|
"h1_490-590_404NotFound": "404 未找到",
|
||||||
"p_601-665_TARDISERROR": "TARDIS 錯誤!",
|
"h1_490-590_404NotFoundBack": "返回"
|
||||||
"Link_676-775_Doctor": "Doctor?"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,6 @@
|
|||||||
},
|
},
|
||||||
"NotFoundPage": {
|
"NotFoundPage": {
|
||||||
"h1_490-590_404NotFound": "404 未找到",
|
"h1_490-590_404NotFound": "404 未找到",
|
||||||
"p_601-665_TARDISERROR": "TARDIS 错误!",
|
"h1_490-590_404NotFoundBack": "返回"
|
||||||
"Link_676-775_Doctor": "Doctor?"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 571 KiB |
Loading…
Reference in New Issue
Block a user