const withActive = filtered.map(c => { const cand = primaries2016Candidates.find(c2 => c2.last === c.last.toLowerCase()) c.active = cand.suspendedDate ? 0 : 1 return c })
const candidates = stateUnit.candidates.map(candidate => { // try to find this candidate in primaries2016Candidates const mainCandidate = primaries2016Candidates.find(c => compareStringsIgnoreCase(c.last, candidate.last)) const isMainAndRunning = !!mainCandidate && !mainCandidate.suspendedDate return { ...candidate, isMainAndRunning } })
function candidateRow({ candidate, index, totalVoteCount, party, prioritize }) { const first = candidate.hasOwnProperty('first') ? candidate.first : '' const last = candidate.hasOwnProperty('last') ? candidate.last : '' const voteCount = candidate.hasOwnProperty('voteCount') ? candidate.voteCount : 0 const percent = totalVoteCount > 0 ? candidate.voteCount / totalVoteCount : 0 const displayPct = standardize.percent(percent) const winnerTag = Candidate.isWinner(candidate) ? '<span class="winner">✔</span>' : '' const image = primaries2016Candidates.find(c => c.last === last.toLowerCase()) ? `${last.toLowerCase().replace("'", '')}.jpg` : 'placeholder.png' const fancy = ` <div class='candidate-row fancy'> <div class='photo'><img alt='' src="assets/img/${image}" /></div> <div class='two-rows'> <div class='name-and-pct'> <div class='name'>${winnerTag}<span class='first epsilon'>${first}</span> <span class='last epsilon'>${last}</span></div> <div class='pct'><span class='epsilon'>${displayPct}%</span></div> </div> <div class='bar-and-votes'> <div class='bar'><span class='iota wrapper'><span class='fill--${party.toLowerCase()}-${index}' style='width: ${displayPct}%'> </span></span></div> <div class='votes'><span class='iota'>${addCommas(voteCount)} votes</span></div> </div> </div> </div> ` const lite = ` <div class='candidate-row lite'> <div class='name-and-votes-and-pct'> <span class='name first eta'>${first}</span> <span class='name last eta'>${last}</span> <span class='votes iota'>${addCommas(voteCount)} votes</span> <span class='pct theta'>${displayPct}%</span> </div> </div> ` return index < prioritize ? fancy : lite }
const filtered = candidates.filter(c => primaries2016Candidates.find(c2 => c2.last === c.last.toLowerCase()))