'use client' import Link from 'next/link' import Image from 'next/image' import { Twitter, Mail, Linkedin, ArrowRight } from 'lucide-react' import { useStore } from '@/lib/store' import { api } from '@/lib/api' import { useCallback, useMemo, useState } from 'react' export function Footer() { const { isAuthenticated } = useStore() const [newsletterEmail, setNewsletterEmail] = useState('') const [newsletterState, setNewsletterState] = useState<'idle' | 'loading' | 'success' | 'error'>('idle') const [newsletterError, setNewsletterError] = useState(null) const canSubmitNewsletter = useMemo(() => { const email = newsletterEmail.trim() return email.length > 3 && email.includes('@') && email.includes('.') }, [newsletterEmail]) const handleNewsletterSubmit = useCallback(async (e: React.FormEvent) => { e.preventDefault() if (!canSubmitNewsletter || newsletterState === 'loading') return setNewsletterState('loading') setNewsletterError(null) try { await api.subscribeNewsletter(newsletterEmail.trim()) setNewsletterState('success') } catch (err: any) { setNewsletterState('error') setNewsletterError(err?.message || 'Subscription failed. Retry.') } }, [canSubmitNewsletter, newsletterEmail, newsletterState]) return ( ) }