import {
Box,
Button,
DialogActions,
DialogContent,
DialogTitle,
FormControlLabel,
InputAdornment,
Radio,
RadioGroup,
TextField,
Typography
} from "@mui/material";
import FileUploader from "common/FileUploads/FileUploader";
import ResponsiveDialog from "common/ResponsiveDialog";
import SearchSelect, { Option } from "common/SearchSelect";
import { useMobile } from "hooks";
import { Bin, Field, Contract, GrainBag } from "models";
// import { Contract } from "models/Contract";
// import { GrainBag } from "models/GrainBag";
import moment from "moment";
import { pond } from "protobuf-ts/pond";
import {
useBinAPI,
useFieldAPI,
useGlobalState,
useGrainBagAPI,
useSnackbar,
useTransactionAPI
} from "providers";
import { useState, useEffect } from "react";
import { getGrainUnit } from "utils";
interface Props {
mainObject: Bin | GrainBag | Field | Contract;
grainAdjustment?: number;
hideFields?: boolean;
asDestination?: boolean;
restrictMatching?: boolean;
open: boolean;
close: () => void;
callback?: (newTransaction?: pond.Transaction) => void;
allowAttachmentUploads?: boolean;
}
export default function GrainTransaction(props: Props) {
const {
open,
mainObject,
close,
grainAdjustment,
callback,
restrictMatching,
hideFields,
asDestination,
allowAttachmentUploads
} = props;
const [isObject, setIsObject] = useState<"source" | "destination" | "">("");
const [selectedSource, setSelectedSource] = useState