summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json1
-rw-r--r--src/components/app/map/MapStageComponent.js8
-rw-r--r--src/components/app/sidebars/elements/LoadChartComponent.js11
3 files changed, 12 insertions, 8 deletions
diff --git a/package.json b/package.json
index 089b7e9b..00e56349 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
"redux-saga": "^0.15.6",
"redux-thunk": "^2.2.0",
"socket.io-client": "^2.0.3",
+ "svgsaver": "^0.9.0",
"victory": "^0.22.2"
},
"scripts": {
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 (