From ae458c3fcaeca7b54a1e45578e63fa3867afaf51 Mon Sep 17 00:00:00 2001 From: csawatzky Date: Mon, 21 Apr 2025 14:44:07 -0600 Subject: [PATCH] updated as in the field api --- src/field/FieldSettings.tsx | 9 +++++---- .../mapObjectControllers/AgMapController.tsx | 4 ++-- src/providers/pond/fieldAPI.tsx | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/field/FieldSettings.tsx b/src/field/FieldSettings.tsx index 6f17023..ca865a0 100644 --- a/src/field/FieldSettings.tsx +++ b/src/field/FieldSettings.tsx @@ -14,7 +14,7 @@ import ResponsiveDialog from "common/ResponsiveDialog"; import React from "react"; import { useState } from "react"; import { useEffect } from "react"; -import { useFieldAPI } from "providers"; +import { useFieldAPI, useGlobalState } from "providers"; import { pond } from "protobuf-ts/pond"; import { useSnackbar } from "hooks"; import { Field } from "models"; @@ -35,6 +35,7 @@ interface Props { export default function FieldSettings(props: Props) { const { selectedField, onClose, removeField, updateFields, borders } = props; + const [{as}] = useGlobalState(); const [fieldName, setFieldName] = useState(""); const [acres, setAcres] = useState(0); const [cropType, setCropType] = useState(pond.Grain.GRAIN_INVALID); @@ -89,7 +90,7 @@ export default function FieldSettings(props: Props) { settings.acres = acres; fieldAPI - .updateField(selectedField.key(), settings) + .updateField(selectedField.key(), settings, undefined, as) .then(resp => { let newField = clone(selectedField); newField.settings = settings; @@ -121,7 +122,7 @@ export default function FieldSettings(props: Props) { } settings.fieldGeoData = geo; fieldAPI - .addField(settings) + .addField(settings, as) .then(resp => { updateFields && updateFields(resp.data.field, settings); openSnack("New Field Created"); @@ -136,7 +137,7 @@ export default function FieldSettings(props: Props) { const deleteField = () => { if (selectedField) { fieldAPI - .removeField(selectedField?.key()) + .removeField(selectedField?.key(), as) .then(resp => { openSnack("Field Mapping Deleted"); //setActiveStep(0); diff --git a/src/maps/mapObjectControllers/AgMapController.tsx b/src/maps/mapObjectControllers/AgMapController.tsx index 885afe9..6f348f7 100644 --- a/src/maps/mapObjectControllers/AgMapController.tsx +++ b/src/maps/mapObjectControllers/AgMapController.tsx @@ -1200,7 +1200,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder"; let newSettings = field.settings; newSettings.fieldGeoData = geoData; fieldAPI - .updateField(key, newSettings) + .updateField(key, newSettings, undefined, as) .then(resp => { let cloneGeo = clone(geoRef.current); geoData.objectKey = key; @@ -1219,7 +1219,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder"; let field = fieldsRef.current.get(key); if (field) { fieldAPI - .removeField(key) + .removeField(key, as) .then(resp => { let cloneGeo = clone(geoRef.current); cloneGeo.delete(key); diff --git a/src/providers/pond/fieldAPI.tsx b/src/providers/pond/fieldAPI.tsx index 5f81c09..77c8f31 100644 --- a/src/providers/pond/fieldAPI.tsx +++ b/src/providers/pond/fieldAPI.tsx @@ -7,8 +7,8 @@ import { or } from "utils"; import { pondURL } from "./pond"; export interface IFieldAPIContext { - addField: (field: pond.FieldSettings) => Promise; - getField: (fieldId: string) => Promise; + addField: (field: pond.FieldSettings, as?: string) => Promise; + getField: (fieldId: string, as?: string) => Promise; listFields: ( limit: number, offset: number, @@ -18,11 +18,12 @@ export interface IFieldAPIContext { as?: string, asRoot?: boolean ) => Promise>; - removeField: (key: string) => Promise>; + removeField: (key: string, as?: string) => Promise>; updateField: ( key: string, field: pond.FieldSettings, - asRoot?: true + asRoot?: true, + as?: string ) => Promise>; } @@ -33,19 +34,19 @@ interface Props {} export default function FieldProvider(props: PropsWithChildren) { const { children } = props; const { get, del, post, put } = useHTTP(); - const [{ as }] = useGlobalState(); + //const [{ as }] = useGlobalState(); - const addField = (field: pond.FieldSettings) => { + const addField = (field: pond.FieldSettings, as?: string) => { if (as) return post(pondURL("/fields?as=" + as), field); return post(pondURL("/fields"), field); }; - const getField = (fieldId: string) => { + const getField = (fieldId: string, as?: string) => { if (as) return get(pondURL("/field/" + fieldId + "?as=" + as)); return get(pondURL("/field/" + fieldId)); }; - const removeField = (key: string) => { + const removeField = (key: string, as?: string) => { if (as) return del(pondURL("/fields/" + key + "?as=" + as)); return del(pondURL("/fields/" + key)); }; @@ -75,7 +76,7 @@ export default function FieldProvider(props: PropsWithChildren) { ); }; - const updateField = (key: string, field: pond.FieldSettings, asRoot?: boolean) => { + const updateField = (key: string, field: pond.FieldSettings, asRoot?: boolean, as?: string) => { if (as) return put( pondURL("/fields/" + key + "?as=" + as + (asRoot ? "&asRoot=" + asRoot.toString() : "")),