From c73b099567c8eef70308020a6f8be0dd892b8bad Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Tue, 28 Apr 2020 17:03:17 +1000 Subject: [PATCH] Re-added grid settings to fog tools --- src/components/map/Map.js | 2 +- .../map/controls/FogToolSettings.js | 7 +++++++ .../map/controls/GridSnappingToggle.js | 21 +++++++++++++++++++ src/icons/GridOffIcon.js | 18 ++++++++++++++++ src/icons/GridOnIcon.js | 18 ++++++++++++++++ 5 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 src/components/map/controls/GridSnappingToggle.js create mode 100644 src/icons/GridOffIcon.js create mode 100644 src/icons/GridOnIcon.js diff --git a/src/components/map/Map.js b/src/components/map/Map.js index 4dfa503..927cff3 100644 --- a/src/components/map/Map.js +++ b/src/components/map/Map.js @@ -49,7 +49,7 @@ function Map({ const [selectedToolId, setSelectedToolId] = useState("pan"); const [toolSettings, setToolSettings] = useState({ - fog: { type: "add", useEdgeSnapping: true }, + fog: { type: "add", useEdgeSnapping: true, useGridSnapping: false }, brush: { color: "darkGray", type: "stroke", diff --git a/src/components/map/controls/FogToolSettings.js b/src/components/map/controls/FogToolSettings.js index 0dbb11b..43cba40 100644 --- a/src/components/map/controls/FogToolSettings.js +++ b/src/components/map/controls/FogToolSettings.js @@ -3,6 +3,7 @@ import { Flex } from "theme-ui"; import EdgeSnappingToggle from "./EdgeSnappingToggle"; import RadioIconButton from "./RadioIconButton"; +import GridSnappingToggle from "./GridSnappingToggle"; import FogAddIcon from "../../../icons/FogAddIcon"; import FogRemoveIcon from "../../../icons/FogRemoveIcon"; @@ -41,6 +42,12 @@ function BrushToolSettings({ settings, onSettingChange }) { onSettingChange({ useEdgeSnapping }) } /> + + onSettingChange({ useGridSnapping }) + } + /> ); } diff --git a/src/components/map/controls/GridSnappingToggle.js b/src/components/map/controls/GridSnappingToggle.js new file mode 100644 index 0000000..b09232a --- /dev/null +++ b/src/components/map/controls/GridSnappingToggle.js @@ -0,0 +1,21 @@ +import React from "react"; +import { IconButton } from "theme-ui"; + +import GridOnIcon from "../../../icons/GridOnIcon"; +import GridOffIcon from "../../../icons/GridOffIcon"; + +function GridSnappingToggle({ useGridSnapping, onGridSnappingChange }) { + return ( + onGridSnappingChange(!useGridSnapping)} + > + {useGridSnapping ? : } + + ); +} + +export default GridSnappingToggle; diff --git a/src/icons/GridOffIcon.js b/src/icons/GridOffIcon.js new file mode 100644 index 0000000..a1287c2 --- /dev/null +++ b/src/icons/GridOffIcon.js @@ -0,0 +1,18 @@ +import React from "react"; + +function GridOffIcon() { + return ( + + + + + ); +} + +export default GridOffIcon; diff --git a/src/icons/GridOnIcon.js b/src/icons/GridOnIcon.js new file mode 100644 index 0000000..1796b30 --- /dev/null +++ b/src/icons/GridOnIcon.js @@ -0,0 +1,18 @@ +import React from "react"; + +function GridOnIcon() { + return ( + + + + + ); +} + +export default GridOnIcon;