Source: view/viz/VizOneVoronoiRanking.js

/** @module */

import VoronoiRanking1D from './VoronoiRanking1D.js'
import VoronoiRanking2D from './VoronoiRanking2D.js'

/**
 * Show votes
 * @param {VoterRendererList} voterRendererList
 * @param {CandidateList} candidateList
 * @param {Screen} screen
 * @constructor
 */
// eslint-disable-next-line max-len
export default function VizOneVoronoiRanking(voterRendererList, candidateList, screen, screenMini, simOptions) {
    const self = this

    // renderer factory //
    const { dimensions } = simOptions
    const VoronoiRanking = (dimensions === 1) ? VoronoiRanking1D : VoronoiRanking2D
    const rendererMaker = (voterShape) => new VoronoiRanking(voterShape, candidateList, screen)
    voterRendererList.setRenderer(rendererMaker)

    self.enter = () => {}
    self.exit = () => { }

    self.update = function (phaseResults) {
        const { error } = phaseResults
        if (error !== undefined) return

        const { votesByGeom } = phaseResults.votes

        voterRendererList.updateGraphic(votesByGeom)
    }

    self.render = function () {
        voterRendererList.render()
    }
}