feat(frontend): alinhar critérios e selos/hints
This commit is contained in:
@@ -9,6 +9,8 @@ function App() {
|
||||
const [consultores, setConsultores] = useState([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [error, setError] = useState(null);
|
||||
const [processing, setProcessing] = useState(false);
|
||||
const [processMessage, setProcessMessage] = useState('');
|
||||
const [total, setTotal] = useState(0);
|
||||
const [page, setPage] = useState(1);
|
||||
const [pageSize, setPageSize] = useState(50);
|
||||
@@ -45,12 +47,44 @@ function App() {
|
||||
try {
|
||||
setLoading(true);
|
||||
setError(null);
|
||||
setProcessMessage('');
|
||||
const response = await rankingService.getRanking(page, pageSize);
|
||||
setConsultores(response.consultores);
|
||||
setTotal(response.total);
|
||||
setTotalPages(response.total_pages || 0);
|
||||
setPage(response.page || page);
|
||||
} catch (err) {
|
||||
const status = err?.response?.status;
|
||||
if (status === 503) {
|
||||
try {
|
||||
setProcessing(true);
|
||||
setProcessMessage('Ranking ainda não processado. Iniciando processamento...');
|
||||
await rankingService.processarRanking(true);
|
||||
|
||||
while (true) {
|
||||
const st = await rankingService.getStatus();
|
||||
setProcessMessage(st.mensagem || `Processando... ${st.progress || 0}%`);
|
||||
if (!st.running) {
|
||||
if (st.erro) throw new Error(st.erro);
|
||||
break;
|
||||
}
|
||||
await new Promise((r) => setTimeout(r, 4000));
|
||||
}
|
||||
|
||||
const response = await rankingService.getRanking(page, pageSize);
|
||||
setConsultores(response.consultores);
|
||||
setTotal(response.total);
|
||||
setTotalPages(response.total_pages || 0);
|
||||
setPage(response.page || page);
|
||||
} catch (e) {
|
||||
console.error('Erro ao processar ranking:', e);
|
||||
setError('Erro ao processar ranking. Verifique a conexão com o Elasticsearch.');
|
||||
} finally {
|
||||
setProcessing(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
console.error('Erro ao carregar ranking:', err);
|
||||
setError('Erro ao carregar ranking. Verifique se a API está rodando.');
|
||||
} finally {
|
||||
@@ -88,7 +122,9 @@ function App() {
|
||||
if (loading) {
|
||||
return (
|
||||
<div className="container">
|
||||
<div className="loading">Carregando ranking...</div>
|
||||
<div className="loading">
|
||||
{processing ? (processMessage || 'Processando ranking...') : 'Carregando ranking...'}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user