import { useState } from "react"; import InputCom from "../../Helpers/Inputs/InputCom"; import LoadingSpinner from "../../Spinners/LoadingSpinner"; import usersService from "../../../services/UsersService"; import { useNavigate } from "react-router-dom"; import { Formik, Form } 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, action: 22020 }; 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 (