UNPKG

farmbot-web-frontend

Version:
50 lines (44 loc) 1.39 kB
import { ReduxAction } from "../interfaces"; import { Sequence } from "../sequences/interfaces"; import { Color } from "../interfaces.ts"; /** Used by UI widgets that modify a regimen */ export interface RegimenProps { regimen?: Regimen; dispatch: Function; }; /** * A Regimen, as returned from the '/api/regemins' endpoint (JSON). */ export interface RegimenApiResponse { id: number; color: string; device_id: string; name: string; } /** A list of "sequences" scheduled after a starting point (epoch). */ export interface Regimen { id?: number; /** Friendly identifier for humans to easily identify regimens. */ name: string; color: Color; regimen_items: RegimenItem[]; dirty?: boolean; }; /** Individual step that a regimen will execute at a point in time. */ export interface RegimenItem { id?: number; regimen_id?: number; sequence: Sequence; /** Time (in milliseconds) to wait before executing the sequence */ time_offset: number; }; /** How Regimen state is stored in the application. Used by Regimen reducer mostly */ export interface RegimensState { current: number; all: Regimen[]; } /** Used by regimen reducer to route incoming stream of Redux actions */ export interface RegimensActionHandler { [actionName: string]: (state: RegimensState, action: ReduxAction<any>) => RegimensState; }