'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; import { Building2, Mail, Globe, Upload, Zap, Eye, TrendingUp, Users, ArrowRight } from 'lucide-react'; export default function SponsorSignupPage() { const router = useRouter(); const [mode, setMode] = useState<'landing' | 'signup' | 'login'>('landing'); const [formData, setFormData] = useState({ name: '', contactEmail: '', websiteUrl: '', logoFile: null as File | null, password: '', }); const [errors, setErrors] = useState>({}); const [submitting, setSubmitting] = useState(false); const handleDemoLogin = async () => { setSubmitting(true); try { // Demo: Set cookie to indicate sponsor mode document.cookie = 'gridpilot_demo_mode=sponsor; path=/; max-age=86400'; document.cookie = 'gridpilot_sponsor_id=demo-sponsor-1; path=/; max-age=86400'; await new Promise(resolve => setTimeout(resolve, 500)); router.push('/leagues'); } finally { setSubmitting(false); } }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const newErrors: Record = {}; if (!formData.name.trim()) { newErrors.name = 'Company name required'; } if (!formData.contactEmail.trim()) { newErrors.contactEmail = 'Contact email required'; } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.contactEmail)) { newErrors.contactEmail = 'Invalid email format'; } if (mode === 'signup' && !formData.password.trim()) { newErrors.password = 'Password required'; } if (Object.keys(newErrors).length > 0) { setErrors(newErrors); return; } setSubmitting(true); try { // Alpha: In-memory only, set demo sponsor cookie console.log('Sponsor signup:', formData); document.cookie = 'gridpilot_demo_mode=sponsor; path=/; max-age=86400'; document.cookie = `gridpilot_sponsor_name=${encodeURIComponent(formData.name)}; path=/; max-age=86400`; await new Promise(resolve => setTimeout(resolve, 800)); router.push('/leagues'); } catch (err) { console.error('Sponsor signup failed:', err); alert('Registration failed. Try again.'); } finally { setSubmitting(false); } }; // Landing page for sponsors if (mode === 'landing') { return (
{/* Hero */}

Sponsor Sim Racing Leagues

Connect your brand with passionate sim racing communities. Get exposure through liveries, league branding, and engaged audiences.

{/* Benefits */}

Brand Exposure

Your logo on liveries, league pages, and race broadcasts. Reach thousands of dedicated sim racers.

Analytics Dashboard

Track impressions, clicks, and engagement. See exactly how your sponsorship performs.

Engaged Audience

Connect with a passionate, tech-savvy community that values authentic partnerships.

{/* CTA Buttons */}
{/* Demo Login */}
Try it now:
{/* Alpha Notice */}

Alpha Preview: Sponsorship features are demonstration-only. In production, you'll have access to payment processing, detailed analytics, and automated livery placement.

); } // Login form if (mode === 'login') { return (

Sponsor Sign In

Access your sponsor dashboard

setFormData({ ...formData, contactEmail: e.target.value })} placeholder="sponsor@company.com" error={!!errors.contactEmail} errorMessage={errors.contactEmail} />
setFormData({ ...formData, password: e.target.value })} placeholder="••••••••" error={!!errors.password} errorMessage={errors.password} />

Don't have an account?{' '}

); } // Signup form return (
{/* Header */}

Create Sponsor Account

Register your company to sponsor leagues

{/* Company Name */}
setFormData({ ...formData, name: e.target.value })} placeholder="Your company name" error={!!errors.name} errorMessage={errors.name} />
{/* Contact Email */}
setFormData({ ...formData, contactEmail: e.target.value })} placeholder="sponsor@company.com" error={!!errors.contactEmail} errorMessage={errors.contactEmail} />
{/* Website URL */}
setFormData({ ...formData, websiteUrl: e.target.value })} placeholder="https://company.com" />
{/* Logo Upload */}
{ const file = e.target.files?.[0] || null; setFormData({ ...formData, logoFile: file }); }} className="block w-full text-sm text-gray-400 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-primary-blue/10 file:text-primary-blue hover:file:bg-primary-blue/20" />

PNG, JPEG, or SVG. Recommended: 500x500px transparent background.

{/* Password */}
setFormData({ ...formData, password: e.target.value })} placeholder="Create a password" error={!!errors.password} errorMessage={errors.password} />
{/* Alpha Notice */}

Alpha Note: Sponsor registration is demonstration-only. In production, you'll have access to full payment processing and analytics.

{/* Actions */}

Already have an account?{' '}

); }