Adiciona recurso de comparacao de consultores

- Permite selecionar ate 2 consultores na lista via checkbox
- Exibe barra flutuante com consultores selecionados
- Modal de comparacao lado a lado com todos os componentes (A, B, C, D)
- Destaque visual para valores maiores/menores entre os consultores
- Layout responsivo para mobile
This commit is contained in:
Frederico Castro
2025-12-13 09:02:08 -03:00
parent d452082185
commit a82559377a
6 changed files with 729 additions and 4 deletions

View File

@@ -50,7 +50,7 @@ const ScoreItemWithTooltip = ({ value, label, formula, style }) => (
</div>
);
const ConsultorCard = ({ consultor, highlight }) => {
const ConsultorCard = ({ consultor, highlight, selecionado, onToggleSelecionado }) => {
const [expanded, setExpanded] = useState(false);
const cardRef = useRef(null);
@@ -74,6 +74,11 @@ const ConsultorCard = ({ consultor, highlight }) => {
return new Date(dateStr).toLocaleDateString('pt-BR');
};
const handleCheckboxClick = (e) => {
e.stopPropagation();
onToggleSelecionado(consultor);
};
const { pontuacao } = consultor;
const { consultoria } = consultor;
const temPPGDetalhado = (consultor.coordenacoes_programas || []).length > 0;
@@ -91,8 +96,16 @@ const ConsultorCard = ({ consultor, highlight }) => {
};
return (
<div ref={cardRef} className={`ranking-card ${expanded ? 'expanded' : ''} ${highlight ? 'highlight' : ''}`} onClick={() => setExpanded(!expanded)}>
<div ref={cardRef} className={`ranking-card ${expanded ? 'expanded' : ''} ${highlight ? 'highlight' : ''} ${selecionado ? 'selecionado' : ''}`} onClick={() => setExpanded(!expanded)}>
<div className="card-main">
<div className="selecao-checkbox" onClick={handleCheckboxClick} title="Selecionar para comparar">
<input
type="checkbox"
checked={selecionado}
onChange={() => {}}
/>
<span className="checkmark"></span>
</div>
<div className={`rank ${getRankClass(consultor.rank)}`}>#{consultor.rank}</div>
<div className="card-info">