mirror of
https://github.com/hamster1963/nezha-dash.git
synced 2025-04-24 21:10:45 +08:00
Compare commits
10 Commits
c9107a1469
...
d59c11acb6
Author | SHA1 | Date | |
---|---|---|---|
|
d59c11acb6 | ||
|
56d28c1ec1 | ||
|
07e93da286 | ||
|
bc6566a363 | ||
|
57e3f1b1bd | ||
|
d3936ff307 | ||
|
913a905100 | ||
|
2462659026 | ||
|
adaed58fa5 | ||
|
b123ad9f3e |
@ -8,16 +8,24 @@ import React from "react";
|
|||||||
type DashboardProps = {
|
type DashboardProps = {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
};
|
};
|
||||||
export default async function MainLayout({ children }: DashboardProps) {
|
export default function MainLayout({ children }: DashboardProps) {
|
||||||
const session = await auth();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex min-h-screen w-full flex-col">
|
<div className="flex min-h-screen w-full flex-col">
|
||||||
<main className="flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-background p-4 md:p-10 md:pt-8">
|
<main className="flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-background p-4 md:p-10 md:pt-8">
|
||||||
<Header />
|
<Header />
|
||||||
{!session && getEnv("SitePassword") ? <SignIn /> : children}
|
<AuthProtected>{children}</AuthProtected>
|
||||||
<Footer />
|
<Footer />
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function AuthProtected({ children }: DashboardProps) {
|
||||||
|
if (getEnv("SitePassword")) {
|
||||||
|
const session = await auth();
|
||||||
|
if (!session) {
|
||||||
|
return <SignIn />;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return children;
|
||||||
|
}
|
||||||
|
@ -14,11 +14,12 @@ interface ResError extends Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function GET(req: NextRequest) {
|
export async function GET(req: NextRequest) {
|
||||||
|
if (getEnv("SitePassword")) {
|
||||||
const session = await auth();
|
const session = await auth();
|
||||||
|
if (!session) {
|
||||||
if (!session && getEnv("SitePassword")) {
|
|
||||||
redirect("/");
|
redirect("/");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const { searchParams } = new URL(req.url);
|
const { searchParams } = new URL(req.url);
|
||||||
const server_id = searchParams.get("server_id");
|
const server_id = searchParams.get("server_id");
|
||||||
|
@ -14,14 +14,16 @@ interface ResError extends Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function GET(req: NextRequest) {
|
export async function GET(req: NextRequest) {
|
||||||
|
if (getEnv("SitePassword")) {
|
||||||
const session = await auth();
|
const session = await auth();
|
||||||
|
if (!session) {
|
||||||
if (!session && getEnv("SitePassword")) {
|
|
||||||
redirect("/");
|
redirect("/");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const { searchParams } = new URL(req.url);
|
const { searchParams } = new URL(req.url);
|
||||||
const server_id = searchParams.get("server_id");
|
const server_id = searchParams.get("server_id");
|
||||||
|
|
||||||
if (!server_id) {
|
if (!server_id) {
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{ error: "server_id is required" },
|
{ error: "server_id is required" },
|
||||||
|
@ -14,11 +14,12 @@ interface ResError extends Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function GET() {
|
export async function GET() {
|
||||||
|
if (getEnv("SitePassword")) {
|
||||||
const session = await auth();
|
const session = await auth();
|
||||||
|
if (!session) {
|
||||||
if (!session && getEnv("SitePassword")) {
|
|
||||||
redirect("/");
|
redirect("/");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const data = await GetNezhaData();
|
const data = await GetNezhaData();
|
||||||
|
@ -48,7 +48,7 @@ export default async function LocaleLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang={locale} suppressHydrationWarning>
|
<html lang={locale} suppressHydrationWarning>
|
||||||
<head>
|
<head>
|
||||||
<PublicEnvScript />
|
{!process.env.VERCEL && <PublicEnvScript />}
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.0.0/css/flag-icons.min.css"
|
href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.0.0/css/flag-icons.min.css"
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
import { env } from "next-runtime-env";
|
import { env } from "next-runtime-env";
|
||||||
|
|
||||||
export default function getEnv(key: string) {
|
export default function getEnv(key: string) {
|
||||||
|
if (process.env.VERCEL) {
|
||||||
|
return process.env[key];
|
||||||
|
} else {
|
||||||
if (key.startsWith("NEXT_PUBLIC_")) {
|
if (key.startsWith("NEXT_PUBLIC_")) {
|
||||||
return env(key);
|
return env(key);
|
||||||
}
|
}
|
||||||
return process.env[key];
|
return process.env[key];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nezha-dash",
|
"name": "nezha-dash",
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev -p 3020",
|
"dev": "next dev -p 3020",
|
||||||
|
Loading…
Reference in New Issue
Block a user