'use client'; import useSWR from "swr"; import { Chart as ChartJS, registerables } from 'chart.js'; import { Bar } from "react-chartjs-2"; import { Ethics, EthicsDataG15, Species } from '../../types/stellaris'; import { number } from "prop-types"; const fetcher = async (url:any) => await fetch(url).then((res) => res.json()); export const EthicsBar = () => { const {data: tmpData} = useSWR('/api/v1/ethics',fetcher); const {data: empData} = useSWR('/api/v1/empires',fetcher); const parseData = (data: Array>) => { let parsedData: EthicsDataG15[] = new Array; Object.keys(Ethics).forEach((ethic: number | string) => { if (Number.isInteger(Number(ethic))) { parsedData[Number(ethic)] = new EthicsDataG15(data[Number(ethic)]) } }); return parsedData; } let ethicsData: EthicsDataG15[]; let data; let empireCount = 0; let scaleLimit = 0; if (tmpData && empData) { let sheetData = tmpData.sheetData ethicsData = parseData(sheetData); empireCount = empData.empireCount; let sumArray = new Array; let labelArray = new Array; ethicsData.forEach((ethicData, index) => { sumArray[index] = ethicData.sum(false); labelArray[index] = Ethics[index] }); let zipped: Array<{sums: number, labels: string}> = []; for (let i = 0; i (a.sums > b.sums ? -1 : 1)); for (let i = 0; i ); }