diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/app/map/MapStageComponent.js | 8 | ||||
| -rw-r--r-- | src/components/app/sidebars/elements/LoadChartComponent.js | 11 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/components/app/map/MapStageComponent.js b/src/components/app/map/MapStageComponent.js index cd6e5e1b..c5b31e0f 100644 --- a/src/components/app/map/MapStageComponent.js +++ b/src/components/app/map/MapStageComponent.js @@ -30,10 +30,10 @@ class MapStageComponent extends React.Component { window.addEventListener("wheel", this.updateScale); window["exportCanvasToImage"] = () => { - const canvasData = this.stage.getStage().toDataURL(); - const newWindow = window.open(""); - newWindow.document.write("<img src='" + canvasData + "' alt='Canvas Image Export'/>"); - newWindow.document.title = "OpenDC Canvas Export"; + const download = document.createElement("a"); + download.href = this.stage.getStage().toDataURL(); + download.download = "opendc-canvas-export-" + Date.now() + ".png"; + download.click(); } } diff --git a/src/components/app/sidebars/elements/LoadChartComponent.js b/src/components/app/sidebars/elements/LoadChartComponent.js index 93664ab6..13c700db 100644 --- a/src/components/app/sidebars/elements/LoadChartComponent.js +++ b/src/components/app/sidebars/elements/LoadChartComponent.js @@ -1,15 +1,18 @@ import React from "react"; import ReactDOM from "react-dom/server"; +import SvgSaver from "svgsaver"; import {VictoryAxis, VictoryChart, VictoryLine, VictoryScatter} from "victory"; import {convertSecondsToFormattedTime} from "../../../../util/date-time"; const LoadChartComponent = ({data, currentTick}) => { const onExport = () => { - const newWindow = window.open(""); - newWindow.document.write(ReactDOM.renderToString( + const div = document.createElement("div"); + div.innerHTML = ReactDOM.renderToString( <VictoryChartComponent data={data} currentTick={currentTick} showCurrentTick={false}/> - )); - newWindow.document.title = "OpenDC Chart Export"; + ); + div.firstChild.style = "font-family: Roboto, Arial, sans-serif; font-size: 10pt;"; + const svgSaver = new SvgSaver(); + svgSaver.asSvg(div.firstChild); }; return ( |
