added the harvest plan stuff for the map and field drawer

This commit is contained in:
csawatzky 2025-03-28 10:51:48 -06:00
parent a8e7ae1041
commit e2e061151b
11 changed files with 1610 additions and 36 deletions

View file

@ -11,8 +11,8 @@ import {
} from "@mui/material";
import { Notes } from "@mui/icons-material";
import DisplayDrawer from "common/DisplayDrawer";
//import HarvestPlanDisplay from "harvestPlan/HarvestPlanDisplay";
import { Field, fieldScope, /*HarvestPlan,*/ teamScope } from "models";
import HarvestPlanDisplay from "harvestPlan/HarvestPlanDisplay";
import { Field, fieldScope, HarvestPlan, teamScope } from "models";
import React, { useEffect, useState } from "react";
//import TaskViewer from "tasks/TaskViewer";
import Weather from "weather/weather";
@ -21,7 +21,7 @@ import GrainDescriber from "grain/GrainDescriber";
import Chat from "chat/Chat";
import { pond } from "protobuf-ts/pond";
import { useMobile } from "hooks";
import { useGlobalState, /*useHarvestPlanAPI,*/ useUserAPI } from "providers";
import { useGlobalState, useHarvestPlanAPI, useUserAPI } from "providers";
import { makeStyles } from "@mui/styles";
import FieldActions from "field/FieldActions";
@ -77,13 +77,13 @@ const useStyles = makeStyles((theme: Theme) => ({
export default function FieldDrawer(props: Props) {
const { open, closeDrawer, selectedFieldKey, fields, moveMap } = props;
const [field, setField] = useState<Field>(Field.create());
//const [hPlan, setHPlan] = useState<HarvestPlan>(HarvestPlan.create());
const [hPlan, setHPlan] = useState<HarvestPlan>(HarvestPlan.create());
const [value, setValue] = useState(0);
const classes = useStyles();
const [openNote, setOpenNote] = useState(false);
const isMobile = useMobile();
const [{ as, user }] = useGlobalState();
//const hPlanAPI = useHarvestPlanAPI();
const hPlanAPI = useHarvestPlanAPI();
const [planLoading, setPlanLoading] = useState(false);
const userAPI = useUserAPI();
const [permissions, setPermissions] = useState<pond.Permission[]>([]);
@ -129,24 +129,24 @@ export default function FieldDrawer(props: Props) {
}
}, [as, user, userAPI, field]); //eslint-disable-line react-hooks/exhaustive-deps
// useEffect(() => {
// if (field.key() !== "") {
// hPlanAPI
// .listHarvestPlans(1, 0, "desc", "createDate", field.key(), as)
// .then(resp => {
// if (resp.data.harvestPlan.length > 0) {
// let plan = resp.data.harvestPlan[0];
// setHPlan(HarvestPlan.any(plan));
// } else {
// setHPlan(HarvestPlan.create());
// }
// setPlanLoading(false);
// })
// .catch(err => {
// //openSnack("Failed to load plan");
// });
// }
// }, [field, as, hPlanAPI]);
useEffect(() => {
if (field.key() !== "") {
hPlanAPI
.listHarvestPlans(1, 0, "desc", "createDate", field.key(), as)
.then(resp => {
if (resp.data.harvestPlan.length > 0) {
let plan = resp.data.harvestPlan[0];
setHPlan(HarvestPlan.any(plan));
} else {
setHPlan(HarvestPlan.create());
}
setPlanLoading(false);
})
.catch(err => {
//openSnack("Failed to load plan");
});
}
}, [field, as, hPlanAPI]);
const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {
setValue(newValue);
@ -206,7 +206,7 @@ export default function FieldDrawer(props: Props) {
let taskLoadKeys: string[] = [];
if (!planLoading) {
field.key() !== "" && taskLoadKeys.push(field.key());
//hPlan.key() !== "" && taskLoadKeys.push(hPlan.key());
hPlan.key() !== "" && taskLoadKeys.push(hPlan.key());
}
return (
<React.Fragment>
@ -255,7 +255,7 @@ export default function FieldDrawer(props: Props) {
<Box padding={3}>
<Divider style={{ padding: 2 }} />
</Box>
{/* <HarvestPlanDisplay
<HarvestPlanDisplay
plan={hPlan}
permissions={permissions}
planField={field}
@ -266,7 +266,7 @@ export default function FieldDrawer(props: Props) {
setHPlan(updatedPlan);
}
}}
/> */}
/>
</Box>
</TabPanelMine>
<TabPanelMine value={value} index={1}>