import { Box, Button, Paper, TextField } from '@mui/material'; import { useFormik } from 'formik'; import { useRouter } from 'next/router'; import PropType from 'prop-types'; import { useState } from 'react'; import { shippingDetailsSchema } from '../../../schemas/shippingDetailsSchema'; import { useUserData } from '../../../store/user-context'; import ErrorMessageComponent from '../../mui/ErrorMessageComponent'; const ShippingDetailsForm = ({ backBtn = false, isCheckout = false, submitHandler, enableBtn = true, }) => { const [error] = useState({ hasError: false, errorMessage: '' }); const { userStorage } = useUserData(); const router = useRouter(); const formikSubmitHandler = async (values) => { submitHandler(values); }; const formik = useFormik({ initialValues: { fullName: userStorage ? userStorage.fullName : '', address: userStorage ? userStorage.address : '', address2: userStorage ? userStorage.address2 : '', city: userStorage ? userStorage.city : '', country: userStorage ? userStorage.country : '', postcode: userStorage ? userStorage.postcode : '', }, validationSchema: shippingDetailsSchema, onSubmit: formikSubmitHandler, validateOnBlur: true, enableReinitialize: true, }); return ( {error.hasError && } {backBtn && ( )} ); }; ShippingDetailsForm.propTypes = { backBtn: PropType.Boolean, isCheckout: PropType.Boolean, submitHandler: PropType.func, }; export default ShippingDetailsForm;