From 2fb8d60c2333579af3859c09cabd580a815bbd1a Mon Sep 17 00:00:00 2001 From: Alex-NRCan Date: Thu, 28 Sep 2023 17:23:09 -0400 Subject: [PATCH] Chart now supporting empty initialization --- src/App.tsx | 34 +------------ src/chart/chart.tsx | 114 ++++++++++++++++++++++---------------------- src/index.tsx | 2 + 3 files changed, 61 insertions(+), 89 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 558b081..02e610a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -8,39 +8,7 @@ import { Chart } from './chart/chart'; const App = (): JSX.Element => { return ( -
- -
+ ); }; diff --git a/src/chart/chart.tsx b/src/chart/chart.tsx index f3e03f4..01e11d3 100644 --- a/src/chart/chart.tsx +++ b/src/chart/chart.tsx @@ -10,12 +10,14 @@ import { ChartLine } from './charts/chart-line'; import styles from './chart.module.css'; +console.log("geochart chart.tsx run"); + /** * Main props for the Chart */ export interface TypeChartProps, TLabel = string> { - data: ChartData; - options: ChartOptions | OptionsGeoChart; + data?: ChartData; + options?: ChartOptions | OptionsGeoChart; plugins?: Plugin[]; } @@ -27,14 +29,16 @@ export interface TypeChartProps, string>): JSX.Element { // Fetch the cgpv module - const w = window as any; + const w = window as any; const cgpv = w['cgpv']; const { react, ui } = cgpv; const { useEffect, useState } = react; const { data: elementData, options: elementOptions } = props; const [data, setData] = useState(elementData!); - const [options, setOptions] = useState(elementOptions || { geoview: { chart: 'line' } }); + const [options, setOptions] = useState(elementOptions); + const optionsChart = options as ChartOptions; + const optionsGeoChart = options as OptionsGeoChart; const { Slider } = ui.elements; @@ -86,7 +90,7 @@ export function Chart(props: TypeChartProps - - - ); - } + const { xSlider } = optionsGeoChart.geochart; + if (xSlider?.display) { + return ( + + + + ); } // None return
; } function renderYSlider() { - if (options) { - const { ySlider } = (options as OptionsGeoChart).geochart; - if (ySlider?.display) { - return ( - - - - ); - } + const { ySlider } = optionsGeoChart.geochart; + if (ySlider?.display) { + return ( + + + + ); } return
; } function renderChartContainer() { - return ( -
-
{renderChart()}
-
{renderYSlider()}
-
{renderXSlider()}
-
-
- ); + if (optionsGeoChart && optionsGeoChart.geochart && optionsGeoChart.geochart.chart) { + return ( +
+
{renderChart()}
+
{renderYSlider()}
+
{renderXSlider()}
+
+
+ ); + } } return
{renderChartContainer()}
; diff --git a/src/index.tsx b/src/index.tsx index 8ca06fe..a275d4e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5,6 +5,8 @@ const w = window as any; const cgpv = w['cgpv']; const { react, createRoot } = cgpv; +console.log("geochart index.tsx run"); + const container = createRoot(document.getElementById("root") as HTMLElement); container.render(