{"version":3,"sources":["webpack:///./src/pages/index.js"],"names":["HandleFormSubmit","_ref3","formRef","isSubmitting","React","useEffect","current","setSubmitting","validateForm","then","errors","Object","entries","length","console","log","missingInfoAlert","Index","_ref","location","uiData","useSelector","state","shallowEqual","claimData","dropdownData","bankList","dispatch","useDispatch","useRef","Gender","incidentList","maxPageNumber","GetDataPromise","API","Promise","all","values","batch","data","sourceSystem","updateValidFormData","getBankListData","updateUiData","GetGenderTableNamePromise","params","name","Constants","promiseValues","updateDropdown","TableName","CodeTables","catch","error","navigateToError","navigate","claimUploadListModel","deleteMultipleFileArray","forEach","UploadedItem","UploadedKey","deleteFileInfo","fName","fileName","folderName","push","response","CommonFunction","href","formikSchema","Yup","shape","claimantName","required","ErrorMessage","matches","Regex","claimantNricNumber","policyNumber","claimantMobile","claimantEmail","email","createElement","Formik","initialValues","assign","enableReinitialize","validationSchema","validateOnMount","innerRef","onSubmit","actions","getRequiredDocuments","sessionIdAndFolderName","draftFolderPrefix","dd","Date","getYear","getMonth","getDate","getHours","getMinutes","getSeconds","generateFolderName","getPolicyInfoRequestModel","PolicyNumber","PolicyHolderName","getPolicyInfo","_ref2","handleSubmit","isValid","FormikForm","Row","className","claimFormTitle","Col","xs","span","offset","md","Field","textDesc","maxLength","component","FormTextbox","toUpperCase","FormFieldDisableAutoComplete","type"],"mappings":"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","file":"component---src-pages-index-js-05f5b05b98a5b73a631b.js","sourcesContent":["import React, { useEffect, useState } from \"react\"\r\nimport { Row, Col } from \"react-bootstrap\"\r\nimport {\r\n Formik,\r\n Form as FormikForm,\r\n Field,\r\n //useFormikContext\r\n} from \"formik\"\r\nimport * as Yup from \"yup\"\r\nimport { useDispatch, useSelector, shallowEqual, batch } from \"react-redux\"\r\nimport {\r\n updateUiData,\r\n updateValidFormData,\r\n getRequiredDocuments,\r\n getPolicyInfo,\r\n getBankListData,\r\n updateDropdown,\r\n} from \"../redux/actions\"\r\nimport {\r\n navigateToClaimantDetail,\r\n backMaxPage,\r\n navigateToError,\r\n} from \"../common/function\"\r\nimport FormDropdownArray from \"../components/shared/formDropdownArray\"\r\nimport FormTextbox from \"../components/shared/formTextbox\"\r\nimport FormFieldDisableAutoComplete from \"../components/shared/formFieldDisableAutoComplete\"\r\nimport FormAmountTextBox from \"../components/shared/formAmountTextBox\"\r\nimport FormDateInputTextbox from \"../components/shared/formDateInputTextbox\"\r\nimport FormTimeTextBox from \"../components/shared/formTimeTextBox\"\r\nimport FormDatePickerTextBox from \"../components/shared/formDatePickerTextBox\"\r\n\r\n// import * as Regex from \"../common/regex\"\r\nimport * as ErrorMessage from \"../common/errorMessage\"\r\nimport * as Constants from \"../common/constants\"\r\nimport {\r\n missingInfoAlert,\r\n commonErrorAlert,\r\n} from \"../services/sweetalertService\"\r\nimport * as API from \"../services/httpService\"\r\nimport { navigate } from \"gatsby\"\r\nimport * as CommonFunction from \"../common/function\"\r\nimport * as Regex from \"../common/regex\"\r\nimport { isValid, parse } from \"date-fns\"\r\n\r\nconst Index = ({ location }) => {\r\n const uiData = useSelector(state => state.uiData, shallowEqual)\r\n const claimData = useSelector(state => state.claimData, shallowEqual)\r\n const bankList = useSelector(state => state.uiData.bankList, shallowEqual)\r\n const dropdownData = useSelector(state => state.dropdownData, shallowEqual)\r\n const dispatch = useDispatch()\r\n const formRef = React.useRef()\r\n const incidentList = useSelector(\r\n state => state.uiData.incidentList,\r\n shallowEqual\r\n )\r\n const { Gender } = dropdownData\r\n\r\n const convertMsToDays = ms => {\r\n const msInOneSecond = 1000\r\n const secondsInOneMinute = 60\r\n const minutesInOneHour = 60\r\n const hoursInOneDay = 24\r\n\r\n const minutesInOneDay = hoursInOneDay * minutesInOneHour\r\n const secondsInOneDay = secondsInOneMinute * minutesInOneDay\r\n const msInOneDay = msInOneSecond * secondsInOneDay\r\n\r\n return Math.ceil(ms / msInOneDay)\r\n }\r\n\r\n const getDaysBetweenDates = (dateOne, dateTwo) => {\r\n let differenceInMs = dateTwo.getTime() - dateOne.getTime()\r\n\r\n if (differenceInMs < 0) {\r\n differenceInMs = dateOne.getTime() - dateTwo.getTime()\r\n }\r\n return convertMsToDays(differenceInMs)\r\n }\r\n\r\n useEffect(() => {\r\n if (uiData.maxPageNumber === 1) {\r\n const GetDataPromise = API.apiPostRequest(\"/Claim/GetData\", null, null)\r\n\r\n Promise.all([GetDataPromise])\r\n .then(values => {\r\n batch(() => {\r\n //Check if not from iConnect\r\n // if (\r\n // process.env.NODE_ENV !== \"development\" &&\r\n // (!values[0].data.sourceSystem ||\r\n // values[0].data.sourceSystem.toLowerCase() != \"b2b\")\r\n // ) {\r\n // API.apiPostRequest(\"/Claim/GetIConnectURL\", null, null)\r\n // .then(values => {\r\n // //If can get iConnect URL auto redirect to iConnect\r\n // if (values.data) {\r\n // window.onbeforeunload = {}\r\n // window.location.href = values.data\r\n // } else {\r\n // //If cannot get iConnect URL show an alert\r\n // commonErrorAlert(\"Please make claim from iConnect Portal\")\r\n // dispatch(updateUiData(\"showLoading\", false))\r\n // }\r\n // })\r\n // .catch(error => {\r\n // navigate(\"errorOccurred\")\r\n // })\r\n // } else {\r\n //Process from iConnect\r\n if (values[0].data.sourceSystem) {\r\n dispatch(\r\n updateValidFormData(\r\n \"petClaimHeaderModel\",\r\n values[0].data\r\n )\r\n )\r\n }\r\n\r\n dispatch(getBankListData())\r\n // Changed to text field already\r\n // dispatch(getDropdownData(Constants.gigacoverDamageDescTableName))\r\n dispatch(updateUiData(\"showLoading\", false))\r\n\r\n const GetGenderTableNamePromise = API.apiPostRequest(\r\n \"/Claim/CommonDropDownList\",\r\n null,\r\n {\r\n params: {\r\n name: Constants.genderTableName,\r\n },\r\n }\r\n )\r\n \r\n Promise.all([GetGenderTableNamePromise])\r\n .then(promiseValues => {\r\n batch(() => {\r\n if (promiseValues[0].data) {\r\n dispatch(\r\n updateDropdown(\r\n promiseValues[0].data.TableName,\r\n promiseValues[0].data.CodeTables\r\n )\r\n )\r\n }\r\n })\r\n })\r\n .catch(error => {\r\n navigateToError()\r\n })\r\n //}\r\n })\r\n })\r\n .catch(error => {\r\n navigate(\"errorOccurred\")\r\n })\r\n } else {\r\n // Delete all uploaded file\r\n if (uiData.claimUploadListModel.length > 0) {\r\n let deleteMultipleFileArray = []\r\n\r\n uiData.claimUploadListModel.forEach((UploadedItem, UploadedKey) => {\r\n let deleteFileInfo = {}\r\n deleteFileInfo.fName = UploadedItem.fileName\r\n deleteFileInfo.folderName = uiData.folderName\r\n deleteMultipleFileArray.push(deleteFileInfo)\r\n })\r\n\r\n API.apiPostRequest(\r\n \"/Claim/ClaimDocsMultipleDelete\",\r\n deleteMultipleFileArray,\r\n null\r\n ).then(response => {\r\n dispatch(updateUiData(\"claimUploadListModel\", []))\r\n })\r\n }\r\n dispatch(updateUiData(\"showLoading\", false))\r\n }\r\n\r\n CommonFunction.updateUiCurrentPageNumber(dispatch, location.href)\r\n }, [])\r\n\r\n const formikSchema = Yup.object().shape({\r\n claimantName: Yup.string()\r\n .required(ErrorMessage.claimantName)\r\n .matches(Regex.namepattern, ErrorMessage.claimantName),\r\n claimantNricNumber: Yup.string()\r\n .required(ErrorMessage.claimantNricNumber)\r\n .matches(Regex.nricpattern, ErrorMessage.claimantNricNumber),\r\n policyNumber: Yup.string()\r\n .required(ErrorMessage.policyNumber)\r\n .matches(Regex.policyPattern, ErrorMessage.policyNumber),\r\n claimantMobile: Yup.string()\r\n .required(ErrorMessage.claimantMobile)\r\n .matches(Regex.mobilepattern, ErrorMessage.claimantMobile),\r\n claimantEmail: Yup.string().email(ErrorMessage.claimantEmail),\r\n })\r\n\r\n const generateFolderName = draftFolderPrefix => {\r\n let dd = new Date()\r\n let ss =\r\n \"\" +\r\n dd.getYear() +\r\n dd.getMonth() +\r\n dd.getDate() +\r\n dd.getHours() +\r\n dd.getMinutes() +\r\n dd.getSeconds()\r\n return draftFolderPrefix + ss\r\n }\r\n\r\n return (\r\n {\r\n dispatch(updateUiData(\"showLoading\", true))\r\n\r\n dispatch(updateValidFormData(\"petClaimHeaderModel\", values))\r\n dispatch(getRequiredDocuments(Constants.basicCoverageDetailId))\r\n\r\n const sessionIdAndFolderName = generateFolderName(\r\n uiData.draftFolderPrefix\r\n )\r\n dispatch(updateUiData(\"folderName\", sessionIdAndFolderName))\r\n\r\n const getPolicyInfoRequestModel = {\r\n PolicyNumber: values.policyNumber,\r\n PolicyHolderName: values.claimantName,\r\n }\r\n\r\n dispatch(getPolicyInfo(getPolicyInfoRequestModel))\r\n }}\r\n >\r\n {({ handleSubmit, isSubmitting, isValid, values, errors }) => (\r\n \r\n \r\n
\r\n {uiData.claimFormTitle} eClaim\r\n
\r\n
\r\n \r\n
\r\n
Policyholder Information
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Fake fields are a workaround for chrome autofill getting the wrong fields */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Next\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nconst HandleFormSubmit = ({ formRef, isSubmitting}) => {\r\n React.useEffect(() => {\r\n if (isSubmitting) {\r\n formRef.current.setSubmitting(true)\r\n formRef.current.validateForm().then(errors => {\r\n if (Object.entries(errors).length !== 0) {\r\n console.log(\"C\")\r\n missingInfoAlert()\r\n }\r\n })\r\n formRef.current.setSubmitting(false)\r\n }\r\n }, [isSubmitting])\r\n return null\r\n}\r\n\r\nexport default Index\r\n"],"sourceRoot":""}