"use client" import type React from "react" import { useState } from "react" import Image from "next/image" import { Calendar, Loader2 } from "lucide-react" import { useAuth } from "@/lib/auth-context" import { ApiError } from "@/lib/api" import { ALL_ROOMS_BACKGROUND } from "@/lib/room-theme" type Mode = "login" | "register" export function AuthScreen() { const { login, register } = useAuth() const [mode, setMode] = useState("login") const [username, setUsername] = useState("") const [email, setEmail] = useState("") const [password, setPassword] = useState("") const [error, setError] = useState(null) const [notice, setNotice] = useState(null) const [submitting, setSubmitting] = useState(false) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError(null) setNotice(null) setSubmitting(true) try { if (mode === "login") { await login(username.trim(), password) } else { await register(username.trim(), password, email.trim()) } } catch (err) { const message = err instanceof ApiError ? err.message : "Something went wrong. Please try again." setError(message) } finally { setSubmitting(false) } } const switchMode = (next: Mode) => { setMode(next) setError(null) setNotice(null) } return (
Aurora over a mountain lake

{mode === "login" ? "Welcome back" : "Create your account"}

{mode === "login" ? "Sign in to your shared calendar" : "Join rooms and plan events together"}

setUsername(e.target.value)} className="rounded-xl border border-white/20 bg-white/10 px-4 py-2.5 text-white placeholder:text-white/50 focus:outline-none focus:ring-2 focus:ring-white/40" placeholder="your_username" />
{mode === "register" && (
setEmail(e.target.value)} className="rounded-xl border border-white/20 bg-white/10 px-4 py-2.5 text-white placeholder:text-white/50 focus:outline-none focus:ring-2 focus:ring-white/40" placeholder="you@example.com" />
)}
setPassword(e.target.value)} className="rounded-xl border border-white/20 bg-white/10 px-4 py-2.5 text-white placeholder:text-white/50 focus:outline-none focus:ring-2 focus:ring-white/40" placeholder={mode === "register" ? "At least 8 characters" : "••••••••"} />
{error && (
{error}
)} {notice && (
{notice}
)}

{mode === "login" ? "Don't have an account? " : "Already have an account? "}

) }