%# Lista do ranking de motoristas — markup COMPARTILHADO pelas abas "Estimado" e
"Consolidado" do dashboard. Os dois conjuntos têm a mesma forma
(:nome, :valor, :entregas); só muda a origem dos números, então duplicar o
markup faria as duas abas divergirem visualmente na primeira alteração.
Locais: itens (array de hashes), vazio (texto do estado sem dados). %>
<% if itens.any? %>
<%# A barra é proporcional ao VALOR, que é o número pelo qual as duas abas são
ordenadas — assim ela sempre encurta de cima para baixo.
⚠️ Não voltar a usar :entregas aqui: na aba Estimado dá no mesmo (valor =
qtd × preço), mas na Consolidada quem tem mais entregas nem sempre tem o
maior valor (bônus/retirada/termo mudam o preço unitário) e a barra do 3º
ficava MAIOR que a do 2º, contradizendo a ordem do ranking.
Zero vira barra vazia em vez de divisão por zero. %>
<% max = itens.map { |x| x[:valor].to_f }.max.to_f %>
<% itens.each_with_index do |m, i| %>
<%= i + 1 %>
<%= m[:nome] %>
<%= moeda(m[:valor]) %>
<%# Barra de progresso %>
<%= m[:entregas] %> entregas
<% end %>
<% else %>
<%= icone :caminhao, tamanho: 'w-8 h-8', cor: 'text-gray-600', espaco: false %>
<%= vazio %>
<% end %>