import { ExpandMore } from "@mui/icons-material" import { Accordion, AccordionDetails, AccordionSummary, Box, Button, Typography } from "@mui/material" import SearchSelect, { Option } from "common/SearchSelect" import { pond } from "protobuf-ts/pond" import { useGlobalState } from "providers" import { useGrainAPI } from "providers/pond/grainAPI" import React, { useEffect, useState } from "react" import CustomGrainForm from "./CustomGrainForm" interface Props { initialGrain?: pond.GrainSettings onGrainSettingsChange: (settings: pond.GrainSettings) => void } export default function CustomGrainSelector(props: Props) { const {initialGrain, onGrainSettingsChange} = props const grainAPI = useGrainAPI() const [{as}] = useGlobalState() const [newGrainSettings, setNewGrainSettings] = useState(initialGrain ?? pond.GrainSettings.create()) const [formValid, setFormValid] = useState(true) const [grainMap, setGrainMap] = useState>( initialGrain ? new Map([ ["Active", pond.GrainObject.create({key: "Active", name: initialGrain.name, settings: initialGrain})] ]) : new Map()) const [grainOptions, setGrainOptions] = useState( initialGrain ? [ { label: initialGrain.name, value: "Active", group: "Active" } ] : [] ) const [isNew, setIsNew] = useState(false) const [selectedOption, setSelectedOption] = useState