第一次提交

This commit is contained in:
2026-03-13 16:40:08 +08:00
commit 0a49bcfb2d
277 changed files with 61890 additions and 0 deletions

View File

@ -0,0 +1,13 @@
import AuthGuard from '@/components/AuthGuard';
export default function AuthLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<AuthGuard minHeightClassName="min-h-screen">
<main className="min-h-screen bg-background text-foreground">{children}</main>
</AuthGuard>
);
}

View File

@ -0,0 +1,21 @@
'use client';
import { useEffect } from 'react';
import { useSearchParams } from 'next/navigation';
import { buildAuthPortalUrl } from '@/lib/auth-portal';
export default function LoginRedirectPage() {
const searchParams = useSearchParams();
useEffect(() => {
const nextPath = searchParams?.get('next') || '/';
window.location.replace(buildAuthPortalUrl('/login', nextPath));
}, [searchParams]);
return (
<div className="flex min-h-screen items-center justify-center px-4">
<div className="text-sm text-muted-foreground">...</div>
</div>
);
}

View File

@ -0,0 +1,21 @@
'use client';
import { useEffect } from 'react';
import { useSearchParams } from 'next/navigation';
import { buildAuthPortalUrl } from '@/lib/auth-portal';
export default function RegisterRedirectPage() {
const searchParams = useSearchParams();
useEffect(() => {
const nextPath = searchParams?.get('next') || '/mcp';
window.location.replace(buildAuthPortalUrl('/register', nextPath));
}, [searchParams]);
return (
<div className="flex min-h-screen items-center justify-center px-4">
<div className="text-sm text-muted-foreground">...</div>
</div>
);
}