import * as d3 from "d3"; import React from "react"; import ReactTooltip from "react-tooltip"; import { ConfigData } from "../../config"; import { Item } from "../../model"; import { XAxis, YAxis } from "./Axes"; import BlipPoints from "./BlipPoints"; import QuadrantRings from "./QuadrantRings"; import "./chart.scss"; const RingLabel: React.FC<{ ring: string; xScale: d3.ScaleLinear; yScale: d3.ScaleLinear; config: ConfigData; }> = ({ ring, xScale, yScale, config }) => { const ringIndex = config.rings.findIndex((r) => r === ring); const ringRadius = config.chartConfig.ringsAttributes[ringIndex].radius, previousRingRadius = ringIndex === 0 ? 0 : config.chartConfig.ringsAttributes[ringIndex - 1].radius, // middle point in between two ring arcs distanceFromCentre = previousRingRadius + (ringRadius - previousRingRadius) / 2; return ( {/* Right hand-side label */} {ring} {/* Left hand-side label */} {ring} ); }; const RadarChart: React.FC<{ items: Item[]; config: ConfigData; }> = ({ items, config }) => { const xScale = d3 .scaleLinear() .domain(config.chartConfig.scale) .range([0, config.chartConfig.size]); const yScale = d3 .scaleLinear() .domain(config.chartConfig.scale) .range([config.chartConfig.size, 0]); return (
{Object.values(config.quadrantsMap).map((value, index) => ( ))} {Array.from(config.rings).map((ring: string, index) => ( ))}
); }; export default RadarChart;