import Link from "next/link"; import { useState } from "react"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import { reduxForm, formValueSelector, Field } from "redux-form"; import { useDispatch, useSelector, shallowEqual, connect } from "react-redux"; import jsonpath from "jsonpath"; import data from "../../data/collections.json"; import LoadingOverlay from "react-loading-overlay"; let AdvancedSearch = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { LPAData, onSubmit, handleSubmit } = props; const appealOptionsObj = _.isEmpty(props) ? [{}] : _.isEmpty(props.appealType) ? [{}] : _.isEmpty(props.appealType.appealTypeOptions) ? [{}] : _.isEmpty(props.appealType.appealTypeOptions.value) ? [{}] : props.appealType.appealTypeOptions.value; let lpaOptionsObj = _.isEmpty(props) ? [{}] : _.isEmpty(props.LPAData) ? [{}] : _.isEmpty(props.LPAData.LPAData) ? [{}] : _.isEmpty(props.LPAData.LPAData) ? [{}] : 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 required = (value) => (value ? undefined : "Required"); const getFormCollection = (formtype) => { formtype = "pinswg_" + (formtype.length > 39 ? formtype.slice(0, 39) : formtype); const collectionName = jsonpath.query( data, "$..[?(@.LogicalName=='" + formtype + "')].UrlName" ); //console.log(collectionName[0]); return collectionName[0]; }; const [showSpinnerState, setShowSpinnerState] = useState(false); let spinnerState = () => { showSpinnerState == true ? setShowSpinnerState(false) : setShowSpinnerState(true); }; const onHandleSubmit = (values) => { event.preventDefault(); spinnerState(); console.log(values); // var appTypeCollection = values.appealTypes.split(",")[1]; // appTypeCollection = getFormCollection( // appTypeCollection.length > 39 // ? appTypeCollection.slice(0, 39) // : appTypeCollection // ); var searchString = ""; searchString += values.caseRef != null ? "?q=" + values.caseRef : ""; searchString += values.lpaTypes != null ? (typeof values.caseRef == "undefined" ? "?" : "&") + "lpa=" + values.lpaTypes : ""; searchString += values.appealTypes != null ? (typeof values.caseRef == "undefined" && typeof values.lpaTypes == "undefined" ? "?" : "&") + ("apt=" + values.appealTypes.split(",")[0]) : ""; router.replace("/advancedsearchresults" + searchString, null, { shallow: true, }); }; return ( <>

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

{/*

{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 export default connect( mapStateToProps, mapDispatchToProps )( reduxForm({ form: "advancedSearchForm", destroyOnUnmount: false, })(AdvancedSearch) );