asdf
This commit is contained in:
@@ -183,6 +183,31 @@ const Watering = () => {
|
|||||||
return Math.ceil((gallonsNeeded / gpm));
|
return Math.ceil((gallonsNeeded / gpm));
|
||||||
}, [sprinklerForm.gpm, coverageSqft, targetInches]);
|
}, [sprinklerForm.gpm, coverageSqft, targetInches]);
|
||||||
|
|
||||||
|
// Select a point to edit (enables popup edits too)
|
||||||
|
const onSelectPoint = (pt) => {
|
||||||
|
setSelectedPointId(pt.id);
|
||||||
|
setEditForm({
|
||||||
|
durationMinutes: pt.duration_minutes || 0,
|
||||||
|
mountType: pt.sprinkler_mount,
|
||||||
|
sprinklerHeadType: pt.sprinkler_head_type,
|
||||||
|
gpm: Number(pt.sprinkler_gpm||0),
|
||||||
|
throwFeet: Number(pt.sprinkler_throw_feet||0),
|
||||||
|
degrees: Number(pt.sprinkler_degrees||360),
|
||||||
|
lengthFeet: Number(pt.sprinkler_length_feet||0),
|
||||||
|
widthFeet: Number(pt.sprinkler_width_feet||0),
|
||||||
|
headingDegrees: Number(pt.sprinkler_heading_degrees||0)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// Persist changes to a point and refresh it in local state
|
||||||
|
const updatePointField = async (id, patch) => {
|
||||||
|
try {
|
||||||
|
const r = await wateringAPI.updatePoint(id, patch);
|
||||||
|
const np = r.data?.data?.point;
|
||||||
|
setPoints(prev => prev.map(p=> p.id===id? np: p));
|
||||||
|
} catch(e){ toast.error('Failed to update point'); }
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="p-6">
|
<div className="p-6">
|
||||||
<h1 className="text-2xl font-bold mb-4">Watering - Sprinklers</h1>
|
<h1 className="text-2xl font-bold mb-4">Watering - Sprinklers</h1>
|
||||||
|
|||||||
Reference in New Issue
Block a user