import { useEffect, useState } from 'react' import { Link, Navigate } from 'react-router-dom' import { api } from '../api' import { useAuth } from '../auth' import type { GameInfo } from '../types' import { GATE_FROM_KEY } from '../vfx/gateCaps' const DEPOSIT_AMOUNTS = [100, 500, 1000] export function HomePage() { const { user, loading, setUser } = useAuth() const [games, setGames] = useState([]) const [depositOpen, setDepositOpen] = useState(false) const [busy, setBusy] = useState(false) const [message, setMessage] = useState(null) const [fromGate, setFromGate] = useState(false) useEffect(() => { void api.listGames().then(setGames).catch(() => setGames([])) }, []) useEffect(() => { try { if (sessionStorage.getItem(GATE_FROM_KEY) === '1') { sessionStorage.removeItem(GATE_FROM_KEY) setFromGate(true) } } catch { /* ignore */ } }, []) if (!loading && user && !user.agreement_accepted) { return } if (!loading && !user) { return } async function deposit(amount: number) { setBusy(true) setMessage(null) try { const wallet = await api.deposit(amount) if (user) { setUser({ ...user, balance: wallet.balance }) } setMessage(`Зачислено ${amount}`) setDepositOpen(false) } catch (err) { setMessage(err instanceof Error ? err.message : 'Ошибка пополнения') } finally { setBusy(false) } } return (
Vyryi
Баланс {user?.balance ?? '—'}
{message &&

{message}

}

Слоты

Лесная Удача уже открыта — остальные ждут своего часа.

    {games.map((game) => (
  • {game.title} {game.status === 'available' ? 'Открыто' : 'Скоро'} {game.description}
  • ))}
{depositOpen && (

Пополнение

Тестовая заглушка. Вывод недоступен.

{DEPOSIT_AMOUNTS.map((amount) => ( ))}
)}
) }