diff --git a/components/LogbuchForm.tsx b/components/LogbuchForm.tsx index 90882b2..545868a 100644 --- a/components/LogbuchForm.tsx +++ b/components/LogbuchForm.tsx @@ -66,7 +66,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved const [beos, setBeos] = useState([currentUserBeo]); const [objekte, setObjekte] = useState([]); const [bemerkungen, setBemerkungen] = useState(''); - const [wetter, setWetter] = useState(null); + const [wetter, setWetter] = useState({ temp: 0, feuchte: 0, druck: 0 }); const [saving, setSaving] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(false); @@ -78,7 +78,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved useEffect(() => { fetch('/api/wetter') .then((r) => { if (!r.ok) throw new Error(); return r.json(); }) - .then(setWetter) + .then((w: Wetter) => setWetter({ temp: w.temp, feuchte: Math.round(w.feuchte), druck: Math.round(w.druck) })) .catch(() => {}); }, []); @@ -92,8 +92,8 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved if (editEntry.WetterTemp !== null) { setWetter({ temp: editEntry.WetterTemp ?? 0, - feuchte: editEntry.WetterFeuchte ?? 0, - druck: editEntry.WetterDruck ?? 0, + feuchte: Math.round(editEntry.WetterFeuchte ?? 0), + druck: Math.round(editEntry.WetterDruck ?? 0), }); } } else { @@ -291,16 +291,40 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved {/* Wetter */} - {wetter && ( -
- -
- 🌡 {wetter.temp} °C - 💧 {wetter.feuchte} % - 🌬 {wetter.druck} hPa +
+
+
+ + setWetter({ ...wetter, temp: parseFloat(e.target.value) || 0 })} + step="0.1" + className="w-1/3 px-2 py-2 border-2 border-gray-400 rounded-lg bg-white text-sm text-gray-900 focus:border-blue-500 focus:outline-none" + /> +
+
+ + setWetter({ ...wetter, feuchte: parseInt(e.target.value) || 0 })} + step="1" + className="w-1/3 px-2 py-2 border-2 border-gray-400 rounded-lg bg-white text-sm text-gray-900 focus:border-blue-500 focus:outline-none" + /> +
+
+ + setWetter({ ...wetter, druck: parseInt(e.target.value) || 0 })} + step="1" + className="w-1/3 px-2 py-2 border-2 border-gray-400 rounded-lg bg-white text-sm text-gray-900 focus:border-blue-500 focus:outline-none" + />
- )} +
{error && (