import _ from "lodash"; import Link from "next/link"; import React, { useState } from "react"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import { Field, reduxForm, formValueSelector, getFormSubmitErrors, } from "redux-form"; import { useDispatch, useSelector, shallowEqual, connect } from "react-redux"; import BuildCheckPersonalDetails from "./personaldetailsCheck"; import PersonalDetailsComplete from "./personaldetailsComplete"; const RenderTextfield = ({ id, className, rows, datafieldname, name, label, input, type, errorMsg, meta: { touched, error }, ...custom }) => { return ( <>
{touched && error && ( Error:{" "} {touched && ((error && ( {errorMsg ? errorMsg : error} )) || (warning && {warning}))} )}
); }; const PersonalDetails = (props) => { const { handleSubmit, value, setPersonalDetailsComplete, setAccountUpdatedComplete, } = props; let { t, lang } = useTranslation(); const router = useRouter(); const { locale } = router; let errorsobj = {}; const required = (value) => (value ? undefined : "Is required"); const email = (value) => value && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value) ? "Invalid email address" : undefined; const phoneNumber = (value) => value && !/^(?:(?:\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?(?:\(?0\)?[\s-]?)?)|(?:\(?0))(?:(?:\d{5}\)?[\s-]?\d{4,5})|(?:\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3}))|(?:\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4})|(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}))(?:[\s-]?(?:x|ext\.?|\#)\d{3,4})?$/i.test( value ) ? "Invalid phone number" : undefined; const [hasErrors, setHasErrors] = useState(""); const onHandleSubmit = (values) => { setPersonalDetailsComplete(true); }; return ( <> {props.accountUpdatedComplete == false ? ( props.personalDetailsComplete == false ? (

About you

What is your address?

) : ( <> ) ) : ( )} ); }; const mapStateToProps = (state) => { return { search: state.search, searchResultsObj: state.searchResultsObj, formData: state.formData, appealType: state.appealType, accountDetails: state.accountDetails, //form: state.form, }; }; const mapDispatchToProps = (dispatch) => { return { setCurrentSection: (currentSection) => { dispatch(setCurrentSection(currentSection)); }, }; }; const selector = formValueSelector("personalDetailsForm"); // <-- same as form name export default connect( mapStateToProps, mapDispatchToProps //, (state) => ({ // initialValues: state.accountDetails.accountDetails.data, // // search: state.search, // searchResultsObj: state.searchResultsObj, // formData: state.formData, // appealType: state.appealType, // accountDetails: state.accountDetails, // form: state.form, // pull initial values from account reducer //}) )( reduxForm({ form: "personalDetailsForm", enableReinitialize: true, // this is needed!! destroyOnUnmount: false, })(PersonalDetails) );