import { useState } from "react"; import { useNavigate } from "react-router-dom"; import usersService from "../../../services/UsersService"; import InputCom from "../../Helpers/Inputs/InputCom"; import LoadingSpinner from "../../Spinners/LoadingSpinner"; import { Form, Formik } from "formik"; import * as Yup from "yup"; export default function FamilyProfile({ familyData, className }) { const validationSchema = Yup.object().shape({ firstname: Yup.string().required("Firstname is required"), lastname: Yup.string() // .min(3, "Minimum 3 characters") // .max(25, "Maximum 25 characters") .required("Lastname is required"), year: Yup.number() .required("Year is required") .min( new Date().getFullYear() - process.env.REACT_APP_FAMILY_MAXIMUM_AGE, `Age must be within ${process.env.REACT_APP_FAMILY_MINIMUM_AGE} to ${process.env.REACT_APP_FAMILY_MAXIMUM_AGE} years` ) .max( new Date().getFullYear() - process.env.REACT_APP_FAMILY_MINIMUM_AGE, `Age must be within ${process.env.REACT_APP_FAMILY_MINIMUM_AGE} to ${process.env.REACT_APP_FAMILY_MAXIMUM_AGE} years` ), month: Yup.number() .required("Month is required") .min(1, "Month is required"), }); const navigate = useNavigate(); const api = new usersService(); let [requestStatus, setRequestStatus] = useState({ loading: false, status: false, message: "", }); // let [updateDetails, setUpdateDetails] = useState({ // family_uid: familyData.uid, // firstname: familyData.firstname, // lastname: familyData.lastname, // year: familyData.year, // month: familyData.month, // action: 22020 // }) // initial values for formik let initialValues = { family_uid: familyData?.uid, firstname: familyData?.firstname, lastname: familyData?.lastname, year: familyData?.year, month: familyData?.month, enable_traking: familyData?.enable_traking, }; // const handleChange = ({ target: { name, value } }) => { // setUpdateDetails((prev) => ({ ...prev, [name]: value })); // }; const updateFamily = (values, helpers) => { setRequestStatus({ loading: true, status: false, message: "" }); // let {firstname, lastname, year, month} = updateDetails // if(!firstname || !lastname || year == 0 || month == 0) { // setRequestStatus({loading:false, status:false, message: 'Please fill all fields'}) // return setTimeout(()=>{ // setRequestStatus({loading:false, status:false, message: ''}) // }, 5000) // } api .getFamilyUpdate(values) .then((res) => { if (res.data.internal_return < 0) { return setRequestStatus({ loading: false, status: false, message: "Failed, try again!", }); } setRequestStatus({ loading: false, status: true, message: "Family account updated", }); setTimeout(() => { navigate("/acc-family", { replace: true }); }, 5000); }) .catch((error) => { setRequestStatus({ loading: false, status: false, message: "Unable to update, try again!", }); }) .finally(() => { setTimeout(() => { setRequestStatus({ loading: false, status: false, message: "" }); }, 5000); }); }; return (