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 { useEffect, useState } from "react";
import transLookup from "../../data/lookuptranslations.json";
import { getCaseStatus } from "../../actions/services/caseDirectService";
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 (
<>
>
);
};
const RenderLPATextfield = ({
id,
className,
rows,
datafieldname,
name,
label,
input,
hint1,
hint2,
hint3,
meta: { touched, error },
...custom
}) => {
let { t } = useTranslation();
return (
<>
>
);
};
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 [caseStatusValues, setCaseStatusValues] = useState([]);
useEffect(() => {
const fetchCaseStatus = async () => {
try {
const response = await getCaseStatus();
setCaseStatusValues(
Array.isArray(response?.data)
? response.data
: response?.data?.value || response || []
);
} catch (error) {
console.error("Failed to fetch case statuses", error);
setCaseStatusValues([]);
}
};
fetchCaseStatus();
}, []);
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.lpaRef != null ? "lpaRef=" + values.lpaRef + "&" : "";
searchString +=
values.lpaTypes != null ? "lpa=" + values.lpaTypes + "&" : "";
searchString +=
values.appealTypes != null
? "apt=" + values.appealTypes.split(",")[0] + "&"
: "";
searchString +=
values.statusCode != null
? "statuscode=" + values.statusCode + "&"
: "";
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 (
<>
>
);
};
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)
);