import { JSONPath as jsonpath } from "jsonpath-plus"; import useTranslation from "next-translate/useTranslation"; import { useRouter } from "next/router"; import { connect } from "react-redux"; import { Field, formValueSelector, reduxForm } from "redux-form"; import transLookup from "../../data/lookuptranslations.json"; const required = (errorMsg) => (value) => value || typeof value === "number" ? undefined : errorMsg; export const minLength = (errorMsg) => (value) => value && value.length < 4 ? errorMsg //`Must be ${min} characters or more` : undefined; export const leastOneValue = (errorMsg) => {}; const RenderTextfield = ({ id, className, rows, datafieldname, name, label, input, hint1, hint2, hint3, meta: { touched, error }, ...custom }) => { let { t } = useTranslation(); return ( <>
{touched && error && ( Error: {" "} {error} )}
); }; const RenderCaseStatusList = ({ name, id, input, optionsObj, meta: { touched, error }, label, errormsg, }) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; return ( <>
{touched && error && ( Error:{" "} {errormsg} )}
); }; let AdvancedSearch = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { LPAData, onSubmit, handleSubmit, myportal, error, pristine, reset, submitting, } = props; const appealOptionsObj = props?.appealType?.appealTypeOptions?.value?.length > 0 ? props.appealType.appealTypeOptions.value : [{}]; const projecttypeOptionsObj = props?.appealType?.projectTypeOptions?.value?.length > 0 ? props.appealType.projectTypeOptions.value : [{}]; const lpaOptionsObj = props?.LPAData?.LPAData?.value?.length > 0 ? props.LPAData.LPAData.value : [{}]; const RenderLPAList = ({ name, id, input, optionsObj, meta: { touched, error }, label, errormsg, }) => { return ( <>
{" "} {touched && error && ( Error: {" "} {errormsg} )}
); }; const RenderAppealTypeList = ({ name, id, input, optionsObj, meta: { touched, error }, label, errormsg, }) => { return ( <>
{touched && error && ( Error: {" "} {errormsg} )}
); }; const RenderProjectTypeList = ({ name, id, input, optionsObj, meta: { touched, error }, label, errormsg, }) => { return ( <>
{touched && error && ( Error: {" "} {errormsg} )}
); }; //const [showSpinnerState, setShowSpinnerState] = useState(false); const selectAppealTypesValue = props.formValues?.appealTypes || ""; // let spinnerState = () => { // showSpinnerState == true // ? setShowSpinnerState(false) // : setShowSpinnerState(true); // }; const onHandleSubmit = (values) => { event.preventDefault(); //spinnerState(); var searchString = ""; searchString += values.caseRef != null ? "q=" + values.caseRef.trim() + "&" : ""; searchString += values.lpaTypes != null ? "lpa=" + values.lpaTypes + "&" : ""; searchString += values.appealTypes != null ? "apt=" + values.appealTypes.split(",")[0] + "&" : ""; searchString += values.statusCode != null ? "statuscode=" + values.projecttype + "&" : ""; searchString += values.projecttype != null ? "projecttype=" + values.projecttype.split(",")[0] + "&" : ""; searchString = "?" + searchString.slice(0, -1); //console.log(searchString); router.replace( router.locale == "cy" ? (myportal == true ? "/fymhorth" : "") + "/canlyniadauchwiliouwch" + searchString : (myportal == true ? "/myportal" : "") + "/advancedsearchresults" + searchString ); }; return ( <>

{t("search:search-title-label")}

{props.appealTypesValue?.split( "," )[0] === "846040002" && ( )} {/*

{t( "search:sitelocation-legend" )}

*/}
); }; const mapStateToProps = (state) => { return { currentView: state.currentView, search: state.search, searchResultsObj: state.searchResultsObj, formData: state.formData, appealType: state.appealType, LPAData: state.LPAData, //form: state.form, myCases: state.myCases, watchedCases: state.watchedCases, myRepresentations: state.myRepresentations, awaitingSubmission: state.awaitingSubmission, }; }; const mapDispatchToProps = (dispatch) => { return {}; }; const selector = formValueSelector("advancedSearchForm"); // <-- same as form name AdvancedSearch = connect((state) => { const appealTypesValue = selector(state, "appealTypes"); return { appealTypesValue, }; })(AdvancedSearch); export default connect( mapStateToProps, mapDispatchToProps )( reduxForm({ form: "advancedSearchForm", destroyOnUnmount: false, })(AdvancedSearch) );