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;