"use client" import type React from "react" import { useState } from "react" import { Mail, ArrowRight, Check } from "lucide-react" import { cn } from "@/lib/utils" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" interface SubscriptionEmailProps { className?: string headline?: string subheadline?: string buttonText?: string successMessage?: string } export default function SubscriptionEmail({ className, headline = "Exclusive Early Access", subheadline = "Be the first to shop our limited collections and receive personalized style recommendations", buttonText = "Subscribe", successMessage = "You're on the list", }: SubscriptionEmailProps) { const [email, setEmail] = useState("") const [isSubmitting, setIsSubmitting] = useState(false) const [isSubmitted, setIsSubmitted] = useState(false) const [isValid, setIsValid] = useState(true) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() // Basic email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ if (!emailRegex.test(email)) { setIsValid(false) return } setIsSubmitting(true) // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1000)) setIsSubmitting(false) setIsSubmitted(true) } return (
{/* Abstract background element */}

{headline}

{subheadline}

{!isSubmitted ? (
{ setEmail(e.target.value) setIsValid(true) }} className={cn( "h-14 px-5 bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700 rounded-xl shadow-sm focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-500", !isValid && "border-red-300 dark:border-red-700 focus-visible:ring-red-400", )} /> {!isValid && (

Please enter a valid email address

)}
) : (
{successMessage}
)}

By subscribing, you agree to our Privacy Policy and consent to receive updates from our company.

) }