{"version":3,"sources":["components/Layout.js","api/OneClickApi.js","components/Logo.js","components/OneClick.js","components/OneClickPurchase.js","components/OneClickOffer.js","components/OneClickCashOut.js","components/Error.js","components/Lost.js","App.js","registerServiceWorker.js","index.js"],"names":["Layout","this","props","children","Component","displayName","name","getCustomerData","id","a","fetch","submitCustomerLanded","method","headers","submitCustomerData","customer","body","JSON","stringify","Logo","href","class","OneClick","useParams","history","useHistory","useState","UhmIdHash","borrowerCellPhone","cellPhoneModified","channel","tcpaChecked","submitted","setCustomer","errors","setErrors","loading","setLoading","saving","setSaving","useEffect","CustomerLanded","oneClickApi","then","response","ok","json","Error","data","maskPhoneNumber","validateFormOnLoad","catch","push","validatePhone","validateForm","validateTcpaChecked","Object","keys","length","phone","test","phoneNumber","replace","isNaN","maskedPhoneNumber","substr","handleSubmit","event","preventDefault","errorResponse","handleErrors","handleChange","target","value","checked","TcpaChecked","Message","messageTitle","Fragment","Spinner","className","onSubmit","for","aria-label","placeholder","type","onFocus","onChange","onBlur","maxLength","src","alt","OneClickPurchase","OneClickOffer","OneClickCashOut","state","Lost","App","path","component","exact","isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","error","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","status","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.1aef99b1.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n","\r\nconst controllerName = \"/api/ZuhmClickRefi\";\r\n\r\nexport async function getCustomerData(id) {\r\n return await fetch(`${controllerName}/${id}`);\r\n}\r\n\r\nexport async function submitCustomerLanded(id) {\r\n return await fetch(`${controllerName}/${id}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n });\r\n}\r\n\r\nexport async function submitCustomerData(customer) {\r\n return await fetch(`${controllerName}`, {\r\n method: 'PATCH',\r\n headers: {\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(customer)\r\n });\r\n}\r\n\r\n ","import React from 'react';\r\n\r\nfunction Logo() {\r\n return
\r\n}\r\n\r\nexport default Logo;","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { Spinner } from 'reactstrap';\r\nimport * as oneClickApi from \"../api/OneClickApi\";\r\nimport Logo from './Logo';\r\n\r\nconst OneClick = () => {\r\n\r\n const phoneInputName = \"borrowerCellPhone\";\r\n const tcpaInputName = \"tcpaCheckbox\";\r\n const { id } = useParams();\r\n const history = useHistory();\r\n const [customer, setCustomer] = useState({\r\n UhmIdHash: '',\r\n borrowerCellPhone: '',\r\n cellPhoneModified: false,\r\n channel: '',\r\n tcpaChecked: false,\r\n submitted: false\r\n });\r\n const [errors, setErrors] = useState({})\r\n const [loading, setLoading] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n CustomerLanded(id);\r\n }, []);\r\n\r\n const CustomerLanded = (id) => {\r\n setLoading(true);\r\n oneClickApi.getCustomerData(id)\r\n .then(response => {\r\n setLoading(false);\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n throw new Error(\"Error returning customer\");\r\n }\r\n })\r\n .then(data => {\r\n data.borrowerCellPhone = maskPhoneNumber(data.borrowerCellPhone);\r\n setCustomer({ ...data });\r\n validateFormOnLoad(data);\r\n submitCustomerLanded(id);\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const submitCustomerLanded = (id) => {\r\n oneClickApi.submitCustomerLanded(id)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(\"Error posting customer landed\");\r\n }\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const validateFormOnLoad = (customer) => {\r\n const borrowerCellPhone = customer.borrowerCellPhone;\r\n\r\n if (!borrowerCellPhone) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const validateForm = () => {\r\n const { borrowerCellPhone, cellPhoneModified, tcpaChecked } = customer;\r\n if (cellPhoneModified) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n validateTcpaChecked(tcpaChecked, errors);\r\n setErrors({ ...errors });\r\n return Object.keys(errors).length === 0;\r\n }\r\n\r\n const validatePhone = (phone, errors) => {\r\n var phoneRegex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n if (!phoneRegex.test(phone)) {\r\n errors.phoneNumber = \"Please enter a valid phone number.\";\r\n } else {\r\n delete errors.phoneNumber\r\n }\r\n }\r\n\r\n const validateTcpaChecked = (tcpaChecked, errors) => {\r\n if (!tcpaChecked) {\r\n errors.tcpaChecked = \"Please check the box to accept the terms above.\";\r\n } else {\r\n delete errors.tcpaChecked\r\n }\r\n }\r\n\r\n const maskPhoneNumber = (phone) => {\r\n //Strip out masking characters...\r\n phone = phone?.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(phone) || phone.length > 10) {\r\n return;\r\n };\r\n\r\n //Apply phone number mask.\r\n let maskedPhoneNumber = \"\"\r\n\r\n if (phone.length <= 3) {\r\n maskedPhoneNumber = phone;\r\n }\r\n if (phone.length >= 4 && phone.length <= 6) {\r\n maskedPhoneNumber = phone.substr(0, 3) + \"-\" + phone.substr(3, 3);\r\n }\r\n if (phone.length >= 7) {\r\n maskedPhoneNumber += phone.substr(0, 3) + \"-\" + phone.substr(3, 3) + \"-\" + phone.substr(6);\r\n }\r\n\r\n return maskedPhoneNumber;\r\n }\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n if (!validateForm()) return;\r\n\r\n setSaving(true);\r\n var response = await oneClickApi.submitCustomerData(customer);\r\n setSaving(false);\r\n\r\n if (response.ok) {\r\n setCustomer({ ...customer, submitted: true });\r\n }\r\n else {\r\n const errorResponse = await response.json();\r\n handleErrors(errorResponse);\r\n };\r\n }\r\n\r\n const handleFocus = (event) => {\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n setCustomer({\r\n ...customer,\r\n [event.target.name]: \"\",\r\n cellPhoneModified: true\r\n });\r\n break;\r\n }\r\n }\r\n\r\n const handleChange = (event) => {\r\n var name = event.target.name;\r\n var value = event.target.value;\r\n\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n //Strip out masking characters...\r\n value = value.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(value) || value.length > 10) {\r\n return;\r\n };\r\n\r\n setCustomer({\r\n ...customer,\r\n [name]: maskPhoneNumber(value),\r\n cellPhoneModified: true\r\n });\r\n break;\r\n\r\n case tcpaInputName:\r\n setCustomer({\r\n ...customer,\r\n tcpaChecked: event.target.checked\r\n });\r\n validateTcpaChecked(event.target.checked, errors);\r\n break;\r\n }\r\n };\r\n\r\n const handleBlur = (event) => {\r\n const value = event.target.value;\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n validatePhone(value, errors);\r\n break;\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const handleErrors = (response) => {\r\n if (response.TcpaChecked) {\r\n setCustomer({ ...customer, tcpaChecked: false });\r\n validateTcpaChecked(false, errors);\r\n }\r\n\r\n setErrors({ ...errors });\r\n }\r\n\r\n const Message = ({ messageTitle }) => {\r\n return (\r\n \r\n
\r\n
{messageTitle}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* Form section...*/}\r\n {!customer.submitted && (\r\n \r\n

Great News!
You can rest easy knowing you’re about to save.1

\r\n

Please verify or enter your phone number below.

\r\n
\r\n \r\n \r\n
{errors.phoneNumber}
\r\n
\r\n \r\n \r\n
{errors.tcpaChecked}
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {/* Confirmation section... */}\r\n {customer.submitted && (\r\n \r\n
\r\n

Got it!
\r\n {customer.channel === \"Retail\" ?\r\n \"Your mortgage expert will be in touch.\" :\r\n \"One of our mortgage experts will be in touch.\"}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/* Consumer Direct contact section... */}\r\n {customer.channel !== \"Retail\" && (\r\n \r\n
Have questions?
\r\n Call us at 1-877-846-4968\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \"Union\r\n
\r\n 1 There is NO WARRANTY, ACTUAL OR IMPLIED, for the accuracy of this information. Statement is not a commitment to lend. Estimated savings are based on current interest rate payment savings over the life of the loan. Any actual savings can only be determined after qualification and at the time of refinancing.\r\n
\r\n

\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Loading message... */}\r\n {loading && }\r\n\r\n {/* Saving message... */}\r\n {saving && }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default OneClick;","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { Spinner } from 'reactstrap';\r\nimport * as oneClickApi from \"../api/OneClickApi\";\r\nimport Logo from './Logo';\r\n\r\nconst OneClickPurchase = () => {\r\n\r\n const phoneInputName = \"borrowerCellPhone\";\r\n const tcpaInputName = \"tcpaCheckbox\";\r\n const { id } = useParams();\r\n const history = useHistory();\r\n const [customer, setCustomer] = useState({\r\n UhmIdHash: '',\r\n borrowerCellPhone: '',\r\n cellPhoneModified: false,\r\n channel: '',\r\n tcpaChecked: false,\r\n submitted: false\r\n });\r\n const [errors, setErrors] = useState({})\r\n const [loading, setLoading] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n CustomerLanded(id);\r\n }, []);\r\n\r\n const CustomerLanded = (id) => {\r\n setLoading(true);\r\n oneClickApi.getCustomerData(id)\r\n .then(response => {\r\n setLoading(false);\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n throw new Error(\"Error returning customer\");\r\n }\r\n })\r\n .then(data => {\r\n data.borrowerCellPhone = maskPhoneNumber(data.borrowerCellPhone);\r\n setCustomer({ ...data });\r\n validateFormOnLoad(data);\r\n submitCustomerLanded(id);\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const submitCustomerLanded = (id) => {\r\n oneClickApi.submitCustomerLanded(id)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(\"Error posting customer landed\");\r\n }\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const validateFormOnLoad = (customer) => {\r\n const borrowerCellPhone = customer.borrowerCellPhone;\r\n\r\n if (!borrowerCellPhone) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const validateForm = () => {\r\n const { borrowerCellPhone, cellPhoneModified, tcpaChecked } = customer;\r\n if (cellPhoneModified) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n validateTcpaChecked(tcpaChecked, errors);\r\n setErrors({ ...errors });\r\n return Object.keys(errors).length === 0;\r\n }\r\n\r\n const validatePhone = (phone, errors) => {\r\n var phoneRegex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n if (!phoneRegex.test(phone)) {\r\n errors.phoneNumber = \"Please enter a valid phone number.\";\r\n } else {\r\n delete errors.phoneNumber\r\n }\r\n }\r\n\r\n const validateTcpaChecked = (tcpaChecked, errors) => {\r\n if (!tcpaChecked) {\r\n errors.tcpaChecked = \"Please check the box to accept the terms above.\";\r\n } else {\r\n delete errors.tcpaChecked\r\n }\r\n }\r\n\r\n const maskPhoneNumber = (phone) => {\r\n //Strip out masking characters...\r\n phone = phone?.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(phone) || phone.length > 10) {\r\n return;\r\n };\r\n\r\n //Apply phone number mask.\r\n let maskedPhoneNumber = \"\"\r\n\r\n if (phone.length <= 3) {\r\n maskedPhoneNumber = phone;\r\n }\r\n if (phone.length >= 4 && phone.length <= 6) {\r\n maskedPhoneNumber = phone.substr(0, 3) + \"-\" + phone.substr(3, 3);\r\n }\r\n if (phone.length >= 7) {\r\n maskedPhoneNumber += phone.substr(0, 3) + \"-\" + phone.substr(3, 3) + \"-\" + phone.substr(6);\r\n }\r\n\r\n return maskedPhoneNumber;\r\n }\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n if (!validateForm()) return;\r\n\r\n setSaving(true);\r\n var response = await oneClickApi.submitCustomerData(customer);\r\n setSaving(false);\r\n\r\n if (response.ok) {\r\n setCustomer({ ...customer, submitted: true });\r\n }\r\n else {\r\n const errorResponse = await response.json();\r\n handleErrors(errorResponse);\r\n };\r\n }\r\n\r\n const handleFocus = (event) => {\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n setCustomer({\r\n ...customer,\r\n [event.target.name]: \"\",\r\n cellPhoneModified: true\r\n });\r\n break;\r\n }\r\n }\r\n\r\n const handleChange = (event) => {\r\n var name = event.target.name;\r\n var value = event.target.value;\r\n\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n //Strip out masking characters...\r\n value = value.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(value) || value.length > 10) {\r\n return;\r\n };\r\n\r\n setCustomer({\r\n ...customer,\r\n [name]: maskPhoneNumber(value),\r\n cellPhoneModified: true\r\n });\r\n break;\r\n\r\n case tcpaInputName:\r\n setCustomer({\r\n ...customer,\r\n tcpaChecked: event.target.checked\r\n });\r\n validateTcpaChecked(event.target.checked, errors);\r\n break;\r\n }\r\n };\r\n\r\n const handleBlur = (event) => {\r\n const value = event.target.value;\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n validatePhone(value, errors);\r\n break;\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const handleErrors = (response) => {\r\n if (response.TcpaChecked) {\r\n setCustomer({ ...customer, tcpaChecked: false });\r\n validateTcpaChecked(false, errors);\r\n }\r\n\r\n setErrors({ ...errors });\r\n }\r\n\r\n const Message = ({ messageTitle }) => {\r\n return (\r\n \r\n
\r\n
{messageTitle}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* Form section...*/}\r\n {!customer.submitted && (\r\n \r\n

Let's get started!
UHM can guide you home.

\r\n

Please verify or enter your phone number below.

\r\n
\r\n \r\n \r\n
{errors.phoneNumber}
\r\n
\r\n \r\n \r\n
{errors.tcpaChecked}
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {/* Confirmation section... */}\r\n {customer.submitted && (\r\n \r\n
\r\n

Got it!
\r\n {customer.channel === \"Retail\" ?\r\n \"Your mortgage expert will be in touch.\" :\r\n \"One of our mortgage experts will be in touch.\"}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/* Consumer Direct contact section... */}\r\n {customer.channel !== \"Retail\" && (\r\n \r\n
Have questions?
\r\n Call us at 1-877-846-4968\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \"Union\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Loading message... */}\r\n {loading && }\r\n\r\n {/* Saving message... */}\r\n {saving && }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default OneClickPurchase;","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { Spinner } from 'reactstrap';\r\nimport * as oneClickApi from \"../api/OneClickApi\";\r\nimport Logo from './Logo';\r\n\r\nconst OneClickOffer = () => {\r\n\r\n const phoneInputName = \"borrowerCellPhone\";\r\n const tcpaInputName = \"tcpaCheckbox\";\r\n const { id } = useParams();\r\n const history = useHistory();\r\n const [customer, setCustomer] = useState({\r\n UhmIdHash: '',\r\n borrowerCellPhone: '',\r\n cellPhoneModified: false,\r\n channel: '',\r\n tcpaChecked: false,\r\n submitted: false\r\n });\r\n const [errors, setErrors] = useState({})\r\n const [loading, setLoading] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n CustomerLanded(id);\r\n }, []);\r\n\r\n const CustomerLanded = (id) => {\r\n setLoading(true);\r\n oneClickApi.getCustomerData(id)\r\n .then(response => {\r\n setLoading(false);\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n throw new Error(\"Error returning customer\");\r\n }\r\n })\r\n .then(data => {\r\n data.borrowerCellPhone = maskPhoneNumber(data.borrowerCellPhone);\r\n setCustomer({ ...data });\r\n validateFormOnLoad(data);\r\n submitCustomerLanded(id);\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const submitCustomerLanded = (id) => {\r\n oneClickApi.submitCustomerLanded(id)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(\"Error posting customer landed\");\r\n }\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const validateFormOnLoad = (customer) => {\r\n const borrowerCellPhone = customer.borrowerCellPhone;\r\n\r\n if (!borrowerCellPhone) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const validateForm = () => {\r\n const { borrowerCellPhone, cellPhoneModified, tcpaChecked } = customer;\r\n if (cellPhoneModified) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n validateTcpaChecked(tcpaChecked, errors);\r\n setErrors({ ...errors });\r\n return Object.keys(errors).length === 0;\r\n }\r\n\r\n const validatePhone = (phone, errors) => {\r\n var phoneRegex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n if (!phoneRegex.test(phone)) {\r\n errors.phoneNumber = \"Please enter a valid phone number.\";\r\n } else {\r\n delete errors.phoneNumber\r\n }\r\n }\r\n\r\n const validateTcpaChecked = (tcpaChecked, errors) => {\r\n if (!tcpaChecked) {\r\n errors.tcpaChecked = \"Please check the box to accept the terms above.\";\r\n } else {\r\n delete errors.tcpaChecked\r\n }\r\n }\r\n\r\n const maskPhoneNumber = (phone) => {\r\n //Strip out masking characters...\r\n phone = phone?.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(phone) || phone.length > 10) {\r\n return;\r\n };\r\n\r\n //Apply phone number mask.\r\n let maskedPhoneNumber = \"\"\r\n\r\n if (phone.length <= 3) {\r\n maskedPhoneNumber = phone;\r\n }\r\n if (phone.length >= 4 && phone.length <= 6) {\r\n maskedPhoneNumber = phone.substr(0, 3) + \"-\" + phone.substr(3, 3);\r\n }\r\n if (phone.length >= 7) {\r\n maskedPhoneNumber += phone.substr(0, 3) + \"-\" + phone.substr(3, 3) + \"-\" + phone.substr(6);\r\n }\r\n\r\n return maskedPhoneNumber;\r\n }\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n if (!validateForm()) return;\r\n\r\n setSaving(true);\r\n var response = await oneClickApi.submitCustomerData(customer);\r\n setSaving(false);\r\n\r\n if (response.ok) {\r\n setCustomer({ ...customer, submitted: true });\r\n }\r\n else {\r\n const errorResponse = await response.json();\r\n handleErrors(errorResponse);\r\n };\r\n }\r\n\r\n const handleFocus = (event) => {\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n setCustomer({\r\n ...customer,\r\n [event.target.name]: \"\",\r\n cellPhoneModified: true\r\n });\r\n break;\r\n }\r\n }\r\n\r\n const handleChange = (event) => {\r\n var name = event.target.name;\r\n var value = event.target.value;\r\n\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n //Strip out masking characters...\r\n value = value.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(value) || value.length > 10) {\r\n return;\r\n };\r\n\r\n setCustomer({\r\n ...customer,\r\n [name]: maskPhoneNumber(value),\r\n cellPhoneModified: true\r\n });\r\n break;\r\n\r\n case tcpaInputName:\r\n setCustomer({\r\n ...customer,\r\n tcpaChecked: event.target.checked\r\n });\r\n validateTcpaChecked(event.target.checked, errors);\r\n break;\r\n }\r\n };\r\n\r\n const handleBlur = (event) => {\r\n const value = event.target.value;\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n validatePhone(value, errors);\r\n break;\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const handleErrors = (response) => {\r\n if (response.TcpaChecked) {\r\n setCustomer({ ...customer, tcpaChecked: false });\r\n validateTcpaChecked(false, errors);\r\n }\r\n\r\n setErrors({ ...errors });\r\n }\r\n\r\n const Message = ({ messageTitle }) => {\r\n return (\r\n \r\n
\r\n
{messageTitle}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* Form section...*/}\r\n {!customer.submitted && (\r\n \r\n

Let's get started!
UHM can guide you home.

\r\n

Please verify or enter your phone number below.

\r\n
\r\n \r\n \r\n
{errors.phoneNumber}
\r\n
\r\n \r\n \r\n
{errors.tcpaChecked}
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {/* Confirmation section... */}\r\n {customer.submitted && (\r\n \r\n
\r\n

Got it!
\r\n {customer.channel === \"Retail\" ?\r\n \"Your mortgage expert will be in touch.\" :\r\n \"One of our mortgage experts will be in touch.\"}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/* Consumer Direct contact section... */}\r\n {customer.channel !== \"Retail\" && (\r\n \r\n
Have questions?
\r\n Call us at 1-877-846-4968\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \"Union\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Loading message... */}\r\n {loading && }\r\n\r\n {/* Saving message... */}\r\n {saving && }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default OneClickOffer;","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { Spinner } from 'reactstrap';\r\nimport * as oneClickApi from \"../api/OneClickApi\";\r\nimport Logo from './Logo';\r\n\r\nconst OneClickCashOut = () => {\r\n\r\n const phoneInputName = \"borrowerCellPhone\";\r\n const tcpaInputName = \"tcpaCheckbox\";\r\n const { id } = useParams();\r\n const history = useHistory();\r\n const [customer, setCustomer] = useState({\r\n UhmIdHash: '',\r\n borrowerCellPhone: '',\r\n cellPhoneModified: false,\r\n channel: '',\r\n tcpaChecked: false,\r\n submitted: false\r\n });\r\n const [errors, setErrors] = useState({})\r\n const [loading, setLoading] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n CustomerLanded(id);\r\n }, []);\r\n\r\n const CustomerLanded = (id) => {\r\n setLoading(true);\r\n oneClickApi.getCustomerData(id)\r\n .then(response => {\r\n setLoading(false);\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n throw new Error(\"Error returning customer\");\r\n }\r\n })\r\n .then(data => {\r\n data.borrowerCellPhone = maskPhoneNumber(data.borrowerCellPhone);\r\n setCustomer({ ...data });\r\n validateFormOnLoad(data);\r\n submitCustomerLanded(id);\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const submitCustomerLanded = (id) => {\r\n oneClickApi.submitCustomerLanded(id)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(\"Error posting customer landed\");\r\n }\r\n })\r\n .catch(() => {\r\n history.push(\"/error\");\r\n });\r\n }\r\n\r\n const validateFormOnLoad = (customer) => {\r\n const borrowerCellPhone = customer.borrowerCellPhone;\r\n\r\n if (!borrowerCellPhone) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const validateForm = () => {\r\n const { borrowerCellPhone, cellPhoneModified, tcpaChecked } = customer;\r\n if (cellPhoneModified) {\r\n validatePhone(borrowerCellPhone, errors);\r\n }\r\n validateTcpaChecked(tcpaChecked, errors);\r\n setErrors({ ...errors });\r\n return Object.keys(errors).length === 0;\r\n }\r\n\r\n const validatePhone = (phone, errors) => {\r\n var phoneRegex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n if (!phoneRegex.test(phone)) {\r\n errors.phoneNumber = \"Please enter a valid phone number.\";\r\n } else {\r\n delete errors.phoneNumber\r\n }\r\n }\r\n\r\n const validateTcpaChecked = (tcpaChecked, errors) => {\r\n if (!tcpaChecked) {\r\n errors.tcpaChecked = \"Please check the box to accept the terms above.\";\r\n } else {\r\n delete errors.tcpaChecked\r\n }\r\n }\r\n\r\n const maskPhoneNumber = (phone) => {\r\n //Strip out masking characters...\r\n phone = phone?.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(phone) || phone.length > 10) {\r\n return;\r\n };\r\n\r\n //Apply phone number mask.\r\n let maskedPhoneNumber = \"\"\r\n\r\n if (phone.length <= 3) {\r\n maskedPhoneNumber = phone;\r\n }\r\n if (phone.length >= 4 && phone.length <= 6) {\r\n maskedPhoneNumber = phone.substr(0, 3) + \"-\" + phone.substr(3, 3);\r\n }\r\n if (phone.length >= 7) {\r\n maskedPhoneNumber += phone.substr(0, 3) + \"-\" + phone.substr(3, 3) + \"-\" + phone.substr(6);\r\n }\r\n\r\n return maskedPhoneNumber;\r\n }\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n if (!validateForm()) return;\r\n\r\n setSaving(true);\r\n var response = await oneClickApi.submitCustomerData(customer);\r\n setSaving(false);\r\n\r\n if (response.ok) {\r\n setCustomer({ ...customer, submitted: true });\r\n }\r\n else {\r\n const errorResponse = await response.json();\r\n handleErrors(errorResponse);\r\n };\r\n }\r\n\r\n const handleFocus = (event) => {\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n setCustomer({\r\n ...customer,\r\n [event.target.name]: \"\",\r\n cellPhoneModified: true\r\n });\r\n break;\r\n }\r\n }\r\n\r\n const handleChange = (event) => {\r\n var name = event.target.name;\r\n var value = event.target.value;\r\n\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n //Strip out masking characters...\r\n value = value.replace(/$| |\\*|\\(|\\)|-/gi, '');\r\n\r\n //Make sure we're only entering numbers and limiting length...\r\n if (isNaN(value) || value.length > 10) {\r\n return;\r\n };\r\n\r\n setCustomer({\r\n ...customer,\r\n [name]: maskPhoneNumber(value),\r\n cellPhoneModified: true\r\n });\r\n break;\r\n\r\n case tcpaInputName:\r\n setCustomer({\r\n ...customer,\r\n tcpaChecked: event.target.checked\r\n });\r\n validateTcpaChecked(event.target.checked, errors);\r\n break;\r\n }\r\n };\r\n\r\n const handleBlur = (event) => {\r\n const value = event.target.value;\r\n switch (event.target.name) {\r\n case phoneInputName:\r\n validatePhone(value, errors);\r\n break;\r\n }\r\n setErrors({ ...errors });\r\n }\r\n\r\n const handleErrors = (response) => {\r\n if (response.TcpaChecked) {\r\n setCustomer({ ...customer, tcpaChecked: false });\r\n validateTcpaChecked(false, errors);\r\n }\r\n\r\n setErrors({ ...errors });\r\n }\r\n\r\n const Message = ({ messageTitle }) => {\r\n return (\r\n \r\n
\r\n
{messageTitle}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* Form section...*/}\r\n {!customer.submitted && (\r\n \r\n

Tap into your home's equity the fast and easy way.1

\r\n

Please verify or enter your phone number below.

\r\n
\r\n \r\n \r\n
{errors.phoneNumber}
\r\n
\r\n \r\n \r\n
{errors.tcpaChecked}
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n\r\n {/* Confirmation section... */}\r\n {customer.submitted && (\r\n \r\n
\r\n

Got it!
\r\n {customer.channel === \"Retail\" ?\r\n \"Your mortgage expert will be in touch.\" :\r\n \"One of our mortgage experts will be in touch.\"}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/* Consumer Direct contact section... */}\r\n {customer.channel !== \"Retail\" && (\r\n \r\n
Have questions?
\r\n Call us at 1-877-846-4968\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \"Union\r\n
\r\n 1 There is NO WARRANTY, ACTUAL OR IMPLIED, for the accuracy of this information. The calculated amount shown is an estimate of the equity in your home that you may be able to receive via a cash-out refinance. The figures are only an estimate and should not be construed as a binding commitment. An appraisal may be required to assess the value of real property. Provider does not assume liability for error.\r\n
\r\n

\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Loading message... */}\r\n {loading && }\r\n\r\n {/* Saving message... */}\r\n {saving && }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default OneClickCashOut;","import React, { Component } from 'react';\r\nimport Logo from './Logo';\r\n\r\nexport class Error extends Component {\r\n static displayName = Error.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

We're sorry, something went wrong

\r\n

Please close this window and try again using the email link. If the problem persists please reach out to us at 1-877-846-4968

\r\n
\r\n
\r\n \"Union\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport Logo from './Logo';\r\n\r\nexport class Lost extends Component {\r\n static displayName = Error.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

Looks like you might be lost

\r\n

You can always give us a call for directions ;)
\r\n 1-877-846-4968

\r\n \r\n \r\n \r\n
\r\n
\r\n \"Union\r\n
\r\n NMLS #2229, NMLS Consumer Access website: www.nmlsconsumeraccess.org. Union Home Mortgage Corp. is an Equal Housing Lender. Loans are available on a fair and equal basis regardless of race, color, national origin, religion, sex, handicap, marital status, sexual orientation, gender identity, familial status (having children under the age of 18), age (if old enough to enter a contract), because income is from public assistance, or because a right was exercised under the Consumer Credit Protection Act.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport OneClick from './components/OneClick';\r\nimport OneClickPurchase from './components/OneClickPurchase';\r\nimport OneClickOffer from './components/OneClickOffer';\r\nimport OneClickCashOut from './components/OneClickCashOut';\r\nimport { Error } from './components/Error';\r\nimport { Lost } from './components/Lost';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\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","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}