"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { updateEmail } from "@/actions/settings"; import { Loader2 } from "lucide-react"; interface EmailFormProps { currentEmail: string; } export function EmailForm({ currentEmail }: EmailFormProps) { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(false); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setLoading(true); setError(null); setSuccess(false); const formData = new FormData(e.currentTarget); const email = formData.get("email") as string; if (email === currentEmail) { setError("New email is the same as current email"); setLoading(false); return; } try { await updateEmail({ email }); setSuccess(true); setTimeout(() => setSuccess(false), 3000); } catch (err) { setError(err instanceof Error ? err.message : "Failed to update email"); } finally { setLoading(false); } } return (

Your email is used for account notifications and git authentication

{error && (
{error}
)} {success && (
Email updated successfully!
)}
); }