'use client'; import { useState, useCallback, useEffect } from 'react'; import './style/login.css'; import VantaHaloBackground from '@/components/vanta-halo-background'; 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'; export default function Login() { const [isLoaded, setIsLoaded] = useState(false); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); 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('注册成功!请使用您的新帐号登录。'); } const error = searchParams?.get('error'); if (error) { if (error === 'google_oauth') { setFormError('Google登录失败,请重试。'); } else if (error === 'auth_failed') { setFormError('身份验证失败,请重试。'); } } }, [searchParams]); const handleBackgroundLoaded = useCallback(() => { setIsLoaded(true); }, []); 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); // 根据错误类型显示不同的错误消息 if (error.message) { setFormError(error.message); } else if (error.msg) { setFormError(error.msg); } else { setFormError('登录失败,请检查您的凭据后重试。'); } } finally { setIsSubmitting(false); } }; return (
{/* logo Movie Flow */}

登录

输入您的凭据以访问您的账户

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

还没有账户? 注册

); }