summaryrefslogtreecommitdiff
path: root/src/components/map/controls/ZoomControlComponent.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/map/controls/ZoomControlComponent.js')
-rw-r--r--src/components/map/controls/ZoomControlComponent.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/components/map/controls/ZoomControlComponent.js b/src/components/map/controls/ZoomControlComponent.js
new file mode 100644
index 00000000..c5628d16
--- /dev/null
+++ b/src/components/map/controls/ZoomControlComponent.js
@@ -0,0 +1,31 @@
+import React from "react";
+import {MAP_MAX_SCALE, MAP_MIN_SCALE, MAP_SCALE_PER_EVENT} from "../MapConstants";
+
+const ZoomControlComponent = ({mapScale, setMapScale}) => {
+ const zoom = (out) => {
+ const newScale = out ? mapScale / MAP_SCALE_PER_EVENT : mapScale * MAP_SCALE_PER_EVENT;
+ const boundedScale = Math.min(Math.max(MAP_MIN_SCALE, newScale), MAP_MAX_SCALE);
+ setMapScale(boundedScale);
+ };
+
+ return (
+ <span>
+ <button
+ className="btn btn-default btn-circle btn-sm mr-1"
+ title="Zoom in"
+ onClick={() => zoom(false)}
+ >
+ <span className="fa fa-plus"/>
+ </button>
+ <button
+ className="btn btn-default btn-circle btn-sm mr-1"
+ title="Zoom out"
+ onClick={() => zoom(true)}
+ >
+ <span className="fa fa-minus"/>
+ </button>
+ </span>
+ );
+};
+
+export default ZoomControlComponent;