'use client'; import { useState, useCallback, useEffect } from 'react'; import './style/login.css'; import { useRouter, useSearchParams } from 'next/navigation'; import React from 'react'; import Link from 'next/link'; import { signInWithGoogle, loginUser } from '@/lib/auth'; import { GradientText } from '@/components/ui/gradient-text'; import { Eye, EyeOff } from 'lucide-react'; export default function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [formError, setFormError] = useState(''); const [successMessage, setSuccessMessage] = useState(''); const router = useRouter(); const searchParams = useSearchParams(); // Check for registered=true parameter useEffect(() => { const registered = searchParams?.get('registered'); if (registered === 'true') { setSuccessMessage('Registration successful! Please login with your new account.'); } const error = searchParams?.get('error'); if (error) { if (error === 'google_oauth') { setFormError('Google login failed, please try again.'); } else if (error === 'auth_failed') { setFormError('Authentication failed, please try again.'); } } }, [searchParams]); const handleGoogleSignIn = () => { signInWithGoogle(); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setFormError(''); setSuccessMessage(''); try { await loginUser(email, password); // 登录成功后跳转到首页 router.push('/'); } catch (error: any) { console.error('Login failed:', error); // 根据错误类型显示不同的错误消息 setFormError('Login failed, please check your credentials and try again.'); } finally { setIsSubmitting(false); } }; return (
{/* 背景视频 */} {/* 视频遮罩层 */}
{/* Logo */}
{/* beta标签 */} Beta
{/* 登录框 - 居中显示 */}

Login

Enter your credentials to access your account

{successMessage && (
{successMessage}
)}
setEmail(e.target.value)} />
setPassword(e.target.value)} />
{formError && (
{formError}
)} {/*
or
*/}

Don't have an account? Sign up

); }