added binyard and grainbag stuff

This commit is contained in:
Carter 2025-03-11 13:35:15 -06:00
parent e52a9a4fbf
commit 235464bb93
11 changed files with 1553 additions and 33 deletions

View file

@ -57,7 +57,7 @@ import GrainDescriber, { grainName } from "grain/GrainDescriber";
import { useMobile, useWidth } from "hooks";
import { Dictionary } from "lodash";
// import { Bin, Interaction, BinYard as BinYardModel } from "models";
import { Bin, Interaction } from "models";
import { Bin, Interaction, BinYard as BinYardModel } from "models";
// import { GrainBag } from "models/GrainBag";
import { pond, quack } from "protobuf-ts/pond";
import {
@ -80,6 +80,7 @@ import { makeStyles } from "@mui/styles";
import { useNavigate } from "react-router-dom";
import BinSettings from "bin/BinSettings";
import AddBinFab from "bin/AddBinFab";
import { GrainBag } from "models/GrainBag";
// import { useHistory } from "react-router";
const useStyles = makeStyles((theme: Theme) => {
@ -168,7 +169,7 @@ export default function Bins(props: Props) {
const [grainBins, setGrainBins] = useState<Bin[]>([]);
const [fertilizerBins, setFertilizerBins] = useState<Bin[]>([]);
const [emptyBins, setEmptyBins] = useState<Bin[]>([]);
// const [grainBags, setGrainBags] = useState<GrainBag[]>([]);
const [grainBags, setGrainBags] = useState<GrainBag[]>([]);
const [displayedInventory, setDisplayedInventory] = useState<GrainAmount[]>([]);
// const [displayedFertilizer, setDisplayedFertilizer] = useState<GrainAmount[]>([]);
const [carouselIndex, setCarouselIndex] = useState(0);
@ -372,22 +373,22 @@ export default function Bins(props: Props) {
if (yards.length === 0) {
let y: pond.BinYardSettings[] = [];
let p: Dictionary<pond.Permission[]> = {};
// let sortedYards = resp.data.binYards.sort((a, b) => {
// let yard1 = BinYardModel.create(a);
// let yard2 = BinYardModel.create(b);
// return (
// yard1.settings.userSort[as ?? user.id()] - yard2.settings.userSort[as ?? user.id()]
// );
// });
// sortedYards.forEach(yard => {
// let newYard = pond.BinYard.fromObject(yard ?? {});
// if (newYard.settings) {
// y.push(newYard.settings);
// p[newYard.settings.key] = newYard.yardPermissions;
// }
// });
// setYardPermissions(p);
// setYards(y);
let sortedYards = resp.data.binYards.sort((a, b) => {
let yard1 = BinYardModel.create(a);
let yard2 = BinYardModel.create(b);
return (
yard1.settings.userSort[as ?? user.id()] - yard2.settings.userSort[as ?? user.id()]
);
});
sortedYards.forEach(yard => {
let newYard = pond.BinYard.fromObject(yard ?? {});
if (newYard.settings) {
y.push(newYard.settings);
p[newYard.settings.key] = newYard.yardPermissions;
}
});
setYardPermissions(p);
setYards(y);
}
//move load of grain bags into this api call
@ -637,7 +638,7 @@ export default function Bins(props: Props) {
<Divider />
</Grid>
<Grid item xs={12}>
{/*<BinsList
<BinsList
valDisplay={cardValDisplay}
gridView={binView === "grid"}
bins={fertilizerBins}
@ -650,7 +651,7 @@ export default function Bins(props: Props) {
setScrollTranslations({ ...scrollTranslations, fertilizer: newTranslation });
}
}}
/>*/}
/>
</Grid>
</React.Fragment>
)}
@ -660,7 +661,7 @@ export default function Bins(props: Props) {
<Divider />
</Grid>
<Grid item xs={12}>
{/*<BinsList
<BinsList
valDisplay={cardValDisplay}
gridView={binView === "grid"}
bins={emptyBins}
@ -673,7 +674,7 @@ export default function Bins(props: Props) {
setScrollTranslations({ ...scrollTranslations, empty: newTranslation });
}
}}
/>*/}
/>
</Grid>
</React.Fragment>
)}
@ -683,16 +684,16 @@ export default function Bins(props: Props) {
};
const grainBagsContent = () => {
// if (!allLoading && grainBags.length <= 0) {
// return (
// <Box textAlign="center" marginTop={1}>
// <Typography variant="subtitle1">No bags found</Typography>
// <Typography variant="body1" color="textSecondary">
// Create a grain bag and it will appear here
// </Typography>
// </Box>
// );
// }
if (!allLoading && grainBags.length <= 0) {
return (
<Box textAlign="center" marginTop={1}>
<Typography variant="subtitle1">No bags found</Typography>
<Typography variant="body1" color="textSecondary">
Create a grain bag and it will appear here
</Typography>
</Box>
);
}
// if (bagView === "list") {
// return (