"use client" import React, { useState } from 'react'; interface SubscribeFormProps { placeholder?: string; buttonLabel?: string; className?: string; } const SubscribeForm: React.FC = ({ placeholder = 'Your email', buttonLabel = 'Subscribe', className = '', }) => { const [email, setEmail] = useState(''); const [message, setMessage] = useState(''); const [loading, setLoading] = useState(false); const handleSubscribe = async (e: React.FormEvent) => { e.preventDefault(); if (!email) { setMessage('Please enter your email.'); return; } setLoading(true); setMessage(''); try { const response = await fetch('/api/subscribe', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email }), }); if (response.ok) { setMessage('You have successfully subscribed!'); setEmail(''); } else { const errorData = await response.json(); setMessage(`Error: ${errorData.message}`); } } catch (error) { setMessage('Something went wrong. Please try again.'); } finally { setLoading(false); } }; return (
setEmail(e.target.value)} className="w-full px-3 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" />
{message &&

{message}

}
); }; export default SubscribeForm;