import React, { useCallback, useState, useEffect } from "react"; import { useLocalDb, useRemoteDb } from "../DbContext"; import "./InputPage.css"; import { Formik, FastField, Form } from "formik"; import InputNumberField from "../components/InputNumberField.jsx"; import { TextField, Button, Grid, FormRow, Divider, Checkbox, Radio, FormControlLabel, FormControl, FormLabel, RadioGroup, IconButton, InputAdornment, Box } from "@mui/material"; import { useProcessedDataBucket } from "../ProcessedDataBucketContext"; import { getProcessedDataBucket, updateProcessedDataBucket } from "../ProcessedDataBucket"; import { useLocation } from "react-router-dom"; const InputPage = () => { let panel_sx = { display: "flex", flexDirection: { xs: "column", sm: "row" }, alignItems: { xs: "center", sm: "center" }, justifyContent: { xs: "flex-start", sm: "center" }, bgcolor: "background.paper", p: 2, m: 1, gap: 2, maxWidth: "fit-content", borderRadius: "10px", boxShadow: 7, }; let { localdb, setLocaldb } = useLocalDb(); let { remotedb, setRemotedb } = useRemoteDb(); const { processedDataBucket, setProcessedDataBucket } = useProcessedDataBucket(); const location = useLocation(); let id = ""; if (location.state != null) { id = location.state.id; } console.log(id); const [oldDocExists, setOldDocExists] = useState(false); const [oldDoc, setOldDoc] = useState(null); const onSubmit = useCallback( // (old_doc, new_doc) => { (values, { setSubmitting, resetForm }) => { if (oldDocExists && oldDoc.$id == values.$id) { localdb .saveChanges(oldDoc, values) .then((result) => { alert("Changes Saved Successfully!"); setSubmitting(false); }) .then(localdb.sync(remotedb)) .catch(console.log); } else { localdb .save(values) .then((result) => { alert("Saved Successfully!"); setSubmitting(false); }) .then(localdb.sync(remotedb)) .catch(console.log); } }, [localdb, oldDoc] ); useEffect(() => { localdb.all().then((res) => { let old_doc = { $id: id, // type: "match", fouls: "0", fouls_tech: "0", flipped: false, red_cards: "0", yellow_cards: "0", disabled: false, taxi_auto: false, upper_hub_auto: "0", lower_hub_auto: "0", upper_hub_teleop: "0", lower_hub_teleop: "0", climb_level: "0", alliance: "", defence: "0", disabled: false, }; if (id != null && typeof res[id] !== "undefined") { old_doc = res[id]; setOldDocExists(true); } setOldDoc(old_doc); }); }, [setOldDoc]); // const onSubmit = useCallback( // (values, { setSubmitting, resetForm }) => { // // setTimeout(() => { // localdb // .put({ // // _id: new Date().toISOString(), // _id: "match_" + values.match_number + "_team_" + values.team_number, // _rev: new Date().toISOString(), // type: "match", // ...values, // }) // .then((result) => { // alert("Input Saved Successfully!"); // console.log(result); // console.log(localdb); // localdb.replicate.to(remotedb, { // retry: true, // }); // }) // .catch((err) => { // console.log("Failed To Save Input!"); // alert(err); // }); // // alert(JSON.stringify(values, null, 2)); // resetForm(); //Hah tobad // setSubmitting(false); // // }, 400); // updateProcessedDataBucket(localdb, setProcessedDataBucket); // }, // [localdb, remotedb, setProcessedDataBucket, updateProcessedDataBucket] // ); if (oldDoc == null) return null; console.log(oldDoc); return (

{({ values, setValues, errors, touched, handleChange, handleBlur, handleSubmit, isSubmitting }) => (
} label="Auto Taxi" /> Climbing } label="None" /> } label="Low" /> } label="Mid" /> } label="High" /> } label="Traversal" /> Defense } label="None" /> } label="Poor" /> } label="Good" /> } label="Exceptional" /> } label="Disabled" /> {/*

What they _______

*/}
)}
); }; export default InputPage;