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;