()
| 248 | setSoilData(cached); |
| 249 | } |
| 250 | const fetchSoil = async () => { |
| 251 | try { |
| 252 | const { lat, lng } = getFieldCenter(effectiveField); |
| 253 | const data = await invokeWithRetry<any>( |
| 254 | "soil-data", |
| 255 | { lat, lon: lng }, |
| 256 | { retries: 3, isEmpty: (d) => !hasSoilPayload(d) } |
| 257 | ); |
| 258 | if (hasSoilPayload(data)) { |
| 259 | setSoilData(data); |
| 260 | setLocalCache(SOIL_CACHE_KEY, effectiveField.id, data); |
| 261 | } else { |
| 262 | setSoilData(cached ?? null); |
| 263 | } |
| 264 | } catch (e) { console.error("Soil data for planning error:", e); setSoilData(cached ?? null); } |
| 265 | }; |
| 266 | fetchSoil(); |
| 267 | }, [effectiveField?.id]); |
| 268 |
no test coverage detected