update as in the field marker api

This commit is contained in:
csawatzky 2025-04-21 15:57:51 -06:00
parent 4912d319ff
commit 0d3f7fa8a6
2 changed files with 16 additions and 12 deletions

View file

@ -12,7 +12,7 @@ import {
import ResponsiveDialog from "common/ResponsiveDialog"; import ResponsiveDialog from "common/ResponsiveDialog";
import { FieldMarker } from "models"; import { FieldMarker } from "models";
import { pond } from "protobuf-ts/pond"; import { pond } from "protobuf-ts/pond";
import { useFieldMarkerAPI, useSnackbar } from "providers"; import { useFieldMarkerAPI, useGlobalState, useSnackbar } from "providers";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
interface Props { interface Props {
@ -48,6 +48,7 @@ import {
export default function FieldMarkerSettings(props: Props) { export default function FieldMarkerSettings(props: Props) {
const { open, close, fieldMarker, longitude, latitude } = props; const { open, close, fieldMarker, longitude, latitude } = props;
const [{as}] = useGlobalState();
const fieldMarkerAPI = useFieldMarkerAPI(); const fieldMarkerAPI = useFieldMarkerAPI();
const { openSnack } = useSnackbar(); const { openSnack } = useSnackbar();
const [title, setTitle] = useState("Field Marker"); const [title, setTitle] = useState("Field Marker");
@ -76,7 +77,7 @@ import {
newFM.settings.severity = severity; newFM.settings.severity = severity;
//newFM.settings.affectedArea = fmAffectedArea; //newFM.settings.affectedArea = fmAffectedArea;
fieldMarkerAPI fieldMarkerAPI
.addFieldMarker(newFM.settings) .addFieldMarker(newFM.settings, as)
.then(resp => { .then(resp => {
openSnack("New marker has been saved"); openSnack("New marker has been saved");
close(true); close(true);
@ -90,7 +91,7 @@ import {
fm.settings.severity = severity; fm.settings.severity = severity;
//fm.settings.affectedArea = fmAffectedArea; //fm.settings.affectedArea = fmAffectedArea;
fieldMarkerAPI fieldMarkerAPI
.updateFieldMarker(fm.key(), fm.settings) .updateFieldMarker(fm.key(), fm.settings, undefined, as)
.then(resp => { .then(resp => {
openSnack("Updated Field Marker"); openSnack("Updated Field Marker");
close(true); close(true);
@ -102,7 +103,7 @@ import {
const removeFieldMarker = (fieldMarker: FieldMarker) => { const removeFieldMarker = (fieldMarker: FieldMarker) => {
fieldMarkerAPI fieldMarkerAPI
.removeFieldMarker(fieldMarker.key()) .removeFieldMarker(fieldMarker.key(), as)
.then(resp => { .then(resp => {
openSnack("Field Marker Removed"); openSnack("Field Marker Removed");
close(true); close(true);

View file

@ -7,7 +7,8 @@ import { pondURL } from "./pond";
export interface IFieldMarkerAPIContext { export interface IFieldMarkerAPIContext {
addFieldMarker: ( addFieldMarker: (
fieldMarker: pond.FieldMarkerSettings fieldMarker: pond.FieldMarkerSettings,
as?: string
) => Promise<AxiosResponse<pond.AddFieldMarkerResponse>>; ) => Promise<AxiosResponse<pond.AddFieldMarkerResponse>>;
getFieldMarker: (fieldMarkerID: string) => Promise<AxiosResponse<pond.FieldMarker>>; getFieldMarker: (fieldMarkerID: string) => Promise<AxiosResponse<pond.FieldMarker>>;
listFieldMarkers: ( listFieldMarkers: (
@ -20,12 +21,14 @@ export interface IFieldMarkerAPIContext {
as?: string as?: string
) => Promise<AxiosResponse<pond.ListFieldMarkersResponse>>; ) => Promise<AxiosResponse<pond.ListFieldMarkersResponse>>;
removeFieldMarker: ( removeFieldMarker: (
fieldMarkerID: string fieldMarkerID: string,
as?: string
) => Promise<AxiosResponse<pond.RemoveFieldMarkerResponse>>; ) => Promise<AxiosResponse<pond.RemoveFieldMarkerResponse>>;
updateFieldMarker: ( updateFieldMarker: (
key: string, key: string,
fieldMarker: pond.FieldMarkerSettings, fieldMarker: pond.FieldMarkerSettings,
asRoot?: true asRoot?: true,
as?: string
) => Promise<AxiosResponse<pond.UpdateFieldMarkerResponse>>; ) => Promise<AxiosResponse<pond.UpdateFieldMarkerResponse>>;
} }
@ -38,20 +41,20 @@ interface Props {}
export default function FieldMarkerProvider(props: PropsWithChildren<Props>) { export default function FieldMarkerProvider(props: PropsWithChildren<Props>) {
const { children } = props; const { children } = props;
const { get, del, post, put } = useHTTP(); const { get, del, post, put } = useHTTP();
const [{ as }] = useGlobalState(); //const [{ as }] = useGlobalState();
const addFieldMarker = (fieldMarker: pond.FieldMarkerSettings) => { const addFieldMarker = (fieldMarker: pond.FieldMarkerSettings, as?: string) => {
if (as) if (as)
return post<pond.AddFieldMarkerResponse>(pondURL("/fieldMarkers?as=" + as), fieldMarker); return post<pond.AddFieldMarkerResponse>(pondURL("/fieldMarkers?as=" + as), fieldMarker);
return post<pond.AddFieldMarkerResponse>(pondURL("/fieldMarkers"), fieldMarker); return post<pond.AddFieldMarkerResponse>(pondURL("/fieldMarkers"), fieldMarker);
}; };
const getFieldMarker = (fieldMarkerId: string) => { const getFieldMarker = (fieldMarkerId: string, as?: string) => {
if (as) return get<pond.FieldMarker>(pondURL("/fieldMarkers/" + fieldMarkerId + "?as=" + as)); if (as) return get<pond.FieldMarker>(pondURL("/fieldMarkers/" + fieldMarkerId + "?as=" + as));
return get<pond.FieldMarker>(pondURL("/fieldMarkers/" + fieldMarkerId)); return get<pond.FieldMarker>(pondURL("/fieldMarkers/" + fieldMarkerId));
}; };
const removeFieldMarker = (key: string) => { const removeFieldMarker = (key: string, as?: string) => {
if (as) if (as)
return del<pond.RemoveFieldMarkerResponse>(pondURL("/fieldMarkers/" + key + "?as=" + as)); return del<pond.RemoveFieldMarkerResponse>(pondURL("/fieldMarkers/" + key + "?as=" + as));
return del<pond.RemoveFieldMarkerResponse>(pondURL("/fieldMarkers/" + key)); return del<pond.RemoveFieldMarkerResponse>(pondURL("/fieldMarkers/" + key));
@ -82,7 +85,7 @@ export default function FieldMarkerProvider(props: PropsWithChildren<Props>) {
); );
}; };
const updateFieldMarker = (key: string, hm: pond.FieldMarkerSettings, asRoot?: boolean) => { const updateFieldMarker = (key: string, hm: pond.FieldMarkerSettings, asRoot?: boolean, as?: string) => {
if (as) if (as)
return put<pond.UpdateFieldMarkerResponse>( return put<pond.UpdateFieldMarkerResponse>(
pondURL( pondURL(