mirror of
https://github.com/hamster1963/nezha-dash.git
synced 2025-04-24 21:10:45 +08:00
refactor: error state
This commit is contained in:
parent
14b9cad856
commit
ec5dc2742a
@ -1,6 +1,5 @@
|
|||||||
NezhaBaseUrl=http://1.1.1.1:8008
|
NezhaBaseUrl=http://124.XX.XX.XX:8008
|
||||||
NezhaAuth=nezha-token
|
NezhaAuth=your-nezha-api-token
|
||||||
ServerDisablePrefetch=false
|
NEXT_PUBLIC_NezhaFetchInterval=5000
|
||||||
NEXT_PUBLIC_NezhaFetchInterval=2000
|
|
||||||
NEXT_PUBLIC_ShowFlag=true
|
NEXT_PUBLIC_ShowFlag=true
|
||||||
NEXT_PUBLIC_DisableCartoon=false
|
NEXT_PUBLIC_DisableCartoon=true
|
@ -6,9 +6,18 @@ import { nezhaFetcher } from "../../../../lib/utils";
|
|||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import getEnv from "../../../../lib/env-entry";
|
import getEnv from "../../../../lib/env-entry";
|
||||||
export default function ServerListClient() {
|
export default function ServerListClient() {
|
||||||
const { data } = useSWR<ServerApi>("/api/server", nezhaFetcher, {
|
const { data, error } = useSWR<ServerApi>("/api/server", nezhaFetcher, {
|
||||||
refreshInterval: Number(getEnv("NEXT_PUBLIC_NezhaFetchInterval")) || 2000,
|
refreshInterval: Number(getEnv("NEXT_PUBLIC_NezhaFetchInterval")) || 2000,
|
||||||
});
|
});
|
||||||
|
if (error)
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col items-center justify-center">
|
||||||
|
<p className="text-sm font-medium opacity-40">{error.message}</p>
|
||||||
|
<p className="text-sm font-medium opacity-40">
|
||||||
|
Please check your environment variables and review the server console logs for more details.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
if (!data) return null;
|
if (!data) return null;
|
||||||
const sortedServers = data.result.sort((a, b) => {
|
const sortedServers = data.result.sort((a, b) => {
|
||||||
if (a.display_index && b.display_index) {
|
if (a.display_index && b.display_index) {
|
||||||
|
@ -8,17 +8,19 @@ export const dynamic = "force-dynamic";
|
|||||||
|
|
||||||
export const runtime = 'edge';
|
export const runtime = 'edge';
|
||||||
|
|
||||||
|
interface NezhaDataResponse {
|
||||||
|
error?: string;
|
||||||
|
data?: ServerApi;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function GET(_: Request) {
|
export async function GET(_: Request) {
|
||||||
try {
|
const response = (await GetNezhaData()) as NezhaDataResponse;
|
||||||
const response = await GetNezhaData();
|
if (response.error) {
|
||||||
return NextResponse.json(response, { status: 200 });
|
console.log(response.error);
|
||||||
} catch (error) {
|
return NextResponse.json({ error: response.error }, { status: 400 });
|
||||||
console.error(error);
|
|
||||||
return NextResponse.json(
|
|
||||||
{ error: "fetch nezha data failed" },
|
|
||||||
{ status: 400 },
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
return NextResponse.json(response, { status: 200 });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function GetNezhaData() {
|
async function GetNezhaData() {
|
||||||
@ -26,7 +28,7 @@ async function GetNezhaData() {
|
|||||||
var nezhaBaseUrl = getEnv("NezhaBaseUrl");
|
var nezhaBaseUrl = getEnv("NezhaBaseUrl");
|
||||||
if (!nezhaBaseUrl) {
|
if (!nezhaBaseUrl) {
|
||||||
console.log("NezhaBaseUrl is not set");
|
console.log("NezhaBaseUrl is not set");
|
||||||
return;
|
return { error: "NezhaBaseUrl is not set" };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove trailing slash
|
// Remove trailing slash
|
||||||
@ -42,7 +44,12 @@ async function GetNezhaData() {
|
|||||||
revalidate: 0,
|
revalidate: 0,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const nezhaData = (await response.json()).result as NezhaAPI[];
|
const resData = await response.json();
|
||||||
|
const nezhaData = resData.result as NezhaAPI[];
|
||||||
|
if (!nezhaData) {
|
||||||
|
console.log(resData);
|
||||||
|
return { error: "NezhaData fetch failed" };
|
||||||
|
}
|
||||||
const data: ServerApi = {
|
const data: ServerApi = {
|
||||||
live_servers: 0,
|
live_servers: 0,
|
||||||
offline_servers: 0,
|
offline_servers: 0,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
NezhaBaseUrl=http://0.0.0.0:8008
|
NezhaBaseUrl=http://124.XX.XX.XX:8008
|
||||||
NezhaAuth=5hAY3QX6Nl9B3UOQgB26KdsdS1dsdUdM
|
NezhaAuth=your-nezha-api-token
|
||||||
ServerDisablePrefetch=false
|
|
||||||
NEXT_PUBLIC_NezhaFetchInterval=5000
|
NEXT_PUBLIC_NezhaFetchInterval=5000
|
||||||
NEXT_PUBLIC_ShowFlag=true
|
NEXT_PUBLIC_ShowFlag=true
|
||||||
NEXT_PUBLIC_DisableCartoon=true
|
NEXT_PUBLIC_DisableCartoon=true
|
Loading…
Reference in New Issue
Block a user