import $ from 'jquery'; import Chartkick from 'chartkick'; export function toggleChart(event, chartClass) { const nextSelectorItem = $(event.target), nextChart = $(chartClass), nextChartId = nextChart .children() .first() .attr('id'), currentSelectorItem = nextSelectorItem .parent() .find('.segmented-control-item-active'), currentChart = nextSelectorItem .parent() .parent() .find('.chart:not(.hidden)'); // Change the current selector and the next selector states currentSelectorItem.toggleClass('segmented-control-item-active'); nextSelectorItem.toggleClass('segmented-control-item-active'); // Hide the currently shown chart and show the new one currentChart.toggleClass('hidden'); nextChart.toggleClass('hidden'); // Reflow needed, see https://github.com/highcharts/highcharts/issues/1979 Chartkick.charts[nextChartId].getChartObject().reflow(); }