FarmBot/Farmbot-Web-App

View on GitHub
frontend/farm_designer/map/layers/farmbot/negative_position_labels.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import * as React from "react";
import { BotPosition } from "../../../../devices/interfaces";
import { MapTransformProps, AxisNumberProperty } from "../../interfaces";
import { transformXY } from "../../util";
import { Color } from "../../../../ui";
import { botPositionLabel } from "./bot_position_label";

export interface NegativePositionLabelProps {
  position: BotPosition;
  mapTransformProps: MapTransformProps;
  plantAreaOffset: AxisNumberProperty;
}

export function NegativePositionLabel(props: NegativePositionLabelProps) {
  const { position, mapTransformProps, plantAreaOffset } = props;
  const xIsNegative = position.x && position.x < 0;
  const yIsNegative = position.y && position.y < 0;
  const origin = transformXY(
    -plantAreaOffset.x + 40,
    -plantAreaOffset.y - 10,
    mapTransformProps);

  return <g id={"negative-position-label"}
    fontFamily="Arial" textAnchor="middle" dominantBaseline="central"
    fill={Color.darkGray} fontSize={10}>
    <text
      visibility={(xIsNegative || yIsNegative) ? "visible" : "hidden"}
      x={origin.qx}
      y={origin.qy}>
      {botPositionLabel(position)}
    </text>
  </g>;
}