hotix for undefined data loads on map pages

This commit is contained in:
csawatzky 2025-10-21 10:44:46 -06:00
parent 7b78d7ba91
commit 46881f6656
5 changed files with 106 additions and 79 deletions

View file

@ -241,7 +241,7 @@ export default function MapBase(props: Props) {
homeMarkerAPI
.listHomeMarkers(1, 0, undefined, undefined, undefined, undefined, as)
.then(resp => {
if (resp.data.homeMarker.length < 1) {
if (!resp.data.homeMarker || resp.data.homeMarker.length < 1) {
setHomePin(undefined);
setHaveHome(false);
setStartingView(props.currentView);
@ -271,6 +271,7 @@ export default function MapBase(props: Props) {
}
})
.catch(err => {
console.log(err)
openSnack("Could not load Home Pin");
});
}, [as, homeMarkerAPI, openSnack, props.ignoreHomeLoad, user]); // eslint-disable-line react-hooks/exhaustive-deps

View file

@ -221,6 +221,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
.then(resp => {
let fields: Map<string, Field> = new Map();
let fieldEntries: Result[] = [];
if(resp.data.fields){
resp.data.fields.forEach(f => {
let field = Field.any(f);
fields.set(field.key(), field);
@ -239,6 +240,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
relevance: 0
});
});
}
setFields(fields);
setFieldSearchEntries(fieldEntries);
})
@ -314,6 +316,8 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
let bagOp: BagModel[] = [];
let bagMarkerData: Map<string, MarkerData> = new Map();
let bagEntries: Result[] = [];
if(resp.data.grainBags){
resp.data.grainBags.forEach(bag => {
let b = BagModel.create(bag);
bags.set(b.key(), b);
@ -361,6 +365,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
}
}
});
}
setBagOptions(bagOp);
setGrainBags(bags);
grainBagsRef.current = bags;
@ -382,6 +387,8 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
binYardAPI
.listBinYards(400, 0, "asc", undefined, undefined, undefined, as)
.then(resp => {
if(resp.data.yard){
resp.data.yard.forEach(yard => {
if (yard.settings) {
yardMap.set(yard.settings.key, yard.settings);
@ -429,6 +436,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
}
}
});
}
setYardMarkerData(newYardMarkers);
setYardSearchEntries(yardEntries);
setBinYards(yardMap);
@ -447,6 +455,9 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
let markerData: Map<string, MarkerData> = new Map();
let searchEntries: Result[] = [];
let binOp: IBin[] = [];
if(resp.data.bins){
resp.data.bins.forEach(bin => {
let b = IBin.create(bin);
binMap.set(b.key(), b);
@ -495,6 +506,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
}
}
});
}
setBinMarkerData(markerData);
setBinSearchEntries(searchEntries);
setBins(binMap);
@ -514,6 +526,9 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
let searchEntries: Result[] = [];
let options: DeviceModel[] = [];
if(resp.data.devices){
resp.data.devices.forEach((device, i) => {
//add device to the main map
let d = DeviceModel.any(device);
@ -553,6 +568,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
}
}
});
}
setDevices(map);
setDeviceOptions(options);
setDeviceMarkerData(newDevMarkers);
@ -725,6 +741,9 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
let fmMap: Map<string, FieldMarker> = new Map();
let markerData: Map<string, MarkerData> = new Map();
let searchEntries: Result[] = [];
if(resp.data.fieldMarker){
resp.data.fieldMarker.forEach(fieldMarker => {
let fm = FieldMarker.create(fieldMarker);
fmMap.set(fm.key(), fm);
@ -760,6 +779,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder";
place_type: ["fieldMarker"]
} as Result);
});
}
setFieldMarkers(fmMap);
setFieldMarkerData(markerData);
setFieldMarkerSearchEntries(searchEntries);

View file

@ -175,6 +175,7 @@ export default function AviationMapController(props: Props) {
let terminalMarkers: Map<string, MarkerData> = new Map();
let terminalOps: Terminal[] = [];
let searchEntries: Result[] = [];
if(resp.data.terminals){
resp.data.terminals.forEach(term => {
let terminal = Terminal.create(term);
terminalMap.set(terminal.key, terminal);
@ -207,6 +208,7 @@ export default function AviationMapController(props: Props) {
terminalOps.push(terminal);
}
});
}
setTerminals(terminalMap);
setTerminalMarkers(terminalMarkers);
setTerminalSearchEntries(searchEntries);

View file

@ -142,6 +142,7 @@ export default function ConstructionMapController(props: Props) {
siteAPI
.listSitesPageData(50, 0, "asc", "key", undefined, as)
.then(resp => {
if(resp.data.sites){
resp.data.sites.forEach(site => {
if (!site) return;
let newSite: Site = Site.any(site.site);
@ -179,6 +180,7 @@ export default function ConstructionMapController(props: Props) {
place_type: ["site"]
} as Result);
});
}
setSiteMarkerData(sm);
setSites(s);
setLoadingSites(false);

View file

@ -182,7 +182,9 @@ export default function Terminals(props: Props) {
if(loading) return
setLoading(true)
terminalAPI.listTerminals(200, 0, "asc", "name", as).then(resp => {
if(resp.data.terminals){
setTerminals(resp.data.terminals.map(a => Terminal.any(a)));
}
}).catch(err => {
console.log("There was a problem loading Terminals")
}).finally(() => {