import { JSONPath as jsonpath } from "jsonpath-plus"; import _ from "lodash"; import useTranslation from "next-translate/useTranslation"; import { useRouter } from "next/router"; import { useDropzone } from "react-dropzone"; import { connect } from "react-redux"; import { Field, change, formValueSelector, reduxForm } from "redux-form"; import { useState, useEffect } from "react"; import { FileUploadField, RenderMultiline, RenderPickList, } from "./representationElements"; import RepresentationProgress_enforcement from "./representationProgress/representationProgress_enforcement"; import RepresentationProgress_s78 from "./representationProgress/representationProgress_s78"; import Enforcement_Questionnaire from "./representationQuestionnaires/representationLPAQuestionnaire_enforcement"; import S78_Questionnaire from "./representationQuestionnaires/representationLPAQuestionnaire_s78"; let RepLPA = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { onSubmit, handleSubmit, formObj, appellantApplicantRepresentationArr, setRepresentationCapacity, setRepresentationSubmit, currentView, procedureTypeValue, onBehalfOfLPA, setShowQuestionnaireSection, showQuestionnaireSection, questionnaireCount, setQuestionnaireCount, setRepFileName, updateRepresentation, setSavingStatus, savingStatus, } = props; const { acceptedFiles, getRootProps, getInputProps } = useDropzone(); const files = acceptedFiles.map((file) => (
  • {file.path} - {file.size} bytes
  • )); const required = (value) => (value ? undefined : "Required"); const whichQuestionnaire = () => { { switch (currentView.caseReference.appealType) { case 846040000: case 846040001: case 846040006: case 846040025: case 846040004: case 846040018: case 846040003: case 846040009: case 846040008: case 846040017: return ( ); break; case 846040005: case 846040006: case 846040007: return ( ); break; default: return <>; break; } } }; const whichProgress = () => { { switch (currentView.caseReference.appealType) { case 846040000: case 846040001: case 846040006: case 846040025: case 846040004: case 846040018: case 846040003: case 846040009: case 846040008: case 846040017: return ( ); break; case 846040005: case 846040006: case 846040007: return ( ); break; default: return <>; break; } } }; let setCaseDetailsObj = router.query.hasOwnProperty("state") ? router.query.state == "edit" ? props.props.myRepresentations.myRepresentations : props.props.searchResultsObj.searchDetailsObj : props.props.searchResultsObj.searchDetailsObj; var detailsObj = {}; detailsObj = jsonpath( '$..[?(@.pinswg_name=="' + currentView.caseReference.currentReference + '")]', setCaseDetailsObj ); let setCaseResultssObj = router.query.hasOwnProperty("state") ? router.query.state == "edit" ? props.props.myRepresentations.myRepresentations : props.props.searchResultsObj.searchResultsObj : props.props.searchResultsObj.searchResultsObj; detailsObj = detailsObj[0]; var resultsObj = {}; resultsObj = jsonpath( '$..[?(@.pinswg_name=="' + currentView.caseReference.currentReference + '")]', setCaseResultssObj ); resultsObj = resultsObj[0]; props.formObj.hasOwnProperty("representationForm") && props.formObj["representationForm"].hasOwnProperty("values") && props.formObj["representationForm"].values.hasOwnProperty( "representationCapacity" ) && props.formObj["representationForm"].values.hasOwnProperty( "representationType" ) && setRepFileName(props.formObj["representationForm"].values); let filesListObj = props.formObj.hasOwnProperty("representationForm") && props.formObj["representationForm"].hasOwnProperty("values") && props.formObj["representationForm"].values.hasOwnProperty("filesList") ? props.formObj["representationForm"].values.filesList : {}; return ( <>
    {!_.has( formObj["representationForm"], ["values", "representationType"] || typeof props.representationType != "undefined" ) ? ( <> ) : ( )}
    {(_.has(formObj["representationForm"], [ "values", "representationType", ]) || typeof props.representationType != "undefined") && (props.representationType != "Questionnaire" && props.representationType != "Select..." ? ( <>

    {t("myrepresentations:enter-comment-label")}

    {t( "myrepresentations:comments-set-out-label" )} :
    {" "}
    {console.log( "--------", props.formObj.hasOwnProperty( "representationForm" ) && props.formObj[ "representationForm" ].hasOwnProperty("values") && props.formObj[ "representationForm" ].values.hasOwnProperty( "filesList" ) ? props.props.props.form[ "representationForm" ].values.filesList : "" )} {/* {props.formObj.hasOwnProperty( "representationForm" ) && props.formObj[ "representationForm" ].hasOwnProperty("values") && props.formObj[ "representationForm" ].values.hasOwnProperty( "filesList" ) && ( */} {/* // )} */}
    ) : ( whichQuestionnaire() ))}
    {" "}
    {(typeof props.representationType != "undefined" || _.has(formObj, "values", "representationType")) && props.representationType == "Questionnaire" && ( <> {showQuestionnaireSection < questionnaireCount && ( // { // setShowQuestionnaireSection( // showQuestionnaireSection + 1 // ); // }} // className="govuk-button" // > // Next section // )} {showQuestionnaireSection == questionnaireCount && ( )} {showQuestionnaireSection > 1 && ( { // window.scrollTo({ // top: 0, // behavior: "smooth", // }); setRepFileName( props.formObj[ "representationForm" ].values ), setShowQuestionnaireSection( showQuestionnaireSection - 1 ); }} className="govuk-link" > Back )} {savingStatus ? ( {router.locale == "cy" ? "Nôl data" : "Saving data"} { ) : ( )} )}{" "} {(typeof props.representationType != "undefined" || _.has(formObj, "values", "representationType")) && props.representationType != "Questionnaire" && ( <> {/* {router.query.state != "edit" && ( { //setRepresentationCapacity(); props.updateField( "representationForm", "representationType", "" ); }} className="govuk-link" > {t("common:back-link")}www )} */} {savingStatus ? ( {router.locale == "cy" ? "Nôl data" : "Saving data"} { ) : ( )} )}
    ); }; const selector = formValueSelector("representationForm"); // <-- same as form name RepLPA = connect((state) => { const representationType = selector(state, "representationType"); const procedureType = selector(state, "procedureType"); return { procedureType, representationType, }; })(RepLPA); const mapDispatchToProps = (dispatch) => ({ updateField: (form, field, newValue) => dispatch(change(form, field, newValue)), }); const mapStateToProps = (state, props) => { let initialValuesTemp = Object.assign( state.currentView.caseReference.hasOwnProperty("repDetails") ? state.currentView.caseReference.repDetails : state.currentView.caseReference, { "representationCapacity": "lpa", "onBehalfOfLPA": props.props.props.accountDetails.accountDetails[ "pinswg_contact_associatedlpa@OData.Community.Display.V1.FormattedValue" ], "firstname": props.props.props.accountDetails.accountDetails.firstname, "lastname": props.props.props.accountDetails.accountDetails.lastname, } ); return { search: state.search, searchResultsObj: state.searchResultsObj, formData: state.formData, appealType: state.appealType, currentView: state.currentView, myRepresentations: state.myRepresentations, watchedCases: state.watchedCases, initialValues: initialValuesTemp, }; }; export default connect( mapStateToProps, mapDispatchToProps )( reduxForm({ form: "representationForm", enableReinitialize: true, destroyOnUnmount: false, })(RepLPA) );