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, hasOwn } from "../utils";
import Aboutyou from "./aboutyou";
import resolveCrmDisplayValue from "../../lib/i18n/crmDisplay/resolveCrmDisplayValue";
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 (
<>
>
);
};
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(",");
var showIfHasParentShowValue = parentField != false;
(showIfHasParentShowValue == parentField) != false &&
showIfHasParentShowValue;
return (
<>
{parentField != false ? (
showIfHasParentShowValue && (
)
) : (
)}
>
);
}
let CreateCase = (props) => {
// useEffect(() => {
// window.scrollTo(0, 0);
// });
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const isWelsh = router.locale == "cy";
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;
const selectedAppealType = values.appealTypes;
const confirmHASCAS = values.confirmHASCAS;
formStep == 0 && setFormStep(1);
whichAppealType =
selectedAppealType == "846040004" && confirmHASCAS == "true"
? "846040004"
: selectedAppealType == "846040004" && confirmHASCAS == "false"
? "846040000"
: selectedAppealType;
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
// )
const selectedLpaName = props.LPAData.LPAData.value.filter((obj) => {
return obj.accountid === values.lpaTypes;
})[0].name;
createNewCaseBlob(
appTypeCollection.appealTypeID,
values.lpaTypes,
props.loggedInUser,
values,
props.containerID,
selectedLpaName
)
.then((data) => {
router.replace(
"/newappeal" +
"/" +
appTypeCollection.UrlName +
"?lpa=" +
values.lpaTypes +
"&apt=" +
whichAppealType +
"&id=" +
data.ticketnumber
);
return data;
})
.catch((error) => {
consoleLogger(error);
});
};
const yesNo = isWelsh ? ["Ydw", "Na"] : ["Yes", "No"];
var parentField = "appealTypes",
formProps = props.whichForm,
form = "caseForm",
parentFieldShowOnValue = "846040004";
const values = formProps[form]?.values;
const showIfHasParentShowValue =
parentField !== false &&
values &&
hasOwn(values, parentField) &&
parentFieldShowOnValue.includes(values[parentField].toString());
(showIfHasParentShowValue == parentField) != false &&
showIfHasParentShowValue;
return (
<>
{formStep == 0 ? (
) : (
)}
>
);
};
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)
);