FarmBot/Farmbot-Web-App

View on GitHub
frontend/curves/interfaces.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import {
  TaggedCurve, TaggedFarmwareEnv, TaggedGenericPointer, TaggedPlantPointer,
} from "farmbot";
import { SourceFbosConfig } from "../devices/interfaces";
import { BotSize } from "../farm_designer/map/interfaces";
import { CurvesPanelState } from "../interfaces";
import { FormattedPlantInfo } from "../plants/map_state_to_props";
import { UUID } from "../resources/interfaces";
import { CurveType } from "./templates";

export interface CurvesProps {
  dispatch: Function;
  curves: TaggedCurve[];
  curvesPanelState: CurvesPanelState;
}

export interface CurvesState {
  searchTerm: string;
}

export interface CurveInventoryItemProps {
  curve: TaggedCurve;
  onClick(): void;
}

export interface EditCurveProps {
  dispatch: Function;
  curves: TaggedCurve[];
  plants: TaggedPlantPointer[];
  findCurve(id: number): TaggedCurve | undefined;
  sourceFbosConfig: SourceFbosConfig;
  botSize: BotSize;
  resourceUsage: Record<UUID, boolean | undefined>;
}

export interface EditCurveState {
  templates: boolean;
  scale: boolean;
  hovered: string | undefined;
  warningText: boolean;
  uuid: UUID | undefined;
  maxCount: number;
  iconDisplay: boolean;
}

export interface CurveSvgWithPopoverProps {
  dispatch: Function;
  curve: TaggedCurve;
  sourceFbosConfig: SourceFbosConfig;
  botSize: BotSize;
  editable: boolean;
  hovered: string | undefined;
  setHovered(day: string | undefined): void;
  x?: number;
  y?: number;
  farmwareEnvs?: TaggedFarmwareEnv[];
  soilHeightPoints?: TaggedGenericPointer[];
}

export interface CurveSvgProps extends CurveSvgWithPopoverProps {
  setOpen(state: boolean): void;
  warningLinesContent: WarningLinesContent;
}

export interface CurveIconProps {
  curve: TaggedCurve;
}

type ChangeCurve = (id: number | string | undefined, curveType: CurveType) => void;

export interface CurveInfoProps {
  curveType: CurveType;
  dispatch: Function;
  curve: TaggedCurve | undefined;
  sourceFbosConfig: SourceFbosConfig;
  botSize: BotSize;
  onChange: ChangeCurve;
  plants: TaggedPlantPointer[];
  plant?: FormattedPlantInfo;
  curves: TaggedCurve[];
  farmwareEnvs?: TaggedFarmwareEnv[];
  soilHeightPoints?: TaggedGenericPointer[];
}

export interface AllCurveInfoProps {
  curves: TaggedCurve[];
  findCurve(curveType: CurveType): TaggedCurve | undefined;
  onChange: ChangeCurve;
  plants: TaggedPlantPointer[];
  plant?: FormattedPlantInfo;
  dispatch: Function;
  sourceFbosConfig: SourceFbosConfig;
  botSize: BotSize;
  farmwareEnvs?: TaggedFarmwareEnv[];
  soilHeightPoints?: TaggedGenericPointer[];
}

export interface PlotTools {
  normX(day: string | number): number;
  normY(value: number): number;
  xMax: number;
  yMax: number;
  xZero: number;
  yZero: number;
}

export interface ActionMenuProps {
  dispatch: Function;
  curve: TaggedCurve;
  click(): void;
}

export interface CurveDataTableRowProps {
  dispatch: Function;
  curve: TaggedCurve;
  hovered: string | undefined;
  setHovered(day: string | undefined): void;
}

export interface PercentChangeProps {
  curve: TaggedCurve;
  index: number;
  value: number;
}

export interface ValueInputProps {
  day: string;
  value: number;
  dispatch: Function;
  curve: TaggedCurve;
}

export interface DataProps {
  curve: TaggedCurve;
  plotTools: PlotTools;
  showHoverEffect(day: string | undefined): boolean;
  setHovered(day: string | undefined): void;
  dragging: string | undefined;
  setDragging(day: string | undefined): void;
  dispatch: Function;
  editable: boolean;
}

export interface DataLabelsProps {
  curve: TaggedCurve;
  plotTools: PlotTools;
  showHoverEffect(day: string | undefined): boolean;
}

export interface XAxisProps {
  curve: TaggedCurve;
  plotTools: PlotTools;
}

export interface YAxisProps {
  curve: TaggedCurve;
  plotTools: PlotTools;
}

export interface WarningLine {
  value: number;
  textValue?: number;
  text: string;
  style: "low" | "high";
}

export interface WarningLinesContent {
  title: string;
  lines: WarningLine[];
}

export interface GetWarningLinesContentProps {
  curve: TaggedCurve;
  sourceFbosConfig: SourceFbosConfig;
  botSize: BotSize;
  x?: number;
  y?: number;
  farmwareEnvs?: TaggedFarmwareEnv[];
  soilHeightPoints?: TaggedGenericPointer[];
}

export interface WarningLinesProps {
  warningLinesContent: WarningLinesContent;
  curve: TaggedCurve;
  plotTools: PlotTools;
  setOpen(state: boolean): void;
}