import { useState } from "react"; import { useMutation } from "@tanstack/react-query"; import { apiRequest } from "@/lib/queryClient"; import { insertNewsletterSchema } from "@shared/schema"; import { useToast } from "@/hooks/use-toast"; import { Loader2 } from "lucide-react"; import { SectionDivider, SectionDividerBottom, CrescentDivider } from "@/components/ui/section-divider"; import { IslamicPattern } from "@/components/ui/section-divider"; export function NewsletterSection() { const { toast } = useToast(); const [email, setEmail] = useState(""); const [agreedToTerms, setAgreedToTerms] = useState(false); const newsletterMutation = useMutation({ mutationFn: async (newsletterData: { email: string, agreedToTerms: boolean }) => { const res = await apiRequest("POST", "/api/newsletter", newsletterData); return await res.json(); }, onSuccess: () => { toast({ title: "Subscription successful", description: "Thank you for subscribing to our newsletter!", }); // Reset form setEmail(""); setAgreedToTerms(false); }, onError: (error: Error) => { toast({ title: "Subscription failed", description: error.message, variant: "destructive", }); }, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!email) { toast({ title: "Email required", description: "Please enter your email address", variant: "destructive", }); return; } if (!agreedToTerms) { toast({ title: "Consent required", description: "Please agree to receive emails from Pilates with Fadia", variant: "destructive", }); return; } newsletterMutation.mutate({ email, agreedToTerms }); }; return (

Join Our Newsletter

Stay updated with wellness tips, special class offerings, and community events

setEmail(e.target.value)} required />
Peaceful pilates studio Group pilates session Pilates equipment detail Wellness space with cultural elements
); }