diff --git a/frontend/peepal_react/src/WC_Komponens/Hozzadas/HozzaadForm.jsx b/frontend/peepal_react/src/WC_Komponens/Hozzadas/HozzaadForm.jsx index 93f5b60..85f800e 100644 --- a/frontend/peepal_react/src/WC_Komponens/Hozzadas/HozzaadForm.jsx +++ b/frontend/peepal_react/src/WC_Komponens/Hozzadas/HozzaadForm.jsx @@ -1,4 +1,4 @@ -import React, { useState} from "react"; +import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; export default function HozzaadForm() { @@ -10,43 +10,53 @@ export default function HozzaadForm() { const [nyitva, setNyitva] = useState(""); const [utvonal, setUtvonal] = useState(""); const [koordinatak, setKoordinatak] = useState(""); + const [errors, setErrors] = useState({}); const navigate = useNavigate(); - const handleSubmit = (event) => { + const handleSubmit = async (event) => { event.preventDefault(); - const wcInfo = { - nev: nev, - kerulet_id: kerulet_id, - kozeli_megall: kozeli_megall, - akadalym: akadalym, - ar: ar, - nyitva: nyitva, - utvonal: utvonal, - koordinatak: koordinatak, - felhasznalo_id: null + + // Validáció: egyszerű kötelező mező ellenőrzések + const newErrors = {}; + if (!nev.trim()) newErrors.nev = "A név megadása kötelező."; + if (!kerulet_id) newErrors.kerulet_id = "Kerület kiválasztása kötelező."; + if (!kozeli_megall.trim()) newErrors.kozeli_megall = "A megálló megadása kötelező."; + if (!koordinatak.trim()) newErrors.koordinatak = "A koordináták megadása kötelező."; + if (!/^-?\d+\.\d+, ?-?\d+\.\d+$/.test(koordinatak)) newErrors.koordinatak = "Helytelen formátum. (pl. 47.1234, 19.1234)"; + + if (Object.keys(newErrors).length > 0) { + setErrors(newErrors); + return; } - fetch("http://localhost:8000/api/hozzaadas", { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(wcInfo) - }) - .then(async (response) => { + const wcInfo = { + nev, + kerulet_id, + kozeli_megall, + akadalym, + ar, + nyitva, + utvonal, + koordinatak, + felhasznalo_id: null + }; + + try { + const response = await fetch("http://localhost:8000/api/hozzaadas", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(wcInfo) + }); + if (!response.ok) { const errorData = await response.json(); console.error("Hiba a POST kérésnél:", errorData); alert("Hiba történt az adatok mentésekor."); return; } - - const newWC = await response.json(); - - console.log("Sikeres mentés:", newWC); - - // csak siker után törlünk mindent és navigálunk + + await response.json(); setNev(""); setKeruletId(""); setKozeli(""); @@ -55,163 +65,131 @@ export default function HozzaadForm() { setNyitva(""); setUtvonal(""); setKoordinatak(""); + setErrors({}); navigate("/"); - }) - .catch((error) => { - console.log("Hálózati hiba:", error); + + } catch (error) { + console.error("Hálózati hiba:", error); alert("Nem sikerült csatlakozni a szerverhez."); - }); - } - - const ToolTip = ({children, text}) => { - return( -