minor refactor (DRY)
This commit is contained in:
parent
668e530458
commit
b90fa91a9b
|
@ -4,7 +4,7 @@ import * as _ from "lodash";
|
|||
import { GardenPlant } from "../garden_plant";
|
||||
import { PlantLayerProps, CropSpreadDict } from "../interfaces";
|
||||
import { defensiveClone } from "../../../util";
|
||||
import { getMode, Mode } from "../garden_map";
|
||||
import { maybeNoPointer } from "../maybe_no_pointer";
|
||||
|
||||
const cropSpreadDict: CropSpreadDict = {};
|
||||
|
||||
|
@ -25,20 +25,6 @@ export function PlantLayer(props: PlantLayerProps) {
|
|||
.filter(c => !!c.body.spread)
|
||||
.map(c => cropSpreadDict[c.body.slug] = c.body.spread);
|
||||
|
||||
// TODO: This has a high similarity to code in `tool_slot_layers.tsx`. DRY up.
|
||||
// -RC 14 May 18
|
||||
const maybeNoPointer = (): React.SVGProps<SVGGElement>["style"] => {
|
||||
switch (getMode()) {
|
||||
case Mode.boxSelect:
|
||||
case Mode.clickToAdd:
|
||||
case Mode.moveTo:
|
||||
case Mode.createPoint:
|
||||
return { "pointerEvents": "none" };
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
return <g id="plant-layer">
|
||||
{visible &&
|
||||
plants
|
||||
|
@ -58,7 +44,7 @@ export function PlantLayer(props: PlantLayerProps) {
|
|||
})
|
||||
.map(p => {
|
||||
return <Link className="plant-link-wrapper"
|
||||
style={maybeNoPointer()}
|
||||
style={maybeNoPointer({})}
|
||||
to={"/app/designer/plants/" + p.plantId}
|
||||
id={p.plantId}
|
||||
onClick={_.noop}
|
||||
|
|
|
@ -3,7 +3,7 @@ import { SlotWithTool } from "../../../resources/interfaces";
|
|||
import { ToolSlotPoint } from "../tool_slot_point";
|
||||
import { MapTransformProps } from "../interfaces";
|
||||
import { history, getPathArray } from "../../../history";
|
||||
import { getMode, Mode } from "../garden_map";
|
||||
import { maybeNoPointer } from "../maybe_no_pointer";
|
||||
|
||||
export interface ToolSlotLayerProps {
|
||||
visible: boolean;
|
||||
|
@ -23,22 +23,10 @@ export function ToolSlotLayer(props: ToolSlotLayerProps) {
|
|||
const { slots, visible, mapTransformProps } = props;
|
||||
const cursor = canClickTool ? "pointer" : "default";
|
||||
|
||||
const maybeNoPointer = (): React.SVGProps<SVGGElement>["style"] => {
|
||||
switch (getMode()) {
|
||||
case Mode.boxSelect:
|
||||
case Mode.clickToAdd:
|
||||
case Mode.moveTo:
|
||||
case Mode.createPoint:
|
||||
return { "pointerEvents": "none" };
|
||||
default:
|
||||
return { cursor: cursor };
|
||||
}
|
||||
};
|
||||
|
||||
return <g
|
||||
id="toolslot-layer"
|
||||
onClick={goToToolsPage}
|
||||
style={maybeNoPointer()}>
|
||||
style={maybeNoPointer({ cursor: cursor })}>
|
||||
{visible &&
|
||||
slots.map(slot =>
|
||||
<ToolSlotPoint
|
||||
|
|
14
webpack/farm_designer/map/maybe_no_pointer.tsx
Normal file
14
webpack/farm_designer/map/maybe_no_pointer.tsx
Normal file
|
@ -0,0 +1,14 @@
|
|||
import { getMode, Mode } from "./garden_map";
|
||||
|
||||
export const maybeNoPointer =
|
||||
(defaultStyle: React.CSSProperties): React.SVGProps<SVGGElement>["style"] => {
|
||||
switch (getMode()) {
|
||||
case Mode.boxSelect:
|
||||
case Mode.clickToAdd:
|
||||
case Mode.moveTo:
|
||||
case Mode.createPoint:
|
||||
return { "pointerEvents": "none" };
|
||||
default:
|
||||
return defaultStyle;
|
||||
}
|
||||
};
|
Loading…
Reference in a new issue