From 6d1c9431f23ac9be75ca8ca5056ac46e67a9e476 Mon Sep 17 00:00:00 2001 From: csawatzky Date: Thu, 18 Jun 2026 10:54:14 -0600 Subject: [PATCH] setting up the framework for rebuilding the bin modes --- src/bin/binModes/BinModeController.tsx | 54 ++++++++++++++++++++++++++ src/bin/binModes/CooldownMode.tsx | 9 +++++ src/bin/binModes/DryingMode.tsx | 9 +++++ src/bin/binModes/HydratingMode.tsx | 9 +++++ src/bin/binModes/StorageMode.tsx | 9 +++++ 5 files changed, 90 insertions(+) create mode 100644 src/bin/binModes/BinModeController.tsx create mode 100644 src/bin/binModes/CooldownMode.tsx create mode 100644 src/bin/binModes/DryingMode.tsx create mode 100644 src/bin/binModes/HydratingMode.tsx create mode 100644 src/bin/binModes/StorageMode.tsx diff --git a/src/bin/binModes/BinModeController.tsx b/src/bin/binModes/BinModeController.tsx new file mode 100644 index 0000000..90aa3d1 --- /dev/null +++ b/src/bin/binModes/BinModeController.tsx @@ -0,0 +1,54 @@ +import { Box, Button, DialogActions, DialogContent, DialogTitle } from "@mui/material"; +import ResponsiveDialog from "common/ResponsiveDialog"; +import { Bin } from "models"; +import { pond } from "protobuf-ts/pond"; +import React from "react"; +import StorageMode from "./StorageMode"; +import DryingMode from "./DryingMode"; +import HydratingMode from "./HydratingMode"; +import CooldownMode from "./CooldownMode"; + +interface Props { + newMode: pond.BinMode //used to control which dialog to open + open: boolean + onClose: () => void + bin: Bin +} + +export default function BinModeControl(props: Props) { + const {open, onClose, newMode} = props + + //the mode controller could handle the actual api call for adding the interactions etc but the dialogs would create them and pass them up + + //steps involved for devices when changing the bin mode: + //remove conflicting interactions + //add new interactions + //updating the controllers + + const renderContent = () => { + switch(newMode){ + case pond.BinMode.BIN_MODE_DRYING: + return + case pond.BinMode.BIN_MODE_HYDRATING: + return + case pond.BinMode.BIN_MODE_COOLDOWN: + return + default: + return + } + } + + return ( + + Change Bin Mode + + {renderContent()} + + + + + + ) +} \ No newline at end of file diff --git a/src/bin/binModes/CooldownMode.tsx b/src/bin/binModes/CooldownMode.tsx new file mode 100644 index 0000000..173cf15 --- /dev/null +++ b/src/bin/binModes/CooldownMode.tsx @@ -0,0 +1,9 @@ +import { Box } from "@mui/material"; + +export default function CooldownMode(){ + return ( + + + + ) +} \ No newline at end of file diff --git a/src/bin/binModes/DryingMode.tsx b/src/bin/binModes/DryingMode.tsx new file mode 100644 index 0000000..7dd57a5 --- /dev/null +++ b/src/bin/binModes/DryingMode.tsx @@ -0,0 +1,9 @@ +import { Box } from "@mui/material"; + +export default function DryingMode(){ + return ( + + + + ) +} \ No newline at end of file diff --git a/src/bin/binModes/HydratingMode.tsx b/src/bin/binModes/HydratingMode.tsx new file mode 100644 index 0000000..f87ca98 --- /dev/null +++ b/src/bin/binModes/HydratingMode.tsx @@ -0,0 +1,9 @@ +import { Box } from "@mui/material"; + +export default function HydratingMode(){ + return ( + + + + ) +} \ No newline at end of file diff --git a/src/bin/binModes/StorageMode.tsx b/src/bin/binModes/StorageMode.tsx new file mode 100644 index 0000000..67f82dc --- /dev/null +++ b/src/bin/binModes/StorageMode.tsx @@ -0,0 +1,9 @@ +import { Box } from "@mui/material"; + +export default function StorageMode(){ + return ( + + + + ) +} \ No newline at end of file