{"version":3,"sources":["components/Overlays/TopBar.js","components/Layout.js","components/API/Model.js","components/Additional/GooglePlaces.js","components/Additional/Alert.js","components/Overlays/Navigation.js","components/Page 1/Home_page.js","components/Page 2/HowItWorks_page.js","components/Additional/ScreenProps.js","components/Page 3/GooglePlacesMailingAddress.js","components/Page 3/GooglePlacesPriorAddress.js","components/Page 3/GooglePlacesPropertyAddress.js","components/Page 3/YourInfo_page.js","components/Page 4/AdditionalInfo_page.js","components/Page 5/PropertyInfo_page.js","components/Additional/Banner.js","components/Page 6/Coverages_page.js","components/Page 8/QuoteSummary_page.js","components/Page 7/HomeInspection_page.js","components/Retrive Pages/Page_retrieve_a.js","components/Retrive Pages/Page_retrieve_a_2.js","components/Retrive Pages/Page_retrieve_b.js","components/Save Page/Page_save.js","components/Additional/ScrollToTop.js","components/Page9/New_Landing_Page.js","components/Page10/New_Landing_Page_2.js","components/Page11/New_Landing_Page_3.js","components/Landing_Pages/Blacksburg/Landing_Page_Blacksburg.js","components/Landing_Pages/Blacksburg/Inspection_Info_Blacksburg.js","components/Landing_Pages/Botetourt/Landing_Page_Botetourt.js","components/Landing_Pages/Botetourt/Inspection_Info_Botetourt.js","components/Landing_Pages/Culpeper/Landing_Page_Culpeper.js","components/Landing_Pages/Culpeper/Inspection_Info_Culpeper.js","components/Landing_Pages/Harrisonburg/Landing_Page_Harrisonburg.js","components/Landing_Pages/Harrisonburg/Inspection_Info_Harrisonburg.js","App.tsx","registerServiceWorker.ts","index.tsx"],"names":["TopBar","loc","useLocation","save_page_link","pathname","to","alt","className","src","logo","toLowerCase","localStorage","getItem","includes","id","Layout","Component","render","Container","this","props","children","displayName","name","async","createQuote","quote","formData","FormData","response","append","fetch","window","location","href","substr","lastIndexOf","method","body","then","res","json","result","toString","setItem","DTOApplication","ApplicationNumber","JSON","stringify","agency_name","DTOLine","DTORisk","DTOBuilding","Addr","find","e","AddrTypeCd","CountyAgencyName","agency_phone","CountyAgencyPhoneNumber","agency_email","CountyAgencyEmail","agency_addres","CountyAgencyAddress","agency_city","CountyAgencyCity","agency_state","CountyAgencyState","agency_zip","CountyAgencyZip","firstYearPremium","DTOBasicPolicy","FinalPremiumAmt","secondYearPremium","EstimatedSecondYearAssessment","fiveYearPremium","EstimatedFiveYearAveAnnualCost","num_bath_full","NumberBathrooms","num_bath_part","NumberPartialBathrooms","num_stories","NumStories","sqft","SqFt","build_year","YearBuilt","num_family","NumberOfFamily","found_type","FoundationType","error","retrieveQuote","index","length","undefined","QuoteNumber","app","i","middle_name","DTOInsured","PartyInfo","NameInfo","NameTypeCd","OtherGivenName","inspection_contact_name","GivenName","Surname","first_name","last_name","mi","co_applicant","co_first_name","co_last_name","co_mi","email","EmailInfo","EmailAddr","phone","PhoneInfo","PhoneNumber","main_addr_street","Addr1","main_addr_city","City","main_addr_zip","PostalCode","main_addr_state","mail_addr","mail_addr_street","mail_addr_city","mail_addr_zip","mail_addr_state","prior_addr","prior_addr_street","prior_addr_city","prior_addr_zip","prior_addr_state","inspection_contact_type","inspection_number","inspection_email","inspection_pref_contact_type","fetchQuote","updateQuote","getToken","getGoogleApiKey","getApplicationCorrespondence","createActivityQuoteDB","page_name","activity_code","description","headers","Quote_number","Page_Name","Activity_Code","Source_IP","Session_ID","Description","createNewLandingPageQuote","CovALimit","console","log","EstimatedFiveYearSavingsLow","EstimatedFiveYearSavingsHigh","EstimatedTenYearSavingsLow","EstimatedTenYearSavingsHigh","EstimatedAnnualAssessment","EstimatedPremium","customer_ref","CustomerRef","updateNewLandingPageQuote","GooglePlaces","setAdressInfo","searchInput","useRef","address","setAddress","useState","initMapScript","apiKey","google","Promise","resolve","script","document","createElement","Object","assign","type","addEventListener","head","appendChild","loadAsyncScript","extractAddress","place","city","state","zip","country","plain","Array","isArray","address_components","forEach","component","types","value","long_name","street","street_number","perf_contact","initAutocomplete","current","autocomplete","maps","places","Autocomplete","setFields","addListener","getPlace","onChangeAddress","useEffect","Search","ref","placeholder","Alert","status","style","width","height","marginLeft","margin","marginRight","backgroundColor","color","dangerouslySetInnerHTML","__html","message","Navigation","quote_number","setStyle","React","setTimeout","newStyle","opacity","active_option","navBar_css","property_css","coverages_css","add_info_css","nextSteps_css","nav_icon","property_icon","coverages_icon","add_info_icon","summary_icon","inspection_icon","page","visibility","progress","pointerEvents","textDecoration","parse","keys","Home_page","constructor","super","handleOptionChange","event","setState","selectedOption","target","firstName","lastName","zipcode","clear","addressInfo","disable","alert_state","error_message","innerWidth","innerHeight","errorHeight","mainErrorHeight","cov_a_limit","isFocused","setAddressInfo","bind","handleResize","handleSubmit","handleInputChange","onCovALimitChange","handleBlur","uuidv4","axios","get","data","IPv4","formatCurrency","num","toLocaleString","minimumFractionDigits","parseCurrency","str","parseInt","replace","newValue","cov_a","existing_customer","preventDefault","myData","catch","retrieveCustomer","myError","Error","Message","personalInfo","onButtonClick","history","push","prevState","grecaptcha","enterprise","ready","execute","action","onChange","onBlur","data-tooltip","htmlFor","checked","onSubmit","required","onClick","disabled","background","withRouter","HowItWorks_page","session_id","HowItWorksPage_continue","getWindowDimensions","useWindowDimensions","windowDimensions","setWindowDimensions","removeEventListener","GooglePlacesMailingAddress","mailing_setAddres","mailing_addres","onChangeMailingAddres","Street","Zip","State","GooglePlacesPriorAddress","prior_setAddres","prior_addres","onChangePriorAddres","GooglePlacesPropertyAddress","setAddres","addres","onChangeAddres","YourInfo","useHistory","onLoad","setOnLoad","isSubmit","setIsSubmit","loading","setLoading","formErrors","setFormErrors","setError_message","setAlert_state","mailing_address_status","setMailing_address_status","prior_address_status","setPrior_address_status","quoteStatus","setQuoteStatus","quote_information","setquote_information","customerRef","setCustomerRef","covA","setCovA","existingCustomer","setExistingCustomer","eff_date","Date","moment","format","exp_date","add","joint","setJoint_state","personal_info","setPersonalInfo","First","MI","Last","Email","Phone","personal_info_2","setPersonalInfo_2","quote_DTOInsured","EntityTypeCd","PreferredDeliveryMethod","PartyTypeCd","Status","PersonInfo","BestWayToContact","CommercialName","EmailTypeCd","PreferredInd","EmailOption","PhoneTypeCd","PhoneName","StateProvCd","IndexName","ExternalValidateBeanExist","ByPassCustomerCreation","TypeCd","DTOTransactionInfo","TransactionCd","SourceCd","TransactionShortDescription","TransactionLongDescription","TransactionEffectiveDt","StatusCd","LineCd","RatingService","QuestionReplies","EffectiveDt","ExpirationDt","PolicyVersion","RenewalTermCd","SubTypeCd","PolicyForm","PolicySource","RecentMoveIn","TransactionNumber","ProviderNumber","ControllingStateCd","ProductVersionIdRef","CarrierGroupCd","BusinessSourceCd","onChangeUser","onChangeUser_2","handleChange_mailing_address","handleChange_prior_address","copyAddreses","errors","Applicant_First","Applicant_Last","test","Applicant_Email","Applicant_Phone","CoApplicant_First","CoApplicant_Last","MainStreet","MainCity","MainZip","MailStreet","MailCity","MailZip","PriorStreet","PriorCity","PriorZip","validateForm","setInspectionInfo","Insured_Last_Name","Zip_code","fetchData","Quote_Number","Insured_First_Name","CoApplicant_First_Name","CoApplicant_Last_Name","Address","Quote_Status_code","Session_id","databaseUpdate","scrollTo","updateData","radius","Applicant_MI","CoApplicant_MI","mask","size","AdditionalInfo_page","fetch_quote","radio_options","load","setonLoad","submitLoading","setsubmitLoading","updateStatus","set_updateStatus","alert","setAlert","alert_type","alert_height","alert_color","member_state","member_setState","primary_residence","primary_residence_setState","pool_roof","exterior_walls_asbestos","dog_state","dogCount","trampoline_treehouse_skateboard","pool_state","pool_locking_gate","pool_diving_board","floors_wather_based_radiant","central_heating","buissnes_operations_premises","airbnb_or_another","noExistingCustomer","setNoExistingCustomer","losses_claims_last_3","weather_related_loss","single_family_dwelling_occupied","property_renovated","roof_asbestos_rubber_membrane_tar_gravel","dog_setState","bankruptcies_foreclosures","over_70_years","major_systems","insurance_in_place_last_3","first_homeowner","national_historic","QuestionReply","Name","Value","UpadatedQuestionReplies","VisibleInd","Primary_Residence","PoolInd","NumberOfDogs","ExistingMemberDiscount","map","PropertyInfo_page","updatedQuote","setupdatedQuote","group_1_active","setgroup_1_active","group_2_active","setgroup_2_active","count_full","setCount_full","count_half","setCount_half","number_of_stories","set_number_of_stories","square_footage","set_square_footage","yearOfConstruction","set_yearOfConstruction","numberOfFamilies","set_numberOfFamilies","foundationType","set_foundationType","homeConstructionMaterial","set_homeConstructionMaterial","roofMaterial","set_RoofMaterial","set_cov_a_limit","general_cov_a_limit","set_general_cov_a_limit","newQuoteEmailSent","setNewQuoteEmailSent","namedStormDedInd1Counties","namedStormDedInd2Counties","namedStormDedInd3Counties","ConstructionCd","getElementsByName","classList","RoofCd","timeout","county","County","namedStormDedInd","indexOf","NamedStormDedInd","Construction_Material","splice","clearTimeout","onNumberofStoriesChange","onSquareFootageChange","onYearOfConstructionChange","onnumberOfFamiliesChange","onnfoundationTypeChange","decrementCount","prevCount","incrementCount","changeState","marginBottom","marginTop","defaultValue","Banner","tooltip","formatNumber","number","Intl","NumberFormat","currency","substring","bannerBoxClass","removeMarginLeft","skipTitle","Coverages_page","set_covA","covB","set_covB","covC","set_covC","covD","set_covD","covE","set_covE","covF_eachPerson","set_covF_eachPerson","covF_eachOccurrence","set_covF_eachOccurrence","policy_deductible","set_policy_deductible","waterDamage","set_waterDamage","tropical_cyclone","set_tropical_cyclone","isExpanded","setIsExpanded","maximumFractionDigits","CovBLimit","CovCLimit","CovDLimit","CovELimit","AllPerilDed","CovFLimit","CovFLimitEachOccurrence","CovWaterDamageLimitIncrease","NamedStormDed","iconClass","htmlToImage","getElementById","quality","dataUrl","pdf","jsPDF","addImage","save","QuoteSummary_page","url","setURL","flag","set_flag","coverage","setCoverage","covF","token","CorrespondenceTemplateId","Token","getURL","fetchToken","download","HomeInspection_page","Inspection_contact_name","Inspection_contact_type","Inspection_number","Inspection_email","Inspection_pref_contact_type","needByDt","DTOApplicationInfo","AddDt","InspectionContactType","InspectionContactName","InspectionNumber","InspectionDt","InspectionNeedByDt","InspectionRush","InspectionRequestedBy","InspectionSpecialInstructions","InspectionType","updatedQuestionReplies","Inspection_Email","Inspection_Best_Way_To_Contact","updateInspection","email_sent","Page_retrieve_a","setEmail","setlastName","setzipcode","modalError","setmodalError","errorMessage","seterrorMessage","setErrorHeight","fetchStatus","setfetchStatus","LastName","ZipCode","SearchCriteria","getIP","responseJson","Page_retrieve_a_2","quoteNumbers","setQuoteNumbers","selectedQuote","setSelectedQuote","handleQuoteChange","onContinueClick","quoteNumber","retrieveData","retrieveQuoteNumbers","fetchQuoteNumbers","aria-labelledby","borderTopWidth","borderBottomWidth","fontWeight","key","date","Page_retrieve_b","setquoteNumber","Page_save","link","current_page","ScrollToTop","New_Landing_Page","prepareQuote","footerMessage","New_Landing_Page_2","New_Landing_Page_3","Landing_Page_Blacksburg","Inspection_Info_Blacksburg","Landing_Page_Botetourt","Inspection_Info_Botetourt","Landing_Page_Culpeper","Inspection_Info_Culpeper","Landing_Page_Harrisonburg","Inspection_Info_Harrisonburg","App","exact","path","Boolean","hostname","match","rootElement","ReactDOM","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.9ba29a40.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport './TopBar.css';\r\nimport { useLocation } from 'react-router-dom'\r\nimport { Link } from \"react-router-dom\";\r\n\r\nfunction TopBar() {\r\n\r\n const loc = useLocation();\r\n let save_page_link = null;\r\n \r\n\r\n if (loc.pathname === \"/PropertyInfo\" || loc.pathname === \"/Coverages\" || loc.pathname === \"/HomeInspection\") {\r\n\r\n save_page_link =
\r\n \r\n\r\n \"\"\r\n
Save for Later
\r\n\r\n \r\n
\r\n }\r\n\r\n let logo = \r\n \"\"\r\n \r\n\r\n if (loc.pathname.toLowerCase() === \"/inspection\" || loc.pathname.toLowerCase() === \"/inspectioninfo\" || loc.pathname.toLowerCase() === \"/estimatesummary\") {\r\n logo = \r\n \"\"\r\n \r\n }\r\n\r\n if (loc.pathname.toLowerCase() === \"/estimatesummary\") {\r\n if (localStorage.getItem('current_landing_page') === \"Blacksburg\") {\r\n logo = \r\n \"\"\r\n \r\n } else if (localStorage.getItem('current_landing_page') === \"Botetourt\") {\r\n logo = \r\n \"\"\r\n \r\n } else if (localStorage.getItem('current_landing_page') === \"Culpeper\") {\r\n logo = \r\n \"\"\r\n \r\n } else if (localStorage.getItem('current_landing_page') === \"Harrisonburg\") {\r\n logo = \r\n \"\"\r\n \r\n }\r\n }\r\n\r\n if (loc.pathname.toLowerCase().includes(\"blacksburg\")) {\r\n logo = \r\n \"\"\r\n \r\n } else if (loc.pathname.toLowerCase().includes(\"Botetourt\")) {\r\n logo = \r\n \"\"\r\n \r\n } else if (loc.pathname.toLowerCase().includes(\"culpeper\")) {\r\n logo = \r\n \"\"\r\n \r\n } else if (loc.pathname.toLowerCase().includes(\"harrisonburg\")) {\r\n logo = \r\n \"\"\r\n \r\n }\r\n\r\n return (\r\n
\r\n \r\n {save_page_link}\r\n
\r\n );\r\n\r\n}\r\n\r\nexport default TopBar\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport TopBar from './Overlays/TopBar';\r\n\r\n\r\nexport class Layout extends Component {\r\n\r\n static displayName = Layout.name;\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","\r\n\r\nexport async function createQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result;\r\n\r\n if (result[0].toString() === \"ERROR\") {\r\n\r\n response = \"Service temporarily unavailable. Please try again later.\";\r\n\r\n } else {\r\n\r\n window.localStorage.setItem(\"quote_number\", result[0].DTOApplication[0].ApplicationNumber);\r\n\r\n window.localStorage.setItem(\"agency_information\", JSON.stringify({\r\n agency_name: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyName,\r\n agency_phone: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyPhoneNumber,\r\n agency_email: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyEmail,\r\n agency_addres: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyAddress,\r\n agency_city: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyCity,\r\n agency_state: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyState,\r\n agency_zip: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyZip,\r\n }));\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: result[0].DTOApplication[0].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: result[0].DTOApplication[0].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: result[0].DTOApplication[0].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n num_bath_full: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms,\r\n num_bath_part: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms,\r\n num_stories: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories,\r\n sqft: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt,\r\n build_year: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt,\r\n num_family: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily,\r\n found_type: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType,\r\n }));\r\n\r\n response = \"SUCCESS\";\r\n }\r\n\r\n },\r\n (error) => {\r\n response = \"Service temporarily unavailable. Please try again later.\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function retrieveQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/retrieveQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result;\r\n let index = 0;\r\n\r\n if (result[0].toString() === \"ERROR\") {\r\n\r\n response = \"ERROR\";\r\n\r\n } else if (result[0].DTOApplication.length > 1 && quote.QuoteNumber == undefined) {\r\n\r\n response = \"MULTIPLE_QUOTES\";\r\n\r\n } else if (result[0].DTOApplication.length === 0) {\r\n\r\n response = \"ERROR\";\r\n\r\n } else {\r\n\r\n if (result[0].DTOApplication.length > 1) {\r\n result[0].DTOApplication((app, i) => {\r\n if (app.ApplicationNumber === quote.QuoteNumber) {\r\n index = i;\r\n }\r\n })\r\n }\r\n\r\n window.localStorage.setItem(\"quote_number\", result[0].DTOApplication[index].ApplicationNumber);\r\n\r\n window.localStorage.setItem(\"agency_information\", JSON.stringify({\r\n agency_name: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyName,\r\n agency_phone: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyPhoneNumber,\r\n agency_email: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyEmail,\r\n agency_addres: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyAddress,\r\n agency_city: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyCity,\r\n agency_state: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyState,\r\n agency_zip: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyZip,\r\n }));\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: result[0].DTOApplication[index].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: result[0].DTOApplication[index].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: result[0].DTOApplication[index].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n num_bath_full: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms,\r\n num_bath_part: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms,\r\n num_stories: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories,\r\n sqft: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt,\r\n build_year: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt,\r\n num_family: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily,\r\n found_type: result[0].DTOApplication[index].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType,\r\n }));\r\n\r\n\r\n let middle_name = \"\";\r\n if (result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").OtherGivenName !== undefined) {\r\n middle_name = result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").OtherGivenName + \" \";\r\n }\r\n const inspection_contact_name =\r\n result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").GivenName\r\n + \" \" + middle_name\r\n + result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").Surname;\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n first_name: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").GivenName,\r\n last_name: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").Surname,\r\n mi: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].NameInfo.find((e) => e.NameTypeCd === \"InsuredName\").OtherGivenName,\r\n co_applicant: false,\r\n co_first_name: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[1].NameInfo.find((e) => e.NameTypeCd === \"InsuredNameJoint\").GivenName,\r\n co_last_name: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[1].NameInfo.find((e) => e.NameTypeCd === \"InsuredNameJoint\").Surname,\r\n co_mi: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[1].NameInfo.find((e) => e.NameTypeCd === \"InsuredNameJoint\").OtherGivenName,\r\n email: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr,\r\n phone: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber,\r\n main_addr_street: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredBillingAddr\").Addr1,\r\n main_addr_city: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredBillingAddr\").City,\r\n main_addr_zip: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredBillingAddr\").PostalCode,\r\n main_addr_state: \"Virginia\",\r\n mail_addr: false,\r\n mail_addr_street: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredMailingAddr\").Addr1,\r\n mail_addr_city: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredMailingAddr\").City,\r\n mail_addr_zip: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredMailingAddr\").PostalCode,\r\n mail_addr_state: \"Virginia\",\r\n prior_addr: false,\r\n prior_addr_street: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredPriorAddr\").Addr1,\r\n prior_addr_city: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredPriorAddr\").City,\r\n prior_addr_zip: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].Addr.find((e) => e.AddrTypeCd === \"InsuredPriorAddr\").PostalCode,\r\n prior_addr_state: \"Virginia\",\r\n inspection_contact_name,\r\n inspection_contact_type: \"Assured\",\r\n inspection_number: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber,\r\n inspection_email: result[0].DTOApplication[index].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr,\r\n inspection_pref_contact_type: \"Email\",\r\n }));\r\n\r\n\r\n response = \"SUCCESS\";\r\n }\r\n\r\n },\r\n (error) => {\r\n response = \"ERROR\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function retrieveQuoteNumbers(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/retrieveQuoteNumbers', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result;\r\n\r\n if (result[0].toString() === \"ERROR\") {\r\n\r\n response = \"ERROR\";\r\n\r\n } else {\r\n\r\n response = result[0];\r\n\r\n } \r\n\r\n },\r\n (error) => {\r\n response = \"ERROR\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function retrieveCustomer(myData) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', myData);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/retrieveCustomer', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n response = data;\r\n })\r\n .catch((error) => {\r\n response = \"Error\";\r\n });\r\n\r\n return response;\r\n\r\n}\r\n\r\n\r\nexport async function fetchQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/fetchQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result.DTOApplication[0];\r\n\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\n\r\n\r\nexport async function updateQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result[0];\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: result[1].DTOApplication[0].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: result[1].DTOApplication[0].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: result[1].DTOApplication[0].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n num_bath_full: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms,\r\n num_bath_part: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms,\r\n num_stories: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories,\r\n sqft: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt,\r\n build_year: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt,\r\n num_family: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily,\r\n found_type: result[1].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType,\r\n }));\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function getToken(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/getToken', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === \"SUCCESS\") {\r\n response = result[1].toString();\r\n } else {\r\n response = result[0]; // ERROR\r\n }\r\n\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function getGoogleApiKey() {\r\n\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/getGoogleAPIKey', {\r\n method: 'GET'\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n response = result;\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\n\r\nexport async function getApplicationCorrespondence(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/getApplicationCorrespondence', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === \"SUCCESS\") {\r\n response = result[1].toString();\r\n } else {\r\n response = result[0]; // ERROR\r\n }\r\n\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\n\r\n\r\nexport function createActivityQuoteDB(page_name, activity_code, description) {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createActivityQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_number: localStorage.getItem('quote_number'),\r\n Page_Name: page_name,\r\n Activity_Code: activity_code,\r\n Source_IP: localStorage.getItem('user_ip'),\r\n Session_ID: localStorage.getItem('session_id'),\r\n Description: description,\r\n })\r\n })\r\n}\r\n\r\nexport async function createNewLandingPageQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result;\r\n\r\n if (result[0].toString() === \"ERROR\") {\r\n\r\n response = \"Service temporarily unavailable. Please try again later.\";\r\n\r\n } else {\r\n window.localStorage.setItem(\"quote_number\", result[0].DTOApplication[0].ApplicationNumber);\r\n window.localStorage.setItem(\"cov_a\", result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit);\r\n\r\n\r\n try {\r\n window.localStorage.setItem(\"agency_information\", JSON.stringify({\r\n agency_name: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyName,\r\n agency_phone: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyPhoneNumber,\r\n agency_email: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyEmail,\r\n agency_addres: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyAddress,\r\n agency_city: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyCity,\r\n agency_state: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyState,\r\n agency_zip: result[0].DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyZip,\r\n }));\r\n } catch (e) {\r\n console.log(\"Error with fetching agency information\");\r\n }\r\n \r\n try {\r\n window.localStorage.setItem(\"fiveYearSavingsLow\", (result[0].DTOApplication[0].DTOLine[0].EstimatedFiveYearSavingsLow).toString());\r\n window.localStorage.setItem(\"fiveYearSavingsHigh\", (result[0].DTOApplication[0].DTOLine[0].EstimatedFiveYearSavingsHigh).toString());\r\n window.localStorage.setItem(\"tenYearSavingsLow\", (result[0].DTOApplication[0].DTOLine[0].EstimatedTenYearSavingsLow).toString());\r\n window.localStorage.setItem(\"tenYearSavingsHigh\", (result[0].DTOApplication[0].DTOLine[0].EstimatedTenYearSavingsHigh).toString());\r\n window.localStorage.setItem(\"annualAssessment\", (result[0].DTOApplication[0].DTOLine[0].EstimatedAnnualAssessment).toString());\r\n window.localStorage.setItem(\"estimatedPremium\", (result[0].DTOApplication[0].DTOLine[0].EstimatedPremium).toString());\r\n\r\n } catch (e) {\r\n console.log(\"Error with fetching premium information\");\r\n }\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: result[0].DTOApplication[0].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: result[0].DTOApplication[0].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: result[0].DTOApplication[0].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n }));\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n customer_ref: result[0].DTOApplication[0].CustomerRef,\r\n }));\r\n\r\n response = \"SUCCESS\";\r\n }\r\n\r\n },\r\n (error) => {\r\n response = \"Service temporarily unavailable. Please try again later.\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n\r\nexport async function updateNewLandingPageQuote(quote) {\r\n\r\n const formData = new FormData()\r\n formData.append('request', quote);\r\n let response;\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuote', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n response = result[0];\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: result[1].DTOApplication[0].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: result[1].DTOApplication[0].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: result[1].DTOApplication[0].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n }));\r\n },\r\n (error) => {\r\n response = \"Error\";\r\n })\r\n\r\n return response;\r\n\r\n}\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport './GooglePlaces.css';\r\nimport { Search } from \"@material-ui/icons\";\r\nimport { Link } from 'react-router-dom';\r\nimport { getGoogleApiKey } from '../API/Model';\r\n\r\nconst mapApiJs = 'https://maps.googleapis.com/maps/api/js';\r\n//const geocodeJson = 'https://maps.googleapis.com/maps/api/geocode/json';\r\n\r\nfunction loadAsyncScript(src) {\r\n return new Promise(resolve => {\r\n const script = document.createElement(\"script\");\r\n Object.assign(script, {\r\n type: \"text/javascript\",\r\n async: true,\r\n src\r\n })\r\n script.addEventListener(\"load\", () => resolve(script));\r\n document.head.appendChild(script);\r\n })\r\n}\r\n\r\nfunction GooglePlaces({ setAdressInfo }) {\r\n\r\n const searchInput = useRef(null);\r\n const [address, setAddress] = useState({});\r\n\r\n //load map script\r\n const initMapScript = (apiKey) => {\r\n // if script already loaded\r\n if (window.google) {\r\n return Promise.resolve();\r\n }\r\n debugger;\r\n const src = `${mapApiJs}?key=${apiKey}&libraries=places&v=weekly`;\r\n return loadAsyncScript(src);\r\n }\r\n\r\n const extractAddress = (place) => {\r\n\r\n const address = {\r\n city: \"\",\r\n state: \"\",\r\n zip: \"\",\r\n country: \"\",\r\n plain() {\r\n const city = this.city ? this.city + \", \" : \"\";\r\n const zip = this.zip ? this.zip + \", \" : \"\";\r\n const state = this.state ? this.state + \", \" : \"\";\r\n return city + zip + state + this.country;\r\n }\r\n }\r\n\r\n if (!Array.isArray(place?.address_components)) {\r\n return address;\r\n }\r\n\r\n place.address_components.forEach(component => {\r\n const types = component.types;\r\n const value = component.long_name;\r\n\r\n\r\n if (types.includes(\"locality\")) {\r\n address.city = value;\r\n //window.localStorage.setItem(\"city\", value);\r\n }\r\n\r\n if (types.includes(\"administrative_area_level_1\")) {\r\n address.state = value;\r\n //window.localStorage.setItem(\"state\", value);\r\n }\r\n\r\n if (types.includes(\"postal_code\")) {\r\n address.zip = value;\r\n //window.localStorage.setItem(\"zip\", value);\r\n }\r\n\r\n if (types.includes(\"country\")) {\r\n address.country = value;\r\n //window.localStorage.setItem(\"country\", value);\r\n }\r\n if (types.includes(\"route\")) {\r\n address.street = value;\r\n // window.localStorage.setItem(\"street\", address.street_number + \" \" + address.street);\r\n }\r\n if (types.includes(\"street_number\")) {\r\n address.street_number = value;\r\n // window.localStorage.setItem(\"street\", address.street_number);\r\n }\r\n\r\n });\r\n\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n first_name: \"\",\r\n last_name: \"\",\r\n mi: \"\",\r\n co_applicant: false,\r\n co_first_name: \"\",\r\n co_last_name: \"\",\r\n co_mi: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n perf_contact: \"Email\",\r\n main_addr_street: address.street_number + \" \" + address.street,\r\n main_addr_city: address.city,\r\n main_addr_zip: address.zip,\r\n main_addr_state: address.state,\r\n mail_addr: false,\r\n mail_addr_street: \"\",\r\n mail_addr_city: \"\",\r\n mail_addr_zip: \"\",\r\n mail_addr_state: address.state,\r\n prior_addr: false,\r\n prior_addr_street: \"\",\r\n prior_addr_city: \"\",\r\n prior_addr_zip: \"\",\r\n prior_addr_state: address.state,\r\n customer_ref: \"\",\r\n }));\r\n\r\n return address;\r\n }\r\n\r\n const onChangeAddress = (autocomplete) => {\r\n const place = autocomplete.getPlace();\r\n setAddress(extractAddress(place));\r\n setAdressInfo(extractAddress(place));\r\n \r\n }\r\n\r\n const initAutocomplete = () => {\r\n if (!searchInput.current) return;\r\n\r\n const autocomplete = new window.google.maps.places.Autocomplete(searchInput.current);\r\n autocomplete.setFields([\"address_component\"]);\r\n autocomplete.addListener(\"place_changed\", () => onChangeAddress(autocomplete));\r\n }\r\n\r\n useEffect( () => {\r\n getGoogleApiKey().then(res => initMapScript(res).then(() => initAutocomplete()))\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default GooglePlaces;","import React from 'react';\r\nimport './Alert.css';\r\n\r\nfunction Alert(props) {\r\n\r\n\r\n\r\n return (\r\n
\r\n\r\n {props.status === true &&\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\nexport default Alert\r\n\r\n\r\n","import React from 'react';\r\nimport './Navigation.css';\r\nimport { Link } from \"react-router-dom\";\r\n\r\n\r\nfunction Navigation(props) {\r\n\r\n let quote_number = 'Estimate number: ' + window.localStorage.getItem(\"quote_number\");\r\n const done = 100;\r\n const [style, setStyle] = React.useState({});\r\n\r\n setTimeout(() => {\r\n const newStyle = {\r\n opacity: 1,\r\n height: `${done}%`\r\n\r\n }\r\n setStyle(newStyle);\r\n }, 0);\r\n\r\n let active_option = 0;\r\n\r\n let navBar_css = 'nav_bar';\r\n let property_css = 'nav_bar property_bar';\r\n let coverages_css = 'nav_bar coverages_bar';\r\n let add_info_css = 'nav_bar add_info_bar';\r\n let nextSteps_css = 'nav_bar nextstep_bar';\r\n\r\n let nav_icon = \"/images/empty_step.png\";\r\n let property_icon = \"/images/empty_step.png\";\r\n let coverages_icon = \"/images/empty_step.png\";\r\n let add_info_icon = \"/images/empty_step.png\";\r\n let summary_icon = \"/images/empty_step.png\";\r\n let inspection_icon = \"/images/empty_step.png\";\r\n\r\n if (props.page === 0) {\r\n active_option = 0;\r\n navBar_css += ' inActive';\r\n property_css += ' inActive';\r\n coverages_css += ' inActive';\r\n add_info_css += ' inActive';\r\n nextSteps_css += ' inActive';\r\n }\r\n if (props.page === 1) {\r\n active_option = 4;\r\n navBar_css += ' progress-done';\r\n property_css += ' inActive';\r\n coverages_css += ' inActive';\r\n add_info_css += ' inActive';\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n }\r\n if (props.page === 4) {\r\n active_option = 5;\r\n property_css += ' progress-done';\r\n coverages_css += ' inActive';\r\n add_info_css += ' inActive';\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n property_icon = \"/images/filled_step.png\";\r\n }\r\n if (props.page === 5) {\r\n active_option = 6;\r\n coverages_css += ' progress-done';\r\n add_info_css += ' inActive';\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n property_icon = \"/images/filled_step.png\";\r\n coverages_icon = \"/images/filled_step.png\";\r\n }\r\n if (props.page === 7) {\r\n active_option = 7;\r\n add_info_css += ' progress-done';\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n property_icon = \"/images/filled_step.png\";\r\n coverages_icon = \"/images/filled_step.png\";\r\n add_info_icon = \"/images/filled_step.png\";\r\n summary_icon = \"/images/empty_step.png\";\r\n inspection_icon = \"/images/empty_step.png\";\r\n }\r\n if (props.page === 6) {\r\n active_option = 8;\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n property_icon = \"/images/filled_step.png\";\r\n coverages_icon = \"/images/filled_step.png\";\r\n add_info_icon = \"/images/filled_step.png\";\r\n inspection_icon = \"/images/filled_step.png\";\r\n summary_icon = \"/images/empty_step.png\";\r\n }\r\n if (props.page === 8) {\r\n active_option = 8;\r\n nextSteps_css += ' inActive';\r\n\r\n nav_icon = \"/images/filled_step.png\";\r\n property_icon = \"/images/filled_step.png\";\r\n coverages_icon = \"/images/filled_step.png\";\r\n add_info_icon = \"/images/filled_step.png\";\r\n inspection_icon = \"/images/filled_step.png\";\r\n summary_icon = \"/images/empty_step.png\";\r\n }\r\n return (\r\n\r\n
\r\n {props.page === 0 || props.page === 1?\r\n

{quote_number}

\r\n :\r\n

{quote_number}

\r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n{/* */}\r\n {JSON.parse(localStorage.getItem(\"agency_information\")) !== null &&\r\n Object.keys(JSON.parse(localStorage.getItem(\"agency_information\"))).length !== 0 && \r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== null &&\r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== \"Mutual Assurance Society of Virginia\" &&\r\n <>\r\n \"\"\r\n Your Local Agent:\r\n

{window.localStorage.getItem(\"agent\")}

\r\n

{JSON.parse(localStorage.getItem(\"agency_information\")).agency_name}

\r\n

{JSON.parse(localStorage.getItem(\"agency_information\")).agency_phone}

\r\n

{JSON.parse(localStorage.getItem(\"agency_information\")).agency_email}

\r\n

{JSON.parse(localStorage.getItem(\"agency_information\")).agency_addres}

\r\n

{JSON.parse(localStorage.getItem(\"agency_information\")).agency_city},\r\n {JSON.parse(localStorage.getItem(\"agency_information\")).agency_state} {JSON.parse(localStorage.getItem(\"agency_information\")).agency_zip}

\r\n \r\n\r\n }\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default Navigation\r\n","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../Additional/GooglePlaces';\r\nimport Alert from '../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './Home_page.css';\r\nimport '../styles.css';\r\nimport { createActivityQuoteDB, retrieveCustomer } from '../API/Model';\r\nimport axios from 'axios'\r\nimport Navigation from '../Overlays/Navigation';\r\n\r\nclass Home_page extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n selectedOption: false,\r\n formData: {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n zipcode: ''\r\n }\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"IndexPage\", \"PL\", \"Index page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n handleOptionChange = (event) => {\r\n this.setState({\r\n selectedOption: event.target.value === 'yes',\r\n });\r\n this.setState({\r\n formData: {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n zipcode: ''\r\n },\r\n });\r\n };\r\n\r\n async handleSubmit(e) {\r\n this.setState({\r\n mainErrorHeight: 65,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n const existing_customer = this.state.selectedOption ? \"YES\" : \"NO\";\r\n if (this.state.selectedOption) {\r\n e.preventDefault();\r\n this.setState({\r\n alert_state: false,\r\n })\r\n const formData = this.state.formData;\r\n const response = await retrieveCustomer(JSON.stringify(formData));\r\n let myError = null;\r\n try {\r\n myError = response.Error[0].Message;\r\n } catch (error) {}\r\n\r\n if (myError !== null) {\r\n this.setState({\r\n alert_state: true,\r\n error_message: myError,\r\n errorHeight: 130,\r\n mainErrorHeight: 85,\r\n })\r\n }\r\n else {\r\n const personalInfo = JSON.parse(window.localStorage.getItem('personal_information'));\r\n personalInfo.first_name = this.state.formData.firstName;\r\n personalInfo.last_name = this.state.formData.lastName;\r\n personalInfo.email = this.state.formData.email;\r\n personalInfo.mail_addr_zip = this.state.formData.zipcode;\r\n personalInfo.customer_ref = response.CustomerRef;\r\n window.localStorage.setItem('personal_information', JSON.stringify(personalInfo));\r\n window.localStorage.setItem(\"existing_customer\", existing_customer);\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n }\r\n this.onButtonClick();\r\n this.props.history.push('/YourInfo');\r\n\r\n }\r\n }\r\n else {\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n }\r\n window.localStorage.setItem(\"existing_customer\", existing_customer);\r\n this.onButtonClick();\r\n this.props.history.push('/YourInfo');\r\n }\r\n\r\n }\r\n\r\n handleInputChange(event) {\r\n const { name, value } = event.target;\r\n this.setState(prevState => ({\r\n formData: {\r\n ...prevState.formData,\r\n [name]: value\r\n }\r\n }));\r\n }\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"IndexPage\", \"NAV\", \"Conitnue button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n\r\n const { formData } = this.state;\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n

Our policyholders save $2,000 on average over 5 years.
\r\n Estimate your savings:

\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
\r\n \r\n \r\n
\r\n
\r\n\r\n {this.state.selectedOption && (\r\n
\r\n

Customer Search:

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {\r\n this.state.disable\r\n ? event.preventDefault()}>\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\nexport default withRouter(Home_page);\r\n","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport './HowItWorks_page.css';\r\nimport '../styles.css';\r\nimport { Redirect } from 'react-router';\r\nfunction HowItWorks_page() {\r\n\r\n function onButtonClick() {\r\n \r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'HowItWorksPage', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n session_id: localStorage.getItem('session_id'),\r\n HowItWorksPage_continue: 1\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n },\r\n (error) => {\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Thanks for getting an estimate with Mutual Assurance Society! With our unique perpetual Homeowner policy, members pay a one-time premium the first year and then a low annual assessment that is a fraction of the premium each year after that. This means significantly lower costs over the life of the policy.

\r\n\r\n

The process of becoming a member usually takes 2-4 weeks and involves a thorough review of your home.

\r\n\r\n
Here's How it works:
\r\n \r\n
\r\n

1

\r\n \"Step_1\"\r\n

Estimate. We’ll give you an estimated insurance quote today. The quote may change depending on the details of your home that are found during the inspection.

\r\n \r\n
\r\n
\r\n

2

\r\n \"Step_2\"\r\n

Inspection. Schedule your free home inspection. We inspect the interior and exterior of your home to identify any safety hazards.

\r\n
\r\n
\r\n

3

\r\n \"Step_3\"\r\n

Review. An underwriter will review the inspection report and discuss any changes needed to improve your home’s safety.

\r\n
\r\n
\r\n

4

\r\n \"Step_4\"\r\n

Quote. Get a firm quote for your policy.

\r\n
\r\n
\r\n

5

\r\n \"Step_5\"\r\n

Start Saving. Once you become a member, you’ll start saving thousands on your home insurance.

\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\r\nexport default HowItWorks_page\r\n","import React, { useState, useEffect } from 'react';\r\n\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height\r\n };\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n return windowDimensions;\r\n}","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Search } from \"@material-ui/icons\";\r\nimport { getGoogleApiKey } from '../API/Model';\r\n\r\nconst mapApiJs = 'https://maps.googleapis.com/maps/api/js';\r\n//const geocodeJson = 'https://maps.googleapis.com/maps/api/geocode/json';\r\n\r\nfunction loadAsyncScript(src) {\r\n return new Promise(resolve => {\r\n const script = document.createElement(\"script\");\r\n Object.assign(script, {\r\n type: \"text/javascript\",\r\n async: true,\r\n src\r\n })\r\n script.addEventListener(\"load\", () => resolve(script));\r\n document.head.appendChild(script);\r\n })\r\n}\r\n\r\nfunction GooglePlacesMailingAddress({ mailing_setAddres, mailing_addres, onChangeMailingAddres }) {\r\n\r\n const searchInput = useRef(null);\r\n const [address, setAddress] = useState(\"\");\r\n\r\n\r\n //load map script\r\n const initMapScript = (apiKey) => {\r\n // if script already loaded\r\n if (window.google) {\r\n return Promise.resolve();\r\n }\r\n const src = `${mapApiJs}?key=${apiKey}&libraries=places&v=weekly`;\r\n return loadAsyncScript(src);\r\n }\r\n\r\n const extractAddress = (place) => {\r\n\r\n const address = {\r\n city: \"\",\r\n state: \"\",\r\n zip: \"\",\r\n country: \"\",\r\n plain() {\r\n const city = this.city ? this.city + \", \" : \"\";\r\n const zip = this.zip ? this.zip + \", \" : \"\";\r\n const state = this.state ? this.state + \", \" : \"\";\r\n return city + zip + state + this.country;\r\n }\r\n }\r\n\r\n if (!Array.isArray(place?.address_components)) {\r\n return address;\r\n }\r\n\r\n place.address_components.forEach(component => {\r\n const types = component.types;\r\n const value = component.long_name;\r\n\r\n\r\n if (types.includes(\"locality\")) {\r\n address.city = value;\r\n //window.localStorage.setItem(\"city\", value);\r\n }\r\n\r\n if (types.includes(\"administrative_area_level_1\")) {\r\n address.state = value;\r\n //window.localStorage.setItem(\"state\", value);\r\n }\r\n\r\n if (types.includes(\"postal_code\")) {\r\n address.zip = value;\r\n //window.localStorage.setItem(\"zip\", value);\r\n }\r\n\r\n if (types.includes(\"country\")) {\r\n address.country = value;\r\n //window.localStorage.setItem(\"country\", value);\r\n }\r\n if (types.includes(\"route\")) {\r\n address.street = value;\r\n // window.localStorage.setItem(\"street\", address.street_number + \" \" + address.street);\r\n }\r\n if (types.includes(\"street_number\")) {\r\n address.street_number = value;\r\n // window.localStorage.setItem(\"street\", address.street_number);\r\n }\r\n\r\n });\r\n\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n mail_addr_street: address.street_number + \" \" + address.street,\r\n mail_addr_city: address.city,\r\n mail_addr_zip: address.zip,\r\n mail_addr_state: address.state,\r\n }));\r\n\r\n mailing_setAddres({\r\n Street: address.street_number + \" \" + address.street,\r\n City: address.city,\r\n Zip: address.zip,\r\n State: address.state,\r\n })\r\n\r\n return address.street_number + \" \" + address.street;\r\n }\r\n\r\n const onChangeAddress = (autocomplete) => {\r\n const place = autocomplete.getPlace();\r\n setAddress(extractAddress(place));\r\n }\r\n\r\n\r\n\r\n\r\n const initAutocomplete = () => {\r\n if (!searchInput.current) return;\r\n\r\n const autocomplete = new window.google.maps.places.Autocomplete(searchInput.current);\r\n autocomplete.setFields([\"address_component\"]);\r\n autocomplete.addListener(\"place_changed\", () => onChangeAddress(autocomplete));\r\n }\r\n\r\n useEffect(() => {\r\n getGoogleApiKey().then(res => initMapScript(res).then(() => initAutocomplete()))\r\n }, []);\r\n\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default GooglePlacesMailingAddress;","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Search } from \"@material-ui/icons\";\r\nimport { getGoogleApiKey } from '../API/Model';\r\n\r\nconst mapApiJs = 'https://maps.googleapis.com/maps/api/js';\r\n//const geocodeJson = 'https://maps.googleapis.com/maps/api/geocode/json';\r\n\r\nfunction loadAsyncScript(src) {\r\n return new Promise(resolve => {\r\n const script = document.createElement(\"script\");\r\n Object.assign(script, {\r\n type: \"text/javascript\",\r\n async: true,\r\n src\r\n })\r\n script.addEventListener(\"load\", () => resolve(script));\r\n document.head.appendChild(script);\r\n })\r\n}\r\n\r\nfunction GooglePlacesPriorAddress({ prior_setAddres, prior_addres, onChangePriorAddres }) {\r\n\r\n const searchInput = useRef(null);\r\n const [address, setAddress] = useState(\"\");\r\n\r\n\r\n //load map script\r\n const initMapScript = (apiKey) => {\r\n // if script already loaded\r\n if (window.google) {\r\n return Promise.resolve();\r\n }\r\n const src = `${mapApiJs}?key=${apiKey}&libraries=places&v=weekly`;\r\n return loadAsyncScript(src);\r\n }\r\n\r\n const extractAddress = (place) => {\r\n\r\n const address = {\r\n city: \"\",\r\n state: \"\",\r\n zip: \"\",\r\n country: \"\",\r\n plain() {\r\n const city = this.city ? this.city + \", \" : \"\";\r\n const zip = this.zip ? this.zip + \", \" : \"\";\r\n const state = this.state ? this.state + \", \" : \"\";\r\n return city + zip + state + this.country;\r\n }\r\n }\r\n\r\n if (!Array.isArray(place?.address_components)) {\r\n return address;\r\n }\r\n\r\n place.address_components.forEach(component => {\r\n const types = component.types;\r\n const value = component.long_name;\r\n\r\n\r\n if (types.includes(\"locality\")) {\r\n address.city = value;\r\n //window.localStorage.setItem(\"city\", value);\r\n }\r\n\r\n if (types.includes(\"administrative_area_level_1\")) {\r\n address.state = value;\r\n //window.localStorage.setItem(\"state\", value);\r\n }\r\n\r\n if (types.includes(\"postal_code\")) {\r\n address.zip = value;\r\n //window.localStorage.setItem(\"zip\", value);\r\n }\r\n\r\n if (types.includes(\"country\")) {\r\n address.country = value;\r\n //window.localStorage.setItem(\"country\", value);\r\n }\r\n if (types.includes(\"route\")) {\r\n address.street = value;\r\n // window.localStorage.setItem(\"street\", address.street_number + \" \" + address.street);\r\n }\r\n if (types.includes(\"street_number\")) {\r\n address.street_number = value;\r\n // window.localStorage.setItem(\"street\", address.street_number);\r\n }\r\n\r\n });\r\n\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n prior_addr_street: address.street_number + \" \" + address.street,\r\n prior_addr_city: address.city,\r\n prior_addr_zip: address.zip,\r\n prior_addr_state: address.state,\r\n }));\r\n\r\n prior_setAddres({\r\n Street: address.street_number + \" \" + address.street,\r\n City: address.city,\r\n Zip: address.zip,\r\n State: address.state,\r\n })\r\n\r\n return address.street_number + \" \" + address.street;\r\n }\r\n\r\n const onChangeAddress = (autocomplete) => {\r\n const place = autocomplete.getPlace();\r\n setAddress(extractAddress(place));\r\n }\r\n\r\n\r\n\r\n\r\n const initAutocomplete = () => {\r\n if (!searchInput.current) return;\r\n\r\n const autocomplete = new window.google.maps.places.Autocomplete(searchInput.current);\r\n autocomplete.setFields([\"address_component\"]);\r\n autocomplete.addListener(\"place_changed\", () => onChangeAddress(autocomplete));\r\n }\r\n\r\n useEffect(() => {\r\n getGoogleApiKey().then(res => initMapScript(res).then(() => initAutocomplete()))\r\n }, []);\r\n\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default GooglePlacesPriorAddress;","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Search } from \"@material-ui/icons\";\r\nimport { getGoogleApiKey } from '../API/Model';\r\n\r\nconst mapApiJs = 'https://maps.googleapis.com/maps/api/js';\r\n//const geocodeJson = 'https://maps.googleapis.com/maps/api/geocode/json';\r\n\r\nfunction loadAsyncScript(src) {\r\n return new Promise(resolve => {\r\n const script = document.createElement(\"script\");\r\n Object.assign(script, {\r\n type: \"text/javascript\",\r\n async: true,\r\n src\r\n })\r\n script.addEventListener(\"load\", () => resolve(script));\r\n document.head.appendChild(script);\r\n })\r\n}\r\n\r\nfunction GooglePlacesPropertyAddress({ setAddres, addres, onChangeAddres }) {\r\n\r\n const searchInput = useRef(null);\r\n const [address, setAddress] = useState(JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_street);\r\n\r\n\r\n //load map script\r\n const initMapScript = (apiKey) => {\r\n // if script already loaded\r\n if (window.google) {\r\n return Promise.resolve();\r\n }\r\n const src = `${mapApiJs}?key=${apiKey}&libraries=places&v=weekly`;\r\n return loadAsyncScript(src);\r\n }\r\n\r\n const extractAddress = (place) => {\r\n\r\n const address = {\r\n city: \"\",\r\n state: \"\",\r\n zip: \"\",\r\n country: \"\",\r\n plain() {\r\n const city = this.city ? this.city + \", \" : \"\";\r\n const zip = this.zip ? this.zip + \", \" : \"\";\r\n const state = this.state ? this.state + \", \" : \"\";\r\n return city + zip + state + this.country;\r\n }\r\n }\r\n\r\n if (!Array.isArray(place?.address_components)) {\r\n return address;\r\n }\r\n\r\n place.address_components.forEach(component => {\r\n const types = component.types;\r\n const value = component.long_name;\r\n\r\n\r\n if (types.includes(\"locality\")) {\r\n address.city = value;\r\n //window.localStorage.setItem(\"city\", value);\r\n }\r\n\r\n if (types.includes(\"administrative_area_level_1\")) {\r\n address.state = value;\r\n //window.localStorage.setItem(\"state\", value);\r\n }\r\n\r\n if (types.includes(\"postal_code\")) {\r\n address.zip = value;\r\n //window.localStorage.setItem(\"zip\", value);\r\n }\r\n\r\n if (types.includes(\"country\")) {\r\n address.country = value;\r\n //window.localStorage.setItem(\"country\", value);\r\n }\r\n if (types.includes(\"route\")) {\r\n address.street = value;\r\n // window.localStorage.setItem(\"street\", address.street_number + \" \" + address.street);\r\n }\r\n if (types.includes(\"street_number\")) {\r\n address.street_number = value;\r\n // window.localStorage.setItem(\"street\", address.street_number);\r\n }\r\n\r\n });\r\n\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n main_addr_street: address.street_number + \" \" + address.street,\r\n main_addr_city: address.city,\r\n main_addr_zip: address.zip,\r\n main_addr_state: address.state,\r\n }));\r\n\r\n setAddres({\r\n Street: address.street_number + \" \" + address.street,\r\n City: address.city,\r\n Zip: address.zip,\r\n State: address.state,\r\n })\r\n\r\n return address.street_number + \" \" + address.street;\r\n }\r\n\r\n const onChangeAddress = (autocomplete) => {\r\n const place = autocomplete.getPlace();\r\n setAddress(extractAddress(place));\r\n }\r\n\r\n\r\n\r\n\r\n const initAutocomplete = () => {\r\n if (!searchInput.current) return;\r\n\r\n const autocomplete = new window.google.maps.places.Autocomplete(searchInput.current);\r\n autocomplete.setFields([\"address_component\"]);\r\n autocomplete.addListener(\"place_changed\", () => onChangeAddress(autocomplete));\r\n }\r\n\r\n useEffect(() => {\r\n getGoogleApiKey().then(res => initMapScript(res).then(() => initAutocomplete()))\r\n }, []);\r\n\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default GooglePlacesPropertyAddress;","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport Alert from '../Additional/Alert';\r\nimport { createQuote, updateQuote, fetchQuote, createActivityQuoteDB } from '../API/Model';\r\nimport './YourInfo_page.css';\r\nimport '../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport GooglePlacesMailingAddress from './GooglePlacesMailingAddress';\r\nimport GooglePlacesPriorAddress from './GooglePlacesPriorAddress';\r\nimport GooglePlacesPropertyAddress from './GooglePlacesPropertyAddress';\r\nimport Navigation from '../Overlays/Navigation';\r\nimport moment from \"moment\";\r\n\r\nfunction YourInfo() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [mailing_address_status, setMailing_address_status] = useState(false);\r\n const [prior_address_status, setPrior_address_status] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n const [existingCustomer, setExistingCustomer] = useState(\"\");\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n\r\n const [joint, setJoint_state] = useState({\r\n status: false,\r\n message: \"+ Add co-applicant\"\r\n\r\n });\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [mailing_addres, mailing_setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [prior_addres, prior_setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n MI: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const [personal_info_2, setPersonalInfo_2] = useState({\r\n First: \"\",\r\n MI: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n let quote_DTOInsured = [\r\n {\r\n EntityTypeCd: (joint.status === true ? \"Joint\" : \"Individual\"),\r\n PreferredDeliveryMethod: \"Email\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"Email\",\r\n }\r\n ],\r\n NameInfo: [\r\n {\r\n NameTypeCd: \"InsuredName\",\r\n GivenName: personal_info.First,\r\n OtherGivenName: personal_info.MI,\r\n Surname: personal_info.Last,\r\n CommercialName: (joint.status === true\r\n ? (personal_info.Last === personal_info_2.Last\r\n ? personal_info.Last + \", \" + personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\")\r\n + \" and \" + personal_info_2.First + (personal_info_2.MI !== \"\" ? \" \" + personal_info_2.MI : \"\")\r\n : personal_info.Last + \", \" + personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\")\r\n + \" and \" + personal_info_2.Last + \", \" + personal_info_2.First + (personal_info_2.MI !== \"\" ? \" \" + personal_info_2.MI : \"\")\r\n )\r\n : personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\") + \" \" + personal_info.Last),\r\n }\r\n ],\r\n EmailInfo: {\r\n EmailTypeCd: \"InsuredEmail\",\r\n EmailAddr: personal_info.Email,\r\n PreferredInd: \"No\",\r\n EmailOption: \"PrimaryEmailOnly\"\r\n },\r\n PhoneInfo: {\r\n PhoneTypeCd: \"InsuredPhonePrimary\",\r\n PhoneNumber: personal_info.Phone,\r\n PreferredInd: \"No\",\r\n PhoneName: \"Mobile\"\r\n },\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: (mailing_address_status === true ? mailing_addres.Street : addres.Street),\r\n PostalCode: (mailing_address_status === true ? mailing_addres.Zip : addres.Zip),\r\n City: (mailing_address_status === true ? mailing_addres.City : addres.City),\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: addres.Street,\r\n PostalCode: addres.Zip,\r\n City: addres.City,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: addres.Street,\r\n PostalCode: addres.Zip,\r\n City: addres.City,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: addres.Street,\r\n PostalCode: addres.Zip,\r\n City: addres.City,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: prior_addres.Street,\r\n PostalCode: prior_addres.Zip,\r\n City: prior_addres.City,\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n (joint.status === true ? {\r\n\r\n PartyTypeCd: \"InsuredPartyJoint\",\r\n Status: \"Active\",\r\n NameInfo: [\r\n {\r\n NameTypeCd: \"InsuredNameJoint\",\r\n GivenName: personal_info_2.First,\r\n OtherGivenName: personal_info_2.MI,\r\n Surname: personal_info_2.Last,\r\n CommercialName: personal_info_2.First + (personal_info_2.MI !== \"\" ? \" \" + personal_info_2.MI : \"\") + \" \" + personal_info_2.Last,\r\n }\r\n ],\r\n }\r\n : null),\r\n ],\r\n IndexName: (joint.status === true\r\n ? (personal_info.Last === personal_info_2.Last\r\n ? personal_info.Last + \", \" + personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\")\r\n + \" and \" + personal_info_2.First + (personal_info_2.MI !== \"\" ? \" \" + personal_info_2.MI : \"\")\r\n : personal_info.Last + \", \" + personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\")\r\n + \" and \" + personal_info_2.Last + \", \" + personal_info_2.First + (personal_info_2.MI !== \"\" ? \" \" + personal_info_2.MI : \"\")\r\n )\r\n : personal_info.First + (personal_info.MI !== \"\" ? \" \" + personal_info.MI : \"\") + \" \" + personal_info.Last)\r\n }\r\n ]\r\n\r\n\r\n\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: customerRef,\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: \"20220411\",\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"NamedStormDedInd\": 1,\r\n \"CovALimit\": covA,\r\n \"ExistingMemberDiscount\": existingCustomer == \"YES\" ? \"Yes\" : \"No\",\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n QuestionReplies: {\r\n \"QuestionReply\": [\r\n {\r\n \"Name\": \"ExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"RoofTypeExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"ExteriorWallsAsbestosExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"DogsExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"numberOfDogsExistingCustomer\",\r\n \"Value\": \"0\"\r\n },\r\n {\r\n \"Name\": \"trampolineTreehouseSkateRampExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"PoolExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"FloorRadiantHeatExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"CentralHeatExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"BusinessInHomeExistingCustomer\",\r\n \"Value\": \"\"\r\n },\r\n {\r\n \"Name\": \"HomeSharingExistingCustomer\",\r\n \"Value\": \"\"\r\n }\r\n ]\r\n },\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: (prior_address_status === true ? \"Yes\" : \"No\"),\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-00\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n const onChangeUser_2 = (e) => {\r\n setPersonalInfo_2({ ...personal_info_2, [e.target.name]: e.target.value });\r\n }\r\n const onChangeAddres = (e) => {\r\n setAddres({ ...addres, [e.target.name]: e.target.value });\r\n }\r\n const onChangeMailingAddres = (e) => {\r\n mailing_setAddres({ ...mailing_addres, [e.target.name]: e.target.value });\r\n }\r\n const onChangePriorAddres = (e) => {\r\n prior_setAddres({ ...prior_addres, [e.target.name]: e.target.value });\r\n }\r\n const handleChange_mailing_address = () => {\r\n setMailing_address_status(!mailing_address_status);\r\n };\r\n\r\n const handleChange_prior_address = () => {\r\n setPrior_address_status(!prior_address_status);\r\n };\r\n const copyAddreses = () => {\r\n prior_setAddres({\r\n ...addres,\r\n Street: mailing_addres.Street,\r\n City: mailing_addres.City,\r\n Zip: mailing_addres.Zip,\r\n State: mailing_addres.State\r\n });\r\n };\r\n\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n //CoApplicant Personal Information\r\n\r\n if (joint.status === true) {\r\n\r\n if (!personal_info_2.First) {\r\n errors.CoApplicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info_2.Last) {\r\n errors.CoApplicant_Last = \"Last name is required!\";\r\n }\r\n }\r\n\r\n //Main Address\r\n\r\n if (!addres.Street) {\r\n errors.MainStreet = \"Street is required!\";\r\n }\r\n if (!addres.City) {\r\n errors.MainCity = \"City is required!\";\r\n }\r\n if (!addres.Zip) {\r\n errors.MainZip = \"Zip is required!\";\r\n }\r\n\r\n //Mailing Address\r\n if (mailing_address_status === true) {\r\n if (!mailing_addres.Street) {\r\n errors.MailStreet = \"Street is required!\";\r\n }\r\n if (!mailing_addres.City) {\r\n errors.MailCity = \"City is required!\";\r\n }\r\n if (!mailing_addres.Zip) {\r\n errors.MailZip = \"Zip is required!\";\r\n }\r\n }\r\n //Prior Address\r\n if (prior_address_status === true) {\r\n if (!prior_addres.Street) {\r\n errors.PriorStreet = \"Street is required!\";\r\n }\r\n if (!prior_addres.City) {\r\n errors.PriorCity = \"City is required!\";\r\n }\r\n if (!prior_addres.Zip) {\r\n errors.PriorZip = \"Zip is required!\";\r\n }\r\n }\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n CoApplicant_First_Name: personal_info_2.First,\r\n CoApplicant_Last_Name: personal_info_2.Last,\r\n Address: addres.Street,\r\n Zip_code: addres.Zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/createQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n\r\n createActivityQuoteDB(\"YourInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (window.localStorage.getItem(\"quote_number\") === null) {\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/checkEmail', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_Last_Name: personal_info.Last,\r\n Zip_code: addres.Zip\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === undefined) {\r\n setIsSubmit(true);\r\n } else if (Object.keys(formErrors).length === 0) {\r\n window.localStorage.setItem(\"quote_to_send\", JSON.stringify(quote));\r\n setInspectionInfo();\r\n history.push(\"/RetrieveEmailList\");\r\n //let retrive_link = window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ \"RetrieveQuote\";\r\n //setError_message(\r\n // \"This email address is already assigned to an existing Estimate. You can retrieve your estimate here\");\r\n //setAlert_state(true);\r\n //setIsSubmit(false);\r\n //window.scrollTo(0, 0);\r\n }\r\n })\r\n } else {\r\n setIsSubmit(true);\r\n }\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"YourInfo\", \"PL\", \"YourInfo page loaded\");\r\n localStorage.setItem('current_page', \"YourInfo\");\r\n\r\n setAddres({\r\n ...addres,\r\n Street: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_street,\r\n City: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_city,\r\n Zip: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_zip,\r\n State: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_state\r\n });\r\n\r\n setPersonalInfo({\r\n ...personal_info,\r\n First: JSON.parse(localStorage.getItem(\"personal_information\")).first_name,\r\n Last: JSON.parse(localStorage.getItem(\"personal_information\")).last_name,\r\n MI: JSON.parse(localStorage.getItem(\"personal_information\")).mi,\r\n Email: JSON.parse(localStorage.getItem(\"personal_information\")).email,\r\n Phone: JSON.parse(localStorage.getItem(\"personal_information\")).phone\r\n });\r\n\r\n setPersonalInfo_2({\r\n ...personal_info_2,\r\n First: JSON.parse(localStorage.getItem(\"personal_information\")).co_first_name,\r\n Last: JSON.parse(localStorage.getItem(\"personal_information\")).co_last_name,\r\n MI: JSON.parse(localStorage.getItem(\"personal_information\")).co_mi,\r\n Email: JSON.parse(localStorage.getItem(\"personal_information\")).email,\r\n Phone: JSON.parse(localStorage.getItem(\"personal_information\")).phone\r\n });\r\n\r\n prior_setAddres({\r\n ...prior_addres,\r\n Street: JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr_street,\r\n City: JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr_city,\r\n Zip: JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr_zip,\r\n State: JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr_state\r\n });\r\n\r\n setCustomerRef( JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n setExistingCustomer(localStorage.getItem(\"existing_customer\"))\r\n\r\n if (JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr === true) {\r\n\r\n mailing_setAddres({\r\n ...mailing_addres,\r\n Street: JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr_street,\r\n City: JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr_city,\r\n Zip: JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr_zip,\r\n State: JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr_state\r\n });\r\n\r\n setMailing_address_status(true);\r\n } else {\r\n\r\n mailing_setAddres({\r\n ...mailing_addres,\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_state\r\n });\r\n }\r\n\r\n if (JSON.parse(localStorage.getItem(\"personal_information\")).co_applicant === true) {\r\n setJoint_state({\r\n status: true,\r\n message: \"- Remove co-applicant.\"\r\n });\r\n }\r\n if (JSON.parse(localStorage.getItem(\"personal_information\")).mail_addr === true) {\r\n setMailing_address_status(true);\r\n }\r\n if (JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr === true) {\r\n setPrior_address_status(true);\r\n }\r\n setOnLoad(false);\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n mi: personal_info.MI,\r\n co_applicant: joint.status,\r\n co_first_name: personal_info_2.First,\r\n co_last_name: personal_info_2.Last,\r\n co_mi: personal_info_2.MI,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n perf_contact: \"Email\",\r\n main_addr_street: addres.Street,\r\n main_addr_city: addres.City,\r\n main_addr_zip: addres.Zip,\r\n main_addr_state: addres.State,\r\n mail_addr: mailing_address_status,\r\n mail_addr_street: mailing_addres.Street,\r\n mail_addr_city: mailing_addres.City,\r\n mail_addr_zip: mailing_addres.Zip,\r\n mail_addr_state: mailing_addres.State,\r\n prior_addr: prior_address_status,\r\n prior_addr_street: prior_addres.Street,\r\n prior_addr_city: prior_addres.City,\r\n prior_addr_zip: prior_addres.Zip,\r\n prior_addr_state: prior_addres.State,\r\n\r\n }));\r\n\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n\r\n if (addres.State === \"Virginia\") {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n\r\n if (window.localStorage.getItem(\"quote_number\") === null) {\r\n\r\n async function fetchData() {\r\n const response = await createQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n if (response !== \"Service temporarily unavailable. Please try again later.\") {\r\n databaseUpdate();\r\n } \r\n\r\n createActivityQuoteDB(\"YourInfo\", \"API_RES\", \"Create quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"YourInfo\", \"API_REQ\", \"Create quote request\");\r\n fetchData();\r\n }\r\n else {\r\n\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n setquote_information({\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n })\r\n }\r\n fetchData();\r\n }\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n } else {\r\n\r\n setError_message(\"To provide a quote, the property must reside in the state of Virginia.\");\r\n setAlert_state(true);\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n quote_information.DTOApplication[0].DTOInsured = quote_DTOInsured;\r\n quote_information.DTOApplication[0].DTOBasicPolicy[0].RecentMoveIn = (prior_address_status === true ? \"Yes\" : \"No\");\r\n\r\n async function updateData() {\r\n\r\n const response = await updateQuote(JSON.stringify(quote_information));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"YourInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"YourInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n\r\n }\r\n\r\n }, [quote_information]);\r\n\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n \r\n if (quoteStatus === \"SUCCESS\") {\r\n if (JSON.parse(localStorage.getItem(\"quote_information\")).num_stories === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).sqft === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).num_bath_full === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).build_year === undefined) {\r\n \r\n\r\n createActivityQuoteDB(\"YourInfo\", \"RCE_ERROR\", \"RCE information retrieve error\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"RCE\",\r\n })\r\n })\r\n\r\n setError_message(\"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\");\r\n setAlert_state(true);\r\n setIsSubmit(false);\r\n setQuoteStatus(null);\r\n window.scrollTo(0, 0);\r\n\r\n\r\n } else {\r\n setInspectionInfo();\r\n history.push(\"/PropertyInfo\");\r\n }\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n\r\n function setInspectionInfo() {\r\n\r\n let inspection_contact_name = JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name\r\n\r\n if (inspection_contact_name === undefined) {\r\n let middle_name = \"\";\r\n if (personal_info.MI.length !== 0) {\r\n middle_name = personal_info.MI + \" \";\r\n }\r\n inspection_contact_name = personal_info.First + \" \" + middle_name + personal_info.Last;\r\n }\r\n\r\n let inspection_contact_type = JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_type\r\n if (inspection_contact_type === undefined) {\r\n inspection_contact_type = \"Assured\";\r\n }\r\n\r\n let inspection_pref_contact_type = JSON.parse(localStorage.getItem(\"personal_information\")).inspection_pref_contact_type\r\n if (inspection_pref_contact_type === undefined) {\r\n\r\n inspection_pref_contact_type = \"Email\";\r\n }\r\n let inspection_number = JSON.parse(localStorage.getItem(\"personal_information\")).inspection_number\r\n if (inspection_number === undefined) {\r\n inspection_number = personal_info.Phone;\r\n }\r\n\r\n let inspection_email = JSON.parse(localStorage.getItem(\"personal_information\")).inspection_email\r\n if (inspection_email === undefined) {\r\n inspection_email = personal_info.Email;\r\n }\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n inspection_contact_name,\r\n inspection_contact_type,\r\n inspection_pref_contact_type,\r\n inspection_number,\r\n inspection_email,\r\n }));\r\n }\r\n\r\n\r\n function showJoint() {\r\n\r\n if (joint.status === false) {\r\n setJoint_state({\r\n status: true,\r\n message: \"- Remove co-applicant.\"\r\n });\r\n } else {\r\n setJoint_state({\r\n status: false,\r\n message: \"+ Add co-applicant\"\r\n });\r\n }\r\n };\r\n function onBackButtonClick() {\r\n createActivityQuoteDB(\"YourInfo\", \"NAV\", \"Back button\");\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n \r\n\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n\r\n\r\n

Tell us about yourself

\r\n\r\n
\r\n
\r\n\r\n

Your name

\r\n
\r\n\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n\r\n
\r\n\r\n
\r\n \r\n

{formErrors.Applicant_MI}

\r\n\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n\r\n\r\n
\r\n
\r\n

{joint.message}

\r\n\r\n {joint.status === true && <>\r\n

Co-application Name

\r\n }\r\n
\r\n\r\n {joint.status === true && <>\r\n\r\n
\r\n\r\n\r\n \r\n\r\n

{formErrors.CoApplicant_First}

\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n

{formErrors.CoApplicant_MI}

\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n

{formErrors.CoApplicant_Last}

\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

Email

\r\n\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n\r\n

Phone

\r\n\r\n\r\n \r\n\r\n

{formErrors.Applicant_Phone}

\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Different mailing address?\r\n\r\n {mailing_address_status === true &&\r\n <>\r\n

Mailing Address

\r\n \r\n

{formErrors.MailStreet}

\r\n }\r\n
\r\n {mailing_address_status === true &&\r\n <>\r\n\r\n
\r\n\r\n \r\n

{formErrors.MailCity}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

{formErrors.MailZip}

\r\n
\r\n \r\n }\r\n\r\n
\r\n
\r\n

Property Address

\r\n \r\n

{formErrors.MainStreet}

\r\n\r\n
\r\n
\r\n\r\n \r\n

{formErrors.MainCity}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

{formErrors.MainZip}

\r\n
\r\n\r\n
\r\n\r\n\r\n <>\r\n
\r\n \r\n\r\n\r\n \r\n New purchase?\r\n\r\n {prior_address_status === true &&\r\n <>\r\n\r\n

Prior Address (Copy from mailing address)

\r\n \r\n

{formErrors.PriorStreet}

\r\n }\r\n
\r\n\r\n {prior_address_status === true &&\r\n <>\r\n\r\n
\r\n\r\n \r\n

{formErrors.PriorCity}

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

{formErrors.PriorZip}

\r\n\r\n
\r\n \r\n }\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n

<Back

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default YourInfo\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport Navigation from '../Overlays/Navigation';\r\nimport { fetchQuote, updateQuote, createActivityQuoteDB } from '../API/Model';\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport './AdditionalInfo_page.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport Alert from '../Additional/Alert';\r\nimport '../styles.css';\r\nimport { Redirect } from 'react-router';\r\n\r\n\r\nfunction AdditionalInfo_page() {\r\n\r\n\r\n let fetch_quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n\r\n const page = 6;\r\n let history = useHistory();\r\n let radio_options = [\"YES\", \"NO\"];\r\n const { height, width } = useWindowDimensions();\r\n const [load, setonLoad] = useState(false);\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n const [updateStatus, set_updateStatus] = useState(false);\r\n const [quote_information, setquote_information] = useState(0);\r\n const [alert, setAlert] = useState({\r\n alert_state: false,\r\n alert_type: 0,\r\n error_message: \"error\",\r\n alert_height: 65,\r\n alert_color: \"#ffb3b3\",\r\n });\r\n\r\n const [member_state, member_setState] = useState(\"NO\");\r\n const [primary_residence, primary_residence_setState] = useState(null);\r\n\r\n\r\n const [existingCustomer, setExistingCustomer] = useState({\r\n pool_roof: \"\",\r\n exterior_walls_asbestos: \"\",\r\n dog_state: \"\",\r\n dogCount: \"\",\r\n trampoline_treehouse_skateboard: \"\",\r\n pool_state: \"\",\r\n pool_locking_gate: \"\",\r\n pool_diving_board: \"\",\r\n floors_wather_based_radiant: \"\",\r\n central_heating: \"\",\r\n buissnes_operations_premises: \"\",\r\n airbnb_or_another: \"\",\r\n });\r\n\r\n const [noExistingCustomer, setNoExistingCustomer] = useState({\r\n\r\n losses_claims_last_3: \"\",\r\n weather_related_loss: \"\",\r\n single_family_dwelling_occupied: \"\",\r\n property_renovated: \"\",\r\n roof_asbestos_rubber_membrane_tar_gravel: \"\",\r\n exterior_walls_asbestos: \"\",\r\n dog_setState: \"\",\r\n dogCount: \"\",\r\n trampoline_treehouse_skateboard: \"\",\r\n pool_state: \"\",\r\n pool_locking_gate: \"\",\r\n pool_diving_board: \"\",\r\n bankruptcies_foreclosures: \"\",\r\n floors_wather_based_radiant: \"\",\r\n central_heating: \"\",\r\n buissnes_operations_premises: \"\",\r\n over_70_years: \"\",\r\n major_systems: \"\",\r\n insurance_in_place_last_3: \"\",\r\n first_homeowner: \"\",\r\n national_historic: \"\",\r\n airbnb_or_another: \"\",\r\n });\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (load === false) {\r\n async function fetchData() {\r\n\r\n const response = await fetchQuote(JSON.stringify(fetch_quote));\r\n setquote_information({\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n })\r\n }\r\n\r\n fetchData();\r\n }\r\n\r\n });\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (quote_information.ExternalValidateBeanExist != undefined) {\r\n\r\n if (load === false) {\r\n createActivityQuoteDB(\"AdditionalInfo\", \"PL\", \"AdditionalInfo page loaded\");\r\n localStorage.setItem('current_page', \"AdditionalInfo\");\r\n try {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/selectQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[0].toString() != \"\")\r\n primary_residence_setState(result[0].toString());\r\n },\r\n (error) => {\r\n\r\n })\r\n\r\n\r\n/* if (quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"ExistingCustomer\").Value)\r\n member_setState(quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"ExistingCustomer\").Value);*/\r\n if (localStorage.getItem(\"existing_customer\"))\r\n member_setState(localStorage.getItem(\"existing_customer\"));\r\n\r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_roof: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"RoofTypeExistingCustomer\").Value,\r\n exterior_walls_asbestos: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"ExteriorWallsAsbestosExistingCustomer\").Value,\r\n dog_state: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"DogsExistingCustomer\").Value,\r\n dogCount: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"numberOfDogsExistingCustomer\").Value,\r\n trampoline_treehouse_skateboard: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"trampolineTreehouseSkateRampExistingCustomer\").Value,\r\n pool_state: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"PoolExistingCustomer\").Value,\r\n pool_locking_gate: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"lockedFenceExistingCustomer\").Value,\r\n pool_diving_board: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"DivingBoardExistingCustomer\").Value,\r\n floors_wather_based_radiant: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"FloorRadiantHeatExistingCustomer\").Value,\r\n central_heating: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"CentralHeatExistingCustomer\").Value,\r\n buissnes_operations_premises: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"BusinessInHomeExistingCustomer\").Value,\r\n airbnb_or_another: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"HomeSharingExistingCustomer\").Value,\r\n })\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n losses_claims_last_3: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"LossesClaimsinLast3YearsNewCustomer\").Value,\r\n weather_related_loss: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"WeatherRelatedLossUnder5000\").Value,\r\n single_family_dwelling_occupied: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"SingleFamilyDwelling\").Value,\r\n property_renovated: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"RenovatedProperty\").Value,\r\n roof_asbestos_rubber_membrane_tar_gravel: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"RoofType\").Value,\r\n exterior_walls_asbestos: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"ExteriorWallsAsbestos\").Value,\r\n dog_state: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"Dogs\").Value,\r\n dogCount: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"numberOfDogs\").Value,\r\n trampoline_treehouse_skateboard: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"trampolineTreehouseSkateRamp\").Value,\r\n pool_state: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"PoolLockedFencedGate\").Value,\r\n pool_locking_gate: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"lockedFence\").Value,\r\n pool_diving_board: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"DivingBoard\").Value,\r\n bankruptcies_foreclosures: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"BankruptcyForeclosures\").Value,\r\n floors_wather_based_radiant: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"FloorRadiantHeat\").Value,\r\n central_heating: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"CentralHeat\").Value,\r\n buissnes_operations_premises: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"BusinessInHome\").Value,\r\n over_70_years: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"HomeAge\").Value,\r\n major_systems: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"MajorSystemsUpdated\").Value,\r\n insurance_in_place_last_3: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"InsuranceInPlaceLast3YearsNewCustomer\").Value,\r\n first_homeowner: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"FirstTimeHomeowner\").Value,\r\n national_historic: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"NatlHistoryRegistry\").Value,\r\n airbnb_or_another: quote_information.DTOApplication[0].QuestionReplies[0].QuestionReply.find((e) => e.Name === \"HomeSharing\").Value,\r\n });\r\n \r\n } catch (e) {\r\n \r\n }\r\n\r\n\r\n setonLoad(true);\r\n\r\n }\r\n\r\n }\r\n\r\n }, [quote_information]);\r\n\r\n\r\n\r\n/* function validateForm() {\r\n let status = 0;\r\n\r\n if (alert.alert_type === 3) { // soft stop error (1 time)\r\n status = 0;\r\n } else { // hard stop error\r\n\r\n if (primary_residence === \"NO\" && member_state === \"NO\") {\r\n status = 3;\r\n }\r\n\r\n if (member_state === \"YES\") {\r\n\r\n if (existingCustomer.trampoline_treehouse_skateboard === \"YES\" ||\r\n existingCustomer.buissnes_operations_premises === \"YES\" ||\r\n existingCustomer.airbnb_or_another === \"YES\" ||\r\n existingCustomer.exterior_walls_asbestos === \"YES\" ||\r\n existingCustomer.floors_wather_based_radiant === \"YES\" ||\r\n existingCustomer.central_heating === \"NO\") {\r\n //status = 2;\r\n status = 3;\r\n }\r\n\r\n if (existingCustomer.dog_state === \"YES\" &&\r\n (\r\n existingCustomer.dogCount !== undefined &&\r\n existingCustomer.dogCount.length !== 0 &&\r\n parseInt(existingCustomer.dogCount) > 4\r\n )) {\r\n status = 3;\r\n }\r\n\r\n if (existingCustomer.pool_state === \"YES\" &&\r\n (\r\n existingCustomer.pool_locking_gate === \"NO\" ||\r\n existingCustomer.pool_diving_board === \"YES\"\r\n )) {\r\n status = 3;\r\n }\r\n\r\n if (existingCustomer.pool_roof === undefined || existingCustomer.pool_roof.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.exterior_walls_asbestos === undefined || existingCustomer.exterior_walls_asbestos.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.dog_state === undefined || existingCustomer.dog_state.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.buissnes_operations_premises === undefined || existingCustomer.buissnes_operations_premises.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.pool_state === undefined || existingCustomer.pool_state.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.floors_wather_based_radiant === undefined || existingCustomer.floors_wather_based_radiant.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.central_heating === undefined || existingCustomer.central_heating.length === 0) {\r\n status = 1;\r\n } else if (existingCustomer.airbnb_or_another === undefined || existingCustomer.airbnb_or_another.length === 0) {\r\n status = 1;\r\n } else if (primary_residence === undefined || primary_residence.length === 0) {\r\n status = 1;\r\n }\r\n\r\n if (existingCustomer.dog_state === \"YES\" &&\r\n (\r\n existingCustomer.dogCount === undefined ||\r\n existingCustomer.dogCount.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n\r\n if (existingCustomer.pool_state === \"YES\" &&\r\n (\r\n existingCustomer.pool_locking_gate === undefined ||\r\n existingCustomer.pool_locking_gate.length === 0 ||\r\n existingCustomer.pool_diving_board === undefined ||\r\n existingCustomer.pool_diving_board.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n }\r\n else {\r\n\r\n if (noExistingCustomer.property_renovated === \"YES\" ||\r\n noExistingCustomer.trampoline_treehouse_skateboard === \"YES\" ||\r\n noExistingCustomer.bankruptcies_foreclosures === \"YES\" ||\r\n noExistingCustomer.buissnes_operations_premises === \"YES\" ||\r\n noExistingCustomer.airbnb_or_another === \"YES\" || \r\n noExistingCustomer.single_family_dwelling_occupied === \"NO\" ||\r\n noExistingCustomer.exterior_walls_asbestos === \"YES\" ||\r\n noExistingCustomer.floors_wather_based_radiant === \"YES\" ||\r\n noExistingCustomer.central_heating === \"NO\") {\r\n\r\n //status = 2;\r\n \r\n = 3;\r\n }\r\n\r\n if (noExistingCustomer.dog_state === \"YES\" &&\r\n (\r\n noExistingCustomer.dogCount !== undefined &&\r\n noExistingCustomer.dogCount.length !== 0 &&\r\n parseInt(noExistingCustomer.dogCount) > 4\r\n )) {\r\n status = 3;\r\n }\r\n\r\n if (noExistingCustomer.losses_claims_last_3 === \"YES\" &&\r\n noExistingCustomer.weather_related_loss === \"NO\") {\r\n status = 3;\r\n }\r\n\r\n if (noExistingCustomer.pool_state === \"YES\" &&\r\n (\r\n noExistingCustomer.pool_locking_gate === \"NO\" ||\r\n noExistingCustomer.pool_diving_board === \"YES\"\r\n )) {\r\n status = 3;\r\n }\r\n\r\n if (noExistingCustomer.over_70_years === \"YES\" &&\r\n (\r\n noExistingCustomer.national_historic === \"YES\" ||\r\n noExistingCustomer.major_systems === \"NO\"\r\n )) {\r\n status = 3;\r\n }\r\n\r\n if (noExistingCustomer.insurance_in_place_last_3 === \"NO\" &&\r\n noExistingCustomer.first_homeowner === \"NO\") {\r\n status = 3;\r\n }\r\n\r\n\r\n if (noExistingCustomer.losses_claims_last_3 === undefined || noExistingCustomer.losses_claims_last_3.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.single_family_dwelling_occupied === undefined || noExistingCustomer.single_family_dwelling_occupied.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.property_renovated === undefined || noExistingCustomer.property_renovated.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.roof_asbestos_rubber_membrane_tar_gravel === undefined || noExistingCustomer.roof_asbestos_rubber_membrane_tar_gravel.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.exterior_walls_asbestos === undefined || noExistingCustomer.exterior_walls_asbestos.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.dog_state === undefined || noExistingCustomer.dog_state.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.buissnes_operations_premises === undefined || noExistingCustomer.buissnes_operations_premises.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.pool_state === undefined || noExistingCustomer.pool_state.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.bankruptcies_foreclosures === undefined || noExistingCustomer.bankruptcies_foreclosures.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.floors_wather_based_radiant === undefined || noExistingCustomer.floors_wather_based_radiant.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.central_heating === undefined || noExistingCustomer.central_heating.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.over_70_years === undefined || noExistingCustomer.over_70_years.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.insurance_in_place_last_3 === undefined || noExistingCustomer.insurance_in_place_last_3.length === 0) {\r\n status = 1;\r\n } else if (noExistingCustomer.airbnb_or_another === undefined || noExistingCustomer.airbnb_or_another.length === 0) {\r\n status = 1;\r\n } else if (primary_residence === undefined || primary_residence.length === 0) {\r\n status = 1;\r\n }\r\n\r\n if (noExistingCustomer.losses_claims_last_3 === \"YES\" &&\r\n (\r\n noExistingCustomer.weather_related_loss === undefined ||\r\n noExistingCustomer.weather_related_loss.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n \r\n if (noExistingCustomer.dog_state === \"YES\" &&\r\n (\r\n noExistingCustomer.dogCount === undefined ||\r\n noExistingCustomer.dogCount.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n\r\n if (noExistingCustomer.pool_state === \"YES\" &&\r\n (\r\n noExistingCustomer.pool_locking_gate === undefined ||\r\n noExistingCustomer.pool_locking_gate.length === 0 ||\r\n noExistingCustomer.pool_diving_board === undefined ||\r\n noExistingCustomer.pool_diving_board.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n\r\n if (noExistingCustomer.over_70_years === \"YES\" &&\r\n (\r\n noExistingCustomer.national_historic === undefined ||\r\n noExistingCustomer.national_historic.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n\r\n if (noExistingCustomer.national_historic !== undefined &&\r\n noExistingCustomer.national_historic === \"NO\" &&\r\n (\r\n noExistingCustomer.major_systems === undefined ||\r\n noExistingCustomer.major_systems.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n\r\n if (noExistingCustomer.insurance_in_place_last_3 !== undefined &&\r\n noExistingCustomer.insurance_in_place_last_3 === \"NO\" &&\r\n (\r\n noExistingCustomer.first_homeowner === undefined ||\r\n noExistingCustomer.first_homeowner.length === 0\r\n )) {\r\n status = 1;\r\n }\r\n }\r\n }\r\n return status;\r\n }*/\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (updateStatus) {\r\n\r\n //let status = validateForm();\r\n\r\n //if (status === 0) {\r\n\r\n let UpadatedQuestionReplies = {\r\n QuestionReply: [\r\n {\r\n Name: \"ExistingCustomer\",\r\n Value: member_state\r\n },\r\n {\r\n Name: \"RoofTypeExistingCustomer\",\r\n Value: existingCustomer.pool_roof,\r\n },\r\n {\r\n Name: \"ExteriorWallsAsbestosExistingCustomer\",\r\n Value: existingCustomer.exterior_walls_asbestos,\r\n },\r\n {\r\n Name: \"DogsExistingCustomer\",\r\n Value: existingCustomer.dog_state,\r\n },\r\n {\r\n Name: \"numberOfDogsExistingCustomer\",\r\n Value: existingCustomer.dogCount,\r\n VisibleInd: \"Yes\"\r\n },\r\n {\r\n Name: \"BusinessInHomeExistingCustomer\",\r\n Value: existingCustomer.buissnes_operations_premises,\r\n },\r\n {\r\n Name: \"trampolineTreehouseSkateRampExistingCustomer\",\r\n Value: existingCustomer.trampoline_treehouse_skateboard,\r\n },\r\n {\r\n Name: \"PoolExistingCustomer\",\r\n Value: existingCustomer.pool_state,\r\n VisibleInd: \"Yes\"\r\n },\r\n {\r\n Name: \"lockedFenceExistingCustomer\",\r\n Value: existingCustomer.pool_locking_gate,\r\n },\r\n {\r\n Name: \"DivingBoardExistingCustomer\",\r\n Value: existingCustomer.pool_diving_board,\r\n },\r\n {\r\n Name: \"FloorRadiantHeatExistingCustomer\",\r\n Value: existingCustomer.floors_wather_based_radiant,\r\n },\r\n {\r\n Name: \"CentralHeatExistingCustomer\",\r\n Value: existingCustomer.central_heating,\r\n },\r\n {\r\n Name: \"HomeSharingExistingCustomer\",\r\n Value: existingCustomer.airbnb_or_another,\r\n },\r\n\r\n {\r\n Name: \"LossesClaimsinLast3YearsNewCustomer\",\r\n Value: noExistingCustomer.losses_claims_last_3,\r\n },\r\n {\r\n Name: \"SingleFamilyDwelling\",\r\n Value: noExistingCustomer.single_family_dwelling_occupied,\r\n },\r\n {\r\n Name: \"RenovatedProperty\",\r\n Value: noExistingCustomer.property_renovated\r\n },\r\n {\r\n Name: \"RoofType\",\r\n Value: noExistingCustomer.roof_asbestos_rubber_membrane_tar_gravel,\r\n },\r\n {\r\n Name: \"ExteriorWallsAsbestos\",\r\n Value: noExistingCustomer.exterior_walls_asbestos,\r\n },\r\n {\r\n Name: \"Dogs\",\r\n Value: noExistingCustomer.dog_state,\r\n },\r\n {\r\n Name: \"numberOfDogs\",\r\n Value: noExistingCustomer.dogCount,\r\n VisibleInd: \"Yes\"\r\n },\r\n {\r\n Name: \"BusinessInHome\",\r\n Value: noExistingCustomer.buissnes_operations_premises,\r\n },\r\n\r\n {\r\n Name: \"trampolineTreehouseSkateRamp\",\r\n Value: noExistingCustomer.trampoline_treehouse_skateboard,\r\n },\r\n {\r\n Name: \"PoolLockedFencedGate\", // Pool ???\r\n Value: noExistingCustomer.pool_state,\r\n VisibleInd: \"Yes\"\r\n },\r\n {\r\n Name: \"lockedFence\",\r\n Value: noExistingCustomer.pool_locking_gate,\r\n },\r\n\r\n {\r\n Name: \"DivingBoard\",\r\n Value: noExistingCustomer.pool_diving_board,\r\n },\r\n {\r\n Name: \"BankruptcyForeclosures\",\r\n Value: noExistingCustomer.bankruptcies_foreclosures,\r\n },\r\n {\r\n Name: \"FloorRadiantHeat\",\r\n Value: noExistingCustomer.floors_wather_based_radiant,\r\n },\r\n {\r\n Name: \"CentralHeat\",\r\n Value: noExistingCustomer.central_heating,\r\n },\r\n {\r\n Name: \"HomeAge\",\r\n Value: noExistingCustomer.over_70_years,\r\n },\r\n {\r\n Name: \"InsuranceInPlaceLast3YearsNewCustomer\",\r\n Value: noExistingCustomer.insurance_in_place_last_3,\r\n },\r\n {\r\n Name: \"WeatherRelatedLossUnder5000\",\r\n Value: noExistingCustomer.weather_related_loss,\r\n },\r\n {\r\n Name: \"NatlHistoryRegistry\",\r\n Value: noExistingCustomer.national_historic,\r\n },\r\n {\r\n Name: \"MajorSystemsUpdated\",\r\n Value: noExistingCustomer.major_systems,\r\n },\r\n {\r\n Name: \"FirstTimeHomeowner\",\r\n Value: noExistingCustomer.first_homeowner,\r\n },\r\n {\r\n Name: \"HomeSharing\",\r\n Value: noExistingCustomer.airbnb_or_another,\r\n }\r\n\r\n ]\r\n }\r\n\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/updateQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Primary_Residence: primary_residence,\r\n })\r\n })\r\n\r\n quote_information.DTOApplication[0].QuestionReplies = UpadatedQuestionReplies;\r\n\r\n if (member_state === \"YES\") {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].PoolInd = existingCustomer.pool_state;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfDogs = existingCustomer.dogCount;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ExistingMemberDiscount = \"Yes\";\r\n } else {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].PoolInd = noExistingCustomer.pool_state;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfDogs = noExistingCustomer.dogCount;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ExistingMemberDiscount = \"No\";\r\n }\r\n\r\n if (primary_residence === \"NO\") {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].Description = \"Secondary Dwelling\";\r\n } else {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].Description = \"Primary Dwelling\";\r\n }\r\n\r\n\r\n\r\n async function updateData() {\r\n createActivityQuoteDB(\"AdditionalInfo\", \"API_REQ\", \"Additional questions update request\");\r\n const response = await updateQuote(JSON.stringify(quote_information));\r\n\r\n if (response === \"SUCCESS\") {\r\n createActivityQuoteDB(\"AdditionalInfo\", \"API_RES\", \"Additional questions update response - \" + response);\r\n localStorage.setItem('primary_residence', primary_residence);\r\n setsubmitLoading(false);\r\n history.push(\"/QuoteSummary\");\r\n }\r\n }\r\n setAlert({\r\n ...alert,\r\n alert_type: 0,\r\n });\r\n\r\n updateData();\r\n\r\n /*} else if (status === 1) {\r\n\r\n set_updateStatus(false);\r\n setsubmitLoading(false);\r\n\r\n let h = 0;\r\n if (width < 758) {\r\n h = 105;\r\n } else {\r\n h = 65;\r\n }\r\n\r\n setAlert({\r\n ...alert,\r\n alert_state: true,\r\n alert_type: 1,\r\n alert_height: h,\r\n alert_color: \"#ffb3b3\",\r\n error_message: \"All Underwriting questions must be answered before proceeding with your quote.\"\r\n });\r\n\r\n window.scrollTo(0, 0);\r\n\r\n } else if (status === 2) {\r\n\r\n set_updateStatus(false);\r\n setsubmitLoading(false);\r\n\r\n let h = 0;\r\n if (width < 758) {\r\n h = 155;\r\n } else {\r\n h = 65;\r\n }\r\n\r\n setAlert({\r\n ...alert,\r\n alert_state: true,\r\n alert_type: 2,\r\n alert_height: h,\r\n alert_color: \"#ffb3b3\",\r\n error_message: \"Your home may not be eligible for membership. Please contact our Underwriting Department at 800-648-1794 to review.\"\r\n });\r\n\r\n window.scrollTo(0, 0);\r\n\r\n } else if (status === 3) {\r\n\r\n set_updateStatus(false);\r\n setsubmitLoading(false);\r\n\r\n\r\n let h = 0;\r\n if (width < 758) {\r\n h = 165;\r\n } else {\r\n h = 85;\r\n }\r\n\r\n setAlert({\r\n ...alert,\r\n alert_state: true,\r\n alert_type: 3,\r\n alert_height: h,\r\n alert_color: \"#F2CF30\",\r\n error_message: \"Your home has some unique characteristics that we need to review with you. Speak with an underwriter now (800-648-1794, Monday to Friday 8am to 4:30pm), or continue and review the details later.\"\r\n });\r\n\r\n window.scrollTo(0, 0);\r\n }*/\r\n }\r\n }, [updateStatus]);\r\n\r\n\r\n function onButtonClick() {\r\n\r\n createActivityQuoteDB(\"AdditionalInfo\", \"NAV\", \"Continue button\");\r\n set_updateStatus(true);\r\n setsubmitLoading(true);\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (existingCustomer.pool_state === \"NO\") {\r\n\r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_locking_gate: \"\",\r\n pool_diving_board: \"\",\r\n })\r\n }\r\n\r\n }, [existingCustomer.pool_state]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (existingCustomer.dog_state === \"NO\") {\r\n\r\n setExistingCustomer({\r\n ...existingCustomer,\r\n dogCount: 0,\r\n })\r\n }\r\n\r\n }, [existingCustomer.dog_state]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.pool_state === \"NO\") {\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n pool_locking_gate: \"\",\r\n pool_diving_board: \"\",\r\n })\r\n }\r\n\r\n }, [noExistingCustomer.pool_state]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.dog_state === \"NO\") {\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n dogCount: 0,\r\n })\r\n }\r\n\r\n }, [noExistingCustomer.dog_state]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.losses_claims_last_3 === \"NO\") {\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n weather_related_loss: \"\",\r\n })\r\n }\r\n\r\n }, [noExistingCustomer.losses_claims_last_3]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.over_70_years === \"NO\") {\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n national_historic: \"\",\r\n })\r\n\r\n }\r\n\r\n }, [noExistingCustomer.over_70_years]);\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.national_historic === \"YES\") {\r\n\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n major_systems: \"\",\r\n })\r\n }\r\n\r\n }, [noExistingCustomer.national_historic]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (noExistingCustomer.insurance_in_place_last_3 === \"YES\") {\r\n\r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n first_homeowner: \"\",\r\n })\r\n }\r\n\r\n }, [noExistingCustomer.insurance_in_place_last_3]);\r\n\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n \r\n {\r\n load === false || submitLoading ?\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 {width < 758 &&\r\n\r\n \r\n\r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n\r\n

Thank you! We will contact {JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name} at\r\n {JSON.parse(localStorage.getItem(\"personal_information\")).perf_contact} within 3-5 business days to schedule your inspection.

\r\n

Just five quick questions to wrap things up:

\r\n
\r\n\r\n{/*
\r\n\r\n

Are you a current member of Mutual Assurance?

\r\n
\r\n\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n member_setState(e.target.value)\r\n } />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
*/}\r\n\r\n
\r\n\r\n

Is this your primary residence?

\r\n
\r\n\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n primary_residence_setState(e.target.value)\r\n } />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n{/* {member_state === \"YES\" &&\r\n*/} <>\r\n {/*
\r\n

Are any parts of the roof asbestos, rubber membrane, or tar and gravel?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_roof: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Are any parts of the exterior walls asbestos?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n exterior_walls_asbestos: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n

Do you have dogs?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n dog_state: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n\r\n {existingCustomer.dog_state === \"YES\" &&\r\n <>\r\n
\r\n

How many dogs do you have?

\r\n
\r\n
\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n dogCount: e.target.value.replace(/\\D/g, '')\r\n })} />\r\n\r\n\r\n
\r\n
\r\n \r\n }\r\n\r\n\r\n
\r\n

Do you have a trampoline treehouse, or skateboard ramp?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n trampoline_treehouse_skateboard: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Do you have a Pool?

\r\n
\r\n\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_state: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n {existingCustomer.pool_state === \"YES\" &&\r\n <>\r\n
\r\n\r\n

Is the pool fenced with a locking gate?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_locking_gate: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n

Is there a diving board?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_diving_board: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n }\r\n\r\n
\r\n

Do any floors have water based radiant heat?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n floors_wather_based_radiant: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n

Do you have a central heating system?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n central_heating: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Do you have any buisness operations on the premises?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n buissnes_operations_premises: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Is your home listed on Airbnb or another home sharing site?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n airbnb_or_another: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
*/}\r\n {/* \r\n }\r\n {member_state === \"NO\" &&\r\n <>\r\n*/} \r\n
\r\n

Have you had any losses/claims in the last 3 years?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n losses_claims_last_3: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n {noExistingCustomer.losses_claims_last_3 === \"YES\" &&\r\n <>\r\n
\r\n

Was it a weather-related loss under $5,000?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n weather_related_loss: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n \r\n }\r\n\r\n {/*
\r\n

Is this a single family dwelling occupied by you?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n single_family_dwelling_occupied: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Is the property currently being renovated?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n property_renovated: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
*/}\r\n\r\n\r\n {member_state === \"NO\" ?\r\n <>\r\n
\r\n

Are any parts of the roof flat?

{/*asbestos,rubber membrane, or tar and gravel*/}\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n roof_asbestos_rubber_membrane_tar_gravel: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n \r\n :\r\n <>\r\n
\r\n

Are any parts of the roof flat?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n pool_roof: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n \r\n }\r\n\r\n\r\n {/*
\r\n

Are any parts of the exterior walls asbestos?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n exterior_walls_asbestos: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Do you have dogs?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n dog_state: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n\r\n {noExistingCustomer.dog_state === \"YES\" &&\r\n <>\r\n
\r\n

How many dogs do you have?

\r\n
\r\n
\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n dogCount: e.target.value.replace(/\\D/g, '')\r\n })} />\r\n\r\n
\r\n
\r\n \r\n }\r\n\r\n\r\n
\r\n

Do you have a trampoline, treehouse, or skateboard ramp?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n trampoline_treehouse_skateboard: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n

Do you have a Pool?

\r\n
\r\n\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n pool_state: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n {noExistingCustomer.pool_state === \"YES\" &&\r\n <>\r\n
\r\n\r\n

Is the pool fenced with a locking gate?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n pool_locking_gate: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n\r\n

Is there a diving board?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n pool_diving_board: e.target.value\r\n })} />\r\n {result}\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

Have you had any bankruptcies or foreclosures within the last 5 years?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n bankruptcies_foreclosures: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n
\r\n

Do any floors have water based radiant heat?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n floors_wather_based_radiant: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n

Do you have a central heating system?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n central_heating: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Do you have any business operations on the premises?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n buissnes_operations_premises: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n\r\n
\r\n

Is the home over 70 years old?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n over_70_years: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n {noExistingCustomer.over_70_years === \"YES\" &&\r\n <>\r\n
\r\n\r\n

Is the home on the National Historic Registry?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n national_historic: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n {noExistingCustomer.national_historic === \"NO\" &&\r\n <>\r\n
\r\n\r\n

Have all major systems (electrical, plumbing, heating) been updated?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n major_systems: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n\r\n\r\n }\r\n\r\n }*/}\r\n\r\n
\r\n

Have you had insurance in place for the last 3 years with no lapse?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n insurance_in_place_last_3: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n\r\n {noExistingCustomer.insurance_in_place_last_3 === \"NO\" &&\r\n <>\r\n
\r\n

Are you a first time homeowner?

\r\n
\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n first_homeowner: e.target.value\r\n })} />\r\n {result}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n \r\n }\r\n\r\n {member_state === \"NO\" ?\r\n <>\r\n
\r\n

Is your home listed on Airbnb or another home sharing site?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setNoExistingCustomer({\r\n ...noExistingCustomer,\r\n airbnb_or_another: e.target.value\r\n })} />\r\n {result}\r\n \r\n\r\n\r\n ))}\r\n
\r\n
\r\n \r\n :\r\n <>\r\n
\r\n

Is your home listed on Airbnb or another home sharing site?

\r\n
\r\n
\r\n\r\n {radio_options.map(result => (\r\n <>\r\n \r\n setExistingCustomer({\r\n ...existingCustomer,\r\n airbnb_or_another: e.target.value\r\n })} />\r\n {result}\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

<Back

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AdditionalInfo_page","import React, { useState, useEffect } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { fetchQuote, updateQuote, createActivityQuoteDB } from '../API/Model';\r\nimport './PropertyInfo_page.css';\r\nimport Navigation from '../Overlays/Navigation';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../styles.css';\r\nimport { Redirect } from 'react-router';\r\n\r\nfunction PropertyInfo_page() {\r\n\r\n const page = 4;\r\n let history = useHistory();\r\n const [quote_information, setquote_information] = useState(0);\r\n const [updatedQuote, setupdatedQuote] = useState(false);\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n const [load, setonLoad] = useState(false);\r\n const [group_1_active, setgroup_1_active] = useState(null);\r\n const [group_2_active, setgroup_2_active] = useState(null);\r\n const [count_full, setCount_full] = useState(0);\r\n const [count_half, setCount_half] = useState(0);\r\n const [number_of_stories, set_number_of_stories] = useState(0);\r\n const [square_footage, set_square_footage] = useState(0);\r\n const [yearOfConstruction, set_yearOfConstruction] = useState(0);\r\n const [numberOfFamilies, set_numberOfFamilies] = useState(0);\r\n const [foundationType, set_foundationType] = useState(0);\r\n const [homeConstructionMaterial, set_homeConstructionMaterial] = useState(0);\r\n const [roofMaterial, set_RoofMaterial] = useState(0);\r\n const [cov_a_limit, set_cov_a_limit] = useState(0);\r\n const [general_cov_a_limit, set_general_cov_a_limit] = useState(0);\r\n\r\n const [newQuoteEmailSent, setNewQuoteEmailSent] = useState(false);\r\n\r\n const namedStormDedInd1Counties = [\"Franklin City\", \"Suffolk City\", \"Isle of Wight\", \"Southampton\",\r\n \"Newport News City\", \"Gloucester\", \"Lancaster\", \"Mathews\", \"Northumberland\", \"York\", \"Essex\", \"Richmond\", \"Westmoreland\", \"Middlesex\"];\r\n const namedStormDedInd2Counties = [\"Hampton City\", \"Poquoson City\", \"Norfolk City\", \"Chesapeake City\", \"Portsmouth City\"];\r\n const namedStormDedInd3Counties = [\"Virginia Beach City\", \"Accomack\", \"Northampton\"];\r\n\r\n let quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (load === false) {\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify(quote));\r\n setquote_information({\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n })\r\n }\r\n\r\n fetchData();\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/checkNewQuoteEmailSent', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === undefined && !newQuoteEmailSent) {\r\n setNewQuoteEmailSent(true);\r\n let formData = new FormData()\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('pdf_url', null);\r\n formData.append('subject', \"New SalesPortal Quote - \" + localStorage.getItem(\"quote_number\"));\r\n formData.append('type', \"email_e\");\r\n formData.append('quote_number', localStorage.getItem(\"quote_number\"));\r\n let middle_name = \"\";\r\n if (JSON.parse(localStorage.getItem(\"personal_information\")).mi.length !== 0) {\r\n middle_name = JSON.parse(localStorage.getItem(\"personal_information\")).mi + \" \";\r\n }\r\n formData.append('First_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name + \" \" + middle_name + JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('inspection_phone', JSON.parse(localStorage.getItem(\"personal_information\")).phone);\r\n formData.append('inspection_email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n let agency_name = \"\";\r\n if (JSON.parse(localStorage.getItem(\"agency_information\")) !== null &&\r\n Object.keys(JSON.parse(localStorage.getItem(\"agency_information\"))).length !== 0 &&\r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== null &&\r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== \"Mutual Assurance Society of Virginia\") {\r\n agency_name = JSON.parse(localStorage.getItem(\"agency_information\")).agency_name\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_phone\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_email\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_addres\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_city + \" \" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_zip;\r\n }\r\n formData.append('inspection_name', agency_name);\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"PropertyInfo\", \"EMAIL_SENT\", \"New Quote email sent\");\r\n })\r\n }\r\n })\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (quote_information.ExternalValidateBeanExist != undefined) {\r\n\r\n if (load === false) {\r\n\r\n createActivityQuoteDB(\"PropertyInfo\", \"PL\", \"PropertyInfo page loaded\");\r\n localStorage.setItem('current_page', \"PropertyInfo\");\r\n\r\n\r\n\r\n if (quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily !== undefined) {\r\n set_numberOfFamilies(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily);\r\n } else {\r\n set_numberOfFamilies(1);\r\n }\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: quote_information.DTOApplication[0].DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: quote_information.DTOApplication[0].DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: quote_information.DTOApplication[0].DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n num_bath_full: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms,\r\n num_bath_part: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms,\r\n num_stories: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories,\r\n sqft: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt,\r\n build_year: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt,\r\n found_type: quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType,\r\n num_family: numberOfFamilies,\r\n }));\r\n\r\n\r\n //basic information\r\n try {\r\n setCount_full(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms);\r\n setCount_half(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms);\r\n set_number_of_stories(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories);\r\n set_square_footage(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt);\r\n set_yearOfConstruction(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt);\r\n set_foundationType(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType);\r\n set_homeConstructionMaterial(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd);\r\n set_cov_a_limit(parseCurrency(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit));\r\n/* set_cov_a_limit(JSON.parse(localStorage.getItem(\"cov_a\")));\r\n*/\r\n if (quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily !== undefined) {\r\n set_numberOfFamilies(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily);\r\n } else {\r\n set_numberOfFamilies(1);\r\n }\r\n\r\n\r\n } catch (e) {\r\n console.log(\"Error with fetching basic information\");\r\n }\r\n\r\n //roof construction materials\r\n try {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/selectQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[1].toString() != \"\") {\r\n\r\n setgroup_1_active(document.getElementsByName(result[1].toString())[0]);\r\n document.getElementsByName(result[1].toString())[0].classList += \" active_button\";\r\n set_homeConstructionMaterial(result[1].toString());\r\n\r\n } else {\r\n\r\n setgroup_1_active(document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd)[0]);\r\n document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd)[0].classList += \" active_button\";\r\n set_homeConstructionMaterial(document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd)[0]);\r\n }\r\n },\r\n (error) => {\r\n\r\n })\r\n\r\n if (quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd === \"Other\") {\r\n setgroup_2_active(document.getElementsByName(\"Other (Roof)\")[0]);\r\n document.getElementsByName(\"Other (Roof)\")[0].classList += \" active_button\";\r\n set_RoofMaterial(document.getElementsByName(\"Other (Roof)\")[0]);\r\n } else {\r\n setgroup_2_active(document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd)[0]);\r\n document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd)[0].classList += \" active_button\";\r\n set_RoofMaterial(document.getElementsByName(quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd)[0]);\r\n }\r\n\r\n } catch (e) {\r\n console.log(\"Error with roof/construction materials information information\");\r\n }\r\n\r\n //agency information\r\n try {\r\n window.localStorage.setItem(\"agency_addres\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyAddress);\r\n window.localStorage.setItem(\"agency_city\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyCity);\r\n window.localStorage.setItem(\"agency_state\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").StateProvCd);\r\n window.localStorage.setItem(\"agency_zip\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyZip);\r\n window.localStorage.setItem(\"agency_name\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyName);\r\n window.localStorage.setItem(\"agency_phone\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyPhoneNumber);\r\n window.localStorage.setItem(\"agency_email\", quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.find((e) => e.AddrTypeCd === \"RiskLookupAddr\").CountyAgencyEmail);\r\n } catch (e) {\r\n console.log(\"Error with agency information information\");\r\n }\r\n\r\n setonLoad(true);\r\n }\r\n\r\n }\r\n\r\n }, [quote_information]);\r\n\r\n useEffect(() => {\r\n if (updatedQuote) {\r\n const timeout = setTimeout(() => {\r\n // let my_cov_a = cov_a_limit || general_cov_a_limit;\r\n try {\r\n\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories = number_of_stories;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt = square_footage;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt = yearOfConstruction;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms = count_full;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms = count_half;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily = numberOfFamilies;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd = group_2_active.name;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType = foundationType;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit = cov_a_limit;\r\n\r\n const county = quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr[0].County;\r\n let namedStormDedInd = \"0\";\r\n if (namedStormDedInd1Counties.indexOf(county) > -1) {\r\n namedStormDedInd = \"1\";\r\n } else if (namedStormDedInd2Counties.indexOf(county) > -1) {\r\n namedStormDedInd = \"2\";\r\n } else if (namedStormDedInd3Counties.indexOf(county) > -1) {\r\n namedStormDedInd = \"3\";\r\n }\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].NamedStormDedInd = namedStormDedInd;\r\n\r\n if (group_1_active.name != \"Masonry (Brick)\" && group_1_active.name != \"Masonry Veneer\") {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd = \"Frame\";\r\n } else {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].ConstructionCd = group_1_active.name;\r\n }\r\n\r\n\r\n if (group_2_active.name != \"placeholder\") {\r\n if (group_2_active.name === \"Other (Roof)\") {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd = \"Other\";\r\n } else {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].RoofCd = group_2_active.name;\r\n }\r\n }\r\n\r\n\r\n } catch (e) {\r\n\r\n }\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Construction_Material: group_1_active.name,\r\n })\r\n })\r\n\r\n async function updateData() {\r\n createActivityQuoteDB(\"PropertyInfo\", \"API_REQ\", \"PropertyInfo update quote request\");\r\n if (quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateQuote(JSON.stringify(quote_information));\r\n createActivityQuoteDB(\"PropertyInfo\", \"API_RES\", \"PropertyInfo update quote response -\" + response);\r\n if (response === \"SUCCESS\") {\r\n setsubmitLoading(false);\r\n history.push(\"/Coverages\");\r\n }\r\n }\r\n\r\n updateData();\r\n }, 5000);\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }\r\n\r\n }, [updatedQuote]);\r\n\r\n\r\n\r\n const onNumberofStoriesChange = (e) => {\r\n set_number_of_stories(e.target.value);\r\n }\r\n const onSquareFootageChange = (e) => {\r\n const newValue = e.target.value.replace(/\\D/g, '');\r\n if (newValue <= 99999) {\r\n set_square_footage(newValue);\r\n }\r\n }\r\n const onYearOfConstructionChange = (e) => {\r\n const newValue = e.target.value.replace(/\\D/g, '');\r\n if (newValue <= 9999) {\r\n set_yearOfConstruction(newValue);\r\n }\r\n }\r\n const onnumberOfFamiliesChange = (e) => {\r\n set_numberOfFamilies(e.target.value);\r\n }\r\n const onnfoundationTypeChange = (e) => {\r\n set_foundationType(e.target.value);\r\n }\r\n\r\n function formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n function parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n function onCovALimitChange(e) {\r\n const newValue = parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (!newValue || newValue <= 99999999) {\r\n set_cov_a_limit(newValue);\r\n }\r\n }\r\n\r\n function handleBlur(e) {\r\n if (!cov_a_limit || cov_a_limit < 100000) {\r\n set_cov_a_limit(100000);\r\n }\r\n }\r\n\r\n function decrementCount(type) {\r\n\r\n if (type === \"full\") {\r\n if (count_full > 0)\r\n setCount_full(prevCount => parseInt(prevCount) - 1);\r\n } else if (type === \"half\") {\r\n if (count_half > 0)\r\n setCount_half(prevCount => parseInt(prevCount) - 1);\r\n }\r\n }\r\n function incrementCount(type) {\r\n if (type === \"full\") {\r\n if (count_full < 999) {\r\n setCount_full(prevCount => parseInt(prevCount) + 1);\r\n }\r\n } else if (type === \"half\") {\r\n if (count_half < 999) {\r\n setCount_half(prevCount => parseInt(prevCount) + 1);\r\n }\r\n }\r\n }\r\n\r\n function changeState(event) {\r\n\r\n if (event.target.id === \"group_1\") {\r\n if (group_1_active !== null) {\r\n group_1_active.classList = group_1_active.classList[0] + \" \" + group_1_active.classList[1];\r\n\r\n }\r\n setgroup_1_active(event.target);\r\n event.target.classList = event.target.classList + \" active_button\";\r\n set_homeConstructionMaterial(event.target.name);\r\n\r\n } else if (event.target.id === \"group_2\") {\r\n if (group_2_active !== null) {\r\n group_2_active.classList = group_2_active.classList[0] + \" \" + group_2_active.classList[1];\r\n\r\n }\r\n setgroup_2_active(event.target);\r\n event.target.classList = event.target.classList + \" active_button\";\r\n if (event.target.name === \"Other (Roof)\") {\r\n set_RoofMaterial(\"Other\");\r\n } else {\r\n set_RoofMaterial(event.target.name);\r\n }\r\n }\r\n\r\n }\r\n\r\n function onButtonClick() {\r\n createActivityQuoteDB(\"PropertyInfo\", \"NAV\", \"Continue button\");\r\n setsubmitLoading(true);\r\n setupdatedQuote(true);\r\n\r\n }\r\n function onBackButtonClick() {\r\n createActivityQuoteDB(\"PropertyInfo\", \"NAV\", \"Back button\");\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n \r\n {\r\n submitLoading ?\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Calculating your estimate

\r\n
\r\n
\r\n

Did you know?

As part of the process, Mutual Assurance
conducts a free inspection of your home to
ensure you have the right coverage.

\r\n
\r\n
\r\n :\r\n/*
\r\n*/
\r\n\r\n
\r\n\r\n

Property Information

\r\n
\r\n
\r\n

Your Estimated Home Value

\r\n \r\n
\r\n
\r\n

# of Stories

\r\n \r\n\r\n
\r\n
\r\n

Square Footage

\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Year of Construction

\r\n \r\n\r\n
\r\n
\r\n

# of Bathrooms

\r\n
\r\n \r\n {count_full} \r\n\r\n \r\n

Full Baths

\r\n\r\n
\r\n
\r\n

\r\n\r\n \r\n {count_half} \r\n\r\n \r\n

Half Baths

\r\n\r\n\r\n
\r\n
\r\n

# of Families

\r\n \r\n
\r\n\r\n
\r\n\r\n

Home Construction Material

\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n Roof Material\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Foundation Type

\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n

<Back

\r\n \r\n \r\n
\r\n \r\n

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PropertyInfo_page","import React from 'react';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport './Banner.css';\r\n\r\nfunction Banner(props) {\r\n\r\n const tooltip = \"Estimates are based on data obtained from public records and the value of your home. After your home inspection we will provide a firm quote for your home. The Estimated Annual Assessment is based on the current assessment rate of 22% which is approved by our board of directors each year.\";\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n minimumFractionDigits: 0,\r\n });\r\n\r\n return formatter.format(number).substring(1);\r\n }\r\n }\r\n\r\n const bannerBoxClass = props.removeMarginLeft\r\n ? \"banner_box ml-0\"\r\n : \"banner_box\";\r\n\r\n return (\r\n
\r\n\r\n
\r\n {!props.skipTitle &&
\r\n

Your Estimate

\r\n
}\r\n\r\n
\r\n

Estimated Savings

\r\n {/*

Estimated*/}\r\n {/* 5-Year average annual cost:

*/}\r\n\r\n
\r\n
\r\n \r\n

Over 5 years:

\r\n

Over 10 years:

\r\n
\r\n \r\n

\r\n $\r\n {formatNumber((JSON.parse(localStorage.getItem(\"fiveYearSavingsLow\"))))} - ${formatNumber((JSON.parse(localStorage.getItem(\"fiveYearSavingsHigh\"))))}

\r\n\r\n\r\n

\r\n ${formatNumber((JSON.parse(localStorage.getItem(\"tenYearSavingsLow\"))))} - ${formatNumber((JSON.parse(localStorage.getItem(\"tenYearSavingsHigh\"))))}

\r\n
\r\n {/*

*/}\r\n {/* ${formatNumber((JSON.parse(localStorage.getItem(\"quote_information\")).fiveYearPremium))}*/}\r\n {/* /yr.

*/}\r\n
\r\n
\r\n

Estimated Annual Assessment:

\r\n

Estimated First Year Premium:

\r\n
\r\n
\r\n

\r\n $\r\n {formatNumber((JSON.parse(localStorage.getItem(\"annualAssessment\"))))}

\r\n\r\n

\r\n ${formatNumber((JSON.parse(localStorage.getItem(\"estimatedPremium\"))))}

\r\n
\r\n
\r\n

These are estimates based on a cost of {props.covA} to replace your home. Mutual Assurance conducts a free\r\n inspection of your home to determine the right level of coverage for you.

\r\n
\r\n
\r\n

\r\n How Our Pricing Works \r\n

\r\n
\r\n
\r\n

\r\n With our unique perpetual Homeowner policy, you pay a one-time premium to become a member
and\r\n then a low annual assessment that is a fraction of the premium each year after\r\n that.
This means signifcantly lower costs over the life of the policy.\r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Banner\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport Banner from '../Additional/Banner';\r\nimport './Coverages_page.css';\r\nimport Navigation from '../Overlays/Navigation';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport { fetchQuote, createActivityQuoteDB } from '../API/Model';\r\nimport * as htmlToImage from 'html-to-image';\r\nimport { Redirect } from 'react-router';\r\nimport jsPDF from \"jspdf\";\r\nimport '../styles.css';\r\n\r\n\r\nfunction Coverages_page() {\r\n\r\n let quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n const page = 5;\r\n const [covA, set_covA] = useState(0);\r\n const [covB, set_covB] = useState(0);\r\n const [covC, set_covC] = useState(0);\r\n const [covD, set_covD] = useState(0);\r\n const [covE, set_covE] = useState(0);\r\n const [covF_eachPerson, set_covF_eachPerson] = useState(0);\r\n const [covF_eachOccurrence, set_covF_eachOccurrence] = useState(0);\r\n const [policy_deductible, set_policy_deductible] = useState(0);\r\n const [waterDamage, set_waterDamage] = useState(0);\r\n const [tropical_cyclone, set_tropical_cyclone] = useState(0);\r\n const [load, setonLoad] = useState(false);\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (load === false) {\r\n\r\n createActivityQuoteDB(\"Coverages\", \"PL\", \"Coverages page loaded\");\r\n localStorage.setItem('current_page', \"Coverages\");\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify(quote));\r\n\r\n setonLoad(true);\r\n\r\n try {\r\n window.localStorage.setItem(\"fiveYearSavingsLow\", (response.DTOLine[0].EstimatedFiveYearSavingsLow).toString());\r\n window.localStorage.setItem(\"fiveYearSavingsHigh\", (response.DTOLine[0].EstimatedFiveYearSavingsHigh).toString());\r\n window.localStorage.setItem(\"tenYearSavingsLow\", (response.DTOLine[0].EstimatedTenYearSavingsLow).toString());\r\n window.localStorage.setItem(\"tenYearSavingsHigh\", (response.DTOLine[0].EstimatedTenYearSavingsHigh).toString());\r\n window.localStorage.setItem(\"annualAssessment\", (response.DTOLine[0].EstimatedAnnualAssessment).toString());\r\n window.localStorage.setItem(\"estimatedPremium\", (response.DTOLine[0].EstimatedPremium).toString());\r\n\r\n } catch (e) {\r\n console.log(\"Error with fetching premium information\");\r\n }\r\n\r\n set_covA(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit);\r\n set_covB(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovBLimit);\r\n set_covC(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovCLimit);\r\n set_covD(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovDLimit);\r\n set_covE(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovELimit);\r\n\r\n set_policy_deductible(response.DTOLine[0].DTORisk[0].DTOBuilding[0].AllPerilDed)\r\n set_covF_eachPerson(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovFLimit);\r\n set_covF_eachOccurrence(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovFLimitEachOccurrence);\r\n set_waterDamage(response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovWaterDamageLimitIncrease);\r\n set_tropical_cyclone(response.DTOLine[0].DTORisk[0].DTOBuilding[0].NamedStormDed);\r\n\r\n }\r\n\r\n fetchData();\r\n }\r\n });\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n function handleToggle() {\r\n setIsExpanded(!isExpanded);\r\n }\r\n const iconClass = isExpanded ? 'rotate' : '';\r\n\r\n\r\n function onButtonClick() {\r\n createActivityQuoteDB(\"Coverages\", \"NAV\", \"Continue button\");\r\n\r\n }\r\n function onBackButtonClick() {\r\n createActivityQuoteDB(\"Coverages\", \"NAV\", \"Back button\");\r\n }\r\n\r\n function printScreen() {\r\n\r\n\r\n htmlToImage.toPng(document.getElementById('content'), { quality: 2 })\r\n .then(function (dataUrl) {\r\n const pdf = new jsPDF('p', 'mm', [230, 400]);\r\n pdf.addImage(dataUrl, 'PNG', -15, -10, 230, 400);\r\n pdf.save(\"Coverage_\" + window.localStorage.getItem(\"quote_number\") + \".pdf\");\r\n });\r\n }\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n \r\n {\r\n load === false ?\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
\r\n

Coverage Details\r\n \r\n \"\r\n

\r\n
\r\n {isExpanded &&\r\n
\r\n
\r\n

COVERAGE

\r\n

LIMIT

\r\n\r\n
A - Residence\r\n
\r\n
\r\n
{formatNumber(covA.toString())}
\r\n\r\n
B - Related Private Structures\r\n
\r\n
\r\n
{formatNumber(covB.toString())}
\r\n\r\n
C - Personal Property\r\n
\r\n
\r\n
{formatNumber(covC.toString())}
\r\n\r\n
D - Additional Living Cost and Loss of Rent\r\n
\r\n
\r\n
{formatNumber(covD.toString())}
\r\n\r\n
E - Personal Liability\r\n
\r\n
\r\n
{formatNumber(covE.toString())}
\r\n\r\n
F - Medical Payments to Others\r\n
\r\n
\r\n
\r\n\r\n
Each Person
\r\n
{formatNumber(covF_eachPerson.toString())}
\r\n\r\n
Each Occurence
\r\n
{formatNumber(covF_eachOccurrence.toString())}
\r\n\r\n
Water Damage - Sewer/Drain/Sump/Surface Water\r\n
\r\n
\r\n
$5,000
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n Policy Deductible\r\n
\r\n
(Applies unless otherwise specified)
\r\n
\r\n\r\n ${policy_deductible.toString().substring(0, policy_deductible.length - 3)},{policy_deductible.toString().substring(policy_deductible.length - 3, policy_deductible.length)}
\r\n\r\n
Tropical Cyclone Deductible\r\n
\r\n
\r\n
{formatNumber(tropical_cyclone.toString())}
\r\n\r\n
\r\n

\r\n

ADDITIONAL COVERAGES INCLUDED:

\r\n\r\n
Personal Property Replacement Cost\r\n
\r\n
\r\n\r\n
Personal Property All Perils Coverage (HO5)\r\n
\r\n
\r\n\r\n
Expanded Replacement Cost 125%\r\n
\r\n
\r\n\r\n
Inflation Guard Protection\r\n
\r\n
\r\n\r\n
Service Line\r\n
\r\n
\r\n
Equipment Breakdown\r\n
\r\n
\r\n
Personal Injury\r\n
\r\n
\r\n
Identity Recovery Coverage\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

Additional Coverages

\r\n

Your underwriter will discuss these and other additional coverages with you when they provide your firm quote.

\r\n
\r\n
\r\n
Scheduled Property\r\n
\r\n
\r\n\r\n
Earthquake coverage\r\n
\r\n
\r\n\r\n
Homeowners or Condo Association\r\n
\r\n
\r\n\r\n
Replacement Cost for Other Structures – walls, fences and walkways\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n

<Back

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Coverages_page","import React, { useState, useEffect } from 'react';\r\nimport Navigation from '../Overlays/Navigation';\r\nimport Banner from '../Additional/Banner';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport { fetchQuote, createActivityQuoteDB, getToken,getApplicationCorrespondence } from '../API/Model';\r\nimport * as htmlToImage from 'html-to-image';\r\nimport jsPDF from \"jspdf\";\r\nimport './QuoteSummary_page.css';\r\nimport '../styles.css';\r\n\r\n\r\nfunction QuoteSummary_page() {\r\n\r\n const page = 8;\r\n let quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n const [url, setURL] = useState(null);\r\n const [flag, set_flag] = useState(false);\r\n const [load, setonLoad] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const [coverage, setCoverage] = useState({\r\n covA: 0,\r\n covB: 0,\r\n covC: 0,\r\n covD: 0,\r\n covE: 0,\r\n covF_eachPerson: 0,\r\n covF_eachOccurrence: 0,\r\n policy_deductible: 0,\r\n waterDamage: 0,\r\n tropical_cyclone: 0,\r\n });\r\n\r\n \r\n useEffect(() => {\r\n if (load === false) {\r\n\r\n setonLoad(true);\r\n localStorage.setItem('status', \"COMP\");\r\n\r\n createActivityQuoteDB(\"QuoteSummary\", \"PL\", \"QuoteSummary page loaded\");\r\n localStorage.setItem('current_page', \"QuoteSummary\");\r\n\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify(quote));\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: response.DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: response.DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: response.DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n num_bath_full: response.DTOLine[0].DTORisk[0].DTOBuilding[0].NumberBathrooms,\r\n num_bath_part: response.DTOLine[0].DTORisk[0].DTOBuilding[0].NumberPartialBathrooms,\r\n num_stories: response.DTOLine[0].DTORisk[0].DTOBuilding[0].NumStories,\r\n sqft: response.DTOLine[0].DTORisk[0].DTOBuilding[0].SqFt,\r\n build_year: response.DTOLine[0].DTORisk[0].DTOBuilding[0].YearBuilt,\r\n found_type: response.DTOLine[0].DTORisk[0].DTOBuilding[0].FoundationType,\r\n num_family: response.DTOLine[0].DTORisk[0].DTOBuilding[0].NumberOfFamily,\r\n }));\r\n\r\n setCoverage({\r\n ...coverage,\r\n covA: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit,\r\n covB: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovBLimit,\r\n covC: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovCLimit,\r\n covD: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovDLimit,\r\n covE: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovELimit,\r\n covF: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit,\r\n covF_eachPerson: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovFLimit,\r\n covF_eachOccurrence: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovFLimitEachOccurrence,\r\n policy_deductible: response.DTOLine[0].DTORisk[0].DTOBuilding[0].AllPerilDed,\r\n waterDamage: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovWaterDamageLimitIncrease,\r\n tropical_cyclone: response.DTOLine[0].DTORisk[0].DTOBuilding[0].NamedStormDed,\r\n });\r\n\r\n setLoading(false);\r\n //set_flag(true);\r\n }\r\n fetchData();\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"COMP\",\r\n })\r\n })\r\n\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (flag === true) {\r\n \r\n async function fetchToken() {\r\n const response = await getToken(JSON.stringify({}));\r\n if (response !== \"ERROR\") {\r\n getURL(response)\r\n }\r\n }\r\n\r\n async function getURL(token) {\r\n const response = await getApplicationCorrespondence(JSON.stringify({\r\n ApplicationNumber: window.localStorage.getItem(\"quote_number\"),\r\n CorrespondenceTemplateId: \"HO5Estimate\",\r\n Token: token\r\n }));\r\n if (response !== \"ERROR\") {\r\n setURL(response);\r\n }\r\n }\r\n\r\n set_flag(false);\r\n fetchToken();\r\n }\r\n }, [flag]);\r\n\r\n\r\n \r\n useEffect(() => {\r\n\r\n if (url != null) {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/checkCompletedQuote', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n \r\n if (result[0] === undefined) {\r\n\r\n let formData = new FormData()\r\n formData.append('pdf_url', url);\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('subject', \"Your Mutual Assurance Estimate\");\r\n formData.append('first_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name);\r\n formData.append('last_name', JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('type', \"email_a\");\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name);\r\n \r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"HomeInspection\", \"EMAIL_SENT\", \"Summary email sent\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"COMP\",\r\n })\r\n })\r\n })\r\n\r\n formData = new FormData()\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('pdf_url', null);\r\n formData.append('subject', \"SalesPortal - Inspection Request\");\r\n formData.append('type', \"email_d\");\r\n formData.append('quote_number', localStorage.getItem(\"quote_number\"));\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name);\r\n formData.append('inspection_type', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_type);\r\n formData.append('inspection_email', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_email);\r\n formData.append('inspection_phone', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_number);\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"HomeInspection\", \"EMAIL_SENT\", \"Inspection email sent\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"COMP\",\r\n })\r\n })\r\n })\r\n }\r\n })\r\n }\r\n }, [url]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n function printScreen() {\r\n console.log(url);\r\n htmlToImage.toPng(document.getElementById('content'), { quality: 2 })\r\n .then(function (dataUrl) {\r\n const pdf = new jsPDF('p', 'mm', [225, 420]);\r\n pdf.addImage(dataUrl, 'PNG', -15, -10, 230, 420);\r\n pdf.save(\"Coverage_\" + window.localStorage.getItem(\"quote_number\") + \".pdf\");\r\n });\r\n }\r\n\r\n function handleToggle() {\r\n setIsExpanded(!isExpanded);\r\n }\r\n const iconClass = isExpanded ? 'rotate' : '';\r\n\r\n\r\n\r\n return (\r\n\r\n
\r\n \r\n {\r\n loading === true ?\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

We will contact {JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name} at\r\n {JSON.parse(localStorage.getItem(\"personal_information\")).perf_contact} within 3-5 business days to schedule your inspection.

\r\n\r\n
\r\n \r\n\r\n

Your Homeowners Estimate Summary\r\n \r\n \"\r\n \r\n \"\r\n \r\n \"\r\n

\r\n {isExpanded &&\r\n\r\n
\r\n\r\n
\r\n
\r\n

What’s included

\r\n

Home and personal coverages

\r\n
\r\n
\r\n
\r\n

COVERAGE

\r\n
\r\n
\r\n

LIMIT

\r\n
\r\n\r\n
\r\n

A - Residence

\r\n
\r\n
\r\n

{formatNumber(coverage.covA.toString())}

\r\n
\r\n\r\n
\r\n

B - Related Private Structures

\r\n
\r\n
\r\n

{formatNumber(coverage.covB.toString())}

\r\n
\r\n\r\n
\r\n

C - Personal Property

\r\n
\r\n
\r\n

{formatNumber(coverage.covC.toString())}

\r\n
\r\n\r\n
\r\n

D - Additional Living Costs and Loss of Rent

\r\n
\r\n
\r\n

{formatNumber(coverage.covD.toString())}

\r\n
\r\n\r\n
\r\n

E - Personal Liability

\r\n
\r\n
\r\n

{formatNumber(coverage.covE.toString())}

\r\n
\r\n\r\n
\r\n\r\n

F - Medical Payments to Others

\r\n
\r\n\r\n
\r\n

Each Person

\r\n
\r\n
\r\n

{formatNumber(coverage.covF_eachPerson.toString())}

\r\n
\r\n\r\n
\r\n

Each Occurence

\r\n
\r\n\r\n
\r\n

{formatNumber(coverage.covF_eachOccurrence.toString())}

\r\n
\r\n\r\n
\r\n\r\n

Water Damage - Sewer/Drain/Sump/Surface Water

\r\n\r\n
\r\n
\r\n

\r\n $5,000

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

All Perils deductible

\r\n
\r\n
\r\n\r\n

{formatNumber(coverage.policy_deductible.toString())}

\r\n
\r\n\r\n
\r\n

Tropical Cyclone deductible - (% of your Dwelling - Cov. A)

\r\n
\r\n
\r\n

{formatNumber(coverage.tropical_cyclone.toString())}

\r\n
\r\n\r\n
\r\n
\r\n

ADDITIONAL COVERAGES INCLUDED:

\r\n
\r\n\r\n
\r\n

Personal Property Replacement Cost

\r\n
\r\n
\r\n

Service Line

\r\n
\r\n\r\n
\r\n

Personal Property All Perils Coverage (HO5)

\r\n
\r\n
\r\n

Equipment Breakdown

\r\n
\r\n\r\n
\r\n

Expanded Replacement Cost 125%

\r\n
\r\n
\r\n

Personal Injury

\r\n
\r\n\r\n
\r\n

Inflation Guard Protection

\r\n
\r\n
\r\n

Identity Recovery Coverage

\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

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n

Your customized quote has been saved

\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default QuoteSummary_page","import { Link, useHistory } from \"react-router-dom\";\r\nimport Navigation from '../Overlays/Navigation';\r\nimport React, { useState, useEffect } from 'react';\r\nimport './HomeInspection_page.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../styles.css';\r\nimport { updateQuote, fetchQuote, getToken, getApplicationCorrespondence, createActivityQuoteDB } from '../API/Model';\r\nimport moment from 'moment';\r\nimport { Redirect } from 'react-router';\r\n\r\n\r\nfunction HomeInspection_page() {\r\n\r\n let history = useHistory();\r\n const page = 7;\r\n \r\n const [load, onLoad] = useState(false);\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n const [quote_information, setquote_information] = useState(0);\r\n let radio_options = [\"Email\", \"Phone\", \"Text\"];\r\n const [url, setURL] = useState(null);\r\n const [flag, set_flag] = useState(false);\r\n\r\n\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n Inspection_contact_name: \"\",\r\n Inspection_contact_type: \"\",\r\n Inspection_number: \"\",\r\n Inspection_email: \"\",\r\n Inspection_pref_contact_type: \"\",\r\n });\r\n\r\n\r\n let quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (load === false) {\r\n\r\n createActivityQuoteDB(\"HomeInspection\", \"PL\", \"HomeInspection page loaded\");\r\n localStorage.setItem('current_page', \"HomeInspection\");\r\n\r\n setPersonalInfo({\r\n ...personal_info,\r\n Inspection_contact_name: JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name,\r\n Inspection_contact_type: JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_type,\r\n Inspection_email: JSON.parse(localStorage.getItem(\"personal_information\")).inspection_email,\r\n Inspection_number: JSON.parse(localStorage.getItem(\"personal_information\")).inspection_number,\r\n Inspection_pref_contact_type: JSON.parse(localStorage.getItem(\"personal_information\")).inspection_pref_contact_type,\r\n });\r\n\r\n async function fetchData() {\r\n\r\n const response = await fetchQuote(JSON.stringify(quote));\r\n setquote_information({\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n })\r\n setsubmitLoading(false);\r\n onLoad(true);\r\n }\r\n\r\n fetchData();\r\n }\r\n set_flag(true);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (flag === true) {\r\n\r\n async function fetchToken() {\r\n const response = await getToken(JSON.stringify({}));\r\n if (response !== \"ERROR\") {\r\n getURL(response)\r\n }\r\n }\r\n\r\n async function getURL(token) {\r\n const response = await getApplicationCorrespondence(JSON.stringify({\r\n ApplicationNumber: window.localStorage.getItem(\"quote_number\"),\r\n CorrespondenceTemplateId: \"HO5Estimate\",\r\n Token: token\r\n }));\r\n if (response !== \"ERROR\") {\r\n setURL(response);\r\n }\r\n }\r\n\r\n set_flag(false);\r\n fetchToken();\r\n }\r\n }, [flag]);\r\n\r\n\r\n\r\n function onButtonClick() {\r\n\r\n createActivityQuoteDB(\"HomeInspection\", \"NAV\", \"Continue button\");\r\n setsubmitLoading(true);\r\n\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n perf_contact: (personal_info.Inspection_pref_contact_type === \"Email\" ? personal_info.Inspection_email : personal_info.Inspection_number),\r\n inspection_contact_name: personal_info.Inspection_contact_name,\r\n inspection_contact_type: personal_info.Inspection_contact_type,\r\n inspection_number: personal_info.Inspection_number,\r\n inspection_email: personal_info.Inspection_email,\r\n inspection_pref_contact_type: personal_info.Inspection_pref_contact_type,\r\n }));\r\n\r\n\r\n async function updateInspection() {\r\n\r\n // add days\r\n const addDt = moment(quote_information.DTOApplication[0].DTOApplicationInfo[0].AddDt, \"YYYYMMDD\");\r\n const needByDt = addDt.add(14, 'days').format(\"YYYYMMDD\");\r\n\r\n createActivityQuoteDB(\"AdditionalInfo\", \"API_REQ\", \"Inspection data update request\");\r\n\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionContactType = (personal_info.Inspection_contact_type === \"Someone_else\" ? \"Assured\" : personal_info.Inspection_contact_type);\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionContactName = personal_info.Inspection_contact_name;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionNumber = personal_info.Inspection_number;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionDt = quote_information.DTOApplication[0].DTOApplicationInfo[0].AddDt;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionNeedByDt = needByDt;\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionRush = \"No\";\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionRequestedBy = \"Web Estimate\";\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionSpecialInstructions = \"Best Way to Contact:\" + personal_info.Inspection_pref_contact_type + \" \" + \"Email: \" + personal_info.Inspection_email;\r\n if (quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit > 750000 ) {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionType = \"High\";\r\n } else {\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].InspectionType = \"Standard\";\r\n }\r\n let updatedQuestionReplies = {\r\n QuestionReply: [\r\n {\r\n Name: \"NewPurchase\",\r\n Value: JSON.parse(localStorage.getItem(\"personal_information\")).prior_addr === true ? \"YES\" : \"NO\",\r\n VisibleInd: \"Yes\"\r\n },\r\n ]\r\n }\r\n quote_information.DTOApplication[0].DTOLine[0].DTORisk[0].QuestionReplies = updatedQuestionReplies;\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/updateQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Inspection_Email: personal_info.Inspection_email,\r\n Inspection_Best_Way_To_Contact: personal_info.Inspection_pref_contact_type,\r\n })\r\n })\r\n\r\n const response = await updateQuote(JSON.stringify(quote_information));\r\n\r\n if (response === \"SUCCESS\") {\r\n createActivityQuoteDB(\"AdditionalInfo\", \"API_RES\", \"Inspection data update response - \" + response);\r\n }\r\n //history.push(\"/QuoteSummary\");\r\n }\r\n\r\n updateInspection();\r\n\r\n const email_sent = localStorage.getItem('inspection_email') === \"YES\";\r\n if (url != null && !email_sent) {\r\n\r\n let formData = new FormData()\r\n formData.append('pdf_url', url);\r\n formData.append('email', personal_info.Inspection_email);\r\n formData.append('subject', \"Your Mutual Assurance Estimate\");\r\n formData.append('first_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name);\r\n formData.append('last_name', JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('type', \"email_a\");\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name);\r\n\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"HomeInspection\", \"EMAIL_SENT\", \"Summary email sent\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"STR\",\r\n })\r\n })\r\n })\r\n formData = new FormData()\r\n formData.append('email', personal_info.Inspection_email);\r\n formData.append('pdf_url', null);\r\n formData.append('subject', \"SalesPortal - Inspection Request\");\r\n formData.append('type', \"email_d\");\r\n formData.append('quote_number', localStorage.getItem(\"quote_number\"));\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name);\r\n formData.append('inspection_type', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_type);\r\n formData.append('inspection_email', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_email);\r\n formData.append('inspection_phone', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_number);\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"HomeInspection\", \"EMAIL_SENT\", \"Inspection email sent\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"STR\",\r\n })\r\n })\r\n })\r\n window.localStorage.setItem(\"inspection_email\", \"YES\");\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function onBackButtonClick() {\r\n createActivityQuoteDB(\"HomeInspection\", \"NAV\", \"Back button\");\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n\r\n \r\n {\r\n submitLoading ?\r\n
\r\n
\r\n \r\n
\r\n
\r\n :\r\n/*
\r\n*/
\r\n\r\n

Let’s schedule your home inspection.

\r\n
\r\n\r\n
\r\n

We conduct a free inspection of your home to provide common sense measures that protect your home and ensure you have the right coverage.

\r\n

\r\n{/*

Please provide the name and contact information for the person who will be responsible for scheduling the inspection. This can be you, your realtor, or someone else who can provide access to the property.

\r\n*/}\r\n\r\n
\r\n
\r\n

Inspection Contact Name:

\r\n \r\n
\r\n
\r\n

Who will schedule the inspection?

\r\n \r\n
\r\n
\r\n

Best way to contact

\r\n
\r\n {radio_options.map(result => (\r\n <>\r\n \r\n {result}\r\n \r\n \r\n ))}\r\n
\r\n\r\n
\r\n

Email:

\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n

Phone:

\r\n
\r\n \r\n

\r\n

\r\n\r\n
\r\n \r\n

<Back

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n

Questions? (800) 648-1794

\r\n

service@mutual-assurance.com

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HomeInspection_page\r\n","import React, { useState } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './Page_retrieve_a.css';\r\nimport { retrieveQuote, createActivityQuoteDB } from '../API/Model';\r\nimport Alert from '../Additional/Alert';\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport { useEffect } from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport axios from 'axios'\r\n\r\nfunction Page_retrieve_a() {\r\n\r\n\r\n let history = useHistory();\r\n const [email, setEmail] = useState('');\r\n const [lastName, setlastName] = useState('');\r\n const [zipcode, setzipcode] = useState('');\r\n const [modalError, setmodalError] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState('');\r\n const { height, width } = useWindowDimensions();\r\n const [errorHeight, setErrorHeight] = useState(65);\r\n const [load, setonLoad] = useState(false);\r\n const [fetchStatus, setfetchStatus] = useState(null);\r\n let quote = {\r\n Email: email,\r\n LastName: lastName,\r\n ZipCode: zipcode,\r\n SearchCriteria: \"Email\"\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (load === false) {\r\n\r\n localStorage.clear();\r\n\r\n async function getIP() {\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n }\r\n getIP();\r\n localStorage.setItem('session_id', uuidv4());\r\n createActivityQuoteDB(\"RetriveEmail\", \"PL\", \"RetriveEmail page loaded\");\r\n\r\n setonLoad(true);\r\n }\r\n\r\n });\r\n\r\n const onEmailChange = (e) => {\r\n setEmail(e.target.value);\r\n }\r\n const onlastNameChange = (e) => {\r\n setlastName(e.target.value);\r\n }\r\n const onzipcodeChange = (e) => {\r\n setzipcode(e.target.value);\r\n }\r\n const onModalClose = (e) => {\r\n setmodalError(false);\r\n }\r\n\r\n async function onButtonClick() {\r\n setmodalError(false);\r\n\r\n async function fetchData() {\r\n const response = await retrieveQuote(JSON.stringify(quote));\r\n createActivityQuoteDB(\"RetriveEmail\", \"RECALL\", \"RetriveEmail quote recall\");\r\n if (response === \"MULTIPLE_QUOTES\") {\r\n localStorage.setItem(\"retrieve_data\", JSON.stringify({\r\n email,\r\n lastName,\r\n zipcode\r\n }));\r\n history.push(\"/RetrieveEmailList\");\r\n } else if (response !== \"ERROR\") {\r\n setfetchStatus(true);\r\n } else {\r\n setErrorHeight(65);\r\n seterrorMessage(\"This estimate can not be recovered.\");\r\n setmodalError(true);\r\n }\r\n }\r\n\r\n localStorage.setItem('status', \"RET\");\r\n fetchData();\r\n\r\n }\r\n useEffect(() => {\r\n\r\n if (fetchStatus != null) {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/selectLastPage', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: window.localStorage.getItem(\"quote_number\"),\r\n })\r\n }).then((response) => response.json())\r\n .then((responseJson) => {\r\n\r\n if (responseJson[0].toString() != null) {\r\n history.push(\"/\" + responseJson[0].toString());\r\n } else {\r\n history.push(\"/AdditionalInfo\");\r\n }\r\n\r\n\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [fetchStatus]);\r\n\r\n return (\r\n\r\n
\r\n\r\n {/*{modalError === true &&*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
{errorMessage}
*/}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*}*/}\r\n\r\n {\r\n width < 758 &&\r\n\r\n \r\n\r\n }\r\n {\r\n width > 758 &&\r\n\r\n \r\n }\r\n\r\n

\r\n Let's Retrieve Your Homeowners Estimate

\r\n\r\n
\r\n\r\n

\r\n Pull up your estimate by\r\n

\r\n

\r\n Email or\r\n \r\n \r\n Estimate Number\r\n \r\n

\r\n\r\n

\r\n Email

\r\n \r\n\r\n

\r\n Last Name

\r\n\r\n \r\n\r\n\r\n

\r\n Zip Code

\r\n \r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default Page_retrieve_a\r\n","import React, { useState } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './Page_retrieve_a_2.css';\r\nimport { createQuote, updateQuote, retrieveQuote, retrieveQuoteNumbers, createActivityQuoteDB } from '../API/Model';\r\nimport Alert from '../Additional/Alert';\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport { useEffect } from 'react';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport axios from 'axios'\r\n\r\nfunction Page_retrieve_a_2() {\r\n\r\n\r\n let history = useHistory();\r\n const [modalError, setmodalError] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState('');\r\n const { height, width } = useWindowDimensions();\r\n const [errorHeight, setErrorHeight] = useState(65);\r\n const [load, setonLoad] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [fetchStatus, setfetchStatus] = useState(null);\r\n const [quoteNumbers, setQuoteNumbers] = useState([]);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [selectedQuote, setSelectedQuote] = useState(null)\r\n\r\n useEffect(() => {\r\n\r\n if (load === false) {\r\n if (localStorage.getItem('personal_information') == undefined && localStorage.getItem('retrieve_data') == undefined) {\r\n history.push(\"/\");\r\n }\r\n\r\n async function fetchQuoteNumbers(quote) {\r\n\r\n const response = await retrieveQuoteNumbers(JSON.stringify(quote));\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"RECALL\", \"RetrieveQuoteNumbers quote recall\");\r\n if (response !== \"ERROR\") {\r\n setQuoteNumbers(response);\r\n setSelectedQuote(response[0].number);\r\n } else {\r\n setErrorHeight(65);\r\n seterrorMessage(\"Service temporarily unavailable. Please try again later.\");\r\n setmodalError(true);\r\n }\r\n setLoading(false);\r\n }\r\n let quote = {}\r\n if (localStorage.getItem('retrieve_data') != undefined) {\r\n const retrieveData = JSON.parse(localStorage.getItem(\"retrieve_data\"));\r\n quote = {\r\n Email: retrieveData.email,\r\n LastName: retrieveData.lastName,\r\n ZipCode: retrieveData.zipcode,\r\n SearchCriteria: \"Email\"\r\n }\r\n } else if (localStorage.getItem('personal_information') != undefined) {\r\n quote = {\r\n Email: JSON.parse(localStorage.getItem(\"personal_information\")).email,\r\n LastName: JSON.parse(localStorage.getItem(\"personal_information\")).last_name,\r\n ZipCode: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_zip,\r\n SearchCriteria: \"Email\"\r\n }\r\n }\r\n\r\n fetchQuoteNumbers(quote);\r\n\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"PL\", \"RetrieveEmailList page loaded\");\r\n\r\n setonLoad(true);\r\n }\r\n\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n if (JSON.parse(localStorage.getItem(\"quote_information\")).num_stories === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).sqft === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).num_bath_full === undefined ||\r\n JSON.parse(localStorage.getItem(\"quote_information\")).build_year === undefined) {\r\n\r\n\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"RCE_ERROR\", \"RCE information retrieve error\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"RCE\",\r\n })\r\n })\r\n\r\n seterrorMessage(\"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\");\r\n if (width < 758) {\r\n setErrorHeight(105);\r\n } else {\r\n setErrorHeight(65);\r\n }\r\n setmodalError(true);\r\n setQuoteStatus(null);\r\n window.scrollTo(0, 0);\r\n setLoading(false);\r\n } else {\r\n history.push(\"/PropertyInfo\");\r\n }\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n seterrorMessage(quoteStatus);\r\n setmodalError(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n async function databaseUpdate() {\r\n const personalInfo = JSON.parse(localStorage.getItem(\"personal_information\"));\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Email: personalInfo.email,\r\n Insured_First_Name: personalInfo.first_name,\r\n Insured_Last_Name: personalInfo.last_name,\r\n CoApplicant_First_Name: personalInfo.co_first_name,\r\n CoApplicant_Last_Name: personalInfo.co_last_name,\r\n Address: personalInfo.main_addr_street,\r\n Zip_code: personalInfo.main_addr_zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteInformation', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n }\r\n\r\n async function onStartNewClick() {\r\n setmodalError(false);\r\n const quote = JSON.parse(localStorage.getItem(\"quote_to_send\"))\r\n\r\n setLoading(true);\r\n\r\n async function fetchData() {\r\n const response = await createQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n if (response !== \"Service temporarily unavailable. Please try again later.\") {\r\n databaseUpdate();\r\n }\r\n\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"API_RES\", \"Create quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"API_REQ\", \"Create quote request\");\r\n fetchData();\r\n\r\n }\r\n\r\n function formatDate(date) {\r\n return date.substr(4, 2) + \"/\" + date.substr(6, 2) + \"/\" + date.substr(0, 4);\r\n }\r\n\r\n function handleQuoteChange(e) {\r\n setSelectedQuote(e.target.value);\r\n }\r\n\r\n async function onContinueClick(quoteNumber) {\r\n setmodalError(false);\r\n setLoading(true);\r\n let quote = {};\r\n\r\n if (localStorage.getItem('retrieve_data') != undefined) {\r\n const retrieveData = JSON.parse(localStorage.getItem(\"retrieve_data\"));\r\n quote = {\r\n QuoteNumber: quoteNumber,\r\n LastName: retrieveData.lastName,\r\n ZipCode: retrieveData.zipcode,\r\n SearchCriteria: \"QuoteNumber\"\r\n }\r\n } else if (localStorage.getItem('personal_information') != undefined) {\r\n quote = {\r\n QuoteNumber: quoteNumber,\r\n LastName: JSON.parse(localStorage.getItem(\"personal_information\")).last_name,\r\n ZipCode: JSON.parse(localStorage.getItem(\"personal_information\")).main_addr_zip,\r\n SearchCriteria: \"QuoteNumber\"\r\n }\r\n }\r\n\r\n async function fetchData() {\r\n const response = await retrieveQuote(JSON.stringify(quote));\r\n createActivityQuoteDB(\"RetrieveEmailList\", \"RECALL\", \"RetrieveQuote quote recall\");\r\n if (response !== \"ERROR\") {\r\n setfetchStatus(true);\r\n\r\n } else {\r\n setErrorHeight(65);\r\n seterrorMessage(\"This estimate can not be recovered.\");\r\n setmodalError(true);\r\n setLoading(false);\r\n }\r\n }\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/checkCompletedQuote', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: quoteNumber,\r\n })\r\n }).then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === undefined) {\r\n localStorage.setItem('status', \"RET\");\r\n fetchData();\r\n } else {\r\n if (width < 758) {\r\n setErrorHeight(110);\r\n } else {\r\n setErrorHeight(85);\r\n }\r\n setLoading(false);\r\n seterrorMessage(\"This estimate has already been submitted and cannot be updated. Please contact customer service at 800-648-1794.\");\r\n setmodalError(true);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (fetchStatus != null) {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/selectLastPage', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: window.localStorage.getItem(\"quote_number\"),\r\n })\r\n }).then((response) => response.json())\r\n .then((responseJson) => {\r\n if (responseJson.length != 0) {\r\n if (responseJson[0].toString() != null) {\r\n history.push(\"/\" + responseJson[0].toString());\r\n } else {\r\n history.push(\"/AdditionalInfo\");\r\n }\r\n } else {\r\n seterrorMessage(\"This estimate cannot be recovered. Please contact customer service at 800-648-1794.\");\r\n if (width < 758) {\r\n setErrorHeight(85);\r\n } else {\r\n setErrorHeight(65);\r\n }\r\n setQuoteStatus(null);\r\n setfetchStatus(null);\r\n window.scrollTo(0, 0);\r\n setmodalError(true);\r\n setLoading(false);\r\n }\r\n \r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [fetchStatus]);\r\n\r\n return (<>\r\n {\r\n loading ?\r\n
\r\n < div className=\"loading_icon\" >\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n {\r\n width < 758 &&\r\n\r\n \r\n\r\n }\r\n {\r\n width > 758 &&\r\n\r\n \r\n }\r\n\r\n

\r\n We noticed that you have existing estimate(s). Please select from the option(s) below:

\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 {quoteNumbers.map(quote =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Estimate NumberDate
\r\n \r\n \r\n {quote.number}\r\n \r\n {formatDate(quote.date)}\r\n \r\n {selectedQuote === quote.number &&\r\n onContinueClick(quote.number)}\r\n >\r\n Continue\r\n \r\n }\r\n
\r\n {localStorage.getItem('quote_to_send') && <>\r\n
\r\n \r\n }\r\n
\r\n
\r\n }\r\n );\r\n}\r\n\r\nexport default Page_retrieve_a_2\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './Page_retrieve_a.css';\r\nimport { retrieveQuote, createActivityQuoteDB } from '../API/Model';\r\nimport Alert from '../Additional/Alert';\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport axios from 'axios'\r\n// qutoe_number\r\n\r\nfunction Page_retrieve_b() {\r\n\r\n\r\n let history = useHistory();\r\n const [quoteNumber, setquoteNumber] = useState('');\r\n const [lastName, setlastName] = useState('');\r\n const [zipcode, setzipcode] = useState('');\r\n const [modalError, setmodalError] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState('');\r\n const { height, width } = useWindowDimensions();\r\n const [ errorHeight, setErrorHeight ] = useState(65);\r\n const [load, setonLoad] = useState(false);\r\n const [fetchStatus, setfetchStatus] = useState(null);\r\n let quote = {\r\n QuoteNumber: quoteNumber,\r\n LastName: lastName,\r\n ZipCode: zipcode,\r\n SearchCriteria: \"QuoteNumber\"\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (load === false) {\r\n\r\n localStorage.clear();\r\n async function getIP() {\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n }\r\n getIP();\r\n localStorage.setItem('session_id', uuidv4());\r\n\r\n createActivityQuoteDB(\"RetriveQuote\", \"PL\", \"RetriveQuote page loaded\");\r\n setonLoad(true);\r\n }\r\n\r\n });\r\n\r\n const onquoteNumberChange = (e) => {\r\n setquoteNumber(e.target.value);\r\n }\r\n const onlastNameChange = (e) => {\r\n setlastName(e.target.value);\r\n }\r\n const onzipcodeChange = (e) => {\r\n setzipcode(e.target.value);\r\n }\r\n const onModalClose = (e) => {\r\n setmodalError(false);\r\n }\r\n\r\n async function onButtonClick() {\r\n setmodalError(false);\r\n\r\n async function fetchData() {\r\n const response = await retrieveQuote(JSON.stringify(quote));\r\n createActivityQuoteDB(\"RetriveQuote\", \"RECALL\", \"RetriveQuote quote recall\");\r\n if (response !== \"ERROR\") {\r\n setfetchStatus(true);\r\n } else {\r\n\r\n setErrorHeight(65);\r\n seterrorMessage(\"This estimate can not be recovered.\");\r\n setmodalError(true);\r\n }\r\n }\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/checkCompletedQuote', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: quoteNumber,\r\n })\r\n }).then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === undefined) {\r\n localStorage.setItem('status', \"RET\");\r\n fetchData();\r\n } else {\r\n if (width < 758) {\r\n setErrorHeight(110);\r\n } else {\r\n setErrorHeight(85);\r\n }\r\n\r\n seterrorMessage(\"This estimate has already been submitted and cannot be updated. Please contact customer service at 800-648-1794.\");\r\n setmodalError(true);\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (fetchStatus != null) {\r\n setfetchStatus(null);\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/selectLastPage', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: window.localStorage.getItem(\"quote_number\"),\r\n })\r\n }).then((response) => response.json())\r\n .then((responseJson) => {\r\n\r\n if (responseJson !== null && responseJson !== undefined && responseJson.length > 0) {\r\n \r\n if (responseJson[0].toString() != null) {\r\n history.push(\"/\" + responseJson[0].toString());\r\n } else {\r\n history.push(\"/AdditionalInfo\");\r\n }\r\n } else {\r\n\r\n if (width < 758) {\r\n setErrorHeight(110);\r\n } else {\r\n setErrorHeight(85);\r\n }\r\n seterrorMessage(\"We were unable to obtain RCE information for your estimate and it can’t be retrieved. Please contact customer service at 800-648-1794.\");\r\n setmodalError(true);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [fetchStatus]);\r\n\r\n return (\r\n\r\n
\r\n\r\n\r\n {\r\n width < 758 &&\r\n\r\n \r\n\r\n }\r\n {\r\n width > 758 &&\r\n\r\n \r\n }\r\n\r\n\r\n\r\n

\r\n Let's Retrieve Your Homeowners Estimate

\r\n\r\n
\r\n\r\n

\r\n Pull up your estimate by\r\n

\r\n

\r\n \r\n Email\r\n \r\n \r\n or Estimate Number\r\n\r\n

\r\n\r\n

\r\n Estimate Number

\r\n \r\n\r\n\r\n

\r\n Last Name

\r\n\r\n \r\n\r\n\r\n\r\n

\r\n Zip Code

\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\nexport default Page_retrieve_b\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport './Page_save.css';\r\nimport { createActivityQuoteDB, getToken, getApplicationCorrespondence } from '../API/Model';\r\n\r\nfunction Page_save() {\r\n\r\n let link = window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ \"RetrieveEmail\";\r\n const [load, onLoad] = useState(true);\r\n const [url, setURL] = useState({\r\n pdf: \"\",\r\n State: false,\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (load === true) {\r\n\r\n createActivityQuoteDB(\"SaveQuote\", \"PL\", \"SaveQuote page loaded\");\r\n\r\n onLoad(false);\r\n\r\n async function fetchToken() {\r\n const response = await getToken(JSON.stringify({}));\r\n if (response !== \"ERROR\") {\r\n getURL(response)\r\n }\r\n }\r\n\r\n async function getURL(token) {\r\n const response = await getApplicationCorrespondence(JSON.stringify({\r\n ApplicationNumber: window.localStorage.getItem(\"quote_number\"),\r\n CorrespondenceTemplateId: \"HO5Estimate\",\r\n Token: token\r\n }));\r\n if (response !== \"ERROR\") {\r\n\r\n setURL({\r\n ...url,\r\n pdf: response,\r\n State: true,\r\n })\r\n }\r\n }\r\n\r\n fetchToken();\r\n }\r\n });\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (url.State === true) {\r\n\r\n setURL({\r\n ...url,\r\n State: false,\r\n })\r\n\r\n let current_page = localStorage.getItem('current_page');\r\n\r\n const formData = new FormData();\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('first_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name);\r\n formData.append('last_name', JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).inspection_contact_name);\r\n\r\n/* if (current_page === \"AdditionalInfo\" || current_page === \"PropertyInfo\" || current_page === \"Coverages\") {\r\n formData.append('subject', \"Complete Your Mutual Assurance Estimate\");\r\n formData.append('type', \"email_b\");\r\n formData.append('pdf_url', null);\r\n } else {*/\r\n formData.append('subject', \"Schedule Your Home Inspection with Mutual Assurance\");\r\n formData.append('type', \"email_c\");\r\n formData.append('pdf_url', url.pdf);\r\n/* }\r\n*/\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"SaveQuote\", \"EMAIL_SENT\", \"SaveQuote email sent\");\r\n createActivityQuoteDB(\"SaveQuote\", \"SAVE\", current_page);\r\n },\r\n (error) => {\r\n\r\n })\r\n }\r\n }, [url]);\r\n\r\n\r\n\r\n return (\r\n
\r\n

Your Homeowners Estimate Has Been Saved

\r\n
\r\n

Estimate Number: {window.localStorage.getItem(\"quote_number\")}

\r\n

An email has been sent to the email record on file with\r\n a link to retrieve this at a later time

\r\n

You may also click the following link below to continue\r\n with your estimate by entering a few details tied to your account

\r\n \r\n

{link}

\r\n \r\n
\r\n
\r\n\r\n );\r\n}\r\nexport default Page_save","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n}","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../Additional/GooglePlaces';\r\nimport Alert from '../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './New_Landing_Page.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../styles.css';\r\nimport { createNewLandingPageQuote, createActivityQuoteDB, retrieveCustomer } from '../API/Model';\r\nimport axios from 'axios'\r\nimport Navigation from '../Overlays/Navigation';\r\nimport moment from \"moment\";\r\n\r\nclass New_Landing_Page extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n loading: false,\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.prepareQuote = this.prepareQuote.bind(this);\r\n this.databaseUpdate = this.databaseUpdate.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"Inspection\", \"PL\", \"Inspection page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n async databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Address: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n Zip_code: this.state.addressInfo.zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n }\r\n\r\n prepareQuote() {\r\n const quote_DTOInsured = [\r\n {\r\n EntityTypeCd: \"Individual\",\r\n PreferredDeliveryMethod: \"\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"\",\r\n }\r\n ],\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: \"\",\r\n PostalCode: \"\",\r\n City: \"\",\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n ],\r\n IndexName: \"\"\r\n }\r\n ]\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n const quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: \"\",\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: (\r\n eff_date\r\n ),\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"CovALimit\": this.state.cov_a_limit,\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: \"No\",\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-06\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n return quote;\r\n }\r\n\r\n async handleSubmit(e) {\r\n createActivityQuoteDB(\"Inspection\", \"NAV\", \"Continue button\");\r\n\r\n this.setState({\r\n mainErrorHeight: 65,\r\n loading: true,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n } else {\r\n\r\n }\r\n window.localStorage.setItem(\"existing_customer\", \"NO\");\r\n this.onButtonClick();\r\n\r\n const quote = this.prepareQuote();\r\n\r\n createActivityQuoteDB(\"Inspection\", \"API_REQ\", \"Create quote request\");\r\n\r\n const response = await createNewLandingPageQuote(JSON.stringify(quote));\r\n let quoteStatus = response;\r\n if (quoteStatus === \"SUCCESS\") {\r\n await this.databaseUpdate();\r\n createActivityQuoteDB(\"Inspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.props.history.push('/InspectionInfo');\r\n } else if (quoteStatus != null) {\r\n createActivityQuoteDB(\"Inspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.setState({\r\n error_message: quoteStatus,\r\n alert_state: true,\r\n loading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"Inspection\", \"NAV\", \"Go button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const footerMessage = \"What would you do with the money you save?\";\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n <>\r\n {this.state.loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

Our policyholders save $2,000 on average over 5 years.

\r\n\t\t\t\t\t\t\t

Estimate your savings in 5 seconds.

\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 this.state.disable\r\n ? event.preventDefault()}>\r\n \r\n \r\n :
\r\n {/**/}\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n

{footerMessage}

\r\n {/*
*/}\r\n {footerMessage}\r\n {/*
{footerMessage}
*/}\r\n {/*
*/}\r\n

The way home insurance was meant to be.

\r\n {footerMessage}\r\n
\r\n
\r\n\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(New_Landing_Page);\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../Additional/ScreenProps';\r\nimport Alert from '../Additional/Alert';\r\nimport { updateNewLandingPageQuote, fetchQuote, createActivityQuoteDB } from '../API/Model';\r\nimport './New_Landing_Page_2.css';\r\nimport '../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport Banner from '../Additional/Banner';\r\n\r\nfunction New_Landing_Page_2() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateInspectionQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n createActivityQuoteDB(\"InspectionInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"InspectionInfo\", \"PL\", \"InspectionInfo page loaded\");\r\n localStorage.setItem('current_page', \"InspectionInfo\");\r\n\r\n setCustomerRef(JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n\r\n setOnLoad(false);\r\n\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n };\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].GivenName = personal_info.First;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].Surname = personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].CommercialName = personal_info.First + \" \" + personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr = personal_info.Email;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber = personal_info.Phone;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneName = \"Mobile\";\r\n\r\n async function updateData() {\r\n if (quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateNewLandingPageQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"InspectionInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"InspectionInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n }\r\n fetchData();\r\n\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n setIsSubmit(true);\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n\r\n databaseUpdate();\r\n history.push(\"/EstimateSummary\");\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n

Want to learn more?
\r\n Tell us about yourself and we’ll contact you.

\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Phone}

\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

Or call (800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default New_Landing_Page_2\r\n","import React, { useState, useEffect } from 'react';\r\nimport Banner from '../Additional/Banner';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport { fetchQuote, createActivityQuoteDB, getToken,getApplicationCorrespondence } from '../API/Model';\r\nimport * as htmlToImage from 'html-to-image';\r\nimport jsPDF from \"jspdf\";\r\nimport './New_Landing_Page_3.css';\r\nimport '../styles.css';\r\n\r\n\r\nfunction New_Landing_Page_3() {\r\n\r\n const page = 8;\r\n let quote = {\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }\r\n const [url, setURL] = useState(null);\r\n const [flag, set_flag] = useState(false);\r\n const [load, setonLoad] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [coverage, setCoverage] = useState({\r\n covA: 0,\r\n });\r\n const [newQuoteEmailSent, setNewQuoteEmailSent] = useState(false);\r\n\r\n useEffect(() => {\r\n if (load === false) {\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/checkNewQuoteEmailSent', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[0] === undefined && !newQuoteEmailSent) {\r\n setNewQuoteEmailSent(true);\r\n let formData = new FormData()\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('pdf_url', null);\r\n formData.append('subject', \"New SalesPortal Quote - \" + localStorage.getItem(\"quote_number\"));\r\n formData.append('type', \"email_e\");\r\n formData.append('quote_number', localStorage.getItem(\"quote_number\"));\r\n formData.append('First_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name + \" \" + JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('inspection_phone', JSON.parse(localStorage.getItem(\"personal_information\")).phone);\r\n formData.append('inspection_email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n let agency_name = \"\";\r\n if (JSON.parse(localStorage.getItem(\"agency_information\")) !== null &&\r\n Object.keys(JSON.parse(localStorage.getItem(\"agency_information\"))).length !== 0 &&\r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== null &&\r\n JSON.parse(localStorage.getItem(\"agency_information\")).agency_name !== \"Mutual Assurance Society of Virginia\") {\r\n agency_name = JSON.parse(localStorage.getItem(\"agency_information\")).agency_name\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_phone\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_email\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_addres\r\n + \";\" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_city + \" \" + JSON.parse(localStorage.getItem(\"agency_information\")).agency_zip;\r\n }\r\n formData.append('inspection_name', agency_name);\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"EstimateSummary\", \"EMAIL_SENT\", \"New Quote email sent\");\r\n })\r\n }\r\n })\r\n }\r\n });\r\n\r\n \r\n useEffect(() => {\r\n if (load === false) {\r\n\r\n setonLoad(true);\r\n localStorage.setItem('status', \"COMP\");\r\n\r\n createActivityQuoteDB(\"EstimateSummary\", \"PL\", \"EstimateSummary page loaded\");\r\n localStorage.setItem('current_page', \"QuoteSummary\");\r\n\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify(quote));\r\n\r\n window.localStorage.setItem(\"quote_information\", JSON.stringify({\r\n firstYearPremium: response.DTOBasicPolicy[0].FinalPremiumAmt,\r\n secondYearPremium: response.DTOLine[0].EstimatedSecondYearAssessment,\r\n fiveYearPremium: response.DTOLine[0].EstimatedFiveYearAveAnnualCost,\r\n }));\r\n\r\n setCoverage({\r\n ...coverage,\r\n covA: response.DTOLine[0].DTORisk[0].DTOBuilding[0].CovALimit,\r\n });\r\n\r\n setLoading(false);\r\n set_flag(true);\r\n }\r\n fetchData();\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (flag === true) {\r\n \r\n async function fetchToken() {\r\n const response = await getToken(JSON.stringify({}));\r\n if (response !== \"ERROR\") {\r\n getURL(response)\r\n }\r\n }\r\n\r\n async function getURL(token) {\r\n const response = await getApplicationCorrespondence(JSON.stringify({\r\n ApplicationNumber: window.localStorage.getItem(\"quote_number\"),\r\n CorrespondenceTemplateId: \"HO5Estimate\",\r\n Token: token\r\n }));\r\n if (response !== \"ERROR\") {\r\n setURL(response);\r\n }\r\n }\r\n\r\n set_flag(false);\r\n fetchToken();\r\n }\r\n }, [flag]);\r\n\r\n\r\n \r\n useEffect(() => {\r\n\r\n if (url != null) {\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/checkCompletedQuote', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[0] === undefined) {\r\n\r\n let formData = new FormData()\r\n formData.append('pdf_url', url);\r\n formData.append('email', JSON.parse(localStorage.getItem(\"personal_information\")).email);\r\n formData.append('subject', \"Your Mutual Assurance Estimate\");\r\n formData.append('first_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name);\r\n formData.append('last_name', JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n formData.append('type', \"email_a\");\r\n formData.append('inspection_name', JSON.parse(localStorage.getItem(\"personal_information\")).first_name + \" \" + JSON.parse(localStorage.getItem(\"personal_information\")).last_name);\r\n \r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'EmailSender/sendEmail', {\r\n method: 'POST',\r\n body: formData\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n createActivityQuoteDB(\"EstimateSummary\", \"EMAIL_SENT\", \"Summary email sent\");\r\n\r\n fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1)+ 'portal/updateQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Quote_Status_code: \"COMP\",\r\n })\r\n })\r\n })\r\n }\r\n })\r\n }\r\n }, [url]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n return (\r\n\r\n
\r\n {\r\n loading === true ?\r\n
\r\n
\r\n \r\n
\r\n
\r\n :\r\n
\r\n{/*
\r\n*/}
\r\n\r\n
\r\n

We’ll be in touch within 1-2 business days

\r\n \r\n
\r\n\r\n

Your Estimate # is
{window.localStorage.getItem(\"quote_number\")}

\r\n \r\n
\r\n\r\n
\r\n \r\n

(800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\r\n
\r\n

The way home insurance was meant to be.

\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\nexport default New_Landing_Page_3","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../../Additional/GooglePlaces';\r\nimport Alert from '../../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './Landing_Page_Blacksburg.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../../styles.css';\r\nimport { createNewLandingPageQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport axios from 'axios'\r\nimport moment from \"moment\";\r\n\r\nclass Landing_Page_Blacksburg extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n loading: false,\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.prepareQuote = this.prepareQuote.bind(this);\r\n this.databaseUpdate = this.databaseUpdate.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n localStorage.setItem('current_landing_page', \"Blacksburg\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"PL\", \"Blacksburg Inspection page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n async databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Address: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n Zip_code: this.state.addressInfo.zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n }\r\n\r\n prepareQuote() {\r\n const quote_DTOInsured = [\r\n {\r\n EntityTypeCd: \"Individual\",\r\n PreferredDeliveryMethod: \"\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"\",\r\n }\r\n ],\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: \"\",\r\n PostalCode: \"\",\r\n City: \"\",\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n ],\r\n IndexName: \"\"\r\n }\r\n ]\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n const quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: \"\",\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: (\r\n eff_date\r\n ),\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"CovALimit\": this.state.cov_a_limit,\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: \"No\",\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-06\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n return quote;\r\n }\r\n\r\n async handleSubmit(e) {\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"NAV\", \"Continue button\");\r\n\r\n this.setState({\r\n mainErrorHeight: 65,\r\n loading: true,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n } else {\r\n\r\n }\r\n window.localStorage.setItem(\"existing_customer\", \"NO\");\r\n this.onButtonClick();\r\n\r\n const quote = this.prepareQuote();\r\n\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"API_REQ\", \"Create quote request\");\r\n\r\n const response = await createNewLandingPageQuote(JSON.stringify(quote));\r\n let quoteStatus = response;\r\n if (quoteStatus === \"SUCCESS\") {\r\n await this.databaseUpdate();\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.props.history.push('/BlacksburgInfo');\r\n } else if (quoteStatus != null) {\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.setState({\r\n error_message: quoteStatus,\r\n alert_state: true,\r\n loading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"BlacksburgInspection\", \"NAV\", \"Go button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const footerMessage = \"What would you do with the money you save?\";\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n <>\r\n {this.state.loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n

Our policyholders save $2,000 on average over 5 years.

\r\n

Estimate your savings in 5 seconds.

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n {\r\n this.state.disable\r\n ? event.preventDefault()}>\r\n \r\n \r\n :
\r\n {/**/}\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n

{footerMessage}

\r\n {/*
*/}\r\n {footerMessage}\r\n {/*
{footerMessage}
*/}\r\n {/*
*/}\r\n

The way home insurance was meant to be.

\r\n {footerMessage}\r\n
\r\n
\r\n\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Landing_Page_Blacksburg);\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../../Additional/ScreenProps';\r\nimport Alert from '../../Additional/Alert';\r\nimport { updateNewLandingPageQuote, fetchQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport './Inspection_Info_Blacksburg.css';\r\nimport '../../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport Banner from '../../Additional/Banner';\r\n\r\nfunction Inspection_Info_Blacksburg() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateInspectionQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n createActivityQuoteDB(\"BlacksburgInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"BlacksburgInfo\", \"PL\", \"BlacksburgInfo page loaded\");\r\n localStorage.setItem('current_page', \"BlacksburgInfo\");\r\n\r\n setCustomerRef(JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n\r\n setOnLoad(false);\r\n\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n };\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].GivenName = personal_info.First;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].Surname = personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].CommercialName = personal_info.First + \" \" + personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr = personal_info.Email;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber = personal_info.Phone;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneName = \"Mobile\";\r\n\r\n async function updateData() {\r\n if (quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateNewLandingPageQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"BlacksburgInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"BlacksburgInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n }\r\n fetchData();\r\n\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n setIsSubmit(true);\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n\r\n databaseUpdate();\r\n history.push(\"/EstimateSummary\");\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n

Want to learn more?
\r\n Tell us about yourself and we’ll contact you.

\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Phone}

\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

Or call (800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default Inspection_Info_Blacksburg\r\n","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../../Additional/GooglePlaces';\r\nimport Alert from '../../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './Landing_Page_Botetourt.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../../styles.css';\r\nimport { createNewLandingPageQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport axios from 'axios'\r\nimport moment from \"moment\";\r\n\r\nclass Landing_Page_Botetourt extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n loading: false,\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.prepareQuote = this.prepareQuote.bind(this);\r\n this.databaseUpdate = this.databaseUpdate.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n localStorage.setItem('current_landing_page', \"Botetourt\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"BotetourtInspection\", \"PL\", \"Botetourt Inspection page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n async databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Address: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n Zip_code: this.state.addressInfo.zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n }\r\n\r\n prepareQuote() {\r\n const quote_DTOInsured = [\r\n {\r\n EntityTypeCd: \"Individual\",\r\n PreferredDeliveryMethod: \"\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"\",\r\n }\r\n ],\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: \"\",\r\n PostalCode: \"\",\r\n City: \"\",\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n ],\r\n IndexName: \"\"\r\n }\r\n ]\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n const quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: \"\",\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: (\r\n eff_date\r\n ),\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"CovALimit\": this.state.cov_a_limit,\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: \"No\",\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-06\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n return quote;\r\n }\r\n\r\n async handleSubmit(e) {\r\n createActivityQuoteDB(\"BotetourtInspection\", \"NAV\", \"Continue button\");\r\n\r\n this.setState({\r\n mainErrorHeight: 65,\r\n loading: true,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n } else {\r\n\r\n }\r\n window.localStorage.setItem(\"existing_customer\", \"NO\");\r\n this.onButtonClick();\r\n\r\n const quote = this.prepareQuote();\r\n\r\n createActivityQuoteDB(\"BotetourtInspection\", \"API_REQ\", \"Create quote request\");\r\n\r\n const response = await createNewLandingPageQuote(JSON.stringify(quote));\r\n let quoteStatus = response;\r\n if (quoteStatus === \"SUCCESS\") {\r\n await this.databaseUpdate();\r\n createActivityQuoteDB(\"BotetourtInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.props.history.push('/BotetourtInfo');\r\n } else if (quoteStatus != null) {\r\n createActivityQuoteDB(\"BotetourtInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.setState({\r\n error_message: quoteStatus,\r\n alert_state: true,\r\n loading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"BotetourtInspection\", \"NAV\", \"Go button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const footerMessage = \"What would you do with the money you save?\";\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n <>\r\n {this.state.loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n

Our policyholders save $2,000 on average over 5 years.

\r\n

Estimate your savings in 5 seconds.

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n {\r\n this.state.disable\r\n ? event.preventDefault()}>\r\n \r\n \r\n :
\r\n {/**/}\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n

{footerMessage}

\r\n {/*
*/}\r\n {footerMessage}\r\n {/*
{footerMessage}
*/}\r\n {/*
*/}\r\n

The way home insurance was meant to be.

\r\n {footerMessage}\r\n
\r\n
\r\n\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Landing_Page_Botetourt);\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../../Additional/ScreenProps';\r\nimport Alert from '../../Additional/Alert';\r\nimport { updateNewLandingPageQuote, fetchQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport './Inspection_Info_Botetourt.css';\r\nimport '../../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport Banner from '../../Additional/Banner';\r\n\r\nfunction Inspection_Info_Botetourt() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateInspectionQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n createActivityQuoteDB(\"BotetourtInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"BotetourtInfo\", \"PL\", \"BotetourtInfo page loaded\");\r\n localStorage.setItem('current_page', \"BotetourtInfo\");\r\n\r\n setCustomerRef(JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n\r\n setOnLoad(false);\r\n\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n };\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].GivenName = personal_info.First;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].Surname = personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].CommercialName = personal_info.First + \" \" + personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr = personal_info.Email;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber = personal_info.Phone;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneName = \"Mobile\";\r\n\r\n async function updateData() {\r\n if (quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateNewLandingPageQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"BotetourtInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"BotetourtInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n }\r\n fetchData();\r\n\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n setIsSubmit(true);\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n\r\n databaseUpdate();\r\n history.push(\"/EstimateSummary\");\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n

Want to learn more?
\r\n Tell us about yourself and we’ll contact you.

\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Phone}

\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

Or call (800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default Inspection_Info_Botetourt\r\n","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../../Additional/GooglePlaces';\r\nimport Alert from '../../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './Landing_Page_Culpeper.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../../styles.css';\r\nimport { createNewLandingPageQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport axios from 'axios'\r\nimport moment from \"moment\";\r\n\r\nclass Landing_Page_Culpeper extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n loading: false,\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.prepareQuote = this.prepareQuote.bind(this);\r\n this.databaseUpdate = this.databaseUpdate.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n localStorage.setItem('current_landing_page', \"Culpeper\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"CulpeperInspection\", \"PL\", \"Culpeper Inspection page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n async databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Address: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n Zip_code: this.state.addressInfo.zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n }\r\n\r\n prepareQuote() {\r\n const quote_DTOInsured = [\r\n {\r\n EntityTypeCd: \"Individual\",\r\n PreferredDeliveryMethod: \"\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"\",\r\n }\r\n ],\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: \"\",\r\n PostalCode: \"\",\r\n City: \"\",\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n ],\r\n IndexName: \"\"\r\n }\r\n ]\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n const quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: \"\",\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: (\r\n eff_date\r\n ),\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"CovALimit\": this.state.cov_a_limit,\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: \"No\",\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-06\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n return quote;\r\n }\r\n\r\n async handleSubmit(e) {\r\n createActivityQuoteDB(\"CulpeperInspection\", \"NAV\", \"Continue button\");\r\n\r\n this.setState({\r\n mainErrorHeight: 65,\r\n loading: true,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n } else {\r\n\r\n }\r\n window.localStorage.setItem(\"existing_customer\", \"NO\");\r\n this.onButtonClick();\r\n\r\n const quote = this.prepareQuote();\r\n\r\n createActivityQuoteDB(\"CulpeperInspection\", \"API_REQ\", \"Create quote request\");\r\n\r\n const response = await createNewLandingPageQuote(JSON.stringify(quote));\r\n let quoteStatus = response;\r\n if (quoteStatus === \"SUCCESS\") {\r\n await this.databaseUpdate();\r\n createActivityQuoteDB(\"CulpeperInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.props.history.push('/CulpeperInfo');\r\n } else if (quoteStatus != null) {\r\n createActivityQuoteDB(\"CulpeperInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.setState({\r\n error_message: quoteStatus,\r\n alert_state: true,\r\n loading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"CulpeperInspection\", \"NAV\", \"Go button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const footerMessage = \"What would you do with the money you save?\";\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n <>\r\n {this.state.loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n

Our policyholders save $2,000 on average over 5 years.

\r\n

Estimate your savings in 5 seconds.

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n {\r\n this.state.disable\r\n ? event.preventDefault()}>\r\n \r\n \r\n :
\r\n {/**/}\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n

{footerMessage}

\r\n {/*
*/}\r\n {footerMessage}\r\n {/*
{footerMessage}
*/}\r\n {/*
*/}\r\n

The way home insurance was meant to be.

\r\n {footerMessage}\r\n
\r\n
\r\n\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Landing_Page_Culpeper);\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../../Additional/ScreenProps';\r\nimport Alert from '../../Additional/Alert';\r\nimport { updateNewLandingPageQuote, fetchQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport './Inspection_Info_Culpeper.css';\r\nimport '../../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport Banner from '../../Additional/Banner';\r\n\r\nfunction Inspection_Info_Culpeper() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateInspectionQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n createActivityQuoteDB(\"CulpeperInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"CulpeperInfo\", \"PL\", \"CulpeperInfo page loaded\");\r\n localStorage.setItem('current_page', \"CulpeperInfo\");\r\n\r\n setCustomerRef(JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n\r\n setOnLoad(false);\r\n\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n };\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].GivenName = personal_info.First;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].Surname = personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].CommercialName = personal_info.First + \" \" + personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr = personal_info.Email;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber = personal_info.Phone;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneName = \"Mobile\";\r\n\r\n async function updateData() {\r\n if (quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateNewLandingPageQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"CulpeperInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"CulpeperInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n }\r\n fetchData();\r\n\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n setIsSubmit(true);\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n\r\n databaseUpdate();\r\n history.push(\"/EstimateSummary\");\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n

Want to learn more?
\r\n Tell us about yourself and we’ll contact you.

\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Phone}

\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

Or call (800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default Inspection_Info_Culpeper\r\n","import React, { Component } from 'react';\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport GooglePlaces from '../../Additional/GooglePlaces';\r\nimport Alert from '../../Additional/Alert';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport './Landing_Page_Harrisonburg.css';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport '../../styles.css';\r\nimport { createNewLandingPageQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport axios from 'axios'\r\nimport moment from \"moment\";\r\n\r\nclass Landing_Page_Harrisonburg extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n localStorage.clear();\r\n\r\n this.state = {\r\n addressInfo: {},\r\n disable: true,\r\n alert_state: false,\r\n error_message: \"\",\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n errorHeight: 85,\r\n mainErrorHeight: 65,\r\n cov_a_limit: null,\r\n isFocused: false,\r\n loading: false,\r\n }\r\n\r\n this.setAddressInfo = this.setAddressInfo.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.onCovALimitChange = this.onCovALimitChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.prepareQuote = this.prepareQuote.bind(this);\r\n this.databaseUpdate = this.databaseUpdate.bind(this);\r\n localStorage.setItem('session_id', uuidv4());\r\n localStorage.setItem('current_page', \"Home\");\r\n localStorage.setItem('current_landing_page', \"Harrisonburg\");\r\n }\r\n\r\n async componentDidMount() {\r\n window.addEventListener('resize', this.handleResize);\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n const res = await axios.get('https://geolocation-db.com/json/')\r\n localStorage.setItem('user_ip', res.data.IPv4);\r\n localStorage.setItem('status', \"STR\");\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"PL\", \"Harrisonburg Inspection page loaded\");\r\n }\r\n\r\n handleResize() {\r\n this.setState({ width: window.innerWidth, height: window.innerHeight });\r\n }\r\n\r\n formatCurrency(num) {\r\n return num ? \"$\" + num.toLocaleString(\"en-US\", { minimumFractionDigits: 0 }) : \"\";\r\n }\r\n\r\n parseCurrency(str) {\r\n return str ? parseInt(str.replace(/\\D/g, \"\")) : null;\r\n }\r\n\r\n onCovALimitChange(e) {\r\n const newValue = this.parseCurrency(e.target.value.replace(/,/g, ''));\r\n if (newValue <= 99999999) {\r\n this.setState({ cov_a_limit: newValue })\r\n }\r\n else if (!newValue) {\r\n this.setState({ cov_a_limit: null })\r\n }\r\n }\r\n\r\n handleBlur(e) {\r\n const { cov_a_limit } = this.state;\r\n if (!cov_a_limit) {\r\n this.setState({ cov_a_limit: null });\r\n }\r\n else if (cov_a_limit < 100000) {\r\n this.setState({ cov_a_limit: 100000 });\r\n }\r\n }\r\n\r\n async databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/createQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n Address: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n Zip_code: this.state.addressInfo.zip,\r\n Quote_Status_code: \"STR\",\r\n Session_id: localStorage.getItem('session_id'),\r\n })\r\n })\r\n }\r\n\r\n prepareQuote() {\r\n const quote_DTOInsured = [\r\n {\r\n EntityTypeCd: \"Individual\",\r\n PreferredDeliveryMethod: \"\",\r\n PartyInfo: [\r\n {\r\n PartyTypeCd: \"InsuredParty\",\r\n Status: \"Active\",\r\n PersonInfo: [\r\n {\r\n BestWayToContact: \"\",\r\n }\r\n ],\r\n Addr: [\r\n {\r\n AddrTypeCd: \"InsuredMailingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredBillingAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredLookupAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredResidentAddr\",\r\n Addr1: this.state.addressInfo.street_number + \" \" + this.state.addressInfo.street,\r\n PostalCode: this.state.addressInfo.zip,\r\n City: this.state.addressInfo.city,\r\n StateProvCd: \"VA\"\r\n },\r\n {\r\n AddrTypeCd: \"InsuredPriorAddr\",\r\n Addr1: \"\",\r\n PostalCode: \"\",\r\n City: \"\",\r\n StateProvCd: \"VA\"\r\n }\r\n ]\r\n },\r\n ],\r\n IndexName: \"\"\r\n }\r\n ]\r\n\r\n const current_date = new Date();\r\n const eff_date = moment().format(\"YYYYMMDD\");\r\n const exp_date = moment().add(1, \"years\").format(\"YYYYMMDD\");\r\n const quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n ByPassCustomerCreation: \"No\",\r\n DTOApplication: [{\r\n Status: \"In Process\",\r\n TypeCd: \"Quote\",\r\n CustomerRef: \"\",\r\n DTOTransactionInfo: {\r\n TransactionCd: \"New Business\",\r\n SourceCd: \"Innovation\",\r\n TransactionShortDescription: \"New Business\",\r\n TransactionLongDescription: \"New Business\",\r\n TransactionEffectiveDt: (\r\n eff_date\r\n ),\r\n \"TransactionNumber\": \"0\"\r\n },\r\n DTOLine: [{\r\n StatusCd: \"Active\",\r\n LineCd: \"Homeowners\",\r\n RatingService: \"ManualRate\",\r\n \"DTORisk\": [\r\n {\r\n \"TypeCd\": \"Homeowners\",\r\n \"DTOBuilding\": [\r\n {\r\n \"CovALimit\": this.state.cov_a_limit,\r\n },\r\n ],\r\n },\r\n ],\r\n }],\r\n DTOInsured: quote_DTOInsured,\r\n DTOBasicPolicy: [{\r\n EffectiveDt: (\r\n eff_date\r\n ),\r\n ExpirationDt: (\r\n exp_date\r\n ),\r\n PolicyVersion: \"1\",\r\n RenewalTermCd: \"1 Year\",\r\n SubTypeCd: \"HO5\",\r\n PolicyForm: \"HO5\",\r\n PolicySource: \"New Business Application\",\r\n RecentMoveIn: \"No\",\r\n TransactionNumber: \"1\",\r\n Description: \"Preferred Homeowners\",\r\n ProviderNumber: \"001\",\r\n ControllingStateCd: \"VA\",\r\n ProductVersionIdRef: \"masov-VA-PreferredHomeowners-v01-00-06\",\r\n CarrierGroupCd: \"MASOV\",\r\n BusinessSourceCd: \"DirectPortal\",\r\n TransactionCd: \"New Business\"\r\n }]\r\n }]\r\n }\r\n return quote;\r\n }\r\n\r\n async handleSubmit(e) {\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"NAV\", \"Continue button\");\r\n\r\n this.setState({\r\n mainErrorHeight: 65,\r\n loading: true,\r\n })\r\n const cov_a = this.state.cov_a_limit;\r\n if (cov_a !== null) {\r\n window.localStorage.setItem(\"cov_a\", cov_a.toString());\r\n } else {\r\n\r\n }\r\n window.localStorage.setItem(\"existing_customer\", \"NO\");\r\n this.onButtonClick();\r\n\r\n const quote = this.prepareQuote();\r\n\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"API_REQ\", \"Create quote request\");\r\n\r\n const response = await createNewLandingPageQuote(JSON.stringify(quote));\r\n let quoteStatus = response;\r\n if (quoteStatus === \"SUCCESS\") {\r\n await this.databaseUpdate();\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.props.history.push('/HarrisonburgInfo');\r\n } else if (quoteStatus != null) {\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"API_RES\", \"Create quote response - \" + response);\r\n this.setState({\r\n error_message: quoteStatus,\r\n alert_state: true,\r\n loading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n setAddressInfo(addressInfo) {\r\n this.setState({\r\n addressInfo,\r\n mainErrorHeight: 65,\r\n })\r\n if (this.state.addressInfo.state !== \"Virginia\") {\r\n\r\n this.setState({\r\n disable: true,\r\n alert_state: true\r\n })\r\n this.setState({\r\n error_message: \"We only offer policies for homes in Virginia. Thanks for checking us out.\",\r\n errorHeight: 85,\r\n })\r\n\r\n } else {\r\n if (this.state.addressInfo.city\r\n && this.state.addressInfo.country\r\n && this.state.addressInfo.state\r\n && this.state.addressInfo.street\r\n && this.state.addressInfo.street_number\r\n && this.state.addressInfo.zip) {\r\n this.setState({\r\n disable: false,\r\n alert_state: false\r\n })\r\n } else {\r\n this.setState({\r\n disable: true,\r\n alert_state: true,\r\n error_message: \"We are unable complete your estimate at this time. Please contact customer service at 800-648-1794.\",\r\n errorHeight: 105,\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n async onButtonClick() {\r\n\r\n createActivityQuoteDB(\"HarrisonburgInspection\", \"NAV\", \"Go button\");\r\n window.grecaptcha.enterprise.ready(async function () {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute('6LfCsp0dAAAAAK_ovmpumPsEqegcHoMmNcxz89u3', { action: 'LOGIN' });\r\n\r\n } catch (e) {\r\n console.error(\"Capcha Error : \", e);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const footerMessage = \"What would you do with the money you save?\";\r\n const { cov_a_limit } = this.state;\r\n\r\n return (\r\n <>\r\n {this.state.loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n {this.state.width < 758 &&\r\n \r\n }\r\n {this.state.width > 758 &&\r\n\r\n \r\n }\r\n

Our policyholders save $2,000 on average over 5 years.

\r\n

Estimate your savings in 5 seconds.

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n {\r\n this.state.disable\r\n ? event.preventDefault()}>\r\n \r\n \r\n :
\r\n {/**/}\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n

{footerMessage}

\r\n {/*
*/}\r\n {footerMessage}\r\n {/*
{footerMessage}
*/}\r\n {/*
*/}\r\n

The way home insurance was meant to be.

\r\n {footerMessage}\r\n
\r\n
\r\n\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Landing_Page_Harrisonburg);\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NumberFormat from 'react-number-format';\r\nimport ClipLoader from \"react-spinners/FadeLoader\";\r\nimport useWindowDimensions from '../../Additional/ScreenProps';\r\nimport Alert from '../../Additional/Alert';\r\nimport { updateNewLandingPageQuote, fetchQuote, createActivityQuoteDB } from '../../API/Model';\r\nimport './Inspection_Info_Harrisonburg.css';\r\nimport '../../styles.css';\r\nimport { Redirect } from 'react-router';\r\nimport Banner from '../../Additional/Banner';\r\n\r\nfunction Inspection_Info_Harrisonburg() {\r\n\r\n let history = useHistory();\r\n\r\n const [onLoad, setOnLoad] = useState(true);\r\n const [isSubmit, setIsSubmit] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [error_message, setError_message] = useState(\"error\");\r\n const [alert_state, setAlert_state] = useState(false);\r\n const [quoteStatus, setQuoteStatus] = useState(null);\r\n const [quote_information, setquote_information] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n const [customerRef, setCustomerRef] = useState(\"\");\r\n const [covA, setCovA] = useState(0);\r\n\r\n\r\n const [addres, setAddres] = useState({\r\n Street: \"\",\r\n City: \"\",\r\n Zip: \"\",\r\n State: \"\"\r\n });\r\n\r\n const [personal_info, setPersonalInfo] = useState({\r\n First: \"\",\r\n Last: \"\",\r\n Email: \"\",\r\n Phone: \"\"\r\n });\r\n\r\n const onChangeUser = (e) => {\r\n setPersonalInfo({ ...personal_info, [e.target.name]: e.target.value });\r\n }\r\n\r\n function validateForm() {\r\n\r\n const errors = {};\r\n const regex_email = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const regex_phone = /^(\\()?\\d{3}(\\))?(-|\\s)?\\d{3}(-|\\s)\\d{4}$/;\r\n\r\n //Applicant Personal Information\r\n\r\n if (!personal_info.First) {\r\n errors.Applicant_First = \"First name is required!\";\r\n }\r\n if (!personal_info.Last) {\r\n errors.Applicant_Last = \"Last name is required!\";\r\n }\r\n if (!personal_info.Email) {\r\n errors.Applicant_Email = \"Email is required!\";\r\n }\r\n else if (!regex_email.test(personal_info.Email)) {\r\n errors.Applicant_Email = \"This is not a valid email format\";\r\n }\r\n if (!personal_info.Phone) {\r\n errors.Applicant_Phone = \"Phone is required!\";\r\n }\r\n else if (!regex_phone.test(personal_info.Phone)) {\r\n errors.Applicant_Phone = \"This is not a valid phone format.\";\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n\r\n async function databaseUpdate() {\r\n\r\n await fetch(window.location.href.substr(0, window.location.href.lastIndexOf(\"/\") + 1) + 'portal/updateInspectionQuoteDB', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Email: personal_info.Email,\r\n Insured_First_Name: personal_info.First,\r\n Insured_Last_Name: personal_info.Last,\r\n Quote_Number: localStorage.getItem('quote_number'),\r\n })\r\n })\r\n\r\n createActivityQuoteDB(\"HarrisonburgInfo\", \"NAV\", \"Continue button\");\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setFormErrors(validateForm());\r\n };\r\n\r\n useEffect(() => {\r\n if (onLoad) {\r\n createActivityQuoteDB(\"HarrisonburgInfo\", \"PL\", \"HarrisonburgInfo page loaded\");\r\n localStorage.setItem('current_page', \"HarrisonburgInfo\");\r\n\r\n setCustomerRef(JSON.parse(localStorage.getItem(\"personal_information\")).customer_ref)\r\n setCovA(JSON.parse(localStorage.getItem(\"cov_a\")))\r\n\r\n setOnLoad(false);\r\n\r\n }\r\n\r\n }, [onLoad, addres]);\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n if (Object.keys(formErrors).length === 0 && isSubmit) {\r\n setLoading(true);\r\n async function fetchData() {\r\n const response = await fetchQuote(JSON.stringify({\r\n \"ApplicationNumber\": '\"' + window.localStorage.getItem(\"quote_number\") + '\"',\r\n \"Owner\": \"SalesPortal\"\r\n }));\r\n let quote = {\r\n ExternalValidateBeanExist: \"No\",\r\n DTOApplication: [\r\n response\r\n ]\r\n };\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].GivenName = personal_info.First;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].Surname = personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].NameInfo[0].CommercialName = personal_info.First + \" \" + personal_info.Last;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].EmailInfo[0].EmailAddr = personal_info.Email;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneNumber = personal_info.Phone;\r\n quote.DTOApplication[0].DTOInsured[0].PartyInfo[0].PhoneInfo[0].PhoneName = \"Mobile\";\r\n\r\n async function updateData() {\r\n if (quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.length > 2) {\r\n quote.DTOApplication[0].DTOLine[0].DTORisk[0].DTOBuilding[0].Addr.splice(0, 1);\r\n }\r\n const response = await updateNewLandingPageQuote(JSON.stringify(quote));\r\n setQuoteStatus(response);\r\n\r\n createActivityQuoteDB(\"HarrisonburgInfo\", \"API_RES\", \"Update quote response - \" + response);\r\n }\r\n createActivityQuoteDB(\"HarrisonburgInfo\", \"API_REQ\", \"Update quote request\");\r\n updateData();\r\n }\r\n fetchData();\r\n\r\n } else {\r\n setIsSubmit(false);\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [isSubmit]);\r\n\r\n useEffect(() => {\r\n\r\n window.localStorage.setItem(\"personal_information\", JSON.stringify({\r\n ...JSON.parse(localStorage.getItem(\"personal_information\")),\r\n first_name: personal_info.First,\r\n last_name: personal_info.Last,\r\n email: personal_info.Email,\r\n phone: personal_info.Phone,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!onLoad) {\r\n setIsSubmit(true);\r\n }\r\n\r\n }, [formErrors]);\r\n\r\n useEffect(() => {\r\n setLoading(false);\r\n\r\n if (quoteStatus === \"SUCCESS\") {\r\n\r\n databaseUpdate();\r\n history.push(\"/EstimateSummary\");\r\n\r\n } else if (quoteStatus != null) {\r\n\r\n setIsSubmit(false);\r\n setError_message(quoteStatus);\r\n setAlert_state(true);\r\n setQuoteStatus(null);\r\n }\r\n\r\n }, [quoteStatus]);\r\n\r\n function formatNumber(number) {\r\n\r\n if (number != null) {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n });\r\n return formatter.format(number);\r\n }\r\n }\r\n\r\n if (localStorage.getItem('status') === \"COMP\") {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n {\r\n loading ?\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n :\r\n
\r\n\r\n
\r\n\r\n {width < 758 &&\r\n \r\n }\r\n {width > 758 &&\r\n\r\n \r\n }\r\n
\r\n \r\n {/**/}\r\n\r\n
\r\n

Want to learn more?
\r\n Tell us about yourself and we’ll contact you.

\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n

{formErrors.Applicant_First}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Last}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Email}

\r\n
\r\n
\r\n \r\n

{formErrors.Applicant_Phone}

\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

Or call (800) 648-1794

\r\n

(Monday to Friday 8am – 4:30pm)

\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\nexport default Inspection_Info_Harrisonburg\r\n","import React, { Component } from 'react';\r\nimport { BrowserRouter as Router, Route, Switch, useHistory } from 'react-router-dom';\r\nimport { Layout } from './components/Layout';\r\nimport Home_page from './components/Page 1/Home_page';\r\nimport HowItWorks_page from './components/Page 2/HowItWorks_page';\r\nimport YourInfo_page from './components/Page 3/YourInfo_page';\r\nimport AdditionalInfo_page from './components/Page 4/AdditionalInfo_page';\r\nimport PropertyInfo_page from './components/Page 5/PropertyInfo_page';\r\nimport Coverages_page from './components/Page 6/Coverages_page';\r\nimport QuoteSummary_page from './components/Page 8/QuoteSummary_page';\r\nimport HomeInspection_page from './components/Page 7/HomeInspection_page';\r\nimport Page_retrieve_a from './components/Retrive Pages/Page_retrieve_a';\r\nimport Page_retrieve_a_2 from './components/Retrive Pages/Page_retrieve_a_2';\r\nimport Page_retrieve_b from './components/Retrive Pages/Page_retrieve_b';\r\nimport Page_save from './components/Save Page/Page_save';\r\nimport './custom.css'\r\nimport ScrollToTop from './components/Additional/ScrollToTop';\r\nimport New_Landing_Page from './components/Page9/New_Landing_Page';\r\nimport New_Landing_Page_2 from './components/Page10/New_Landing_Page_2';\r\nimport New_Landing_Page_3 from './components/Page11/New_Landing_Page_3';\r\nimport Landing_Page_Blacksburg from './components/Landing_Pages/Blacksburg/Landing_Page_Blacksburg';\r\nimport Inspection_Info_Blacksburg from './components/Landing_Pages/Blacksburg/Inspection_Info_Blacksburg';\r\nimport Landing_Page_Botetourt from './components/Landing_Pages/Botetourt/Landing_Page_Botetourt';\r\nimport Inspection_Info_Botetourt from './components/Landing_Pages/Botetourt/Inspection_Info_Botetourt';\r\nimport Landing_Page_Culpeper from './components/Landing_Pages/Culpeper/Landing_Page_Culpeper';\r\nimport Inspection_Info_Culpeper from './components/Landing_Pages/Culpeper/Inspection_Info_Culpeper';\r\nimport Landing_Page_Harrisonburg from './components/Landing_Pages/Harrisonburg/Landing_Page_Harrisonburg';\r\nimport Inspection_Info_Harrisonburg from './components/Landing_Pages/Harrisonburg/Inspection_Info_Harrisonburg';\r\n\r\nexport default class App extends Component {\r\n\r\n static displayName = App.name;\r\n \r\n render() {\r\n \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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*2nd route*/}\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 \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 \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 url = process.env.PUBLIC_URL as string;\r\n const publicUrl = new URL(url, window.location.toString());\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: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing as ServiceWorker;\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: string) {\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 const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\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('No internet connection found. App is running in offline mode.');\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 { unregister } from './registerServiceWorker';\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nunregister();\r\n\r\n"],"sourceRoot":""}