import React, { useState, useEffect } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { PublicLayout } from '../../components/layout'; import { Button } from '../../components/ui'; import { getDemoAccounts, createDemoSession, DemoAccount } from '../../api/services/demo'; import { apiClient } from '../../api/client'; import { Check, Clock, Shield, Play, Zap, ArrowRight, Store, Factory } from 'lucide-react'; export const DemoPage: React.FC = () => { const navigate = useNavigate(); const [demoAccounts, setDemoAccounts] = useState([]); const [loading, setLoading] = useState(true); const [creatingSession, setCreatingSession] = useState(false); const [error, setError] = useState(null); useEffect(() => { const fetchDemoAccounts = async () => { try { const accounts = await getDemoAccounts(); setDemoAccounts(accounts); } catch (err) { setError('Error al cargar las cuentas demo'); console.error('Error fetching demo accounts:', err); } finally { setLoading(false); } }; fetchDemoAccounts(); }, []); const handleStartDemo = async (accountType: string) => { setCreatingSession(true); setError(null); try { const session = await createDemoSession({ demo_account_type: accountType as 'individual_bakery' | 'central_baker', }); // Store session ID in API client apiClient.setDemoSessionId(session.session_id); // Store session info in localStorage for UI localStorage.setItem('demo_mode', 'true'); localStorage.setItem('demo_session_id', session.session_id); localStorage.setItem('demo_account_type', accountType); localStorage.setItem('demo_expires_at', session.expires_at); localStorage.setItem('demo_tenant_id', session.virtual_tenant_id); // Navigate to dashboard navigate('/app/dashboard'); } catch (err: any) { setError(err?.message || 'Error al crear sesión demo'); console.error('Error creating demo session:', err); } finally { setCreatingSession(false); } }; const getAccountIcon = (accountType: string) => { return accountType === 'individual_bakery' ? Store : Factory; }; if (loading) { return (

Cargando cuentas demo...

); } return ( {/* Hero Section */}
Demo Interactiva

Prueba BakeryIA sin compromiso

Explora nuestro sistema con datos reales de panaderías españolas. Elige el tipo de negocio que mejor se adapte a tu caso.

Sin tarjeta de crédito
30 minutos de acceso
Datos aislados y seguros
{error && (
{error}
)} {/* Demo Account Cards */}
{demoAccounts.map((account) => { const Icon = getAccountIcon(account.account_type); return (
{/* Gradient overlay */}
{/* Header */}

{account.name}

{account.business_model}

DEMO
{/* Description */}

{account.description}

{/* Features */} {account.features && account.features.length > 0 && (

Funcionalidades incluidas:

{account.features.map((feature, idx) => (
{feature}
))}
)} {/* Demo Benefits */}
Datos reales en español
Sesión aislada de 30 minutos
Sin necesidad de registro
{/* CTA Button */}
); })}
{/* Footer CTA */}

¿Ya tienes una cuenta?

Inicia sesión aquí
); }; export default DemoPage;