import {trierCandidats} from "../utils"
import TableContainer from "@mui/material/TableContainer"
import Paper from "@mui/material/Paper"
import Table from "@mui/material/Table"
import TableHead from "@mui/material/TableHead"
import TableRow from "@mui/material/TableRow"
import TableCell from "@mui/material/TableCell"
import TableBody from "@mui/material/TableBody"
export function TableauResultatsCandidatsLegislatives({blocs, candidats, nuances, donnees_t1, donnees_t2}) {
const voixCandidats_t1 = donnees_t1?.voix ?? {}
const voixCandidats_t2 = donnees_t2?.voix ?? {}
const candidatsTriees = trierCandidats(candidats, voixCandidats_t1)
const cellules_t1 = <>
Voix tour 1
% Inscrit⋅es tour 1
% Exprimé⋅es tour 1
>
const cellules_t2 = Math.max(...Object.values(voixCandidats_t2)) === 0 ? <>> : <>
Voix tour 2
% Inscrit⋅es tour 2
% Exprimé⋅es tour 2
>
return <>
Numéro
Candidat
Nuance
Bloc
{cellules_t1}
{cellules_t2}
{candidatsTriees.map((candidat) => (
))}
>
}
function LigneCandidat({candidat, voix_t1, voix_t2, donnees_t1, donnees_t2, nuances, blocs}) {
const nuance = nuances.filter(nuance => nuance.code === candidat.nuance)[0]
const bloc = blocs.filter(bloc => bloc.nom === candidat.bloc)[0]
const gagnant = (voix_t2 > 0 && voix_t2 === Math.max(...Object.values(donnees_t2.voix)))
|| (voix_t1 === Math.max(...Object.values(donnees_t1.voix))
&& voix_t1 / donnees_t1.exprimes >= 0.5 && voix_t1 / donnees_t1.inscrits >= 0.25)
const cellules_t1 = <>
{voix_t1}
{(100 * voix_t1 / donnees_t1.inscrits).toFixed(2)} %
{(100 * voix_t1 / donnees_t1.exprimes).toFixed(2)} %
>
const cellules_t2 = !voix_t2 ? <>> : <>
{voix_t2}
{(100 * voix_t2 / donnees_t2.inscrits).toFixed(2)} %
{(100 * voix_t2 / donnees_t2.exprimes).toFixed(2)} %
>
return
{candidat.numero}
{candidat.prenom} {candidat.nom}
{nuance.nom} ({nuance.code})
{bloc.nom}
{cellules_t1}
{cellules_t2}
}
/**
* Composant pour le tableau des résultats des élections législatives
* @param blocs
* @param nuances
* @param donnees
* @return {JSX.Element}
* @constructor
*/
export function TableauResultatsNuancesLegislatives({blocs, nuances, donnees}) {
const voixNuances = donnees?.voix ?? {}
const nuancesTriees = trierCandidats(nuances, voixNuances, "code")
return <>
Nuance
Bloc
Voix
% Inscrit⋅es
% Exprimé⋅es
{nuancesTriees.map((nuance) => (
))}
>
}
function LigneNuance({nuance, voix, donnees, blocs}) {
const bloc = blocs.filter(bloc => bloc.nom === nuance.bloc)[0]
return
{nuance.nom} ({nuance.code})
{bloc.nom}
{voix}
{(100 * voix / donnees.inscrits).toFixed(2)} %
{(100 * voix / donnees.exprimes).toFixed(2)} %
}