'use client'; import { useState, useEffect, Suspense } from 'react'; import Link from 'next/link'; import { useRouter, useSearchParams } from 'next/navigation'; import { Video, Loader2 } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { signIn } from 'next-auth/react'; function getSafeCallbackUrl(value: string | null): string { if (!value) return '/dashboard'; try { const baseOrigin = typeof window === 'undefined' ? 'http://localhost' : window.location.origin; const parsed = new URL(value, baseOrigin); if (parsed.origin !== baseOrigin) return '/dashboard'; return `${parsed.pathname}${parsed.search}${parsed.hash}`; } catch { return '/dashboard'; } } function LoginForm() { const router = useRouter(); const searchParams = useSearchParams(); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showSuccess, setShowSuccess] = useState(false); const callbackUrl = getSafeCallbackUrl(searchParams.get('callbackUrl')); useEffect(() => { if (searchParams.get('registered') === 'true') { setShowSuccess(true); } }, [searchParams]); const handleEmailLogin = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); setError(''); try { const result = await signIn('credentials', { email, password, redirect: false, callbackUrl, }); if (result?.error) { setError('Invalid email or password'); return; } const destination = getSafeCallbackUrl(result?.url || callbackUrl); router.push(destination); router.refresh(); } catch { setError('Something went wrong. Please try again.'); } finally { setIsLoading(false); } }; return ( Welcome back Sign in to your account to continue {showSuccess && (
Account created successfully! Please sign in.
)} {/* Email Form */}
{ setEmail(e.target.value); setError(''); }} required disabled={isLoading} />
{ setPassword(e.target.value); setError(''); }} required disabled={isLoading} />
{error && (
{error}
)}

Don't have an account?{' '} Sign up

); } function LoginFormSkeleton() { return ( Welcome back Sign in to your account to continue
); } export default function LoginPage() { return (
{/* Logo */}
); }