import React, { useState } from "react"; import { Mail, Send, Check, Loader2, Sparkles } from "lucide-react"; import { subscribeNewsletter } from "../lib/firebaseService"; interface NewsletterSignupProps { darkMode: boolean; } export default function NewsletterSignup({ darkMode }: NewsletterSignupProps) { const [email, setEmail] = useState(""); const [loading, setLoading] = useState(false); const [status, setStatus] = useState<"idle" | "success" | "error">("idle"); const [errorMessage, setErrorMessage] = useState(""); const handleSubscribe = async (e: React.FormEvent) => { e.preventDefault(); if (!email.trim()) return; setLoading(true); setStatus("idle"); setErrorMessage(""); try { await subscribeNewsletter(email); setStatus("success"); setEmail(""); } catch (err: any) { console.error("Subscription failed:", err); setStatus("error"); // Extract a descriptive human error message let msg = "Something went wrong. Please check your network or try again."; if (err instanceof Error) { try { const parsed = JSON.parse(err.message); if (parsed.error) { msg = parsed.error; } } catch { msg = err.message; } } setErrorMessage(msg); } finally { setLoading(false); } }; return (

Maintenance Newsletter

Subscribe to receive seasonal tyre maintenance advice, road safety checks, and priority showroom discount vouchers in Lahore.

{status === "success" ? (

Successfully Subscribed!

You're registered to receive maintenance tips. Stay safe on the road!

) : (
setEmail(e.target.value)} placeholder="Enter your email address" required disabled={loading} className={`w-full text-xs px-3.5 py-2.5 pr-10 rounded-xl border font-sans focus:outline-hidden focus:ring-1 focus:ring-brand-orange transition-all duration-200 ${ darkMode ? "bg-black/40 border-white/10 text-white placeholder-slate-500 focus:border-brand-orange/40" : "bg-white border-slate-200 text-slate-900 placeholder-slate-400 focus:border-brand-orange" }`} id="newsletter-email-input" />
{status === "error" && (

⚠️ {errorMessage}

)}
Updates twice a month • Opt-out anytime
)}
); }