import React, { useState } from 'react'; import type { ReactElement } from 'react'; import Head from 'next/head'; import Link from 'next/link'; import { mdiFlash, mdiDiceMultiple, mdiTrophy, mdiRefresh, mdiCheckDecagram } from '@mdi/js'; import BaseButton from '../components/BaseButton'; import CardBox from '../components/CardBox'; import LayoutGuest from '../layouts/Guest'; import BaseIcon from '../components/BaseIcon'; import SectionMain from '../components/SectionMain'; import { getPageTitle } from '../config'; import { useAppDispatch } from '../stores/hooks'; import { generateAutoTicket } from '../stores/tickets/ticketsSlice'; export default function Home() { const dispatch = useAppDispatch(); const [targetOdds, setTargetOdds] = useState('2.50'); const [gameCount, setGameCount] = useState('5'); const [generatedTicket, setGeneratedTicket] = useState(null); const [loading, setLoading] = useState(false); const handleGenerate = async () => { setLoading(true); try { const resultAction = await dispatch(generateAutoTicket({ desired_odds: targetOdds, game_count: gameCount })); if (generateAutoTicket.fulfilled.match(resultAction)) { setGeneratedTicket(resultAction.payload); } } catch (error) { console.error('Failed to generate ticket:', error); } finally { setLoading(false); } }; return (
{getPageTitle('BetMagic - Auto Ticket Generator')} {/* Header */} {/* Hero Section */}

Build Your Dream Ticket in Seconds.

Stop wasting hours searching for games. Our smart algorithm finds the best odds based on your target and builds your winning ticket instantly.

10,000+ Tickets Generated Today
{/* Generator Widget */}

Quick Generator

setTargetOdds(e.target.value)} className="w-full bg-slate-900/50 border border-slate-700 rounded-xl px-4 py-3 text-2xl font-bold text-green-400 focus:outline-none focus:border-green-500 transition-colors" /> x
setGameCount(e.target.value)} className="w-full bg-slate-900/50 border border-slate-700 rounded-xl px-4 py-3 text-2xl font-bold focus:outline-none focus:border-green-500 transition-colors" />
{/* Result Area */} {generatedTicket && (
Generated Selections Total Odds: {generatedTicket.totalOdds.toFixed(2)}x
{generatedTicket.selections.map((sel: any, idx: number) => (

{sel.market?.game?.title || 'Unknown Match'}

{sel.name}

{sel.market?.name}

{parseFloat(sel.odds).toFixed(2)}
))}
)}
{/* Feature Section */}

Why BetMagic?

Our platform is designed for professional and casual bettors alike.

{[ { icon: mdiFlash, title: 'Lightning Fast', desc: 'Generate tickets in under 1 second using our optimized selection engine.' }, { icon: mdiTrophy, title: 'Highest Success', desc: 'We only pick selections from verified markets with live data integration.' }, { icon: mdiRefresh, title: 'Always Fresh', desc: 'Game data and odds are updated in real-time to ensure your ticket is valid.' } ].map((feature, i) => (

{feature.title}

{feature.desc}

))}
{/* Footer */}
BETMAGIC

© 2026 BetMagic AI. Responsible betting encouraged.

Privacy Terms
); } Home.getLayout = function getLayout(page: ReactElement) { return {page}; };