import { ArrowBack, ArrowForward } from "@mui/icons-material"; import { Box, Theme, Stepper, Step, StepLabel, Typography, RadioGroup, Radio, FormControlLabel, Grid2, Button, Autocomplete, TextField, DialogTitle, DialogContent, DialogActions, CircularProgress } from "@mui/material"; import { makeStyles } from "@mui/styles"; import ConditioningSelector from "bin/conditioning/conditioningSelector"; import { Component, Device, Interaction } from "models"; import { Ambient } from "models/Ambient"; import { Controller } from "models/Controller"; import { Plenum } from "models/Plenum"; import { pond, quack } from "protobuf-ts/pond"; import { useEffect, useMemo, useState } from "react"; import { ComponentSet } from "bin/conditioning/pickComponentSet" import { componentIDToString, sameComponentID } from "pbHelpers/Component"; import moment from "moment"; import { lowerCase } from "lodash"; import { GetGrainExtensionMap } from "grain"; import { describeMeasurement } from "pbHelpers/MeasurementDescriber"; import { useGlobalState, useInteractionsAPI } from "providers"; import BinConditioningInteraction from "bin/BinConditioningInteraction"; import ConditionDisplay from "./conditionDisplay"; import React from "react"; const useStyles = makeStyles((theme: Theme) => { return ({ stepper: { padding: theme.spacing(0.5) }, }) }); interface Step { label: string; completed?: boolean; } export const DryingBaseStepCount = 3 interface Option { label: string; device: Device; icon?: string; } interface Props { devices: Device[] deviceComponents: Map binPrefs?: Map grain?: pond.Grain cancel: () => void confirm: (conflictingInteractions: Interaction[], deviceId: number, newInteractions: pond.MultiInteractionSettings, componentSets: ComponentSet[]) => void } const steps = [{label: "Style"}, {label: "Device"}, {label: "Interaction"}] //this is our simple drying mode the way it currently works, just building the dialog to be a little more trnasparent and customizable as to what the interaction is doing export default function DryingMode(props: Props){ const {devices, deviceComponents, binPrefs, grain, cancel, confirm} = props const grainExtensionMap = GetGrainExtensionMap(); const classes = useStyles() const [{user}] = useGlobalState() const interactionAPI = useInteractionsAPI() const [dryingMethod, setDryingMethod] = useState("air")//whether they are using natural air or a heater const [options, setOptions] = useState([]) const [deviceOption, setDeviceOption] = useState