import { JSONPath as jsonpath } from "jsonpath-plus"; import useTranslation from "next-translate/useTranslation"; import { useRouter } from "next/router"; import { useState } from "react"; import { connect } from "react-redux"; import { Field, formValueSelector, reduxForm } from "redux-form"; import { consoleLogger } from "../../actions/core/logger"; import { createNewCaseBlob } from "../../actions/services/caseService"; import transLookup from "../../data/lookuptranslations.json"; import { setAppealLPA, setAppealTypeID, setAppealTypeTitle } from "../../store/appealType/action"; import { getFormCollectionByID } from "../utils"; import Aboutyou from "./aboutyou"; const RenderLPAList = ({ name, input, optionsObj, meta: { touched, error }, label, errorMsg }) => { let { t } = useTranslation(); const router = useRouter(); return ( <>
{" "} {touched && error && ( Error:{" "} {errorMsg} )}
); }; const RenderAppealTypeList = ({ name, input, optionsObj, meta: { touched, error }, label, errorMsg }) => { let { t } = useTranslation(); const router = useRouter(); return ( <>
{touched && error && ( Error:{" "} {errorMsg} )}
); }; const RenderRadio = ({ datafieldname, name, label, id, errorMsg, options, input: { onChange, value }, meta: { touched, error }, ...custom }) => { let { t } = useTranslation(); const required = (value) => (value ? undefined : "Required"); return ( <>
{touched && error && ( Error: {" "} {errorMsg} )}
{" "} {custom.hint != undefined && (
{custom.hint}
)} {Object.keys(options).map((key, index) => (
{ let docListObj = custom.documentList; if ( custom.requiredDocumentValue == "Yes" ) { e.target.value != "846040000" ? (docListObj = Object.assign( docListObj, { ["documentCheckList_" + id]: custom.requiredDocumentLabel } )) : delete docListObj[ "documentCheckList_" + id ]; custom.setDocumentsList(docListObj); } }} />
))}
); }; function Radiofield(props) { const { name, label, datafieldname, parentField, form, formProps, parentFieldShowOnValue, validation } = props; let { t } = useTranslation(); const router = useRouter(); const required = (value) => (value ? undefined : "Required"); //console.log(props.options); const fieldOptions = props.options .slice(1, props.options.length - 1) .split(","); //parentFieldShowOnValue var showIfHasParentShowValue = parentField != false; //debugger; // parentField != false && // !_.isEmpty(formProps[form]) && // _.has(formProps[form].values, parentField) && // parentFieldShowOnValue.indexOf( // formProps[form].values[parentField].toString() // ) > -1; (showIfHasParentShowValue == parentField) != false && showIfHasParentShowValue; //console.log( // datafieldname, // showIfHasParentShowValue, // formProps[form].values[parentField] // ); return ( <> {parentField != false ? ( showIfHasParentShowValue && ( ) ) : ( )} ); } let CreateCase = (props) => { // useEffect(() => { // window.scrollTo(0, 0); // }); let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { LPAData, onSubmit, handleSubmit, formData } = props; const appealOptionsObj = props?.appealType?.appealTypeOptions?.value?.length > 0 ? props.appealType.appealTypeOptions.value : [{}]; const lpaOptionsObj = props?.LPAData?.LPAData?.value?.length > 0 ? props.LPAData.LPAData.value : [{}]; const required = (value) => (value ? undefined : "Required"); const [formStep, setFormStep] = useState(0); const onHandleSubmit = (values) => { event.preventDefault(); var appTypeCollection = values.appealTypes; formStep == 0 && setFormStep(1); whichAppealType = values.appealTypes == "846040004" && values.confirmHASCAS == "true" ? "846040004" : values.appealTypes == "846040004" && values.confirmHASCAS == "false" ? "846040000" : values.appealTypes; var whichAppealType = whichAppealType; appTypeCollection = getFormCollectionByID(whichAppealType); //console.log( // "/newappeal" + // "/" + // appTypeCollection.UrlName + // "?lpa=" + // values.lpaTypes + // "&apt=" + // whichAppealType + // "&id=" //+ // // data.incidentid // ); delete values.confirmHASCAS; // createNewCase( // appTypeCollection.appealTypeID, // values.lpaTypes, // props.loggedInUser, // values, // props.containerID // ) createNewCaseBlob( appTypeCollection.appealTypeID, values.lpaTypes, props.loggedInUser, values, props.containerID, props.LPAData.LPAData.value.filter((obj) => { return obj.accountid === values.lpaTypes; })[0].name ) .then((data) => { router.replace( "/newappeal" + "/" + appTypeCollection.UrlName + "?lpa=" + values.lpaTypes + "&apt=" + whichAppealType + "&id=" + data.ticketnumber ); return data; }) .catch((error) => { consoleLogger(error); }); // router.replace( // "/newappeal" + // "/" + // appTypeCollection.UrlName + // "?lpa=" + // values.lpaTypes + // "&apt=" + // values.appealTypes.split(",")[0], // null, // { // shallow: true, // } // ); }; const yesNo = router.locale == "cy" ? ["Ydw", "Na"] : ["Yes", "No"]; var parentField = "appealTypes", formProps = props.whichForm, form = "caseForm", parentFieldShowOnValue = "846040004"; var showIfHasParentShowValue = parentField != false && !_.isEmpty(formProps[form]) && _.has(formProps[form].values, parentField) && parentFieldShowOnValue.indexOf( formProps[form].values[parentField].toString() ) > -1; (showIfHasParentShowValue == parentField) != false && showIfHasParentShowValue; return ( <> {formStep == 0 ? ( ) : (
Warning {t("newappeal:s78-appeals-only-label")}
  • {t("newappeal:s78-appeals-only-bullet-one")}
  • {t("newappeal:s78-appeals-only-bullet-two")}
{t("newappeal:s78-appeals-only-label-a")}
{showIfHasParentShowValue && ( )} )} ); }; const mapStateToProps = (state) => { return { search: state.search, searchResultsObj: state.searchResultsObj, formData: state.formData, appealType: state.appealType //form: state.form, }; }; const mapDispatchToProps = (dispatch) => { return { onChangeSelectAppealType: (event) => { dispatch( setAppealTypeTitle( event.target.options[event.target.selectedIndex].text ) ); dispatch(setAppealTypeID(event.target.value)); }, onChangeSelectLPA: (lpaId) => { dispatch(setAppealLPA(lpaId)); } }; }; const selector = formValueSelector("caseForm"); // <-- same as form name export default connect( mapStateToProps, mapDispatchToProps )( reduxForm({ form: "caseForm", destroyOnUnmount: false })(CreateCase) );