import { useRef, useState } from "react"; // use refs for reading value import classess from "./InputData.module.css"; import Card from "../ui/Card"; import { ToastContainer ,toast , Zoom , Bounce } from 'react-toastify' import 'react-toastify/dist/ReactToastify.css'; import Backdrop from '@mui/material/Backdrop'; import CircularProgress from '@mui/material/CircularProgress'; import Swal from 'sweetalert2' import withReactContent from 'sweetalert2-react-content' const MySwal = withReactContent(Swal) function InputData(props) { let datanya = props.data; // console.log(datanya); const usiaInputRef = useRef(); const beratInputRef = useRef(); const kelilingInputRef = useRef(); const ukuranBatangInputRef = useRef(); const jarakDuriInputRef = useRef(); const [loading, setLoading] = useState(false); async function submitHandler(event) { event.preventDefault(); // ini untuk prevent reload atau submit default const usia = usiaInputRef.current.value; const berat = beratInputRef.current.value; const keliling = kelilingInputRef.current.value; const ukuran_batang = ukuranBatangInputRef.current.value; const jarak_duri = jarakDuriInputRef.current.value; if(usia < datanya.detail_attribute.usia.min || usia > datanya.detail_attribute.usia.max-1){ toast.warning("Usia harus diantara "+datanya.detail_attribute.usia.min+" - "+`${datanya.detail_attribute.usia.max-1}`) //focus back to input id=usia usiaInputRef.current.focus(); }else if(berat < datanya.detail_attribute.berat.min || berat > datanya.detail_attribute.berat.max-50){ toast.warning("Berat harus diantara "+datanya.detail_attribute.berat.min+" - "+`${datanya.detail_attribute.berat.max-50}`) //focus back to input id=berat beratInputRef.current.focus(); }else if(keliling < datanya.detail_attribute.keliling.min || keliling > datanya.detail_attribute.keliling.max-1){ toast.warning("Keliling harus diantara "+datanya.detail_attribute.keliling.min+" - "+`${datanya.detail_attribute.keliling.max-1}`) //focus back to input id=keliling kelilingInputRef.current.focus(); }else if(ukuran_batang < datanya.detail_attribute.ukuran_batang.min || ukuran_batang > datanya.detail_attribute.ukuran_batang.max-0.5){ toast.warning("Ukuran batang harus diantara "+datanya.detail_attribute.ukuran_batang.min+" - "+`${datanya.detail_attribute.ukuran_batang.max-0.5}`) //focus back to input id=ukuran_batang ukuranBatangInputRef.current.focus(); }else if(jarak_duri < datanya.detail_attribute.jarak_duri.min || jarak_duri > datanya.detail_attribute.jarak_duri.max-0.5){ toast.warning("Jarak duri harus diantara "+datanya.detail_attribute.jarak_duri.min+" - "+`${datanya.detail_attribute.jarak_duri.max-0.5}`) //focus back to input id=jarak_duri jarakDuriInputRef.current.focus(); } else{ const datanya = { usia: usia, berat: berat, keliling: keliling, ukuran_batang: ukuran_batang, jarak_duri: jarak_duri, }; // console.log(datanya); let formdata = new FormData(); formdata.append("data", JSON.stringify(datanya)); setLoading(true); try { //fetch api post const response = await fetch("http://127.0.0.1:5000/", { method: "POST", body: formdata, }) const responseData = await response.json(); if(response.status === 200){ console.log(responseData); await MySwal.fire({ title: `${responseData.ket}`, html: Hasil yang diinput adalah {responseData.ket} , icon: 'success', showConfirmButton: false, }) }else{ // create swal with 2 button ok and load , if ok is click then console.log("ok") else if load is click then console.log("load") await MySwal.fire({ title: Gagal, html: Server Bermasalah , icon: 'error', showConfirmButton: true, showDenyButton: true, confirmButtonText: 'Reload Page', }).then(async (result) => { if (result.value) { window.location.reload(); } }) } setLoading(false); } catch (error) { console.log(error); setLoading(false); await MySwal.fire({ title: Gagal, html: Server Bermasalah , icon: 'error', showConfirmButton: true, showDenyButton: true, confirmButtonText: 'Reload Page', }).then(async (result) => { if (result.value) { window.location.reload(); } }) } // props.onAddMeetup(meetupData) } } // create function oninput only accept number and . function onInput(event) { const value = event.target.value; const regex = /^[0-9.]+$/; if (!regex.test(value)) { event.target.value = value.slice(0, -1); } } return (
); } export default InputData;