summaryrefslogtreecommitdiff
path: root/frontend/src/components/app/sidebars/elements/LoadChartComponent.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-07-01 13:33:31 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:47:17 +0200
commitde8f12d74faef5fa3f9e38d1340948cab2d06ea3 (patch)
tree678bf1af3e5fa2334f0df43388d45294785bbf1e /frontend/src/components/app/sidebars/elements/LoadChartComponent.js
parent44236756c4cf689806dc17c6950a2cff3e9227bf (diff)
Manually generate IDs
Diffstat (limited to 'frontend/src/components/app/sidebars/elements/LoadChartComponent.js')
-rw-r--r--frontend/src/components/app/sidebars/elements/LoadChartComponent.js158
1 files changed, 76 insertions, 82 deletions
diff --git a/frontend/src/components/app/sidebars/elements/LoadChartComponent.js b/frontend/src/components/app/sidebars/elements/LoadChartComponent.js
index 5f0d40cb..ae52891a 100644
--- a/frontend/src/components/app/sidebars/elements/LoadChartComponent.js
+++ b/frontend/src/components/app/sidebars/elements/LoadChartComponent.js
@@ -1,90 +1,84 @@
-import React from "react";
-import ReactDOM from "react-dom/server";
-import SvgSaver from "svgsaver";
-import {
- VictoryAxis,
- VictoryChart,
- VictoryLabel,
- VictoryLine,
- VictoryScatter
-} from "victory";
-import { convertSecondsToFormattedTime } from "../../../../util/date-time";
+import React from 'react'
+import ReactDOM from 'react-dom/server'
+import SvgSaver from 'svgsaver'
+import { VictoryAxis, VictoryChart, VictoryLabel, VictoryLine, VictoryScatter } from 'victory'
+import { convertSecondsToFormattedTime } from '../../../../util/date-time'
const LoadChartComponent = ({ data, currentTick }) => {
- const onExport = () => {
- const div = document.createElement("div");
- div.innerHTML = ReactDOM.renderToString(
- <VictoryChartComponent
- data={data}
- currentTick={currentTick}
- showCurrentTick={false}
- />
- );
- div.firstChild.style =
- "font-family: Roboto, Arial, sans-serif; font-size: 10pt;";
- const svgSaver = new SvgSaver();
- svgSaver.asSvg(
- div.firstChild,
- "opendc-chart-export-" + Date.now() + ".svg"
- );
- };
+ const onExport = () => {
+ const div = document.createElement('div')
+ div.innerHTML = ReactDOM.renderToString(
+ <VictoryChartComponent
+ data={data}
+ currentTick={currentTick}
+ showCurrentTick={false}
+ />,
+ )
+ div.firstChild.style =
+ 'font-family: Roboto, Arial, sans-serif; font-size: 10pt;'
+ const svgSaver = new SvgSaver()
+ svgSaver.asSvg(
+ div.firstChild,
+ 'opendc-chart-export-' + Date.now() + '.svg',
+ )
+ }
- return (
- <div className="mt-1" style={{ position: "relative" }}>
- <strong>Load over time</strong>
- <VictoryChartComponent
- data={data}
- currentTick={currentTick}
- showCurrentTick={true}
- />
- <ExportChartComponent onExport={onExport} />
- </div>
- );
-};
+ return (
+ <div className="mt-1" style={{ position: 'relative' }}>
+ <strong>Load over time</strong>
+ <VictoryChartComponent
+ data={data}
+ currentTick={currentTick}
+ showCurrentTick={true}
+ />
+ <ExportChartComponent onExport={onExport}/>
+ </div>
+ )
+}
const VictoryChartComponent = ({ data, currentTick, showCurrentTick }) => (
- <VictoryChart
- height={250}
- padding={{ top: 10, bottom: 50, left: 50, right: 50 }}
- >
- <VictoryAxis
- tickFormat={tick => convertSecondsToFormattedTime(tick)}
- fixLabelOverlap={true}
- label="Simulated Time"
- />
- <VictoryAxis dependentAxis label="Load" />
- <VictoryLine data={data} />
- <VictoryScatter data={data} />
- {showCurrentTick ? (
- <VictoryLine
- labelComponent={
- <VictoryLabel renderInPortal angle={90} dy={-5} dx={60} />
- }
- data={[{ x: currentTick + 1, y: 0 }, { x: currentTick + 1, y: 1 }]}
- labels={point =>
- point.y === 1
- ? "Current tick : " + convertSecondsToFormattedTime(currentTick)
- : ""}
- style={{
- data: { stroke: "#00A6D6", strokeWidth: 4 },
- labels: { fill: "#00A6D6" }
- }}
- />
- ) : (
- undefined
- )}
- </VictoryChart>
-);
+ <VictoryChart
+ height={250}
+ padding={{ top: 10, bottom: 50, left: 50, right: 50 }}
+ >
+ <VictoryAxis
+ tickFormat={tick => convertSecondsToFormattedTime(tick)}
+ fixLabelOverlap={true}
+ label="Simulated Time"
+ />
+ <VictoryAxis dependentAxis label="Load"/>
+ <VictoryLine data={data}/>
+ <VictoryScatter data={data}/>
+ {showCurrentTick ? (
+ <VictoryLine
+ labelComponent={
+ <VictoryLabel renderInPortal angle={90} dy={-5} dx={60}/>
+ }
+ data={[{ x: currentTick + 1, y: 0 }, { x: currentTick + 1, y: 1 }]}
+ labels={point =>
+ point.y === 1
+ ? 'Current tick : ' + convertSecondsToFormattedTime(currentTick)
+ : ''}
+ style={{
+ data: { stroke: '#00A6D6', strokeWidth: 4 },
+ labels: { fill: '#00A6D6' },
+ }}
+ />
+ ) : (
+ undefined
+ )}
+ </VictoryChart>
+)
const ExportChartComponent = ({ onExport }) => (
- <button
- className="btn btn-success btn-circle btn-sm"
- title="Export Chart to PNG Image"
- onClick={onExport}
- style={{ position: "absolute", top: 0, right: 0 }}
- >
- <span className="fa fa-camera" />
- </button>
-);
+ <button
+ className="btn btn-success btn-circle btn-sm"
+ title="Export Chart to PNG Image"
+ onClick={onExport}
+ style={{ position: 'absolute', top: 0, right: 0 }}
+ >
+ <span className="fa fa-camera"/>
+ </button>
+)
-export default LoadChartComponent;
+export default LoadChartComponent