import React, { useState } from 'react'; import { Play, CheckCircle, AlertCircle, Wifi, Database, Clock } from 'lucide-react'; import { caixaAPIOfficial } from '../utils/CaixaAPIOfficial'; export const APIOfficialDemo: React.FC = () => { const [resultado, setResultado] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [status, setStatus] = useState(null); const testarAPIOficial = async () => { setLoading(true); setError(null); setResultado(null); try { console.log('🚀 Iniciando teste da API oficial da Caixa...'); // Primeiro, verificar status const statusAPI = await caixaAPIOfficial.verificarStatusAPI(); setStatus(statusAPI); if (statusAPI.online) { // Buscar dados oficiais const dadosOficiais = await caixaAPIOfficial.fetchOfficialData(); const dadosFormatados = caixaAPIOfficial.formatarDadosOficiais(dadosOficiais); setResultado({ raw: dadosOficiais, formatted: dadosFormatados, timestamp: new Date().toLocaleString('pt-BR') }); console.log('✅ Teste concluído com sucesso!'); } else { throw new Error('API oficial está temporariamente indisponível'); } } catch (err) { console.error('❌ Erro no teste:', err); setError(err instanceof Error ? err.message : 'Erro desconhecido'); } finally { setLoading(false); } }; return (
{/* Header */}

Teste da API Oficial da Caixa

Demonstração de conexão REAL com a API oficial da Caixa Econômica Federal

{/* Controls */}
{/* Status */} {status && (
{status.online ? ( ) : ( )}

Status da API: {status.online ? 'Online' : 'Offline'}

Método: {status.metodo}
Resposta: {status.tempoResposta}ms
Verificado: {status.ultimaVerificacao}
)} {/* Error */} {error && (

Erro na Conexão

{error}

)} {/* Results */} {resultado && (
{/* Dados Formatados */}

Dados Oficiais Obtidos da Caixa

Última atualização: {resultado.timestamp}

Concurso

{resultado.formatted.concurso}

Data do Sorteio

{resultado.formatted.data}

Valor Arrecadado

R$ {resultado.formatted.valorArrecadado.toLocaleString('pt-BR')}

Acumulado

{resultado.formatted.acumulado ? 'SIM' : 'NÃO'}

Local Sorteio

{resultado.formatted.localSorteio}

Próximo Concurso

{resultado.formatted.numeroProximoConcurso}

{/* Números Sorteados */}

Números Sorteados:

{resultado.formatted.numeros.map((numero: number, index: number) => (
{numero === 0 ? '00' : numero.toString().padStart(2, '0')}
))}
{/* Premiação */} {resultado.formatted.premiacoes.length > 0 && (

Premiação:

{resultado.formatted.premiacoes.map((premio: any, index: number) => ( ))}
Faixa Descrição Ganhadores Valor Prêmio
{premio.faixa} {premio.descricao} {premio.ganhadores} R$ {premio.valorPremio.toLocaleString('pt-BR')}
)}
{/* Dados Brutos da API */}
Ver Dados Brutos da API (Para Desenvolvedores)
                {JSON.stringify(resultado.raw, null, 2)}
              
)} {/* Info */}

Sobre este Teste

  • • Conecta DIRETAMENTE à API oficial da Caixa Econômica Federal
  • • URL: https://servicebus2.caixa.gov.br/portaldeloterias/api/lotomania/
  • • Usa múltiplas estratégias para contornar limitações de CORS
  • • Todos os dados são 100% oficiais e atualizados
  • • Sistema de fallback garante máxima disponibilidade
); }; export default APIOfficialDemo;