import React, { useState } from 'react'; import { Search, Loader2, Thermometer, MapPin, User, ChevronRight, Building2, AlertTriangle, Database, Globe } from 'lucide-react'; import { SearchState } from './types'; import { analyzePoliticalSentiment } from './services/geminiService'; import Dashboard from './components/Dashboard'; const PARTIDOS_BRASILEIROS = [ "PT", "PL", "MDB", "PSD", "Republicanos", "PP", "União Brasil", "PSB", "PDT", "PSOL", "NOVO", "PODEMOS", "SOLIDARIEDADE", "PV", "PCdoB", "CIDADANIA", "REDE", "AVANTE" ].sort(); const App: React.FC = () => { const [query, setQuery] = useState(''); const [candidateParty, setCandidateParty] = useState(''); const [state, setState] = useState({ isLoading: false, error: null, result: null, }); const handleSearch = async (e?: React.FormEvent) => { e?.preventDefault(); if (!query.trim()) return; if (!candidateParty) { setState(prev => ({ ...prev, error: "Seleção Obrigatória: Defina seu partido para calibrar as sugestões." })); return; } setState({ isLoading: true, error: null, result: null }); try { const result = await analyzePoliticalSentiment(query, candidateParty); setState({ isLoading: false, error: null, result }); } catch (err: any) { console.error("Erro na busca:", err); setState({ isLoading: false, error: err.message || "Falha técnica no processamento do Big Data. Tente ser mais específico (Ex: 'São Bernardo do Campo, SP').", result: null }); } }; return (
{/* Header Estilizado */}
{/* Seção de Entrada */}
{!state.result && (

A CIÊNCIA DA
VITÓRIA ELEITORAL.

Analise o clima ideológico de qualquer região do Brasil com precisão cirúrgica usando Big Data e IA.

)}
{/* Seleção de Partido */}
{/* Campo de Busca Principal */}
setQuery(e.target.value)} placeholder="Cidade, Estado ou Perfil (Ex: Salvador, BA)" className="w-full pl-14 pr-32 py-6 bg-white border-2 border-slate-100 rounded-[2rem] text-lg font-bold shadow-2xl shadow-slate-200/50 focus:border-blue-500 transition-all outline-none placeholder:text-slate-300 hover:border-slate-300" />
{!state.result && (
Sugestões de Análise:
)}
{/* State Loader */} {state.isLoading && (

Varredura Social Ativa

Cruzando Histórico TSE + Algoritmos de Sentimento

)} {/* Mensagem de Erro */} {state.error && (

Bloqueio no Processamento

{state.error}

)} {/* Resultado */} {state.result && }
); }; export default App;