Compare commits

...

10 Commits

Author SHA1 Message Date
hamster1963
cb514e13c5 Merge branch 'main' into cloudflare 2024-11-27 21:25:18 +08:00
hamster1963
711ed79dc5 fix: v1.5.3-fix 2024-11-27 21:25:04 +08:00
hamster1963
e758ae137b fixL refresh 404 error 2024-11-27 21:24:48 +08:00
hamster1963
b224b606fc Merge branch 'main' into cloudflare 2024-11-27 20:55:11 +08:00
hamster1963
1e7e4c6678 fix: lint 2024-11-27 20:54:17 +08:00
hamster1963
dadbfd3ce3 Merge branch 'main' into cloudflare 2024-11-27 20:48:09 +08:00
hamster1963
a75aa209f2 update: v1.5.3 2024-11-27 20:47:12 +08:00
hamster1963
1b1f565e2c refactor!: not-found 2024-11-27 20:46:49 +08:00
仓鼠
56052d35b8
docs: create LICENSE 2024-11-27 17:36:03 +08:00
仓鼠
504a725864
docs: update README.md 2024-11-27 15:40:38 +08:00
12 changed files with 50 additions and 45 deletions

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 仓鼠
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -8,9 +8,6 @@
支持部署环境:
> [!CAUTION]
> Cloudflare 部署方式暂不可用,等待 Cloudflare 官方修复。
- Vercel
- Cloudflare
- Docker

View File

@ -9,7 +9,7 @@ import { Card, CardContent } from "@/components/ui/card";
import getEnv from "@/lib/env-entry";
import { cn, formatBytes, nezhaFetcher } from "@/lib/utils";
import { useTranslations } from "next-intl";
import { useRouter } from "next/navigation";
import { notFound, useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import useSWR from "swr";
import useSWRImmutable from "swr/immutable";
@ -43,7 +43,7 @@ export default function ServerDetailClient({
}
};
const { data: allFallbackData } = useSWRImmutable<ServerApi>(
const { data: allFallbackData, isLoading } = useSWRImmutable<ServerApi>(
"/api/server",
nezhaFetcher,
);
@ -51,6 +51,10 @@ export default function ServerDetailClient({
(item) => item.id === server_id,
);
if (!fallbackData && !isLoading) {
notFound();
}
const { data, error } = useSWR<NezhaAPISafe>(
`/api/detail?server_id=${server_id}`,
nezhaFetcher,

View File

@ -1,33 +1,27 @@
import { useTranslations } from "next-intl";
import Image from "next/image";
import Link from "next/link";
export const runtime = "edge";
import Footer from "./(main)/footer";
import Header from "./(main)/header";
export default function NotFoundPage() {
const t = useTranslations("NotFoundPage");
return (
<main className="relative h-screen w-full">
<div className="absolute inset-0 m-4 flex items-center justify-center">
<Image
priority
className="rounded-3xl object-cover"
src="/tardis.jpg"
fill={true}
alt="TARDIS"
/>
<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>
<Link href={"/"} className="text-2xl opacity-80 md:text-3xl">
{t("Link_676-775_Doctor")}
<div className="flex min-h-screen w-full flex-col">
<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">
<Header />
<section className="flex flex-col items-center min-h-44 justify-center gap-2">
<p className="text-sm font-semibold">{t("h1_490-590_404NotFound")}</p>
<Link href="/" className="flex items-center gap-1">
<p className="text-sm font-medium opacity-40">
{t("h1_490-590_404NotFoundBack")}
</p>
</Link>
</div>
</div>
</main>
</section>
<Footer />
</main>
</div>
);
}

View File

@ -12,7 +12,6 @@ import {
import { cn, formatBytes, formatNezhaInfo } from "@/lib/utils";
import { useTranslations } from "next-intl";
import Link from "next/link";
import { useRouter } from "next/navigation";
export default function ServerCard({
serverInfo,
@ -20,7 +19,6 @@ export default function ServerCard({
serverInfo: NezhaAPISafe;
}) {
const t = useTranslations("ServerCard");
const router = useRouter();
const { id, name, country_code, online, cpu, up, down, mem, stg, host } =
formatNezhaInfo(serverInfo);
@ -34,7 +32,7 @@ export default function ServerCard({
};
return online ? (
<Link onClick={saveSession} href={`/${id}`} prefetch={true}>
<Link onClick={saveSession} href={`/server/${id}`} prefetch={true}>
<Card
className={cn(
"flex flex-col items-center justify-start gap-3 p-3 md:px-5 cursor-pointer hover:bg-accent/50 transition-colors",
@ -138,12 +136,7 @@ export default function ServerCard({
</div>
</section>
{showNetTransfer && (
<section
onClick={() => {
router.push(`/${id}`);
}}
className={"flex items-center justify-between gap-1"}
>
<section className={"flex items-center justify-between gap-1"}>
<Badge
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"

View File

@ -98,7 +98,6 @@
},
"NotFoundPage": {
"h1_490-590_404NotFound": "404 Not Found",
"p_601-665_TARDISERROR": "TARDIS ERROR!",
"Link_676-775_Doctor": "Doctor?"
"h1_490-590_404NotFoundBack": " Press here to go back"
}
}

View File

@ -98,7 +98,6 @@
},
"NotFoundPage": {
"h1_490-590_404NotFound": "404 見つかりませんでした",
"p_601-665_TARDISERROR": "ターディスエラー!",
"Link_676-775_Doctor": "Doctor?"
"h1_490-590_404NotFoundBack": "戻る"
}
}

View File

@ -98,7 +98,6 @@
},
"NotFoundPage": {
"h1_490-590_404NotFound": "404 未找到",
"p_601-665_TARDISERROR": "TARDIS 錯誤!",
"Link_676-775_Doctor": "Doctor"
"h1_490-590_404NotFoundBack": "返回"
}
}

View File

@ -98,7 +98,6 @@
},
"NotFoundPage": {
"h1_490-590_404NotFound": "404 未找到",
"p_601-665_TARDISERROR": "TARDIS 错误!",
"Link_676-775_Doctor": "Doctor"
"h1_490-590_404NotFoundBack": "返回"
}
}

View File

@ -1,6 +1,6 @@
{
"name": "nezha-dash",
"version": "1.5.2-fix",
"version": "1.5.3-fix",
"private": true,
"scripts": {
"dev": "next dev -p 3040",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 KiB