"use client";

import { useState } from "react";
import { Send } from "lucide-react";

export function NewsletterForm() {
  const [email, setEmail] = useState("");
  const [message, setMessage] = useState("");

  async function submit(event: React.FormEvent<HTMLFormElement>) {
    event.preventDefault();
    setMessage("");
    const response = await fetch("/api/newsletter", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ email })
    });
    setMessage(response.ok ? "You're on the list." : "Please try again.");
    if (response.ok) setEmail("");
  }

  return (
    <form onSubmit={submit} className="mt-4">
      <div className="flex overflow-hidden rounded-lg border border-white/12 bg-white/5">
        <input
          value={email}
          onChange={(event) => setEmail(event.target.value)}
          type="email"
          required
          placeholder="you@example.com"
          className="min-w-0 flex-1 bg-transparent px-3 py-3 text-sm text-white outline-none placeholder:text-white/35"
        />
        <button className="bg-cyanx px-4 text-ink" aria-label="Subscribe">
          <Send size={18} />
        </button>
      </div>
      {message && <p className="mt-2 text-xs text-cyanx">{message}</p>}
    </form>
  );
}
