{"version":3,"sources":["authorization.js","recoil/atoms.js","recoil/selectors.js","assets/image/logo.png","components/commons/header.jsx","assets/svg/twitter.svg","assets/svg/linkedin.svg","components/commons/footer.jsx","assets/svg/welcome.svg","components/custom-dropdown.jsx","constants/getProductDescription.js","constants/packages.js","constants/quotes-steps.js","constants/countries.js","constants/relationships.js","constants/titles.js","constants/genders.js","constants/index.js","assets/svg/plus.svg","assets/svg/collapse.svg","assets/svg/check.svg","pages/Dashboard/BuyInsurance/InsurancePlan/package.jsx","pages/Dashboard/BuyInsurance/InsurancePlan/insurance-plan.jsx","pages/Home/home.index.jsx","hooks/useLoginUser.js","components/commons/retry.jsx","components/commons/retryLoader.jsx","components/commons/search.jsx","hooks/useCountries.js","pages/Dashboard/DashboardHome/travels.jsx","utilities/use-interval.js","utilities/firebase.js","utilities/index.js","pages/Quotes/SuccessPage/print-certifcate.jsx","pages/Dashboard/DashboardHome/certificates.jsx","pages/Dashboard/DashboardHome/dashboard-home.jsx","pages/Dashboard/BuyInsurance/buy-insurance.index.jsx","utilities/validator.js","utilities/use-validation.js","pages/Dashboard/BuyInsurance/TravelDetails/travel-details.schema.js","pages/Quotes/NextOfKinDetails/next-of-kin.schema.js","pages/Dashboard/BuyInsurance/TravelDetails/travel-details.jsx","pages/Dashboard/BuyInsurance/InsuranceDetails/insurance-details.jsx","pages/Dashboard/BuyInsurance/InsurancePayment/insurance-payment.jsx","hooks/useProducts.js","pages/Dashboard/BuyInsurance/SelectPlan/select-plan.jsx","pages/Dashboard/BuyInsurance/process-insurance.index.jsx","pages/Dashboard/Profile/profile-password.schema.js","pages/Dashboard/Profile/profile-change-password.jsx","pages/Dashboard/Profile/profile-information.schema.js","pages/Dashboard/Profile/profile-information.jsx","assets/svg/upload.svg","pages/Dashboard/Profile/profile-passport.jsx","pages/Dashboard/Profile/profile.index.jsx","pages/Dashboard/Users/users.active-profile.jsx","pages/Dashboard/Users/users.delete-profile.jsx","pages/Dashboard/Users/users.edit-profile-schema.js","pages/Dashboard/Users/users.edit-profile.jsx","pages/Dashboard/Users/users.table.jsx","pages/Dashboard/Users/users.create-profile.jsx","pages/Dashboard/Users/users.index.jsx","pages/Dashboard/Roles/roles.active-profile.jsx","pages/Dashboard/Roles/roles.delete-profile.jsx","pages/Dashboard/Roles/roles.edit-profile-schema.js","pages/Dashboard/Roles/roles.edit-profile.jsx","pages/Dashboard/Roles/roles.table.jsx","pages/Dashboard/Roles/roles.create-profile.jsx","pages/Dashboard/Tasks/useTasks.jsx","pages/Dashboard/Roles/roles.index.jsx","pages/Dashboard/Tasks/tasks.table.jsx","pages/Dashboard/Tasks/tasks.index.jsx","pages/Dashboard/UserDetails/user-details.information.jsx","pages/Dashboard/UserDetails/user-details.passport.jsx","pages/Dashboard/DashboardHome/payments.jsx","pages/Dashboard/UserDetails/user-details.index.jsx","pages/Dashboard/RoleDetails/role-details.index.jsx","pages/Dashboard/Report/reports.jsx","pages/Dashboard/BuyInsuranceOffline/TravelDetails/travel-details.schema.js","pages/Dashboard/BuyInsuranceOffline/TravelDetails/travel-details.jsx","pages/Dashboard/BuyInsuranceOffline/PassengerDetails/passenger-details.schema.js","pages/Dashboard/BuyInsuranceOffline/PassengerDetails/passenger-details.jsx","pages/Dashboard/BuyInsuranceOffline/NextOfKinDetails/next-of-kin.schema.js","pages/Dashboard/BuyInsuranceOffline/NextOfKinDetails/next-of-kin-details.jsx","pages/Dashboard/BuyInsuranceOffline/SelectPlan/select-plan.jsx","pages/Dashboard/BuyInsuranceOffline/ProductDetails/product-details.jsx","pages/Dashboard/BuyInsuranceOffline/Payment/payment.jsx","pages/Dashboard/BuyInsuranceOffline/quotes.forms.jsx","pages/Dashboard/BuyInsuranceOffline/quotes.index.jsx","pages/Dashboard/ContinueBuyInsurance/TravelDetails/travel-details.schema.js","pages/Dashboard/ContinueBuyInsurance/TravelDetails/travel-details.jsx","pages/Dashboard/ContinueBuyInsurance/InsuranceDetails/insurance-details.jsx","pages/Dashboard/ContinueBuyInsurance/InsurancePayment/insurance-payment.jsx","pages/Dashboard/ContinueBuyInsurance/SelectPlan/select-plan.jsx","pages/Dashboard/ContinueBuyInsurance/process-insurance.index.jsx","pages/Dashboard/EditInsurance/TravelDetails/travel-details.schema.js","pages/Dashboard/EditInsurance/TravelDetails/travel-details.jsx","pages/Dashboard/EditInsurance/PassengerDetails/passenger-details.schema.js","pages/Dashboard/EditInsurance/PassengerDetails/passenger-details.jsx","pages/Dashboard/EditInsurance/NextOfKinDetails/next-of-kin.schema.js","pages/Dashboard/EditInsurance/NextOfKinDetails/next-of-kin-details.jsx","pages/Dashboard/EditInsurance/quotes.forms.jsx","pages/Dashboard/EditInsurance/quotes.index.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/TravelDetails/travel-details.schema.js","pages/Dashboard/ContinueBuyInsuranceOffline/TravelDetails/travel-details.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/PassengerDetails/passenger-details.schema.js","pages/Dashboard/ContinueBuyInsuranceOffline/PassengerDetails/passenger-details.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/NextOfKinDetails/next-of-kin.schema.js","pages/Dashboard/ContinueBuyInsuranceOffline/NextOfKinDetails/next-of-kin-details.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/SelectPlan/select-plan.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/ProductDetails/product-details.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/PassportUpload/passport-upload.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/Payment/payment.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/quotes.forms.jsx","pages/Dashboard/ContinueBuyInsuranceOffline/quotes.index.jsx","pages/Dashboard/dashboard.screens.jsx","pages/Dashboard/dashboard-menu.js","assets/svg/alert.svg","pages/Dashboard/dashboard-header.jsx","assets/image/avatar.png","components/commons/Sidebar.jsx","pages/Dashboard/dashboard.index.jsx","assets/svg/robot.svg","pages/NotFound/notfound.jsx","pages/Quotes/TravelDetails/travel-details.schema.js","pages/Quotes/TravelDetails/travel-details.jsx","pages/Quotes/PassengerDetails/passenger-details.schema.js","pages/Quotes/PassportUpload/passport-upload.jsx","pages/Quotes/PassengerDetails/passenger-details.jsx","pages/Quotes/SelectPlan/select-plan.jsx","pages/Quotes/Payment/payment.jsx","pages/Quotes/ProductDetails/product-details.jsx","pages/Quotes/quotes.forms.jsx","pages/Quotes/quotes.index.jsx","assets/svg/travellers.svg","assets/svg/success-icon.svg","pages/Quotes/SuccessPage/success-page.jsx","pages/Auth/login.schema.js","pages/Auth/login.jsx","pages/Auth/forgot-password.jsx","hooks/useQuery.js","pages/Auth/change-password.jsx","pages/Auth/first-change-password.jsx","pages/Auth/modal-login.jsx","pages/Quotes/InBetween.jsx","pages/Quotes/Batch/Batch.jsx","helpers/generateConfig.js","pages/Quotes/Batch/components/ProductDetails.jsx","components/commons/List.jsx","pages/Quotes/Batch/components/GuardianDetails.jsx","pages/Quotes/Batch/components/PassengerDetails.jsx","pages/Quotes/Batch/components/PassportUpload.jsx","pages/Quotes/Batch/components/TravelDetails.jsx","components/commons/Back.jsx","pages/Quotes/Batch/components/Payment.jsx","pages/Quotes/Batch/components/Referral.jsx","helpers/formateMafreDate.js","pages/Quotes/Batch/components/EditModal.jsx","pages/Quotes/Group/TravelDetails/components/Plan.jsx","pages/Quotes/Batch/AllInOneForm.jsx","pages/Quotes/Batch/helpers/getPassenger.js","pages/Quotes/Batch/helpers/getGuardian.js","pages/Quotes/Batch/helpers/buildGibsProfileData.js","pages/Quotes/Batch/BatchHome.jsx","pages/Quotes/Batch/components/Header.jsx","pages/Quotes/Batch/components/Footer.jsx","pages/Quotes/Batch/components/certificate.jsx","pages/Quotes/Group/index.js","pages/Quotes/Group/TravelDetails/components/Policy.jsx","pages/Quotes/Group/TravelDetails/components/Travel.jsx","pages/Quotes/Group/TravelDetails/TravelDetails.jsx","pages/Quotes/Group/TravelDetails/index.js","pages/Quotes/Group/PassengerDetails/components/Details.jsx","pages/Quotes/Group/PassengerDetails/components/Passport.jsx","pages/Quotes/Group/PassengerDetails/helpers/getPassenger.js","pages/Quotes/Group/PassengerDetails/PassengerDetails.jsx","pages/Quotes/Group/PassengerDetails/helpers/usePassenger.js","pages/Quotes/Group/PassengerDetails/helpers/useGetPolicyHolder.js","pages/Quotes/Group/PassengerDetails/helpers/useGetGuardian.js","pages/Quotes/Group/PassengerDetails/helpers/useGetProductXml.js","pages/Quotes/Group/PassengerDetails/helpers/useGetPrices.js","pages/Quotes/Group/PassengerDetails/index.js","pages/Quotes/Group/GroupPayment.js","App.js","reportWebVitals.js","index.js"],"names":["policyHolderState","atom","key","default","firstName","lastName","otherNames","dateOfBirth","email","phoneNumber","address","passportNumber","gender","title","allPassengersState","finalSubmitState","guardianHeightState","isMinorState","allDataState","formIndexState","displayPopUpFormState","formSubmittedState","currentPackageState","currentPlanState","clearFieldsState","fileState","uploadState","loginState","quotesPageState","travelDetailsState","duration","purpose","startDate","endDate","passengerDetailsState","nextOfKinDetailsState","guardianDetailsState","relationship","travelDetailFormState","buyInsuranceScreenState","selectedPlanState","selectedProfileTabState","profileInformationState","headerState","Accept","mafreKeyState","selectedProductState","passportUrlState","priceInformationState","insuranceDataState","userDataState","permissionuserDataState","editUserDataState","editRoleDataState","createUserDataState","createRoleDataState","userTypeState","rolesState","tasksState","tasksStatusState","loading","error","dashboardMenuState","appHeaderState","profileDataState","productXmlDataState","priceDataState","currentLoginState","selector","get","_ref","_ref2","Header","authenticated","useRecoilValue","menu","setMenu","useRecoilState","nav","useNavigate","getInTouch","e","preventDefault","stopPropagation","window","Tawk_API","maximize","gotoPage","str","_jsxs","className","children","_jsx","NavLink","to","src","logo","alt","onClick","version","xmlns","x","y","viewBox","d","concat","href","_Fragment","Footer","Date","getFullYear","twitter","linkedIn","DropSearch","data","identifier","onSelect","inputId","showItems","placeholder","disable","name","async","onChange","inputType","value","setFieldValue","display","setDisplay","useState","dropDownData","setDropDownData","delay","rawData","setRawData","inputRef","useRef","convertResult","integer","input","parseInt","search","keyword","arguments","length","undefined","result","index","toLowerCase","includes","push","useEffect","type","id","htmlFor","current","focus","thumbnail","width","height","fillRule","clipRule","onKeyUp","event","setTimeout","getResult","target","ref","autoFocus","map","item","handleClick","productDescriptionMaps","ECO4","description","minDays","maxDays","FAMI6","PEAR12","PILB25","PILX19","PILP21","SCH18","SCCHNI","STUB5","STUEC","STUP8","TRAV10","getProductDescription","product","packages","coverLimit","plans","steps","countries","idReg","cd","ds","relationships","titles","genders","baseUrl","subDirectory","GibbsApiKey","subProductTypeID","flutterwaveKey","InsurancePackage","insurancePackage","isUser","packageRef","packageHeight","setPackageHeight","setSelectedPlan","userType","_insurancePackage$pla","guardian","clientHeight","initial","new","route","getRoute","iPackage","iPlan","handlePackageToggle","collapseIcon","plusIcon","style","plan","checkIcon","package","encodeURI","InsurancePlan","heading","HomePage","packagesRef","React","scrollIntoView","behavior","welcome","useLoginUser","login","setLogin","headers","setHeaders","mapKey","setMapKey","user","setUser","permissions","setPermissions","first_login","fetchUser","_user$data","_user$data$profile","_user$data2","_user$data2$role","response","fetch","paramHeaders","json","errors","Error","message","_user$data$profile2","profile","next_of_kin","JSON","parse","role","tasks","reduce","perms","perm","localforage","setItem","err","toast","console","updateMapKey","retry","res","xhref","root","updateLogin","newHeaders","Authorization","access_token","logoutUser","clear","location","Retry","msg","btnText","action","fullscreen","RetryLoader","Spinner","color","animation","Search","fields","setOutput","filter","filterLabel","filterOptions","textInput","setTextInput","filterValue","setFilterValue","filteredData","valid","i","field","debug","toString","Object","keys","opt","useCountries","setCountries","InitCountries","countriesMap","setCountriesMap","setLoading","setError","acc","country","getCountries","getCountryName","useCallback","_countriesMap$name","alertError","reload","getItem","Math","abs","moment","createdAt","diff","fetchFromCache","_data$root","method","body","stringify","effectDate","format","_data$root2","_data$root3","ExcelFile","ReactExport","ExcelSheet","ExcelColumn","Travels","columns","useMemo","accessor","_d$user","_d$user2","_d$user2$profile","last_name","_d$user3","phone","destination","sortMethod","a","b","getTime","from_date","to_date","mapfre_policy_no","created_at","setFilteredData","tableInstance","useTable","useSortBy","usePagination","getTableProps","getTableBodyProps","headerGroups","prepareRow","page","canPreviousPage","canNextPage","pageCount","nextPage","previousPage","state","pageIndex","pages","items","Pagination","Item","disabled","active","Ellipsis","num","createRef","_b$user","_b$user2","_b$user2$profile","_b$user3","element","label","col","_col$user","_col$user2","_col$user2$profile","_col$user3","_col$user4","_col$user5","_col$user5$profile","creator","exportPDF","savePDF","repeatHeaders","paperSize","orientation","margin","headerGroup","_createElement","getHeaderGroupProps","column","j","getHeaderProps","getSortByToggleProps","render","isSorted","isSortedDesc","row","k","_row$original","getRowProps","original","cells","cell","l","_cell$row$original","_cell$row$original$us","_cell$row$original2","_cell$row$original2$u","_cell$row$original3","_cell$row$original3$u","_cell$row$original4","_cell$row$original5","_cell$row$original5$u","_cell$row$original6","getCellProps","Link","create_user_travel_payment","useInterval","firebase","initializeApp","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","getAge","_date","_format","numberWithCommas","split","substring","replace","getRandomString","randomChars","charAt","floor","random","PrintCertifcate","_data$payments","_data$payments2","_data$payments3","_data$payments4","_data$payments5","_data$payments6","_data$payments7","_data$payments8","_data$payments9","_data$payments10","watermarked","class","payments","amount","status","payment_type","mapfre_policy_number","chi_certificate_no","chi_policy_number","chi_invoice_no","trxref","no_of_days","Certificates","_certificate$payments","_d$payments","_d$payments2","print","setPrint","certificate","setCertificate","reciept","setReciept","_b$payments","_col$payments","_col$payments2","_col$payments3","_headerGroup$row","_row$original2","_row$original2$paymen","_row$original3","_row$original3$user","_row$original4","itemClassName","OverlayTrigger","placement","overlay","props","Tooltip","fontSize","fill","rx","mapfre_certificate_id","download","rel","Modal","show","onHide","centered","closeButton","Title","Body","size","DashboardHome","dashboard","setDashboard","travelData","setTravelData","certificates","setCertificates","travelDataLoading","setTravelDataLoading","travelDataError","setTravelDataError","activeTab","setActiveTab","fectchDashboardData","cacheData","fetchTravelData","is_super_admin","then","totalTransactionAmount","catch","saveTravelData","tr","forEach","curr","req","travels","tabs","component","totalTravels","totalCertificates","tab","BuyInsurance","ValidatorService","constructor","schema","validations","required","success","shouldMatch","maxLength","minLength","words","trim","maxWords","minWords","date","isValid","olderThan","minimumValue","parseFloat","greaterThan","lessThan","isNaN","test","String","validateAll","schemaKeys","schemaValues","this","checkValidations","log","indexOf","values","getValidationRessults","fieldValue","Validator","schemas","options","errorArray","dataType","entries","entry","inputName","inputValue","isDataArrayValidated","arrayResults","ErrorMessage","travelSchema","guardianSchema","guardianFirstName","guardianLastName","guardianOtherName","guardianEmail","guardianPhoneNumber","guardianAddress","guardianDateOfBirth","guardianRelationship","guardianPassportNumber","TravelDetails","travelDetails","setTravelDetails","activePage","setActivePage","setActiveProfileTab","setErrors","insuranceData","setInsuranceData","guardianDetails","setGuardianDetails","setProfileData_state","subpath","useParams","handleValidations","isMinor","handleChange","handleGuardianChange","getDateDifference","_user$profile","date_of_birth","formateMafreDate","reverse","join","saveUserAndProceed","allInsurers","passenger","getPassenger","_user$profile2","_user$profile3","_user$profile4","_user$profile5","_user$profile6","_user$profile7","_user$profile8","_user$profile9","_user$profile9$next_o","_user$profile10","_user$profile10$next_","_user$profile11","_user$profile11$next_","_user$profile12","_user$profile12$next_","_user$profile13","_user$profile13$next_","first_name","other_names","passport_no","age","medical_cond","nok_name","nok_relationship","nok_phone","nok_email","nok_address","is_holder","policyHolder","profileData","saveInsuranceData","start_date","end_date","insuredData","idRegProduct","terms","deliveryDate","difference","_user$profile14","_user$profile15","info","passport_image","onSubmit","CustomDropdown","selection","readOnly","min","max","subtract","ProductDetails","_priceInfo$root","_priceInfo$root$premi","_priceInfo$root2","_priceInfo$root2$prem","createLoading","setCreateLoading","priceInfo","setPriceInfo","setProfileData","coverDetails","setCoverDetails","setTravelDetailForm","getPrices","xml","_data","cover_details","getProductXml","insuranceDataParam","xml_raw","buildGibsProfileData","Apikey","PolicyStartDate","PolicyEndDate","TravelPurpose","Destination","ContactAddress","LastName","FirstName","Gender","PassportNo","PhoneNo","Email","DOB","NoK_Name","NoK_Relationship","NoK_Address","NoK_Email","NoK_PhoneNo","CoverType","dsProduct","price","premiumBreakdown","startPrice","totalInsured","numInsured","colSpan","numMaxRiesgos","maxDiasAntes","maxDiasDespues","edadMinimaAsegurado","edadMaximaAsegurado","edadMinimaTomador","detail","cover","user_id","travel_id","travelDetailForm","customer_name","marketer","gibssTransactionData","Payment","_travelDetailForm$gib","paid","setPaid","gibbsResponse","setGibbsResponse","payment","setPayment","config","public_key","tx_ref","now","currency","payment_options","customer","phonenumber","customizations","handleFlutterPayment","useFlutterwave","savePayment","flutterwavePayment","paymentData","premium","paystack_ref","flw_ref","product_name","Promise","all","issueCertificate","hasPaid","pmt","storeOnGibbs","idRegContrato","_payment","completePayment","Map_PolicyNo","numContrato","Payment_Ref","MarketerID","MarketerName","full_name","Premium","_response$BuyTravelIn","_payment$data","chiData","BuyTravelInsuranceResult","TravelID","certificate_url","file","CertificateNos","InvoiceID","PolicyNumber","chi_response_status","StatusmSG","_payment$data2","handlePay","callback","closePaymentModal","onClose","useProducts","products","setProducts","getProducts","tbl_availableProducts","removeItem","SelectPlan","setSelectedProduct","Fragment","productDesc","buyNow","nextOfKinDetails","setNextOfKinDetails","passengerDetails","setPassengerDetails","resetForms","setActiveScreen","screens","InsuranceDetails","InsurancePayment","activeScreen","old_password","password","password_confirmation","ChangePassword","form","setForm","changePassword","ProfileInformation","profileInformation","setProfileInformation","save","_method","match","offset","ProfilePassport","setFile","change","setChange","progress","setProgress","interval","baseProgress","savePassport","clearInterval","setInterval","formData","FormData","append","reqHeaders","onDrop","acceptedFiles","getRootProps","getInputProps","useDropzone","accept","upload","ProgressBar","striped","variant","handleUpload","Profile","UsersActiveProfile","hide","activateUser","reason","setReason","backdrop","enabled","UsersDeleteProfile","deleteUser","user_type","role_id","UsersEditProfile","userData","setUserData","roles","handleSubmit","selected","r","UsersTable","refresh","_d$profile","deleteLoading","setDeleteLoading","editUser","setEditUser","setDeleteUser","activeUser","setActiveUser","editUserData","setEditUserData","_d$profile2","_col$profile","toggle_user","FormCheck","checked","get_user_with_role","list_user_payments","list_user_travels","update_user","delete_user","users","suspension_reason","UsersCreateProfile","setSchemas","defaultSchemas","UsersIndex","setUsers","setRoles","createUserData","setCreateUserData","showCreateUser","setShowCreateUser","fetchUsers","fetchRoles","searchFields","filteredUsers","setFilteredUsers","create_user","staff","createUser","RolesActiveProfile","activateRole","RolesDeleteProfile","deleteRole","animatedComponents","makeAnimated","RolesEditProfile","addPermission","roleData","setRoleData","t","Select","closeMenuOnSelect","components","defaultValue","isMulti","isDisabled","RolesTable","updateRole","removeRole","editRole","setEditRole","setDeleteRole","activeRole","setActiveRole","slug","RolesCreateProfile","useTasks","setStatus","setTasks","getTasks","RolesIndex","editRoleData","setEditRoleData","createRoleData","setCreateRoleData","showCreateRole","setShowCreateRole","create_role","createRole","TasksTable","TasksIndex","UserDetailsInformation","UserDetailPassport","UserDetails","UserDetailsPassport","Payments","RoleDetails","setRole","fetchRole","Reports","graphData","setGraphData","chartData","setChartData","period","setPeriod","force","setGraph","setChart","finalData","ResponsiveContainer","AreaChart","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","formatter","Intl","NumberFormat","Area","stroke","strokeWidth","fillOpacity","strokeOpacity","PieChart","Pie","spacing","PassengerDetails","handleChangeDropdown","otherTitle","setOtherTitle","find","NextOfKinDetails","marketers","setMarketers","guardianHeight","setGuardianHeight","guardianRef","handleGuardianToggle","isPolicyHolder","attaches","insurer","Marketer","fetchMarketers","document","querySelector","showGuardian","opacity","overflow","_event$target$value","isReferred","handleNextOfKinChange","QuotesForms","quotePages","Quotes","travel","_travel$user","_travel$user$profile","_travel$user2","_travel$user3","_travel$user4","_travel$user4$profile","_travel$user5","_travel$user5$profile","_travel$user6","_travel$user6$profile","_travel$user7","_travel$user8","_travel$user9","_travel$user9$profile","_travel$user10","_travel$user11","_travel$user11$profil","_travel$user12","_travel$user12$profil","_travel$user13","_travel$user13$profil","_travel$user14","_travel$user14$profil","_travel$user14$profil2","_travel$user15","_travel$user15$profil","_travel$user15$profil2","_travel$user16","_travel$user16$profil","_travel$user16$profil2","_travel$user17","_travel$user17$profil","_travel$user17$profil2","_travel$user18","_travel$user18$profil","_travel$user18$profil2","setTravel","user_travel","ids","fetchTravel","trv","_travel$user2$profile","_travel$user2$profile2","_travel$user3$profile","_travel$user3$profile2","_travel$user4$profile2","_travel$user5$profile2","_travel$user6$profile2","_travel$user7$profile","_travel$user7$profile2","_travel$user8$profile","_travel$user8$profile2","_travel$user9$profile2","_travel$user10$profil","_travel$user10$profil2","_travel$user11$profil2","_travel$user12$profil2","_travel$user13$profil2","_travel$user19","_travel$user19$profil","_travel$user20","_travel$user21","_travel$user22","_travel$user22$profil","_travel$user23","_travel$user23$profil","_travel$user24","_travel$user24$profil","_travel$user25","_travel$user25$profil","_travel$user26","_travel$user26$profil","proceed","setProceed","ECONOMY","EUROPE","FAMILY","PEARL","TRAVELLER","toUpperCase","idRegCertificate","payment_id","PassportUpload","setPassport","DashboardScreens","path","ProcessInsurance","list_users","list_roles","list_tasks","get_role_with_tasks","report","ContinueBuyInsurance","ContinueBuyInsuranceOffline","EditInsurance","dashboardMenu","icon","permission","hidden","admin","cx","cy","reports","logout","DashboardHeader","alertIcon","avatar","Sidebar","Dashboard","_dashboardMenu$path","Screens","NotFound","Robot","setUploadState","passportFile","userId","setIsMinor","hasGuardian","setHasGuardian","newIsMinor","passengerData","passengerValidationResult","guardianValidationResult","handleGuardianValidations","errorCount","visibility","paymentInfo","setPaymentInfo","completeUserCreate","setCompleteUserCreate","quotesSteps","step","SuccessPage","setData","getDetails","travellers","successIcon","printReciept","Login","setState","showPassword","setShowPassword","setUserType","_res$user","noValidate","autoComplete","autofill","togglePasswordVisibility","ForgotPassword","invalidError","formErrors","userDetails","useQuery","URLSearchParams","useLocation","token","amneshref","FirstChangePassword","ModalLogin","close","InBetween","setCurrentPackage","setCurrentPlan","multiple","setMultiple","cursor","Batch","Suspense","fallback","Outlet","generateConfig","details","redirect_url","_allData$indx7","_allData$indx7$passen","_allData$indx8","_allData$indx8$passen","_allData$indx9","_allData$indx9$select","_allData$indx10","_allData$indx10$selec","selectedProduct","allData","setAllData","indx","setIndx","setPrice","setTotalInsured","totalPrice","setTotalPrice","showModal","setShowModal","naira","_xml$raw_data","raw_data","updatedAllData","datum","datumIndex","prevData","prevPriceInfo","prevTotalInsured","prevPrice","prevTotalPrice","Number","_allData$indx","_allData$indx$selecte","_allData$indx2","_allData$indx2$select","_allData$indx3","_allData$indx3$select","_allData$indx4","_allData$indx4$select","_allData$indx5","_allData$indx5$select","_allData$indx6","_allData$indx6$select","toFixed","ind","minHeight","Button","List","setBuyingForMultiple","displayPopUpForm","setDisplayPopUpForm","formIndex","setFormIndex","showConfirmation","setShowConfirmation","_","handleDelete","handleEdit","GuardianDetails","clearFields","handleToggle","setAllPassengerDetailsInputSuccess","successMap","setSuccessMap","notRequiredKeys","trueKeys","_packages$","_packages$2","_packages$3","_packages$4","setAllTravelDetailsInputSuccess","currentPackage","currentPlan","Back","setSuccess","configs","setConfigs","conf","insurance_data","travel_detail","arr","makePayment","Referral","EditModal","_allData$formIndex","_allData$formIndex$tr","_allData$formIndex2","_allData$formIndex2$t","_allData$formIndex3","_allData$formIndex3$t","_allData$formIndex4","_allData$formIndex5","_allData$formIndex6","_allData$formIndex7","_allData$formIndex8","_allData$formIndex9","_allData$formIndex10","_allData$formIndex11","_allData$formIndex12","_allData$formIndex13","_allData$formIndex14","_allData$formIndex15","_allData$formIndex16","_allData$formIndex16$","_allData$formIndex17","showPlans","setShowPlans","closePopUp","handleTravelDetailsChange","handlePassengerDetailsChange","handleChangePassengerDetailsDropdown","AiOutlineClose","paddingTop","paddingBottom","Plan","setTravelPlanSelected","isProductSelected","product_","worldwidePackages","productName","RegExp","AllInOneForm","submit","setFieldsSuccess","buyingForMultiple","headingRef","formSubmitted","setFormSubmitted","finalSubmit","setFinalSubmit","setClearFields","allTravelDetailsInputSuccess","allPassengerDetailsInputSuccess","travelPlanSelected","getGuardian","boxShadow","createPortal","_profileData$next_of_","_profileData$next_of_2","_profileData$next_of_3","_profileData$next_of_4","_profileData$next_of_5","BatchHome","updating","setUpdating","hasBeenAdded","setHasBeenAdded","fieldsSuccess","setSubmit","saveTravelAndProceed","updateState","currentData","_allData$","allSettled","el","dt","handleMultiple","url","background","fontWeight","textDecoration","AiFillTwitterSquare","AiOutlineFacebook","AiOutlineLinkedin","AiOutlineInstagram","Certificate","isSuccess","setIsSuccess","isError","setIsError","errorSubtext","setErrorSubtext","paymentConfirmed","setPaymentConfirmed","webhookLoading","setWebhookLoading","webhookSuccess","setWebhookSuccess","regex","queryParams","exec","transaction_id","confirm","confirmPayment","val","callWebhook","statusCode","statusText","getCertificate","successful","Group","Policy","setAllPolicyInputSuccess","setPolicyHolder","Travel","setAllTravelInputSuccess","trueCount","allTravelInputSuccess","allPolicyInputSuccess","navLoading","setNavLoading","allFieldsSuccess","Details","setAllDetailsInputSuccess","Passport","setPassportUploadSuccess","_gp$root2","_gp$root2$premiumBrea","allPassengers","setAllPassengers","productXmlData","setProductXmlData","priceData","setPriceData","allInsuredData","setAllInsuredData","allDetailsInputSuccess","passportUploadSuccess","clickNavigate","setClickNavigate","isLoading","setIsLoading","loadingText","setLoadingText","usePassenger","getPolicyHolder","useGetPolicyHolder","useGetGuardian","pxd","localXmlData","setLocalXmlData","knownError","_data$raw_data","fn","useGetProductXml","gp","productXml","localPriceData","setLocalPriceData","useGetPrices","_gp$root","_gp$root$premiumBreak","flexDirection","alignItems","justifyContent","gap","passport","updatedAllPassengers","updatedProfileData","handlePayNow","_gp$root3","_gp$root3$premiumBrea","paymentRequest","_gp$root4","_gp$root4$premiumBrea","GroupPayment","setRetry","setConfig","_priceData$root","_priceData$root$premi","App","showTimeOut","setShowTimeOut","getLastActiveTime","useIdleTimer","timeout","onIdle","onAction","handleOnActive","debounce","crossTab","init","loginStateLastActiveTime","_loginState$user","_loginState$user2","visitor","Routes","Route","Home","QuotesSuccessPage","ToastContainer","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","RecoilRoot","BrowserRouter","getElementById"],"mappings":"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","file":"static/js/main.91862fcb.chunk.js","sourcesContent":["import * as jwt from 'jsonwebtoken';\r\n\r\n/**\r\n * scrambles string data\r\n * @param {String} token - input string data\r\n * @returns {String} - scrambled data\r\n */\r\nconst shuffleToken = token => token.split('').reverse().join('');\r\n\r\nconst verifyToken = token => {\r\n if (!token)\r\n return {\r\n Error: 'Failed to authenticate token',\r\n success: false\r\n };\r\n const reshuffledToken = shuffleToken(token);\r\n let output = {};\r\n return jwt.verify(\r\n reshuffledToken,\r\n process.env.REACT_APP_JWT_SECRET,\r\n (err, decoded) => {\r\n if (err) {\r\n output = {\r\n Error: 'Failed to authenticate token',\r\n success: false\r\n };\r\n } else {\r\n output = { success: true, ...decoded };\r\n }\r\n return output;\r\n }\r\n );\r\n};\r\n\r\nexport { verifyToken, shuffleToken };\r\n","import { atom } from 'recoil';\r\n\r\nconst policyHolderState = atom({\r\n key: 'policyHolderState',\r\n default: {\r\n firstName: '',\r\n lastName: '',\r\n otherNames: '',\r\n dateOfBirth: '',\r\n email: '',\r\n phoneNumber: '',\r\n address: '',\r\n passportNumber: '',\r\n gender: '',\r\n title: ''\r\n }\r\n});\r\n\r\nconst allPassengersState = atom({\r\n key: 'allPassengersState',\r\n default: []\r\n});\r\n\r\nconst finalSubmitState = atom({\r\n key: 'finalSubmitState',\r\n default: false\r\n});\r\n\r\nconst allInsurersState = atom({\r\n key: 'allInsurersState',\r\n default: []\r\n});\r\n\r\nconst totalPriceState = atom({\r\n key: 'totalPriceState',\r\n default: 0\r\n});\r\n\r\nconst guardianHeightState = atom({\r\n key: 'guardianHeightState',\r\n default: {}\r\n});\r\n\r\nconst isMinorState = atom({\r\n key: 'isMinorState',\r\n default: false\r\n});\r\n\r\nconst allDataState = atom({\r\n key: 'allDataState',\r\n default: []\r\n});\r\n\r\nconst formIndexState = atom({\r\n key: 'formIndexState',\r\n default: 0\r\n});\r\n\r\nconst displayPopUpFormState = atom({\r\n key: 'displayPopUpFormState',\r\n default: false\r\n});\r\n\r\nconst formSubmittedState = atom({\r\n key: 'formSubmittedState',\r\n default: false\r\n});\r\n\r\nconst currentPackageState = atom({\r\n key: 'currentPackageState',\r\n default: ''\r\n});\r\n\r\nconst currentPlanState = atom({\r\n key: 'currentPlanState',\r\n default: ''\r\n});\r\n\r\nconst clearFieldsState = atom({\r\n key: 'clearFieldsState',\r\n default: false\r\n});\r\n\r\nconst fileState = atom({\r\n key: 'fileState',\r\n default: null\r\n});\r\n\r\nconst uploadState = atom({\r\n key: 'uploadState',\r\n default: 'failure'\r\n});\r\n\r\nconst loginState = atom({\r\n key: 'loginState',\r\n default: null // set to true to simulate login\r\n});\r\n\r\nconst quotesPageState = atom({\r\n key: 'quotesPageState',\r\n default: 0\r\n});\r\n\r\nconst travelDetailsState = atom({\r\n key: 'travelDetailsState',\r\n default: {\r\n duration: '',\r\n purpose: '',\r\n startDate: '',\r\n endDate: ''\r\n }\r\n});\r\nconst passengerDetailsState = atom({\r\n key: 'passengerDetailsState',\r\n default: {\r\n firstName: '',\r\n lastName: '',\r\n otherNames: '',\r\n dateOfBirth: '',\r\n email: '',\r\n phoneNumber: '',\r\n address: '',\r\n passportNumber: '',\r\n gender: '',\r\n title: ''\r\n }\r\n});\r\n\r\nconst travelDurationState = atom({\r\n key: 'travelDurationState',\r\n default: null\r\n});\r\n\r\nconst nextOfKinDetailsState = atom({\r\n key: 'nextOfKinDetailsState',\r\n default: {}\r\n});\r\n\r\nconst guardianDetailsState = atom({\r\n key: 'guardianDetailsState',\r\n default: {\r\n firstName: '',\r\n lastName: '',\r\n otherNames: '',\r\n dateOfBirth: '',\r\n email: '',\r\n phoneNumber: '',\r\n address: '',\r\n passportNumber: '',\r\n gender: '',\r\n title: '',\r\n relationship: ''\r\n }\r\n});\r\n\r\nconst travelDetailFormState = atom({\r\n key: 'travelDetailFormState',\r\n default: {}\r\n});\r\n\r\nconst dashboardScreenState = atom({\r\n key: 'dashboardScreenState',\r\n default: 0\r\n});\r\n\r\nconst buyInsuranceScreenState = atom({\r\n key: 'buyInsuranceScreenState',\r\n default: 0\r\n});\r\n\r\nconst selectedPlanState = atom({\r\n key: 'selectedPlanState',\r\n default: {}\r\n});\r\n\r\nconst selectedProfileTabState = atom({\r\n key: 'selectedProfileTabState',\r\n default: 0\r\n});\r\n\r\nconst profileInformationState = atom({\r\n key: 'profileInformationState',\r\n default: {}\r\n});\r\n\r\nconst profileNextOfKinState = atom({\r\n key: 'profileNextOfKinState',\r\n default: {}\r\n});\r\n\r\nconst headerState = atom({\r\n key: 'headerState',\r\n default: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n});\r\n\r\nconst mafreKeyState = atom({\r\n key: 'mafreKey',\r\n default: {}\r\n});\r\n\r\nconst selectedProductState = atom({\r\n key: 'selectedProductState',\r\n default: {}\r\n});\r\n\r\nconst passportUrlState = atom({\r\n key: 'passportUrlState',\r\n default: {}\r\n});\r\n\r\nconst priceInformationState = atom({\r\n key: 'priceInformationState',\r\n default: []\r\n});\r\n\r\nconst insuranceDataState = atom({\r\n key: 'insuranceDataState',\r\n default: {}\r\n});\r\n\r\nconst userDataState = atom({\r\n key: 'userDataState',\r\n default: {}\r\n});\r\n\r\nconst permissionuserDataState = atom({\r\n key: 'permissionuserDataState',\r\n default: {}\r\n});\r\n\r\nconst editUserDataState = atom({\r\n key: 'editUserDataState',\r\n default: {}\r\n});\r\n\r\nconst editRoleDataState = atom({\r\n key: 'editRoleDataState',\r\n default: {}\r\n});\r\n\r\nconst createUserDataState = atom({\r\n key: 'createUserDataState',\r\n default: {}\r\n});\r\n\r\nconst createRoleDataState = atom({\r\n key: 'createRoleDataState',\r\n default: {}\r\n});\r\n\r\nconst userTypeState = atom({\r\n key: 'userTypeState',\r\n default: 'customer'\r\n});\r\n\r\nconst rolesState = atom({\r\n key: 'rolesState',\r\n default: []\r\n});\r\n\r\nconst tasksState = atom({\r\n key: 'tasksState',\r\n default: []\r\n});\r\n\r\nconst tasksStatusState = atom({\r\n key: 'tasksStatusState',\r\n default: {\r\n loading: false,\r\n error: false\r\n }\r\n});\r\n\r\nconst dashboardMenuState = atom({\r\n key: 'dashboardMenuState',\r\n default: false\r\n});\r\n\r\nconst appHeaderState = atom({\r\n key: 'appHeaderState',\r\n default: false\r\n});\r\n\r\nconst profileDataState = atom({\r\n key: 'profileDataState',\r\n default: {}\r\n});\r\n\r\nconst productXmlDataState = atom({\r\n key: 'productXmlDataState',\r\n default: {}\r\n});\r\n\r\nconst priceDataState = atom({\r\n key: 'priceDataState',\r\n default: 0\r\n});\r\n\r\nexport {\r\n mafreKeyState,\r\n loginState,\r\n headerState,\r\n quotesPageState,\r\n travelDetailsState,\r\n travelDurationState,\r\n passengerDetailsState,\r\n nextOfKinDetailsState,\r\n guardianDetailsState,\r\n travelDetailFormState,\r\n dashboardScreenState,\r\n buyInsuranceScreenState,\r\n selectedPlanState,\r\n selectedProfileTabState,\r\n profileInformationState,\r\n profileNextOfKinState,\r\n selectedProductState,\r\n passportUrlState,\r\n priceInformationState,\r\n insuranceDataState,\r\n userDataState,\r\n permissionuserDataState,\r\n editUserDataState,\r\n editRoleDataState,\r\n rolesState,\r\n tasksState,\r\n tasksStatusState,\r\n dashboardMenuState,\r\n appHeaderState,\r\n createUserDataState,\r\n createRoleDataState,\r\n profileDataState,\r\n uploadState,\r\n fileState,\r\n userTypeState,\r\n clearFieldsState,\r\n currentPackageState,\r\n currentPlanState,\r\n formSubmittedState,\r\n formIndexState,\r\n displayPopUpFormState,\r\n allDataState,\r\n isMinorState,\r\n guardianHeightState,\r\n totalPriceState,\r\n allInsurersState,\r\n finalSubmitState,\r\n allPassengersState,\r\n policyHolderState,\r\n productXmlDataState,\r\n priceDataState\r\n};\r\n","import { selector } from \"recoil\";\r\nimport { loginState, headerState } from \"./atoms\";\r\n\r\nconst currentLoginState = selector({\r\n key: \"currentLoginState\",\r\n get: ({ get }) => {\r\n return get(loginState);\r\n },\r\n});\r\n\r\nconst getHeaderState = selector({\r\n key: \"getHeaderState\",\r\n get: ({ get }) => {\r\n return get(headerState);\r\n },\r\n});\r\n\r\nexport { currentLoginState, getHeaderState };\r\n","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport { NavLink, useNavigate } from 'react-router-dom';\r\nimport logo from '../../assets/image/logo.png';\r\nimport { useRecoilState, useRecoilValue } from 'recoil';\r\n\r\nimport { currentLoginState } from '../../recoil/selectors';\r\nimport { appHeaderState } from '../../recoil/atoms';\r\n\r\nconst Header = () => {\r\n const authenticated = useRecoilValue(currentLoginState);\r\n const [menu, setMenu] = useRecoilState(appHeaderState);\r\n\r\n const nav = useNavigate();\r\n\r\n const getInTouch = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (window.Tawk_API && window.Tawk_API.maximize) {\r\n window.Tawk_API.maximize();\r\n }\r\n };\r\n\r\n const gotoPage = (e, str) => {\r\n e.stopPropagation();\r\n setMenu(false);\r\n nav(str);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","export default __webpack_public_path__ + \"static/media/twitter.819b75df.svg\";","export default __webpack_public_path__ + \"static/media/linkedin.5da964fc.svg\";","import React from 'react';\r\n// import { Link } from 'react-router-dom';\r\nimport twitter from '../../assets/svg/twitter.svg';\r\nimport linkedIn from '../../assets/svg/linkedin.svg';\r\n\r\nconst Footer = () => {\r\n const getInTouch = e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (window.Tawk_API && window.Tawk_API.maximize) {\r\n window.Tawk_API.maximize();\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","export default __webpack_public_path__ + \"static/media/welcome.ee894c53.svg\";","import React, { useState, useEffect, useRef } from 'react';\r\n\r\nconst DropSearch = ({\r\n data,\r\n identifier,\r\n onSelect,\r\n inputId,\r\n showItems,\r\n placeholder,\r\n disable,\r\n name,\r\n async,\r\n onChange,\r\n inputType,\r\n value,\r\n setFieldValue\r\n}) => {\r\n const [display, setDisplay] = useState(value ? value : {});\r\n const [dropDownData, setDropDownData] = useState([]);\r\n const [delay] = useState(1000);\r\n const [rawData, setRawData] = useState([]);\r\n const inputRef = useRef();\r\n\r\n const convertResult = {\r\n integer: input => {\r\n return parseInt(input, 10);\r\n }\r\n };\r\n\r\n const handleClick = item => {\r\n if (setFieldValue) {\r\n setFieldValue(name, item[identifier]);\r\n }\r\n setDisplay(item);\r\n onSelect(item, identifier, name, inputType && convertResult[inputType]);\r\n };\r\n // const sortAlphabetically = (objArray) => {\r\n // return objArray.sort((a, b) => a[identifier].localeCompare(b[identifier]));\r\n // };\r\n\r\n const search = (keyword, data = rawData) => {\r\n const result = [];\r\n if (data) {\r\n for (let index = 0; index < data.length; index += 1) {\r\n const name =\r\n data[index] &&\r\n data[index][identifier] &&\r\n data[index][identifier].toLowerCase();\r\n if (name.includes(keyword.toLowerCase())) {\r\n result.push(data[index]);\r\n }\r\n }\r\n if (result.length) {\r\n return result;\r\n }\r\n }\r\n };\r\n\r\n const getResult = async keyword => {\r\n if (async) {\r\n const data = await onChange(keyword);\r\n if (data && data.length) {\r\n setDropDownData(search(keyword, data));\r\n }\r\n } else {\r\n setTimeout(() => {\r\n setDropDownData(search(keyword));\r\n }, delay);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setRawData(data);\r\n if (showItems) {\r\n setDropDownData(data);\r\n }\r\n }, [data, showItems]);\r\n\r\n useEffect(() => {\r\n if (value && value[identifier]) {\r\n setDisplay(value);\r\n }\r\n }, [value, identifier]);\r\n\r\n useEffect(() => { }, [showItems]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n getResult(event.target.value)}\r\n placeholder='start typing...'\r\n id={inputId}\r\n ref={inputRef}\r\n autoFocus\r\n />\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DropSearch;\r\n","export const productDescriptionMaps = {\r\n ECO4: {\r\n description:\r\n 'Our Economy Plan is a basic cover and covers for all countries. This plan is suitable for travelers within the African sub regions, having a medical cover limit is $15,000.00',\r\n title: 'Economy Plan',\r\n name: 'Economy Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n },\r\n FAMI6: {\r\n description:\r\n 'Family holiday? Protect your family with our travel plan that covers overseas medical & more. This plan is cost-effective & caters for entire families travelling together. We offer half price for underage children and group discounts with a medical cover limit of $50,000.00.',\r\n title: 'Family Plan',\r\n name: 'Family Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n },\r\n PEAR12: {\r\n description:\r\n 'Our Pearl Plan covers for all countries except USA, Australia, Japan, and Canada with a medical cover limit of $50,000.00.',\r\n title: 'Pearl Plan',\r\n name: 'Pearl Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n },\r\n PILB25: {\r\n description:\r\n 'When considering Pilgrimage, it is important to plan properly for possessions, luggage and most of all, health. Our customized pilgrimage plan covers you! It is your ticket to a worry-free travel with a medical cover limit of $10,000 to $25,000. Protect your travel investment at an affordable group rate. Get Started',\r\n title: 'Pilgrimage Basic Plan',\r\n name: 'Pilgrimage Basic Plan',\r\n minDays: 1,\r\n maxDays: 45\r\n },\r\n PILX19: {\r\n description:\r\n 'When considering Pilgrimage, it is important to plan properly for possessions, luggage and most of all, health. Our customized pilgrimage plan covers you! It is your ticket to a worry-free travel with a medical cover limit of $10,000 to $25,000. Protect your travel investment at an affordable group rate. Get Started',\r\n title: 'Pilgrimage Extra Plan',\r\n name: 'Pilgrimage Extra Plan',\r\n minDays: 1,\r\n maxDays: 45\r\n },\r\n PILP21: {\r\n description:\r\n 'When considering Pilgrimage, it is important to plan properly for possessions, luggage and most of all, health. Our customized pilgrimage plan covers you! It is your ticket to a worry-free travel with a medical cover limit of $10,000 to $25,000. Protect your travel investment at an affordable group rate. Get Started',\r\n title: 'Pilgrimage Plus Plan',\r\n name: 'Pilgrimage Plus Plan',\r\n minDays: 1,\r\n maxDays: 45\r\n },\r\n SCH18: {\r\n description:\r\n 'Our Europe Plan cover for all European countries and European states with a medical cover limit of EUR30,000.00',\r\n title: 'Europe Plan',\r\n name: 'Europe Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n },\r\n SCCHNI: {\r\n description:\r\n 'Our Schengen Only Plan cover for all Schengen countries and Schengen states with a medical cover limit of EUR30,000.00',\r\n title: 'Schengen Plan',\r\n name: 'Schengen Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n },\r\n STUB5: {\r\n description:\r\n 'When traveling for study abroad, students must protect themselves from the unexpected. Having our student insurance plan protects you from large financial losses that can occur from accidents or illness. With a medical cover limit of $60,000 to $100,000.',\r\n title: 'Student Classic Plan',\r\n name: 'Student Classic Plan',\r\n minDays: 1,\r\n maxDays: 365\r\n },\r\n STUEC: {\r\n description:\r\n 'When traveling for study abroad, students must protect themselves from the unexpected. Having our student insurance plan protects you from large financial losses that can occur from accidents or illness. With a medical cover limit of $60,000 to $100,000.',\r\n title: 'Student Economy Plan',\r\n name: 'Student Economy Plan',\r\n minDays: 1,\r\n maxDays: 365\r\n },\r\n STUP8: {\r\n description:\r\n 'When traveling for study abroad, students must protect themselves from the unexpected. Having our student insurance plan protects you from large financial losses that can occur from accidents or illness. With a medical cover limit of $60,000 to $100,000.',\r\n title: 'Student Premium Plan',\r\n name: 'Student Premium Plan',\r\n minDays: 1,\r\n maxDays: 365\r\n },\r\n TRAV10: {\r\n description:\r\n 'Our Traveller Plan is a premium cover that provides coverage for all countries except USA, Australia, Japan, and Canada. With a medical cover limit of $150,000.00',\r\n title: 'Traveller Plan',\r\n name: 'Traveller Plan',\r\n minDays: 1,\r\n maxDays: 730\r\n }\r\n};\r\n\r\nexport default function getProductDescription(product) {\r\n const key = product['dsSuffix'];\r\n\r\n return productDescriptionMaps[key];\r\n}\r\n","import { productDescriptionMaps } from './getProductDescription';\r\n\r\n// const defaultPlans = [\r\n// {\r\n// name: 'Traveller',\r\n// description:\r\n// 'This plan is suitable for travelers within the African sub regions. Cover limit is $15,000.00',\r\n// cover: 30000,\r\n// benefits: [\r\n// {\r\n// type: 'Medical',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// type: 'Baggage',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// name: 'Economy',\r\n// description:\r\n// 'This plan is suitable for travelers within the African sub regions. Cover limit is $15,000.00',\r\n// cover: 40000,\r\n// benefits: [\r\n// {\r\n// type: 'Medical',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// type: 'Baggage',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// name: 'Europe',\r\n// description:\r\n// 'This plan is suitable for travelers within the African sub regions. Cover limit is $15,000.00',\r\n// cover: 60000,\r\n// benefits: [\r\n// {\r\n// type: 'Medical',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// type: 'Baggage',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// name: 'Pearl',\r\n// description:\r\n// 'This plan is suitable for travelers within the African sub regions. Cover limit is $15,000.00',\r\n// cover: 30000,\r\n// benefits: [\r\n// {\r\n// type: 'Medical',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// },\r\n// {\r\n// type: 'Baggage',\r\n// list: [\r\n// {\r\n// description: 'Emergency dental care',\r\n// premiumLimit: 2000,\r\n// classicLimit: 1000\r\n// }\r\n// ]\r\n// }\r\n// ]\r\n// }\r\n// ];\r\n\r\nconst packages = [\r\n {\r\n id: 1,\r\n value: 'Student',\r\n name: 'Student',\r\n description:\r\n 'For us this is just the beginning. We sustained by belief that the',\r\n coverLimit: 4,\r\n plans: [\r\n productDescriptionMaps.STUB5,\r\n productDescriptionMaps.STUEC,\r\n productDescriptionMaps.STUP8\r\n ]\r\n },\r\n {\r\n id: 2,\r\n value: 'Pilgrimage',\r\n name: 'Pilgrimage',\r\n description:\r\n 'For us this is just the beginning. We sustained by belief that the',\r\n coverLimit: 4,\r\n plans: [\r\n productDescriptionMaps.PILB25,\r\n productDescriptionMaps.PILP21,\r\n productDescriptionMaps.PILX19\r\n ]\r\n },\r\n {\r\n id: 3,\r\n value: 'Schengen',\r\n name: 'Schengen',\r\n description:\r\n 'For us this is just the beginning. We sustained by belief that the',\r\n coverLimit: 4,\r\n plans: [productDescriptionMaps.SCH18]\r\n },\r\n {\r\n id: 4,\r\n value: 'Worldwide',\r\n name: 'Worldwide',\r\n description:\r\n 'For us this is just the beginning. We sustained by belief that the',\r\n coverLimit: 4,\r\n plans: [\r\n productDescriptionMaps.FAMI6,\r\n productDescriptionMaps.ECO4,\r\n productDescriptionMaps.PEAR12,\r\n productDescriptionMaps.TRAV10\r\n ]\r\n }\r\n];\r\n\r\nexport default packages;\r\n","const steps = [\r\n { title: 'Travel Details' },\r\n { title: 'Passenger Details' },\r\n { title: 'Choose Plan' },\r\n { title: 'Buy now' }\r\n];\r\n\r\nexport default steps;\r\n","const countries = [\r\n {\r\n idReg: '43',\r\n cd: 'AF',\r\n ds: 'AFGHANISTAN'\r\n },\r\n {\r\n idReg: '55',\r\n cd: 'AX',\r\n ds: 'ALAND ISLANDS (FINLAND)'\r\n },\r\n {\r\n idReg: '46',\r\n cd: 'AL',\r\n ds: 'ALBANIA'\r\n },\r\n {\r\n idReg: '9',\r\n cd: 'DZ',\r\n ds: 'ALGERIA'\r\n },\r\n {\r\n idReg: '51',\r\n cd: 'AS',\r\n ds: 'AMERICAN SAMOA (USA)'\r\n },\r\n {\r\n idReg: '41',\r\n cd: 'AD',\r\n ds: 'ANDORRA'\r\n },\r\n {\r\n idReg: '48',\r\n cd: 'AO',\r\n ds: 'ANGOLA'\r\n },\r\n {\r\n idReg: '45',\r\n cd: 'AI',\r\n ds: 'ANGUILLA (UK)'\r\n },\r\n {\r\n idReg: '332',\r\n cd: 'AQ',\r\n ds: 'ANTARCTICA'\r\n },\r\n {\r\n idReg: '44',\r\n cd: 'AG',\r\n ds: 'ANTIGUA AND BARBUDA'\r\n },\r\n {\r\n idReg: '22',\r\n cd: 'AR',\r\n ds: 'ARGENTINA'\r\n },\r\n {\r\n idReg: '47',\r\n cd: 'AM',\r\n ds: 'ARMENIA'\r\n },\r\n {\r\n idReg: '54',\r\n cd: 'AW',\r\n ds: 'ARUBA'\r\n },\r\n {\r\n idReg: '31',\r\n cd: 'AU',\r\n ds: 'AUSTRALIA'\r\n },\r\n {\r\n idReg: '52',\r\n cd: 'AT',\r\n ds: 'AUSTRIA'\r\n },\r\n {\r\n idReg: '56',\r\n cd: 'AZ',\r\n ds: 'AZERBAIJAN'\r\n },\r\n {\r\n idReg: '72',\r\n cd: 'BS',\r\n ds: 'BAHAMAS'\r\n },\r\n {\r\n idReg: '10',\r\n cd: 'BH',\r\n ds: 'BAHRAIN'\r\n },\r\n {\r\n idReg: '59',\r\n cd: 'BD',\r\n ds: 'BANGLADESH'\r\n },\r\n {\r\n idReg: '58',\r\n cd: 'BB',\r\n ds: 'BARBADOS'\r\n },\r\n {\r\n idReg: '76',\r\n cd: 'BY',\r\n ds: 'BELARUS'\r\n },\r\n {\r\n idReg: '6',\r\n cd: 'BE',\r\n ds: 'BELGIUM'\r\n },\r\n {\r\n idReg: '77',\r\n cd: 'BZ',\r\n ds: 'BELIZE'\r\n },\r\n {\r\n idReg: '65',\r\n cd: 'BJ',\r\n ds: 'BENIN'\r\n },\r\n {\r\n idReg: '67',\r\n cd: 'BM',\r\n ds: 'BERMUDA (UK)'\r\n },\r\n {\r\n idReg: '73',\r\n cd: 'BT',\r\n ds: 'BHUTAN'\r\n },\r\n {\r\n idReg: '69',\r\n cd: 'BO',\r\n ds: 'BOLIVIA'\r\n },\r\n {\r\n idReg: '57',\r\n cd: 'BA',\r\n ds: 'BOSNIA'\r\n },\r\n {\r\n idReg: '75',\r\n cd: 'BW',\r\n ds: 'BOTSWANA'\r\n },\r\n {\r\n idReg: '74',\r\n cd: 'BV',\r\n ds: 'BOUVET ISLAND (NORWAY)'\r\n },\r\n {\r\n idReg: '21',\r\n cd: 'BR',\r\n ds: 'BRAZIL'\r\n },\r\n {\r\n idReg: '143',\r\n cd: 'IO',\r\n ds: 'BRITISH INDIAN OCEAN TERRITORY (UK)'\r\n },\r\n {\r\n idReg: '68',\r\n cd: 'BN',\r\n ds: 'BRUNEI'\r\n },\r\n {\r\n idReg: '62',\r\n cd: 'BG',\r\n ds: 'BULGARIA'\r\n },\r\n {\r\n idReg: '61',\r\n cd: 'BF',\r\n ds: 'BURKINA FASO'\r\n },\r\n {\r\n idReg: '64',\r\n cd: 'BI',\r\n ds: 'BURUNDI'\r\n },\r\n {\r\n idReg: '154',\r\n cd: 'KH',\r\n ds: 'CAMBODIA'\r\n },\r\n {\r\n idReg: '87',\r\n cd: 'CM',\r\n ds: 'CAMEROON'\r\n },\r\n {\r\n idReg: '78',\r\n cd: 'CA',\r\n ds: 'CANADA'\r\n },\r\n {\r\n idReg: '91',\r\n cd: 'CV',\r\n ds: 'CAPE VERDE'\r\n },\r\n {\r\n idReg: '161',\r\n cd: 'KY',\r\n ds: 'CAYMAN'\r\n },\r\n {\r\n idReg: '81',\r\n cd: 'CF',\r\n ds: 'CENTRAL AFRICAN REPUBLIC'\r\n },\r\n {\r\n idReg: '252',\r\n cd: 'TD',\r\n ds: 'CHAD'\r\n },\r\n {\r\n idReg: '27',\r\n cd: 'CL',\r\n ds: 'CHILE'\r\n },\r\n {\r\n idReg: '11',\r\n cd: 'CN',\r\n ds: 'CHINA'\r\n },\r\n {\r\n idReg: '93',\r\n cd: 'CX',\r\n ds: 'CHRISTMAS ISLAND (AUSTRALIA)'\r\n },\r\n {\r\n idReg: '79',\r\n cd: 'CC',\r\n ds: 'COCOS (KEELING) ISLANDS (AUSTRALIA)'\r\n },\r\n {\r\n idReg: '3',\r\n cd: 'Co',\r\n ds: 'COLOMBIA'\r\n },\r\n {\r\n idReg: '156',\r\n cd: 'KM',\r\n ds: 'COMOROS'\r\n },\r\n {\r\n idReg: '82',\r\n cd: 'CG',\r\n ds: 'CONGO'\r\n },\r\n {\r\n idReg: '80',\r\n cd: 'CD',\r\n ds: 'CONGO (THE DEMOCRATIC REPUBLIC)'\r\n },\r\n {\r\n idReg: '85',\r\n cd: 'CK',\r\n ds: 'COOK ISLANDS (NEW ZEALAND)'\r\n },\r\n {\r\n idReg: '89',\r\n cd: 'CR',\r\n ds: 'COSTA RICA'\r\n },\r\n {\r\n idReg: '136',\r\n cd: 'HR',\r\n ds: 'CROATIA'\r\n },\r\n {\r\n idReg: '90',\r\n cd: 'CU',\r\n ds: 'CUBA'\r\n },\r\n {\r\n idReg: '94',\r\n cd: 'CY',\r\n ds: 'CYPRUS'\r\n },\r\n {\r\n idReg: '95',\r\n cd: 'CZ',\r\n ds: 'CZECH REPUBLIC'\r\n },\r\n {\r\n idReg: '98',\r\n cd: 'DK',\r\n ds: 'DENMARK'\r\n },\r\n {\r\n idReg: '97',\r\n cd: 'DJ',\r\n ds: 'DJIBOUTI'\r\n },\r\n {\r\n idReg: '99',\r\n cd: 'DM',\r\n ds: 'DOMINICA (UK)'\r\n },\r\n {\r\n idReg: '100',\r\n cd: 'DO',\r\n ds: 'DOMINICAN REPUBLIC'\r\n },\r\n {\r\n idReg: '35',\r\n cd: 'EC',\r\n ds: 'ECUADOR'\r\n },\r\n {\r\n idReg: '104',\r\n cd: 'EG',\r\n ds: 'EGYPT'\r\n },\r\n {\r\n idReg: '247',\r\n cd: 'SV',\r\n ds: 'EL SALVADOR'\r\n },\r\n {\r\n idReg: '126',\r\n cd: 'GQ',\r\n ds: 'EQUATORIAL GUINEA'\r\n },\r\n {\r\n idReg: '333',\r\n cd: 'ER',\r\n ds: 'ERITREA'\r\n },\r\n {\r\n idReg: '103',\r\n cd: 'EE',\r\n ds: 'ESTONIA'\r\n },\r\n {\r\n idReg: '108',\r\n cd: 'ET',\r\n ds: 'ETHIOPIA'\r\n },\r\n {\r\n idReg: '111',\r\n cd: 'FK',\r\n ds: 'FALKLAND ISLANDS (MALVINAS) (UK)'\r\n },\r\n {\r\n idReg: '113',\r\n cd: 'FO',\r\n ds: 'FAROE ISLANDS (DENMARK)'\r\n },\r\n {\r\n idReg: '110',\r\n cd: 'FJ',\r\n ds: 'FIJI'\r\n },\r\n {\r\n idReg: '109',\r\n cd: 'FI',\r\n ds: 'FINLAND'\r\n },\r\n {\r\n idReg: '18',\r\n cd: 'FR',\r\n ds: 'FRANCE'\r\n },\r\n {\r\n idReg: '118',\r\n cd: 'GF',\r\n ds: 'FRENCH GUIANA (FRANCE)'\r\n },\r\n {\r\n idReg: '212',\r\n cd: 'PF',\r\n ds: 'FRENCH POLYNESIA (FRANCE)'\r\n },\r\n {\r\n idReg: '253',\r\n cd: 'TF',\r\n ds: 'FRENCH SOUTHERN TERRITORIES (FRANCE)'\r\n },\r\n {\r\n idReg: '115',\r\n cd: 'GA',\r\n ds: 'GABON'\r\n },\r\n {\r\n idReg: '123',\r\n cd: 'GM',\r\n ds: 'GAMBIA'\r\n },\r\n {\r\n idReg: '117',\r\n cd: 'GE',\r\n ds: 'GEORGIA'\r\n },\r\n {\r\n idReg: '300',\r\n cd: 'GER',\r\n ds: 'GERMANY'\r\n },\r\n {\r\n idReg: '120',\r\n cd: 'GH',\r\n ds: 'GHANA'\r\n },\r\n {\r\n idReg: '121',\r\n cd: 'GI',\r\n ds: 'GIBRALTAR (UK)'\r\n },\r\n {\r\n idReg: '7',\r\n cd: 'GR',\r\n ds: 'GREECE'\r\n },\r\n {\r\n idReg: '122',\r\n cd: 'GL',\r\n ds: 'GREENLAND (DENMARK)'\r\n },\r\n {\r\n idReg: '116',\r\n cd: 'GD',\r\n ds: 'GRENADA'\r\n },\r\n {\r\n idReg: '125',\r\n cd: 'GP',\r\n ds: 'GUADELOUPE'\r\n },\r\n {\r\n idReg: '130',\r\n cd: 'GU',\r\n ds: 'GUAM (USA)'\r\n },\r\n {\r\n idReg: '36',\r\n cd: 'GT',\r\n ds: 'GUATEMALA'\r\n },\r\n {\r\n idReg: '119',\r\n cd: 'GG',\r\n ds: 'GUERNSEY (UK)'\r\n },\r\n {\r\n idReg: '131',\r\n cd: 'GW',\r\n ds: 'GUINEA-BISSAU'\r\n },\r\n {\r\n idReg: '132',\r\n cd: 'GY',\r\n ds: 'GUYANA'\r\n },\r\n {\r\n idReg: '137',\r\n cd: 'HT',\r\n ds: 'HAITI'\r\n },\r\n {\r\n idReg: '134',\r\n cd: 'HM',\r\n ds: 'HEARD ISLAND AND MCDONALD ISLANDS (AUSTRALIA)'\r\n },\r\n {\r\n idReg: '274',\r\n cd: 'VA',\r\n ds: 'HOLY SEE (VATICAN CITY STATE)'\r\n },\r\n {\r\n idReg: '135',\r\n cd: 'HN',\r\n ds: 'HONDURAS'\r\n },\r\n {\r\n idReg: '8',\r\n cd: 'HK',\r\n ds: 'HONG KONG'\r\n },\r\n {\r\n idReg: '15',\r\n cd: 'HU',\r\n ds: 'HUNGARY'\r\n },\r\n {\r\n idReg: '146',\r\n cd: 'IS',\r\n ds: 'ICELAND'\r\n },\r\n {\r\n idReg: '33',\r\n cd: 'IN',\r\n ds: 'INDIA'\r\n },\r\n {\r\n idReg: '139',\r\n cd: 'ID',\r\n ds: 'INDONESIA'\r\n },\r\n {\r\n idReg: '299',\r\n cd: 'IR',\r\n ds: 'IRAN'\r\n },\r\n {\r\n idReg: '144',\r\n cd: 'IQ',\r\n ds: 'IRAQ'\r\n },\r\n {\r\n idReg: '23',\r\n cd: 'IE',\r\n ds: 'IRELAND'\r\n },\r\n {\r\n idReg: '141',\r\n cd: 'IM',\r\n ds: 'ISLE OF MAN (UK)'\r\n },\r\n {\r\n idReg: '140',\r\n cd: 'IL',\r\n ds: 'ISRAEL'\r\n },\r\n {\r\n idReg: '20',\r\n cd: 'IT',\r\n ds: 'ITALY'\r\n },\r\n {\r\n idReg: '84',\r\n cd: 'CI',\r\n ds: 'IVORY COAST'\r\n },\r\n {\r\n idReg: '149',\r\n cd: 'JM',\r\n ds: 'JAMAICA'\r\n },\r\n {\r\n idReg: '29',\r\n cd: 'JP',\r\n ds: 'JAPAN'\r\n },\r\n {\r\n idReg: '148',\r\n cd: 'JE',\r\n ds: 'JERSEY (UK)'\r\n },\r\n {\r\n idReg: '12',\r\n cd: 'JO',\r\n ds: 'JORDAN'\r\n },\r\n {\r\n idReg: '162',\r\n cd: 'KZ',\r\n ds: 'KAZAKHSTAN'\r\n },\r\n {\r\n idReg: '152',\r\n cd: 'KE',\r\n ds: 'KENYA'\r\n },\r\n {\r\n idReg: '155',\r\n cd: 'KI',\r\n ds: 'KIRIBATI'\r\n },\r\n {\r\n idReg: '160',\r\n cd: 'KW',\r\n ds: 'KUWAIT'\r\n },\r\n {\r\n idReg: '153',\r\n cd: 'KG',\r\n ds: 'KYRGYZSTAN'\r\n },\r\n {\r\n idReg: '163',\r\n cd: 'LA',\r\n ds: 'LAO PDR'\r\n },\r\n {\r\n idReg: '172',\r\n cd: 'LV',\r\n ds: 'LATVIA'\r\n },\r\n {\r\n idReg: '164',\r\n cd: 'LB',\r\n ds: 'LEBANON'\r\n },\r\n {\r\n idReg: '169',\r\n cd: 'LS',\r\n ds: 'LESOTHO'\r\n },\r\n {\r\n idReg: '168',\r\n cd: 'LR',\r\n ds: 'LIBERIA'\r\n },\r\n {\r\n idReg: '173',\r\n cd: 'LY',\r\n ds: 'LIBYA'\r\n },\r\n {\r\n idReg: '166',\r\n cd: 'LI',\r\n ds: 'LIECHTENSTEIN'\r\n },\r\n {\r\n idReg: '170',\r\n cd: 'LT',\r\n ds: 'LITHUANIA'\r\n },\r\n {\r\n idReg: '171',\r\n cd: 'LU',\r\n ds: 'LUXEMBOURG'\r\n },\r\n {\r\n idReg: '185',\r\n cd: 'MO',\r\n ds: 'MACAO'\r\n },\r\n {\r\n idReg: '181',\r\n cd: 'MK',\r\n ds: 'MACEDONIA'\r\n },\r\n {\r\n idReg: '179',\r\n cd: 'MG',\r\n ds: 'MADAGASCAR'\r\n },\r\n {\r\n idReg: '193',\r\n cd: 'MW',\r\n ds: 'MALAWI'\r\n },\r\n {\r\n idReg: '195',\r\n cd: 'MY',\r\n ds: 'MALAYSIA'\r\n },\r\n {\r\n idReg: '192',\r\n cd: 'MV',\r\n ds: 'MALDIVES'\r\n },\r\n {\r\n idReg: '182',\r\n cd: 'ML',\r\n ds: 'MALI'\r\n },\r\n {\r\n idReg: '28',\r\n cd: 'MT',\r\n ds: 'MALTA'\r\n },\r\n {\r\n idReg: '180',\r\n cd: 'MH',\r\n ds: 'MARSHALL ISLANDS'\r\n },\r\n {\r\n idReg: '187',\r\n cd: 'MQ',\r\n ds: 'MARTINIQUE'\r\n },\r\n {\r\n idReg: '188',\r\n cd: 'MR',\r\n ds: 'MAURITANIA'\r\n },\r\n {\r\n idReg: '191',\r\n cd: 'MU',\r\n ds: 'MAURITIUS'\r\n },\r\n {\r\n idReg: '284',\r\n cd: 'YT',\r\n ds: 'MAYOTTE (FRANCE)'\r\n },\r\n {\r\n idReg: '14',\r\n cd: 'MX',\r\n ds: 'MEXICO'\r\n },\r\n {\r\n idReg: '112',\r\n cd: 'FM',\r\n ds: 'MICRONESIA'\r\n },\r\n {\r\n idReg: '176',\r\n cd: 'MD',\r\n ds: 'MOLDOVA'\r\n },\r\n {\r\n idReg: '175',\r\n cd: 'MC',\r\n ds: 'MONACO'\r\n },\r\n {\r\n idReg: '184',\r\n cd: 'MN',\r\n ds: 'MONGOLIA'\r\n },\r\n {\r\n idReg: '177',\r\n cd: 'ME',\r\n ds: 'MONTENEGRO'\r\n },\r\n {\r\n idReg: '189',\r\n cd: 'MS',\r\n ds: 'MONTSERRAT (UK)'\r\n },\r\n {\r\n idReg: '174',\r\n cd: 'MA',\r\n ds: 'MOROCCO'\r\n },\r\n {\r\n idReg: '196',\r\n cd: 'MZ',\r\n ds: 'MOZAMBIQUE'\r\n },\r\n {\r\n idReg: '337',\r\n cd: 'MLC',\r\n ds: 'MULTI-COUNTRY WITHIN COVERED ZONE'\r\n },\r\n {\r\n idReg: '183',\r\n cd: 'MM',\r\n ds: 'MYANMAR'\r\n },\r\n {\r\n idReg: '197',\r\n cd: 'NA',\r\n ds: 'NAMIBIA'\r\n },\r\n {\r\n idReg: '206',\r\n cd: 'NR',\r\n ds: 'NAURU'\r\n },\r\n {\r\n idReg: '205',\r\n cd: 'NP',\r\n ds: 'NEPAL'\r\n },\r\n {\r\n idReg: '203',\r\n cd: 'NL',\r\n ds: 'NETHERLANDS'\r\n },\r\n {\r\n idReg: '334',\r\n cd: 'AN',\r\n ds: 'NETHERLANDS ANTILLES'\r\n },\r\n {\r\n idReg: '198',\r\n cd: 'NC',\r\n ds: 'NEW CALEDONIA'\r\n },\r\n {\r\n idReg: '208',\r\n cd: 'NZ',\r\n ds: 'NEW ZEALAND'\r\n },\r\n {\r\n idReg: '289',\r\n cd: 'NI',\r\n ds: 'NICARAGUA'\r\n },\r\n {\r\n idReg: '199',\r\n cd: 'NE',\r\n ds: 'NIGER'\r\n },\r\n {\r\n idReg: '201',\r\n cd: 'NG',\r\n ds: 'NIGERIA'\r\n },\r\n {\r\n idReg: '207',\r\n cd: 'NU',\r\n ds: 'NIUE (NEW ZEALAND)'\r\n },\r\n {\r\n idReg: '200',\r\n cd: 'NF',\r\n ds: 'NORFOLK ISLAND (AUSTRALIA)'\r\n },\r\n {\r\n idReg: '158',\r\n cd: 'KP',\r\n ds: 'NORTH KOREA'\r\n },\r\n {\r\n idReg: '186',\r\n cd: 'MP',\r\n ds: 'NORTHERN'\r\n },\r\n {\r\n idReg: '204',\r\n cd: 'NO',\r\n ds: 'NORWAY'\r\n },\r\n {\r\n idReg: '209',\r\n cd: 'OM',\r\n ds: 'OMAN'\r\n },\r\n {\r\n idReg: '215',\r\n cd: 'PK',\r\n ds: 'PAKISTAN'\r\n },\r\n {\r\n idReg: '222',\r\n cd: 'PW',\r\n ds: 'PALAU'\r\n },\r\n {\r\n idReg: '220',\r\n cd: 'PS',\r\n ds: 'PALESTINIAN (OCCUPIED TERRITORY)'\r\n },\r\n {\r\n idReg: '34',\r\n cd: 'PA',\r\n ds: 'PANAMA'\r\n },\r\n {\r\n idReg: '213',\r\n cd: 'PG',\r\n ds: 'PAPUA NEW GUINEA'\r\n },\r\n {\r\n idReg: '223',\r\n cd: 'PY',\r\n ds: 'PARAGUAY'\r\n },\r\n {\r\n idReg: '211',\r\n cd: 'PE',\r\n ds: 'PERU'\r\n },\r\n {\r\n idReg: '32',\r\n cd: 'PH',\r\n ds: 'PHILIPPINES'\r\n },\r\n {\r\n idReg: '218',\r\n cd: 'PN',\r\n ds: 'PITCAIRN'\r\n },\r\n {\r\n idReg: '216',\r\n cd: 'PL',\r\n ds: 'POLAND'\r\n },\r\n {\r\n idReg: '16',\r\n cd: 'PT',\r\n ds: 'PORTUGAL'\r\n },\r\n {\r\n idReg: '219',\r\n cd: 'PR',\r\n ds: 'PUERTO RICO (USA)'\r\n },\r\n {\r\n idReg: '224',\r\n cd: 'QA',\r\n ds: 'QATAR'\r\n },\r\n {\r\n idReg: '124',\r\n cd: 'GN',\r\n ds: 'REPUBLIC OF GUINEA (CONAKRY)'\r\n },\r\n {\r\n idReg: '225',\r\n cd: 'RE',\r\n ds: 'REUNION'\r\n },\r\n {\r\n idReg: '226',\r\n cd: 'RO',\r\n ds: 'ROMANIA'\r\n },\r\n {\r\n idReg: '25',\r\n cd: 'RU',\r\n ds: 'RUSSIAN FEDERATION'\r\n },\r\n {\r\n idReg: '229',\r\n cd: 'RW',\r\n ds: 'RWANDA'\r\n },\r\n {\r\n idReg: '66',\r\n cd: 'BL',\r\n ds: 'SAINT BARTHÉLEMY (FRANCE)'\r\n },\r\n {\r\n idReg: '236',\r\n cd: 'SH',\r\n ds: 'SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA (UK)'\r\n },\r\n {\r\n idReg: '157',\r\n cd: 'KN',\r\n ds: 'SAINT KITTS AND NEVIS'\r\n },\r\n {\r\n idReg: '165',\r\n cd: 'LC',\r\n ds: 'SAINT LUCIA'\r\n },\r\n {\r\n idReg: '178',\r\n cd: 'MF',\r\n ds: 'SAINT MARTIN (FRANCE)'\r\n },\r\n {\r\n idReg: '217',\r\n cd: 'PM',\r\n ds: 'SAINT PIERRE AND MIQUELON (FRANCE)'\r\n },\r\n {\r\n idReg: '275',\r\n cd: 'VC',\r\n ds: 'SAINT VINCENT AND THE GRENADINES'\r\n },\r\n {\r\n idReg: '282',\r\n cd: 'WS',\r\n ds: 'SAMOA'\r\n },\r\n {\r\n idReg: '241',\r\n cd: 'SM',\r\n ds: 'SAN MARINO'\r\n },\r\n {\r\n idReg: '246',\r\n cd: 'ST',\r\n ds: 'SAO TOME AND PRINCIPE'\r\n },\r\n {\r\n idReg: '290',\r\n cd: 'SA',\r\n ds: 'SAUDI ARABIA'\r\n },\r\n {\r\n idReg: '242',\r\n cd: 'SN',\r\n ds: 'SENEGAL'\r\n },\r\n {\r\n idReg: '227',\r\n cd: 'RS',\r\n ds: 'SERBIA'\r\n },\r\n {\r\n idReg: '232',\r\n cd: 'SC',\r\n ds: 'SEYCHELLES'\r\n },\r\n {\r\n idReg: '240',\r\n cd: 'SL',\r\n ds: 'SIERRA LEONE'\r\n },\r\n {\r\n idReg: '235',\r\n cd: 'SG',\r\n ds: 'SINGAPORE'\r\n },\r\n {\r\n idReg: '239',\r\n cd: 'SK',\r\n ds: 'SLOVAKIA'\r\n },\r\n {\r\n idReg: '237',\r\n cd: 'SI',\r\n ds: 'SLOVENIA'\r\n },\r\n {\r\n idReg: '231',\r\n cd: 'SB',\r\n ds: 'SOLOMON ISLANDS'\r\n },\r\n {\r\n idReg: '243',\r\n cd: 'SO',\r\n ds: 'SOMALIA'\r\n },\r\n {\r\n idReg: '285',\r\n cd: 'ZA',\r\n ds: 'SOUTH AFRICA'\r\n },\r\n {\r\n idReg: '128',\r\n cd: 'GS',\r\n ds: 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS (UK)'\r\n },\r\n {\r\n idReg: '159',\r\n cd: 'KR',\r\n ds: 'SOUTH KOREA'\r\n },\r\n {\r\n idReg: '245',\r\n cd: 'SS',\r\n ds: 'SOUTH SUDAN'\r\n },\r\n {\r\n idReg: '107',\r\n cd: 'ES',\r\n ds: 'SPAIN'\r\n },\r\n {\r\n idReg: '167',\r\n cd: 'LK',\r\n ds: 'SRI LANKA'\r\n },\r\n {\r\n idReg: '233',\r\n cd: 'SD',\r\n ds: 'SUDAN'\r\n },\r\n {\r\n idReg: '244',\r\n cd: 'SR',\r\n ds: 'SURINAME'\r\n },\r\n {\r\n idReg: '238',\r\n cd: 'SJ',\r\n ds: 'SVALBARD AND JAN MAYEN (NORWAY)'\r\n },\r\n {\r\n idReg: '250',\r\n cd: 'SZ',\r\n ds: 'SWAZILAND'\r\n },\r\n {\r\n idReg: '37',\r\n cd: 'SE',\r\n ds: 'SWEDEN'\r\n },\r\n {\r\n idReg: '83',\r\n cd: 'CH',\r\n ds: 'SWITZERLAND'\r\n },\r\n {\r\n idReg: '249',\r\n cd: 'SY',\r\n ds: 'SYRIA'\r\n },\r\n {\r\n idReg: '265',\r\n cd: 'TW',\r\n ds: 'TAIWAN (CHINA)'\r\n },\r\n {\r\n idReg: '256',\r\n cd: 'TJ',\r\n ds: 'TAJIKISTAN'\r\n },\r\n {\r\n idReg: '266',\r\n cd: 'TZ',\r\n ds: 'TANZANIA'\r\n },\r\n {\r\n idReg: '255',\r\n cd: 'TH',\r\n ds: 'THAILAND'\r\n },\r\n {\r\n idReg: '258',\r\n cd: 'TL',\r\n ds: 'TIMOR-LESTE'\r\n },\r\n {\r\n idReg: '254',\r\n cd: 'TG',\r\n ds: 'TOGO'\r\n },\r\n {\r\n idReg: '257',\r\n cd: 'TK',\r\n ds: 'TOKELAU (NEW ZEALAND)'\r\n },\r\n {\r\n idReg: '261',\r\n cd: 'TO',\r\n ds: 'TONGA'\r\n },\r\n {\r\n idReg: '263',\r\n cd: 'TT',\r\n ds: 'TRINIDAD AND TOBAGO'\r\n },\r\n {\r\n idReg: '26',\r\n cd: 'TN',\r\n ds: 'TUNISIA'\r\n },\r\n {\r\n idReg: '335',\r\n cd: 'TR',\r\n ds: 'TURKEY'\r\n },\r\n {\r\n idReg: '259',\r\n cd: 'TM',\r\n ds: 'TURKMENISTAN'\r\n },\r\n {\r\n idReg: '251',\r\n cd: 'TC',\r\n ds: 'TURKS AND CAICOS ISLANDS (UK)'\r\n },\r\n {\r\n idReg: '264',\r\n cd: 'TV',\r\n ds: 'TUVALU'\r\n },\r\n {\r\n idReg: '268',\r\n cd: 'UG',\r\n ds: 'UGANDA'\r\n },\r\n {\r\n idReg: '267',\r\n cd: 'UA',\r\n ds: 'UKRAINE'\r\n },\r\n {\r\n idReg: '42',\r\n cd: 'AE',\r\n ds: 'UNITED ARAB EMIRATES'\r\n },\r\n {\r\n idReg: '269',\r\n cd: 'GB',\r\n ds: 'UNITED KINGDOM (UK)'\r\n },\r\n {\r\n idReg: '271',\r\n cd: 'USA',\r\n ds: 'UNITED STATES (USA)'\r\n },\r\n {\r\n idReg: '270',\r\n cd: 'UM',\r\n ds: 'UNITED STATES MINOR OUTLYING ISLANDS (USA)'\r\n },\r\n {\r\n idReg: '30',\r\n cd: 'UY',\r\n ds: 'URUGUAY'\r\n },\r\n {\r\n idReg: '273',\r\n cd: 'UZ',\r\n ds: 'UZBEKISTAN'\r\n },\r\n {\r\n idReg: '280',\r\n cd: 'VU',\r\n ds: 'VANUATU'\r\n },\r\n {\r\n idReg: '5',\r\n cd: 'VE',\r\n ds: 'VENEZUELA'\r\n },\r\n {\r\n idReg: '279',\r\n cd: 'VN',\r\n ds: 'VIET NAM'\r\n },\r\n {\r\n idReg: '277',\r\n cd: 'VG',\r\n ds: 'VIRGIN ISLANDS (UK)'\r\n },\r\n {\r\n idReg: '278',\r\n cd: 'VI',\r\n ds: 'VIRGIN ISLANDS (USA)'\r\n },\r\n {\r\n idReg: '281',\r\n cd: 'WF',\r\n ds: 'WALLIS AND FUTUNA (FRANCE)'\r\n },\r\n {\r\n idReg: '105',\r\n cd: 'EH',\r\n ds: 'WESTERN'\r\n },\r\n {\r\n idReg: '283',\r\n cd: 'YE',\r\n ds: 'YEMEN'\r\n },\r\n {\r\n idReg: '336',\r\n cd: 'ZM',\r\n ds: 'ZAMBIA'\r\n },\r\n {\r\n idReg: '287',\r\n cd: 'ZW',\r\n ds: 'ZIMBABWE'\r\n }\r\n];\r\n\r\nexport default countries;\r\n","const relationships = [\r\n { relationship: \"Father\" },\r\n { relationship: \"Mother\" },\r\n { relationship: \"Husband\" },\r\n { relationship: \"Wife\" },\r\n { relationship: \"Sibling\" },\r\n { relationship: \"Aunty\" },\r\n { relationship: \"Cousin\" },\r\n { relationship: \"Uncle\" },\r\n { relationship: \"Grand Father\" },\r\n { relationship: \"Grand Mother\" },\r\n { relationship: \"Spouse\" },\r\n { relationship: \"Friend\" },\r\n { relationship: \"Colleague\" },\r\n { relationship: \"Others\" },\r\n];\r\n\r\nexport default relationships;","const titles = [\r\n { title: 'Mr.' },\r\n { title: 'Mrs.' },\r\n { title: 'Miss.' },\r\n { title: 'Dr.' },\r\n { title: 'Hon.' },\r\n { title: 'others' }\r\n];\r\n\r\nexport default titles;\r\n","const genders = [{ gender: 'Male' }, { gender: 'Female' }];\r\n\r\nexport default genders;\r\n","import packages from './packages';\r\nimport quotesSteps from './quotes-steps';\r\nimport countries from './countries';\r\nimport relationships from './relationships';\r\nimport titles from './titles';\r\nimport genders from './genders';\r\nimport getProductDescription from './getProductDescription';\r\n\r\nconst baseUrl =\r\n (process.env.NODE_ENV || process.env.NODE_ENV) === 'development'\r\n ? 'http://127.0.0.1:8000/api'\r\n : 'https://travelapi.chiplc.com/api';\r\n\r\nconst subDirectory = '/';\r\n\r\nconst GibbsApiKey = 'tvRek_u3Yv39-63TtG';\r\nconst GibbsSubriskID = 'ECN';\r\nconst subProductTypeID = '8';\r\n\r\nconst flutterwaveKey =\r\n (process.env.NODE_ENV || process.env.NODE_ENV) === 'development'\r\n ? 'FLWPUBK_TEST-fe234025a8c37fbf14d24c5f33e248e7-X'\r\n : 'FLWPUBK-d9d52d459a7b8577add4ab47c5f15bf4-X';\r\n\r\nexport {\r\n packages,\r\n quotesSteps,\r\n baseUrl,\r\n subDirectory,\r\n GibbsApiKey,\r\n subProductTypeID,\r\n GibbsSubriskID,\r\n countries,\r\n relationships,\r\n getProductDescription,\r\n flutterwaveKey,\r\n titles,\r\n genders\r\n};\r\n","export default __webpack_public_path__ + \"static/media/plus.ede296ee.svg\";","export default __webpack_public_path__ + \"static/media/collapse.41e470d1.svg\";","export default __webpack_public_path__ + \"static/media/check.d2ad2b86.svg\";","import { useRef, useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport plusIcon from '../../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../../assets/svg/collapse.svg';\r\nimport checkIcon from '../../../../assets/svg/check.svg';\r\nimport { selectedPlanState, userTypeState } from '../../../../recoil/atoms';\r\n\r\nconst InsurancePackage = ({ insurancePackage, isUser }) => {\r\n const nav = useNavigate();\r\n const packageRef = useRef();\r\n const [packageHeight, setPackageHeight] = useState({});\r\n const [, setSelectedPlan] = useRecoilState(selectedPlanState);\r\n const [userType] = useRecoilState(userTypeState);\r\n\r\n useEffect(() => {\r\n const guardian = packageRef.current.clientHeight;\r\n setPackageHeight({\r\n initial: 0,\r\n new: guardian + (insurancePackage?.plans?.length || 4) * 5\r\n });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const handlePackageToggle = () => {\r\n if (packageHeight.initial > 0) {\r\n setPackageHeight({ initial: 0, new: packageHeight.initial });\r\n } else {\r\n setPackageHeight({ initial: packageHeight.new });\r\n }\r\n };\r\n\r\n let route = '';\r\n const getRoute = (iPackage, iPlan) => {\r\n if (userType === 'customer') {\r\n // if logged-in user is a customer, redirect here (shorter-flow form)\r\n route = `/get-quotes/${iPackage}/${iPlan}`;\r\n } else {\r\n // if there's no logged-in user or logged-in user is an agent, redirect here (longer-flow form)\r\n // this is because agents input different data each time they're buying insurance cause they're buying on behalf of different customers\r\n route = `/inquiry/${iPackage}/${iPlan}`;\r\n }\r\n return route;\r\n };\r\n\r\n return (\r\n
\r\n \r\n {insurancePackage.name}\r\n \r\n
\r\n \r\n {insurancePackage.plans.length} plans\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='close'\r\n />\r\n
\r\n \r\n

\r\n {insurancePackage.description}\r\n

\r\n\r\n {insurancePackage.plans.map(plan => (\r\n
  • e.stopPropagation()} key={plan.name}>\r\n
    \r\n

    \r\n \r\n {plan.name} ({`${plan.minDays} - ${plan.maxDays} Days`})\r\n

    \r\n

    {plan.description}

    \r\n
    \r\n {\r\n setSelectedPlan({ package: insurancePackage, plan });\r\n const route = getRoute(insurancePackage.name, plan.name);\r\n nav(encodeURI(route));\r\n }}\r\n >\r\n Buy Now\r\n \r\n
  • \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default InsurancePackage;\r\n","import React from 'react';\r\n// import { useRecoilState } from 'recoil';\r\n// import {\r\n// buyInsuranceScreenState,\r\n// selectedPlanState\r\n// } from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport { packages } from '../../../../constants';\r\n// import { toCurrency } from '../../../../utilities';\r\n\r\nimport InsurancePackage from './package';\r\n\r\nconst InsurancePlan = ({ heading }) => {\r\n return (\r\n
    \r\n

    {heading}

    \r\n {false && (\r\n
    \r\n \r\n {}}\r\n identifier='category'\r\n data={[\r\n { category: 'Fashion' },\r\n { category: 'Gadgets' },\r\n { category: 'Education' },\r\n { category: 'Decoration' }\r\n ]}\r\n inputId={`category`}\r\n placeholder='Package'\r\n disable={false}\r\n showItems={true}\r\n value={{ category: null }}\r\n />\r\n
    \r\n )}\r\n
    \r\n

    \r\n Packages ({packages.length} packages)\r\n

    \r\n

    \r\n Plans\r\n

    \r\n {packages.map(insurancePackage => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default InsurancePlan;\r\n","import React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Header from '../../components/commons/header';\r\nimport Footer from '../../components/commons/footer';\r\nimport welcome from '../../assets/svg/welcome.svg';\r\nimport InsurancePlan from '../Dashboard/BuyInsurance/InsurancePlan/insurance-plan';\r\n\r\nconst HomePage = () => {\r\n const packagesRef = React.useRef();\r\n const nav = useNavigate();\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Welcome to our travel insurance portal\r\n

    \r\n

    \r\n Consolidated Hallmark Insurance (CHI) Plc is a leading general\r\n business insurance company determined to change the way Nigerians\r\n see insurance. With the help of our people and technology, we\r\n ensure we don’t break your heart when you need us most because our\r\n primary objective is to deliver exceptional service to you, our\r\n customer. We are here to reduce anxiety and cater to your needs.\r\n We have got you covered.\r\n

    \r\n\r\n
    \r\n \r\n packagesRef.current.scrollIntoView({ behavior: 'smooth' })\r\n }\r\n >\r\n See Plans\r\n \r\n nav('/login')}\r\n >\r\n Buy as agent\r\n \r\n
    \r\n
    \r\n
    \r\n welcome\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    Newsletter

    \r\n

    \r\n Enter your email to get latest updates. No spam, we promise\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 HomePage;\r\n","import { useRecoilState } from 'recoil';\r\nimport {\r\n loginState,\r\n headerState,\r\n mafreKeyState,\r\n userDataState,\r\n permissionuserDataState\r\n} from '../recoil/atoms';\r\nimport { baseUrl, subDirectory } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport localforage from 'localforage';\r\n\r\nexport default function useLoginUser() {\r\n const [login, setLogin] = useRecoilState(loginState);\r\n const [headers, setHeaders] = useRecoilState(headerState);\r\n const [mapKey, setMapKey] = useRecoilState(mafreKeyState);\r\n const [user, setUser] = useRecoilState(userDataState);\r\n const [permissions, setPermissions] = useRecoilState(permissionuserDataState);\r\n const nav = useNavigate();\r\n\r\n useEffect(() => {\r\n if (login?.first_login) {\r\n nav('/first-change-password');\r\n }\r\n // eslint-disable-next-line\r\n }, [login]);\r\n\r\n const updateLogin = async loginState => {\r\n const newHeaders = {\r\n ...headers,\r\n Authorization: `Bearer ${loginState.access_token}`\r\n };\r\n\r\n await fetchUser(newHeaders);\r\n setHeaders(newHeaders);\r\n };\r\n\r\n const fetchUser = async paramHeaders => {\r\n try {\r\n const response = await fetch(`${baseUrl}/me`, {\r\n headers: paramHeaders || headers\r\n });\r\n const user = await response.json();\r\n if (user.error || user.errors) {\r\n throw new Error(user.message);\r\n }\r\n if (user.data?.profile?.next_of_kin) {\r\n user.data.profile.next_of_kin = JSON.parse(\r\n user.data.profile?.next_of_kin\r\n );\r\n }\r\n setUser(user.data);\r\n setPermissions(\r\n (user.data?.role?.tasks || []).reduce(\r\n (perms, perm) => ({ ...perms, [perm.name]: true }),\r\n {}\r\n )\r\n );\r\n setLogin(user.data);\r\n localforage.setItem('app-user', user.data);\r\n } catch (err) {\r\n toast.error(\r\n err.message || 'An error occurred while loading user, please try again'\r\n );\r\n setUser(null);\r\n setPermissions({});\r\n console.error(err);\r\n }\r\n };\r\n\r\n const logoutUser = () => {\r\n localforage.clear();\r\n window.location = subDirectory;\r\n };\r\n\r\n const updateMapKey = async (retry = true) => {\r\n try {\r\n const res = await fetch(`${baseUrl}/init`);\r\n const response = await res.json();\r\n\r\n setHeaders({\r\n ...headers,\r\n 'Map-Key': response.xhref\r\n });\r\n setMapKey(response.root);\r\n } catch (error) {\r\n if (retry) updateMapKey(false);\r\n }\r\n };\r\n\r\n return {\r\n updateLogin,\r\n login,\r\n headers,\r\n logoutUser,\r\n updateMapKey,\r\n mapKey,\r\n fetchUser,\r\n user,\r\n permissions\r\n };\r\n}\r\n","import React from 'react'\r\n\r\nexport default function Retry({ msg, btnText, action, fullscreen = true }) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {msg\r\n ? msg\r\n : An error occurred while fetching data\r\n
    please try again.
    \r\n }\r\n

    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Spinner } from 'react-bootstrap'\r\nimport Retry from './retry'\r\n\r\nexport default function RetryLoader({ retry, loading, error, children, fullscreen }) {\r\n\r\n return (\r\n (loading || error ?\r\n
    \r\n {\r\n loading\r\n ? \r\n : \r\n }\r\n
    :\r\n children\r\n )\r\n )\r\n}\r\n","import React from 'react';\r\nimport { useState, useEffect } from 'react';\r\n\r\nexport default function Search({\r\n data,\r\n fields,\r\n setOutput,\r\n filter,\r\n filterLabel,\r\n filterOptions,\r\n className\r\n}) {\r\n const [textInput, setTextInput] = useState('');\r\n const [filterValue, setFilterValue] = useState('');\r\n\r\n useEffect(() => {\r\n search();\r\n // eslint-disable-next-line\r\n }, [data]);\r\n\r\n const search = () => {\r\n let filteredData = [...data];\r\n if (textInput && fields && fields.length) {\r\n filteredData = filteredData.filter(d => {\r\n let valid = false;\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = '';\r\n if (typeof fields[i] === 'string') {\r\n field = d[fields[i]];\r\n }\r\n\r\n if (typeof fields[i] === 'object') {\r\n if (typeof fields[i].key === 'string') {\r\n field = d[fields[i].key];\r\n }\r\n\r\n if (typeof fields[i].key === 'function') {\r\n console.debug('compute', fields[i].key(d));\r\n field = fields[i].key(d);\r\n }\r\n }\r\n\r\n field = field || '';\r\n\r\n if (\r\n field.toString().toLowerCase().includes(textInput.toLowerCase())\r\n ) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n return valid;\r\n });\r\n }\r\n\r\n if (filter) {\r\n filteredData = filteredData.filter(d => d[filter].includes(filterValue));\r\n }\r\n return setOutput(filteredData);\r\n };\r\n\r\n useEffect(() => {\r\n search();\r\n // eslint-disable-next-line\r\n }, [filterValue]);\r\n\r\n return (\r\n <>\r\n
    \r\n setTextInput(e.target.value)} />\r\n \r\n
    \r\n {filter && (\r\n
    \r\n
    \r\n \r\n setFilterValue(e.target.value)}\r\n className='form-control'\r\n >\r\n \r\n {Object.keys(filterOptions).map(opt => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n}\r\n","import { useState, useEffect, useCallback } from 'react';\r\nimport moment from 'moment';\r\nimport { useRecoilState } from 'recoil';\r\nimport localforage from 'localforage';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport { baseUrl, subProductTypeID } from '../constants';\r\nimport useLoginUser from './useLoginUser';\r\nimport { headerState } from '../recoil/atoms';\r\nimport InitCountries from '../constants/countries';\r\n\r\nexport default function useCountries() {\r\n const [countries, setCountries] = useState(InitCountries);\r\n const [countriesMap, setCountriesMap] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [headers] = useRecoilState(headerState);\r\n\r\n const { updateMapKey } = useLoginUser();\r\n\r\n useEffect(() => {\r\n setCountriesMap(\r\n countries.reduce((acc, country) => ({ ...acc, [country.cd]: country }))\r\n );\r\n }, [countries]);\r\n\r\n useEffect(() => {\r\n getCountries();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const fetchFromCache = async () => {\r\n const data = await localforage.getItem('mapfre-countries');\r\n if (!data) return { countries: null, reload: true };\r\n return {\r\n countries: data.countries,\r\n reload: Math.abs(moment(data.createdAt).diff(moment(), 'days')) > 3\r\n };\r\n };\r\n\r\n const getCountryName = useCallback(\r\n name => {\r\n return countriesMap[name]?.ds || name;\r\n },\r\n [countriesMap]\r\n );\r\n\r\n const getCountries = async (alertError = false) => {\r\n setLoading(true);\r\n const { countries, reload } = await fetchFromCache();\r\n if (!reload) setCountries(countries);\r\n if (countries && countries.length) setLoading(false);\r\n if (reload) {\r\n try {\r\n let res = await fetch(`${baseUrl}/countries-available`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n effectDate: moment().format('DD/MM/YYYY'),\r\n subProductTypeID\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data?.root?.country) {\r\n setCountries(data?.root?.country);\r\n localforage.setItem('mapfre-countries', {\r\n countries: data?.root?.country,\r\n createdAt: moment().toString()\r\n });\r\n setError(false);\r\n } else {\r\n throw new Error('Invalid country');\r\n }\r\n setLoading(false);\r\n } catch (error) {\r\n updateMapKey();\r\n if (alertError) {\r\n toast.error('An error occurred, please try again');\r\n setError(true);\r\n }\r\n }\r\n }\r\n setLoading(false);\r\n };\r\n\r\n return {\r\n countries,\r\n loading,\r\n error,\r\n getCountries,\r\n countriesMap,\r\n getCountryName\r\n };\r\n}\r\n","import React, { useMemo, useState, createRef } from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport ReactExport from 'react-export-excel';\r\nimport moment from 'moment';\r\nimport Search from '../../../components/commons/search';\r\nimport { savePDF } from '@progress/kendo-react-pdf';\r\nimport { Link } from 'react-router-dom';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { permissionuserDataState } from '../../../recoil/atoms';\r\nimport { useRecoilValue } from 'recoil';\r\nimport useCountries from '../../../hooks/useCountries';\r\n\r\nconst ExcelFile = ReactExport.ExcelFile;\r\nconst ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\nconst ExcelColumn = ReactExport.ExcelFile.ExcelColumn;\r\n\r\nexport default function Travels({ loading, error, data, retry }) {\r\n const { user } = useLoginUser();\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n const { getCountryName } = useCountries();\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Customer',\r\n accessor: d => d?.user?.name + ' ' + d?.user?.profile?.last_name\r\n },\r\n {\r\n Header: 'Phone',\r\n accessor: d => d?.user?.phone\r\n },\r\n {\r\n Header: 'Destination',\r\n accessor: d => getCountryName(d.destination) // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Purpose',\r\n accessor: 'purpose'\r\n },\r\n {\r\n Header: 'Start Date',\r\n sortMethod: (a, b) => Date(a).getTime() - Date(b).getTime(),\r\n accessor: b => moment(b.from_date).format('DD/MM/YYYY')\r\n },\r\n {\r\n Header: 'End Date',\r\n sortMethod: (a, b) => Date(a).getTime() - Date(b).getTime(),\r\n accessor: b => moment(b.to_date).format('DD/MM/YYYY')\r\n },\r\n {\r\n Header: 'Policy No',\r\n accessor: d => d.mapfre_policy_no || ''\r\n },\r\n {\r\n Header: 'Date Created',\r\n sortMethod: (a, b) => Date(a).getTime() - Date(b).getTime(),\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY hh:mmA')\r\n }\r\n ],\r\n [getCountryName]\r\n );\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data: filteredData\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n\r\n const ref = createRef();\r\n\r\n const exportPDF = () => {\r\n let element = ref.current;\r\n\r\n if (element !== null) {\r\n savePDF(element, {\r\n repeatHeaders: true,\r\n paperSize: 'A1',\r\n orientation: 'horizontal',\r\n margin: '0.5cm'\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n (b?.user?.name || '') +\r\n ' ' +\r\n (b?.user?.profile?.last_name || ''),\r\n name: 'name'\r\n },\r\n {\r\n key: b => b?.user?.phone || '',\r\n name: 'phone'\r\n },\r\n {\r\n key: b => b?.destination || '',\r\n name: 'destination'\r\n },\r\n {\r\n key: b => b?.purpose || '',\r\n name: 'purpose'\r\n },\r\n {\r\n key: b => b?.mapfre_policy_no || '',\r\n name: 'policy no'\r\n }\r\n ]}\r\n />\r\n
    \r\n Download Excel\r\n }\r\n >\r\n \r\n col?.user?.name}\r\n />\r\n col?.user?.profile?.last_name}\r\n />\r\n col?.user?.email} />\r\n col?.user?.phone} />\r\n col?.user?.profile?.address}\r\n />\r\n getCountryName(col.destination)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n moment(col.created_at).format('DD/MM/YYYY hh:mmA')\r\n }\r\n />\r\n col.creator} />\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map((headerGroup, i) => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map((column, j) => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map((row, k) => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map((cell, l) => {\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 {cell.column.Header === 'Policy No' &&\r\n !cell.value ? (\r\n \r\n Inquiry\r\n {user?.id === cell.row.original?.user?.id &&\r\n cell.row.original?.user?.id && (\r\n \r\n \r\n \r\n )}\r\n {permissions.create_user_travel_payment && (\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n cell.render('Cell')\r\n )}\r\n
    \r\n\r\n
    \r\n {pages}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import { useEffect, useRef } from 'react'\r\n\r\nfunction useInterval(callback, delay) {\r\n const savedCallback = useRef(callback)\r\n\r\n // Remember the latest callback if it changes.\r\n useEffect(() => {\r\n savedCallback.current = callback\r\n }, [callback])\r\n\r\n // Set up the interval.\r\n useEffect(() => {\r\n // Don't schedule if no delay is specified.\r\n if (delay === null) {\r\n return\r\n }\r\n\r\n const id = setInterval(() => savedCallback.current(), delay)\r\n\r\n return () => clearInterval(id)\r\n }, [delay])\r\n}\r\n\r\nexport default useInterval","import firebase from 'firebase'\r\n\r\nconst firebaseConfig = {\r\n apiKey: 'AIzaSyClLcYR6FGz1RlszIB7CWBWvT17J08kJ1Y',\r\n authDomain: 'chi-insurance.firebaseapp.com',\r\n databaseURL: 'https://chi-insurance.firebaseio.com',\r\n projectId: 'chi-insurance',\r\n storageBucket: 'chi-insurance.appspot.com',\r\n messagingSenderId: '848048584328',\r\n appId: '1:848048584328:web:1485b40932a7b9e678913d',\r\n measurementId: 'G-12WYM2K6V0'\r\n}\r\n\r\nfirebase.initializeApp(firebaseConfig);\r\n\r\nexport default firebase;","import toCurrency from './toCurrency';\r\nimport useInterval from './use-interval';\r\nimport firebase from './firebase';\r\nimport moment from 'moment';\r\n\r\nconst getAge = (_date, _format) =>\r\n moment().diff(moment(_date, _format || 'YYYY-MM-DD'), 'years');\r\n\r\nfunction numberWithCommas(x) {\r\n x = x.toString().split('.');\r\n x =\r\n x[0] +\r\n '.' +\r\n (x[1] ? (x[1].length === 1 ? x[1] + '0' : x[1].substring(0, 2)) : '00');\r\n return x.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nfunction getRandomString(length) {\r\n var randomChars =\r\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += randomChars.charAt(\r\n Math.floor(Math.random() * randomChars.length)\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nfunction getIdRegProductByName(name) {\r\n var key = name && name.toUpperCase ? name.toUpperCase() : '';\r\n var products = {\r\n ECONOMY: '6908',\r\n EUROPE: '6907',\r\n FAMILY: '5322',\r\n PEARL: '6906',\r\n 'PILGRIMAGE PROTECTION BASIC': '8858',\r\n 'PILGRIMAGE PROTECTION EXTRA': '8860',\r\n 'PILGRIMAGE PROTECTION PLUS': '8859',\r\n 'STUDENTS CLASSIC': '5326',\r\n 'STUDENTS ECONOMY': '5332',\r\n 'STUDENTS PREMIUM': '5327',\r\n TRAVELLER: '6905'\r\n };\r\n\r\n return products[key];\r\n}\r\n\r\nexport {\r\n toCurrency,\r\n useInterval,\r\n firebase,\r\n getAge,\r\n numberWithCommas,\r\n getRandomString,\r\n getIdRegProductByName\r\n};\r\n","import React from 'react';\r\nimport logo from '../../../assets/image/logo.png';\r\nimport { Link } from 'react-router-dom';\r\nimport { numberWithCommas } from '../../../utilities';\r\nimport useCountries from '../../../hooks/useCountries';\r\n\r\nexport default function PrintCertifcate({ watermarked, data, fullscreen }) {\r\n const { getCountryName } = useCountries();\r\n return (\r\n \r\n {watermarked && (\r\n
    \r\n chi\r\n
    \r\n )}\r\n
    \r\n \r\n chi\r\n \r\n
    \r\n
      \r\n
    • \r\n
      \r\n Amount: \r\n {numberWithCommas(data?.payments?.amount || 0)}\r\n
      \r\n
    • \r\n
    • \r\n Payment Status: \r\n \r\n {data?.payments?.status || 'Unknown'}\r\n \r\n
    • \r\n\r\n
    • \r\n Payment Type: \r\n {data?.payments?.payment_type}\r\n
    • \r\n
    • \r\n Transaction Date: \r\n {data?.payments?.created_at}\r\n
    • \r\n\r\n
    • \r\n Policy No.: \r\n {data?.payments?.mapfre_policy_number}\r\n
    • \r\n\r\n
    • \r\n Issued Certificate: \r\n {data?.payments?.chi_certificate_no}\r\n
    • \r\n\r\n
    • \r\n Tracking No.: \r\n {data?.payments?.chi_policy_number}\r\n
    • \r\n\r\n
    • \r\n Batch No.: \r\n {data?.payments?.chi_invoice_no}\r\n
    • \r\n
    • \r\n Transaction Reference: \r\n {data?.payments?.trxref}\r\n
    • \r\n
    • \r\n Destination: \r\n {getCountryName(data?.destination)}\r\n
    • \r\n
    • \r\n Start Date: \r\n {data?.from_date}\r\n
    • \r\n
    • \r\n End Date: \r\n {data?.to_date}\r\n
    • \r\n
    • \r\n Total Duration: \r\n {data?.no_of_days}\r\n
    • \r\n
    \r\n
    \r\n );\r\n}\r\n","import moment from 'moment';\r\nimport React, { useMemo, useEffect, useState, createRef } from 'react';\r\nimport { Modal, Pagination, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { numberWithCommas } from '../../../utilities';\r\nimport PrintCertifcate from '../../Quotes/SuccessPage/print-certifcate';\r\nimport ReactExport from 'react-export-excel';\r\nimport Search from '../../../components/commons/search';\r\nimport { baseUrl } from '../../../constants';\r\nimport { savePDF } from '@progress/kendo-react-pdf';\r\nimport { Link } from 'react-router-dom';\r\nimport { permissionuserDataState } from '../../../recoil/atoms';\r\nimport { useRecoilValue } from 'recoil';\r\nimport useCountries from '../../../hooks/useCountries';\r\n\r\nconst ExcelFile = ReactExport.ExcelFile;\r\nconst ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\nconst ExcelColumn = ReactExport.ExcelFile.ExcelColumn;\r\n\r\nexport default function Certificates({ loading, error, data, retry }) {\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n const { getCountryName } = useCountries();\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Customer',\r\n accessor: d => d?.user?.name + ' ' + d?.user?.profile?.last_name\r\n },\r\n {\r\n Header: 'Destination',\r\n accessor: d => getCountryName(d.destination) // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Amount',\r\n accessor: d => numberWithCommas(d?.payments?.amount)\r\n },\r\n {\r\n Header: 'Start Date',\r\n sortMethod: (a, b) => Date(a).getTime() - Date(b).getTime(),\r\n accessor: b => moment(b.from_date).format('DD/MM/YYYY')\r\n },\r\n {\r\n Header: 'End Date',\r\n sortMethod: (a, b) => Date(a).getTime() - Date(b).getTime(),\r\n accessor: b => moment(b.to_date).format('DD/MM/YYYY')\r\n },\r\n // {\r\n // Header: 'Trans Ref',\r\n // accessor: d => d?.payments?.trxref\r\n // },\r\n {\r\n Header: 'Certifcate No',\r\n accessor: d => d?.payments?.chi_certificate_no\r\n },\r\n {\r\n Header: 'Policy No',\r\n accessor: 'mapfre_policy_no'\r\n },\r\n {\r\n Header: 'Date Created',\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY hh:mmA')\r\n // orderByFn: (a, b) => Date(a.created_at).getTime() - Date(b.created_at).getTime()\r\n }\r\n ],\r\n [getCountryName]\r\n );\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data: filteredData\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n\r\n const [print, setPrint] = useState(null);\r\n const [certificate, setCertificate] = useState(null);\r\n const [reciept, setReciept] = useState(null);\r\n\r\n useEffect(() => {\r\n if (print) {\r\n setTimeout(() => {\r\n window.print();\r\n setPrint(false);\r\n }, 100);\r\n }\r\n }, [print]);\r\n\r\n const ref = createRef();\r\n\r\n const exportPDF = () => {\r\n let element = ref.current;\r\n\r\n if (element !== null) {\r\n savePDF(element, {\r\n repeatHeaders: true,\r\n paperSize: 'A1',\r\n orientation: 'horizontal',\r\n margin: '0.5cm'\r\n });\r\n }\r\n };\r\n\r\n return print ? (\r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n \r\n (b?.user?.name || '') +\r\n ' ' +\r\n (b?.user?.profile?.last_name || ''),\r\n name: 'name'\r\n },\r\n {\r\n key: b => b?.destination || '',\r\n name: 'destination'\r\n },\r\n {\r\n key: b => b?.payments?.chi_certificate_no || '',\r\n name: 'certificate no'\r\n },\r\n {\r\n key: b => b?.mapfre_policy_no || '',\r\n name: 'policy no'\r\n }\r\n ]}\r\n />\r\n
    \r\n Download Excel\r\n }\r\n >\r\n \r\n col?.user?.name}\r\n />\r\n col?.user?.profile?.last_name}\r\n />\r\n col?.user?.email} />\r\n col?.user?.phone} />\r\n col?.user?.profile?.address}\r\n />\r\n getCountryName(col.destination)}\r\n />\r\n col?.payments?.amount}\r\n />\r\n \r\n \r\n col?.payments?.trxref}\r\n />\r\n col?.payments?.chi_certificate_no}\r\n />\r\n \r\n \r\n moment(col.created_at).format('DD/MM/YYYY hh:mmA')\r\n }\r\n />\r\n col.creator} />\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map((headerGroup, l) => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map((column, i) => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map((row, j) => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map((cell, k) => {\r\n // Apply the cell props\r\n let itemClassName =\r\n cell.column.Header === 'Status'\r\n ? cell.value\r\n ? 'table-row-success'\r\n : 'table-row-failed'\r\n : '';\r\n return (\r\n \r\n {cell.column.Header === 'Status' && !cell.value\r\n ? 'Incomplete'\r\n : cell.render('Cell')}\r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    Actions
    \r\n (\r\n \r\n \r\n View Reciept\r\n \r\n \r\n )}\r\n >\r\n setReciept(row.original)}\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 View Certificate\r\n \r\n \r\n )}\r\n >\r\n \r\n setCertificate(row.original)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {permissions.create_user_travel_payment && (\r\n (\r\n \r\n \r\n Edit Certificate\r\n \r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n\r\n setReciept(null)} centered>\r\n \r\n reciept Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setCertificate(null)}\r\n centered\r\n >\r\n \r\n Certificate Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {pages}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { useState, useEffect, useMemo } from 'react';\r\nimport Travels from './travels';\r\nimport Certificates from './certificates';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { numberWithCommas } from '../../../utilities';\r\nimport localforage from 'localforage';\r\n\r\nconst DashboardHome = () => {\r\n const { user } = useLoginUser();\r\n\r\n const [dashboard, setDashboard] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n const [travelData, setTravelData] = useState([]);\r\n const [certificates, setCertificates] = useState([]);\r\n const [travelDataLoading, setTravelDataLoading] = useState(false);\r\n const [travelDataError, setTravelDataError] = useState(false);\r\n const [activeTab, setActiveTab] = useState(0);\r\n\r\n const fectchDashboardData = async () => {\r\n setLoading(true);\r\n let cacheData = await localforage.getItem('dashboard-data');\r\n\r\n if (cacheData) {\r\n setDashboard(cacheData);\r\n setLoading(false);\r\n fetchTravelData();\r\n }\r\n fetch(`${baseUrl}/dashboard${user?.is_super_admin ? '' : '/' + user?.id}`)\r\n .then(dashboard => dashboard.json())\r\n .then(dashboard => {\r\n if (dashboard.error || dashboard.errors)\r\n throw new Error(dashboard.message);\r\n dashboard.totalTransactionAmount = numberWithCommas(\r\n dashboard.totalTransactionAmount\r\n );\r\n localforage.setItem('dashboard-data', dashboard);\r\n setDashboard(dashboard);\r\n setLoading(false);\r\n setError(false);\r\n !cacheData && fetchTravelData();\r\n })\r\n .catch(err => {\r\n toast.error('An error occurred, please try again');\r\n setError(true);\r\n setLoading(false);\r\n console.error(err);\r\n });\r\n };\r\n\r\n const saveTravelData = data => {\r\n setTravelData(data);\r\n let certificates = data.filter(tr => tr.mapfre_policy_no);\r\n\r\n certificates.forEach(tr => {\r\n if (tr.payments && tr.payments.reduce) {\r\n tr.payments = tr.payments.reduce(\r\n (acc, curr) =>\r\n curr.mapfre_policy_number === tr.mapfre_policy_no ? curr : acc,\r\n {}\r\n );\r\n }\r\n });\r\n setCertificates(certificates);\r\n setTravelDataLoading(false);\r\n };\r\n\r\n const fetchTravelData = async () => {\r\n setTravelDataLoading(true);\r\n let cacheData = await localforage.getItem('travels-data');\r\n\r\n if (cacheData) {\r\n saveTravelData(cacheData);\r\n }\r\n try {\r\n let req = await fetch(\r\n `${baseUrl}/users/travel/${user?.id}${\r\n user?.is_super_admin ? '/all' : ''\r\n }`\r\n );\r\n let data = await req.json();\r\n if (data.error) {\r\n throw new Error(data.message);\r\n }\r\n saveTravelData(data.data.travels);\r\n try {\r\n localforage.setItem('travels-data', data.data.travels);\r\n } catch (error) {}\r\n setTravelDataError(false);\r\n } catch (error) {\r\n console.error(error);\r\n setTravelDataError(true);\r\n setTravelDataLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fectchDashboardData();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const tabs = useMemo(\r\n () => [\r\n {\r\n title: 'Cerificates',\r\n component: (\r\n \r\n )\r\n },\r\n {\r\n title: 'Travels',\r\n component: (\r\n \r\n )\r\n }\r\n ],\r\n // eslint-disable-next-line\r\n [travelData, travelDataLoading, certificates, travelDataError]\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\n \r\n \r\n \r\n
    \r\n

    \r\n ₦{dashboard?.totalTransactionAmount || 0}\r\n

    \r\n

    \r\n Total Transactions\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 {dashboard?.totalTravels}\r\n

    \r\n

    \r\n Travel Inquires\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 {dashboard?.totalCertificates}\r\n

    \r\n

    \r\n Certificates Issued\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {tabs.map((tab, index) => (\r\n setActiveTab(index)}\r\n key={index}\r\n >\r\n {tab.title}\r\n
    \r\n ))}\r\n
    \r\n\r\n
    \r\n {tabs[activeTab].component}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DashboardHome;\r\n","import InsurancePlan from './InsurancePlan/insurance-plan';\r\n\r\nconst BuyInsurance = () => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default BuyInsurance;\r\n","import * as moment from 'moment';\r\nexport default class ValidatorService {\r\n constructor(schema) {\r\n this.schema = schema;\r\n }\r\n validations = {\r\n required: (input, name, value) => {\r\n if (!input && value)\r\n return { success: false, message: `${name} is required` };\r\n return true;\r\n },\r\n shouldMatch: (input, name, value) => {\r\n if (input !== value)\r\n return { success: false, message: `${name} must match` };\r\n return true;\r\n },\r\n maxLength: (input, name, value) => {\r\n if (input.length > parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should not be more than ${value} characters long`\r\n };\r\n }\r\n return true;\r\n },\r\n minLength: (input, name, value) => {\r\n if (input.length < parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should be at least ${value} characters long`\r\n };\r\n }\r\n return true;\r\n },\r\n length: (input, name, value) => {\r\n if (input.toString().length !== parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should be ${value} characters long`\r\n };\r\n }\r\n return true;\r\n },\r\n\r\n words: (input, name, value) => {\r\n if (input.toString().trim().split(' ').length !== parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} is invalid`\r\n };\r\n }\r\n return true;\r\n },\r\n maxWords: (input, name, value) => {\r\n if (input.toString().trim().split(' ').length > parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should not be more than ${value} words`\r\n };\r\n }\r\n return true;\r\n },\r\n minWords: (input, name, value) => {\r\n if (input.toString().trim().split(' ').length < parseInt(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should not be less than ${value} words`\r\n };\r\n }\r\n return true;\r\n },\r\n date: (input, name, value) => {\r\n if (!moment(input.toString(), value, true).isValid()) {\r\n return {\r\n success: false,\r\n message: `${input} is not a valid ${name}`\r\n };\r\n }\r\n return true;\r\n },\r\n olderThan: (input, name, value) => {\r\n if (moment().diff(input, 'years') < value) {\r\n return {\r\n success: false,\r\n message: `${name} should be at least ${value + 1} years old`\r\n };\r\n }\r\n return true;\r\n },\r\n minimumValue: (input, name, value) => {\r\n if (parseFloat(input, 10) < parseFloat(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should be at least ${value}`\r\n };\r\n }\r\n return true;\r\n },\r\n greaterThan: (input, name, value) => {\r\n if (parseFloat(input, 10) <= parseFloat(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should be greater than ${value}`\r\n };\r\n }\r\n return true;\r\n },\r\n lessThan: (input, name, value) => {\r\n if (parseFloat(input, 10) >= parseFloat(value, 10)) {\r\n return {\r\n success: false,\r\n message: `${name} should be less than ${value}`\r\n };\r\n }\r\n return true;\r\n },\r\n inputType: (input, name, value) => {\r\n switch (value) {\r\n case 'number':\r\n if (isNaN(input.toString())) {\r\n return {\r\n success: false,\r\n message: `${name} should be a number`\r\n };\r\n }\r\n return true;\r\n case 'email':\r\n const re =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const validatedEmail = re.test(String(input).toLowerCase());\r\n if (!validatedEmail) {\r\n return {\r\n success: false,\r\n message: `A valid email is required`\r\n };\r\n }\r\n return true;\r\n case 'string':\r\n if (!isNaN(input.toString())) {\r\n return {\r\n success: false,\r\n message: `${name} should be a string`\r\n };\r\n }\r\n return true;\r\n case 'password':\r\n const passwordPattern = /^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$/;\r\n const validatePassword = passwordPattern.test(\r\n String(input).toLowerCase()\r\n );\r\n if (!validatePassword) {\r\n return {\r\n success: false,\r\n message: `Password should contain at least 8 characters, 1 number and 1 letter`\r\n };\r\n }\r\n return true;\r\n\r\n case 'date':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n };\r\n validateAll = (schemaKeys, schemaValues, input, name) => {\r\n for (let index = 0; index < schemaKeys.length; index += 1) {\r\n const result = this.validations[schemaKeys[index]](\r\n input.toString().trim(),\r\n name,\r\n schemaValues[index]\r\n );\r\n if (result !== true) {\r\n return {\r\n success: false,\r\n message: result.message,\r\n input\r\n };\r\n }\r\n }\r\n return true;\r\n };\r\n checkValidations = (input, name) => {\r\n if (!this.schema) {\r\n console.error('Schema is undefined.');\r\n console.log('this.schema: ', this.schema);\r\n return false;\r\n }\r\n let schemaKeys = Object.keys(this.schema).filter(key => key !== 'label');\r\n let schemaValues = [];\r\n for (let index = 0; index < schemaKeys.length; index += 1) {\r\n schemaValues.push(this.schema[schemaKeys[index]]);\r\n }\r\n const required = schemaValues[schemaKeys.indexOf('required')];\r\n if (required) {\r\n this.schema = {\r\n required: schemaValues[schemaKeys.indexOf('required')],\r\n ...this.schema\r\n };\r\n schemaKeys = Object.keys(this.schema).filter(key => key !== 'label');\r\n schemaValues = Object.values(this.schema);\r\n return this.validateAll(schemaKeys, schemaValues, input, name);\r\n } else if (!required && !(input && input.length)) return true;\r\n else {\r\n return this.validateAll(schemaKeys, schemaValues, input, name);\r\n }\r\n };\r\n}\r\n// sample schema\r\n\r\n// const schema = {\r\n// required: true,\r\n// label: \"countryregion\",\r\n// minLength: 1000,\r\n// };\r\n// const validation = new ValidatorService(schema);\r\n// console.debug(\"validation2\", validation.checkValidations(16, \"Amount\"));\r\n","import React from 'react';\r\nimport Validator from './validator';\r\n\r\nconst getValidationRessults = (schema, fieldValue) => {\r\n const validatorService = new Validator(schema);\r\n return validatorService.checkValidations(fieldValue || '', schema?.label);\r\n};\r\n\r\nconst checkValidations = ({ schemas, data, field, options }) => {\r\n const errorArray = [];\r\n const errors = {};\r\n\r\n if (options && options.dataType === 'array') {\r\n data.forEach(data => {\r\n const errors = {};\r\n\r\n const entries = Object.entries(schemas, data);\r\n entries.forEach(entry => {\r\n const [inputName, schema] = entry;\r\n const inputValue = data[inputName];\r\n const result = getValidationRessults(schema, inputValue);\r\n if (result !== true) {\r\n errors[inputName] = result;\r\n }\r\n });\r\n\r\n const success = !Object.keys(errors).length;\r\n errorArray.push({ errors, success });\r\n });\r\n } else if (field) {\r\n const schema = schemas[field];\r\n const inputValue = data[field];\r\n const result = getValidationRessults(schema, inputValue);\r\n if (result !== true) {\r\n errors[field] = result;\r\n }\r\n } else {\r\n const entries = Object.entries(schemas, data);\r\n entries.forEach(entry => {\r\n const [inputName, schema] = entry;\r\n const inputValue = data[inputName];\r\n const result = getValidationRessults(schema, inputValue);\r\n if (result !== true) {\r\n errors[inputName] = result;\r\n }\r\n });\r\n }\r\n\r\n const isDataArrayValidated = errorArray.filter(\r\n result => result.success === false\r\n );\r\n\r\n return {\r\n success: !Object.keys(errors).length,\r\n errors,\r\n arrayResults: { errors: errorArray, success: !isDataArrayValidated.length }\r\n };\r\n};\r\nconst ErrorMessage = ({ message }) => {\r\n return {message};\r\n};\r\nexport { checkValidations, ErrorMessage };\r\n","\r\nconst travelSchema = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { travelSchema };\r\n","const nextOfKinSchema = {\r\n name: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n relationship: { required: true, label: 'Relationship' },\r\n marketer: { label: 'Marketer' }\r\n};\r\n\r\nconst guardianSchema = {\r\n guardianFirstName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianLastName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianOtherName: {\r\n required: false,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n guardianEmail: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n guardianPhoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n guardianAddress: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n guardianDateOfBirth: {\r\n required: true,\r\n olderThan: 17,\r\n label: 'Guardian Date of Birth'\r\n },\r\n guardianRelationship: { required: true, label: 'Relationship' },\r\n guardianPassportNumber: {\r\n required: true,\r\n minLength: 5,\r\n label: 'Passport Number'\r\n },\r\n gender: { required: true, label: 'Gender' },\r\n title: { required: false, label: 'Title' }\r\n};\r\n\r\nexport { nextOfKinSchema, guardianSchema };\r\n","import { useState, useEffect, useMemo } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n travelDetailsState,\r\n insuranceDataState,\r\n guardianDetailsState,\r\n selectedProfileTabState,\r\n profileDataState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { travelSchema } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { genders, titles, relationships } from '../../../../constants';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { getAge } from '../../../../utilities';\r\nimport { toast } from 'react-toastify';\r\nimport { guardianSchema } from '../../../Quotes/NextOfKinDetails/next-of-kin.schema';\r\nimport useCountries from '../../../../hooks/useCountries';\r\n\r\nconst TravelDetails = () => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [, setActiveProfileTab] = useRecoilState(selectedProfileTabState);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const { countries } = useCountries();\r\n\r\n const { updateMapKey, user } = useLoginUser();\r\n\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n const [, setProfileData_state] = useRecoilState(profileDataState);\r\n\r\n const { subpath: purpose } = useParams();\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas = isMinor\r\n ? { ...travelSchema, ...guardianSchema }\r\n : travelSchema;\r\n\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n setGuardianDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n\r\n const data = isMinor\r\n ? { ...travelDetails, ...guardianDetails }\r\n : travelDetails;\r\n\r\n const { success } = handleValidations(data);\r\n\r\n if (success) {\r\n saveUserAndProceed();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const isMinor = useMemo(\r\n () => getAge(user?.profile?.date_of_birth) < 18,\r\n [user]\r\n );\r\n\r\n const formateMafreDate = _date => {\r\n return _date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: user.name,\r\n first_name: user.name,\r\n last_name: user?.profile?.last_name,\r\n other_names: user?.profile?.other_names,\r\n gender: user?.profile?.gender || 'N/A', //TODO: add to ui\r\n email: user.email,\r\n phone: user.phone,\r\n passport_no: user?.profile?.passport_no,\r\n destination: travelDetails.destination,\r\n title: user.title || '',\r\n age: getAge(user?.profile?.date_of_birth),\r\n date_of_birth: user?.profile?.date_of_birth,\r\n medical_cond: 'N/A',\r\n address: user?.profile?.address,\r\n nok_name: user?.profile?.next_of_kin?.nok_name || '',\r\n nok_relationship: user?.profile?.next_of_kin?.nok_relationship || '',\r\n nok_phone: user?.profile?.next_of_kin?.nok_phone || '',\r\n nok_email: user?.profile?.next_of_kin?.nok_email || '',\r\n nok_address: user?.profile?.next_of_kin?.nok_address || '',\r\n is_holder: !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n });\r\n\r\n const saveUserAndProceed = async () => {\r\n setLoading(true);\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n\r\n const guardian = getGuardian();\r\n\r\n if (isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n let profileData = JSON.parse(JSON.stringify(passenger));\r\n profileData['attaches'] = [];\r\n profileData['guardian'] = guardian;\r\n\r\n profileData['next_of_kin'] = {\r\n nok_name: passenger.nok_name,\r\n nok_relationship: passenger.nok_relationship,\r\n nok_phone: passenger.nok_phone,\r\n nok_email: passenger.nok_email,\r\n nok_address: passenger.nok_address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n\r\n setProfileData_state(profileData);\r\n\r\n setActivePage(activePage + 1);\r\n\r\n setLoading(false);\r\n };\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n useEffect(() => {\r\n handleChange('purpose', purpose);\r\n updateMapKey();\r\n\r\n if (!user?.profile?.passport_no) {\r\n toast.info('please enter your passport number');\r\n setActiveProfileTab(0);\r\n nav('/dashboard/profile', { replace: true });\r\n }\r\n\r\n // if (!user?.profile?.next_of_kin) {\r\n // toast.info('please enter your next of kin information');\r\n // setActiveProfileTab(1);\r\n // nav('/dashboard/profile', { replace: true });\r\n // }\r\n\r\n if (!user?.profile?.passport_image) {\r\n toast.info('please upload your passport ');\r\n setActiveProfileTab(2);\r\n nav('/dashboard/profile', { replace: true });\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{ destination: travelDetails.destination }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n null}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {isMinor && (\r\n
    \r\n
    \r\n \r\n You are quiet young, please add a guardian\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian first name'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian surname'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n {/*
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianOtherName'\r\n placeholder='Enter guardian other name'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    */}\r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='passport'\r\n type='passport'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange(\r\n 'guardianRelationship',\r\n selection.relationship\r\n );\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={guardianDetails.relationship}\r\n readOnly={!isMinor}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl, GibbsApiKey } from '../../../../constants';\r\nimport {\r\n headerState,\r\n buyInsuranceScreenState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n profileDataState,\r\n travelDetailsState,\r\n travelDetailFormState\r\n} from '../../../../recoil/atoms';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { getAge, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function ProductDetails() {\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [headers] = useRecoilState(headerState);\r\n const [loading, setLoading] = useState(false);\r\n const [createLoading, setCreateLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const { updateMapKey, user } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n\r\n const getProductXml = async insuranceData => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n setCoverDetails(data?.cover_details || {});\r\n return data;\r\n };\r\n\r\n const getPrices = async insuranceDataParam => {\r\n setLoading(true);\r\n const xml = await getProductXml(insuranceDataParam || insuranceData);\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n setPriceInfo(data);\r\n setLoading(false);\r\n setError(false);\r\n } catch (error) {\r\n setError(true);\r\n setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setInsuranceData({ ...insuranceData, idRegProduct: product.cd });\r\n getPrices({ ...insuranceData, idRegProduct: product.cd });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const buildGibsProfileData = profileData => {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData.next_of_kin.nok_name,\r\n NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n NoK_Address: profileData.next_of_kin.nok_address,\r\n NoK_Email: profileData.next_of_kin.nok_email,\r\n NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n CoverType: product.dsProduct\r\n };\r\n };\r\n\r\n const saveTravelAndProceed = async () => {\r\n setCreateLoading(true);\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...profileData, product: product.dsProduct }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name: user?.name + ' ' + user?.profile?.last_name,\r\n user_id: user.id,\r\n travel_id: data.travel_id,\r\n email: user.email,\r\n phone: user.phone,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(user?.profile?.date_of_birth),\r\n destination: travelDetails.destination,\r\n marketer: { id: 0, name: 'N/A' },\r\n gibssTransactionData: buildGibsProfileData(profileData)\r\n };\r\n\r\n setProfileData({ ...profileData, travel_id: data.travel_id });\r\n setTravelDetailForm(travelDetailForm);\r\n setActivePage(activePage + 1);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n\r\n setCreateLoading(false);\r\n };\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n const totalInsured = priceInfo?.root?.premiumBreakdown?.numInsured || '1';\r\n\r\n return (\r\n
    \r\n

    \r\n Product Details and Price as below\r\n

    \r\n\r\n
    \r\n
    {`${product.dsProduct} PLAN`}
    \r\n
    \r\n {product.ds}\r\n
    \r\n
    \r\n\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\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 \r\n \r\n \r\n\r\n {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${product.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{product.maxDiasAntes}
    Maximum days after issuing (useful with claims):{product.maxDiasDespues}
    Insurer’s minimum age:{product.edadMinimaAsegurado}
    Insurer’s Maximum age:{product.edadMaximaAsegurado}
    Policy-holder’s minimum age:{product.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n {!parseFloat(price) && (\r\n
    \r\n This product is not available for this Destination and/or\r\n Duration.\r\n
    \r\n )}\r\n
    \r\n Number Insured: {totalInsured}\r\n
    \r\n
    \r\n Total Fee: ₦{numberWithCommas(price)}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {!parseFloat(price) && !loading && (\r\n
    \r\n

    \r\n This product is not available at moment.
    \r\n Please try other products or try again later.\r\n

    \r\n
    \r\n )}\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n {!parseFloat(price) || loading || error ? (\r\n <>\r\n ) : (\r\n \r\n {createLoading ? 'Saving...' : 'Proceed'}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n headerState,\r\n priceInformationState,\r\n travelDetailFormState,\r\n selectedProductState,\r\n insuranceDataState\r\n} from '../../../../recoil/atoms';\r\n\r\nimport { useFlutterwave, closePaymentModal } from 'flutterwave-react-v3';\r\nimport { flutterwaveKey, baseUrl } from '../../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Retry from '../../../../components/commons/retry';\r\nimport { getRandomString, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function Payment() {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [headers] = useRecoilState(headerState);\r\n const [priceInfo] = useRecoilState(priceInformationState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [paid, setPaid] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [certificate, setCertificate] = useState(false);\r\n const [gibbsResponse, setGibbsResponse] = useState(false);\r\n const [payment, setPayment] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n\r\n const config = {\r\n public_key: flutterwaveKey,\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n payment_options: 'card,mobilemoney,ussd',\r\n customer: {\r\n email: travelDetailForm.email,\r\n phonenumber: travelDetailForm.phone,\r\n name: travelDetailForm.customer_name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n }`,\r\n description: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const handleFlutterPayment = useFlutterwave(config);\r\n\r\n const handlePay = () => {\r\n setLoading(true);\r\n handleFlutterPayment({\r\n callback: response => {\r\n closePaymentModal(); // this will close the modal programmatically\r\n if (response.status === 'successful') {\r\n updateMapKey();\r\n setPaid(response);\r\n savePayment(response);\r\n } else {\r\n toast.error('Payment unsuccessful');\r\n console.error(response);\r\n setLoading(false);\r\n }\r\n },\r\n onClose: e => {\r\n console.info(e, 'closed');\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n\r\n const savePayment = async response => {\r\n const flutterwavePayment = response || paid;\r\n if (!flutterwavePayment) return;\r\n setLoading(true);\r\n const paymentData = {\r\n travel_id: travelDetailForm.travel_id,\r\n amount: flutterwavePayment.amount,\r\n payment_type: 'Online',\r\n premium: price,\r\n paystack_ref: flutterwavePayment.flw_ref,\r\n trxref: flutterwavePayment.tx_ref,\r\n status: flutterwavePayment.status,\r\n product_name: product.dsProduct\r\n };\r\n\r\n try {\r\n const res = await Promise.all([\r\n fetch(`${baseUrl}/users/travel/payment`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n }),\r\n updateMapKey()\r\n ]);\r\n\r\n let data = await res[0].json();\r\n\r\n if (!data.error && !data.errors) {\r\n setPayment(data);\r\n issueCertificate(true, flutterwavePayment);\r\n } else {\r\n setError(true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const issueCertificate = async (hasPaid = false, paymentRequest) => {\r\n const pmt = paymentRequest || payment;\r\n setLoading(true);\r\n if (!payment && !hasPaid) {\r\n return savePayment(paid);\r\n }\r\n\r\n if (certificate) {\r\n return storeOnGibbs(certificate, pmt);\r\n }\r\n\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'issuing',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n storeOnGibbs(data.root, pmt);\r\n } else {\r\n console.error(data);\r\n setLoading(false);\r\n setError(true);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const storeOnGibbs = async (certificate, _payment) => {\r\n if (gibbsResponse) {\r\n return completePayment(gibbsResponse, payment, certificate);\r\n }\r\n\r\n const data = JSON.parse(\r\n JSON.stringify(travelDetailForm.gibssTransactionData)\r\n );\r\n data.Map_PolicyNo = certificate?.numContrato || '';\r\n data.Payment_Ref = _payment?.tx_ref || 'manual';\r\n data.MarketerID = travelDetailForm.marketer.MarketerID || '27033277';\r\n data.MarketerName =\r\n travelDetailForm.marketer.full_name || 'BOLAJI AKINMORIN';\r\n data.Title = travelDetailForm.Title || 'N/A';\r\n data.Premium = price;\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/complete-transaction`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n });\r\n\r\n let response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n console.error(response);\r\n setGibbsResponse(response);\r\n completePayment(response, payment, certificate);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const completePayment = async (response, payment, certificate) => {\r\n let chiData = response?.BuyTravelInsuranceResult?.TravelID;\r\n const paymentData = {\r\n certificate_url: certificate?.file || '',\r\n chi_certificate_no: chiData?.CertificateNos || 'Not Available',\r\n chi_invoice_no: chiData?.InvoiceID || 'Not Available',\r\n chi_policy_number: chiData?.PolicyNumber || 'Not Available',\r\n chi_response_status: chiData?.StatusmSG || 'Not Available',\r\n id: payment?.data?.id,\r\n mapfre_certificate_id: certificate?.idRegContrato || '',\r\n mapfre_policy_number: certificate?.numContrato || ''\r\n };\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/travel/payments`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n });\r\n\r\n const response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n nav(\r\n `/quotes/success/${travelDetailForm.travel_id}/${payment?.data?.id}`\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Make Payment

    \r\n
    \r\n\r\n
    \r\n Product:\r\n {product.dsProduct}\r\n
    \r\n
    \r\n Travel Purpose:\r\n {travelDetailForm.gibssTransactionData?.TravelPurpose}\r\n
    \r\n
    \r\n Amount: \r\n ₦{numberWithCommas(price)}\r\n
    \r\n\r\n {!paid && (\r\n
    \r\n Pay with Rave\r\n
    \r\n )}\r\n
    \r\n\r\n {!paid && !loading && (\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n
    \r\n )}\r\n\r\n {(paid || error) && (\r\n
    \r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n Please wait while we process your certificate, this may take a\r\n few minutes.
    \r\n Do not close the browser or leave this page.\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","import { useState, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport { useRecoilState } from 'recoil';\r\nimport localforage from 'localforage';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport { baseUrl, subProductTypeID } from '../constants';\r\nimport useLoginUser from './useLoginUser';\r\nimport { headerState } from '../recoil/atoms';\r\n\r\nexport default function useProducts() {\r\n const [products, setProducts] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [headers] = useRecoilState(headerState);\r\n\r\n const { updateMapKey } = useLoginUser();\r\n\r\n useEffect(() => {\r\n getProducts();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const fetchFromCache = async () => {\r\n const data = await localforage.getItem('mapfre-products');\r\n if (!data) return { products: null, reload: true };\r\n return {\r\n products: data.products,\r\n reload: Math.abs(moment(data.createdAt).diff(moment(), 'days')) > 3\r\n };\r\n };\r\n\r\n const getProducts = async () => {\r\n setLoading(true);\r\n const { products, reload } = await fetchFromCache();\r\n if (!reload) setProducts(products);\r\n if (products && products.length) setLoading(false);\r\n if (reload) {\r\n try {\r\n let res = await fetch(`${baseUrl}/products-available`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n effectDate: moment().format('DD/MM/YYYY'),\r\n subProductTypeID\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data?.root?.tbl_availableProducts) {\r\n setProducts(data?.root?.tbl_availableProducts);\r\n localforage.setItem('mapfre-products', {\r\n products: data?.root?.tbl_availableProducts,\r\n createdAt: moment().toString()\r\n });\r\n setError(false);\r\n } else {\r\n setError(true);\r\n localforage.removeItem('mapfre-products');\r\n toast.error('An error occurred, please try again');\r\n }\r\n setLoading(false);\r\n } catch (error) {\r\n updateMapKey();\r\n toast.error('An error occurred, please try again');\r\n setError(true);\r\n }\r\n }\r\n setLoading(false);\r\n };\r\n\r\n return { products, loading, error, getProducts };\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { useRecoilState } from 'recoil';\r\nimport { getProductDescription } from '../../../../constants';\r\nimport useProducts from '../../../../hooks/useProducts';\r\nimport {\r\n selectedProductState,\r\n buyInsuranceScreenState,\r\n travelDetailsState\r\n} from '../../../../recoil/atoms';\r\n\r\nexport default function SelectPlan() {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [, setSelectedProduct] = useRecoilState(selectedProductState);\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n\r\n const buyNow = product => {\r\n setSelectedProduct(product);\r\n setActivePage(activePage + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip length: {travelDetails.duration} Days\r\n

    \r\n\r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Buy Now\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n activePage !== 0 && setActivePage(activePage - 1)\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","import { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../../recoil/atoms';\r\n\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport InsuranceDetails from './InsuranceDetails/insurance-details';\r\nimport InsurancePayment from './InsurancePayment/insurance-payment';\r\nimport SelectPlan from './SelectPlan/select-plan';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useEffect } from 'react';\r\n\r\nconst BuyInsurance = () => {\r\n const { subpath: purpose } = useParams();\r\n const nav = useNavigate();\r\n\r\n // eslint-disable-next-line\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n // eslint-disable-next-line\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n // eslint-disable-next-line\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n // eslint-disable-next-line\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n // eslint-disable-next-line\r\n const [travelDetailForm, setTravelDetailForm] = useRecoilState(\r\n travelDetailFormState\r\n );\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n setActiveScreen(0);\r\n };\r\n\r\n useEffect(() => {\r\n if (!purpose) {\r\n nav('/dashboard/buy-insurance', { replace: true });\r\n }\r\n\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const screens = [\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n const [activeScreen, setActiveScreen] = useRecoilState(\r\n buyInsuranceScreenState\r\n );\r\n\r\n return
    {screens[activeScreen]}
    ;\r\n};\r\n\r\nexport default BuyInsurance;\r\n","export const schemas = {\r\n old_password: {\r\n required: true,\r\n label: 'Current Password'\r\n },\r\n password: {\r\n required: true,\r\n minLength: 6,\r\n label: 'Password'\r\n },\r\n password_confirmation: {\r\n required: true,\r\n minLength: 6,\r\n label: 'Confirm Password'\r\n },\r\n};\r\n","import { useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../utilities/use-validation';\r\nimport { schemas } from './profile-password.schema';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { baseUrl } from '../../../constants';\r\n\r\nconst ChangePassword = () => {\r\n const { headers } = useLoginUser();\r\n\r\n const [errors, setErrors] = useState({});\r\n const [form, setForm] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...form, [name]: value };\r\n setForm(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...form\r\n });\r\n\r\n if (success) {\r\n changePassword();\r\n }\r\n };\r\n\r\n const changePassword = async () => {\r\n setLoading(true);\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/update-password`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(form)\r\n });\r\n\r\n const data = await res.json();\r\n if (data.error || data.errors) throw new Error(data.message);\r\n toast.success('password updated successfully!!');\r\n setForm({});\r\n } catch (error) {\r\n toast.error(error.message);\r\n console.error(error);\r\n }\r\n setLoading(false);\r\n };\r\n return (\r\n
    \r\n

    Update Password

    \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\nexport default ChangePassword;\r\n","export const schemas = {\r\n firstName: {\r\n required: true,\r\n maxLength: 20,\r\n label: 'Other Names'\r\n },\r\n lastName: {\r\n required: true,\r\n maxLength: 20,\r\n label: 'Surname'\r\n },\r\n otherNames: {\r\n required: false,\r\n maxLength: 20,\r\n label: 'Surname'\r\n },\r\n dateOfBirth: {\r\n required: true,\r\n label: 'Date of Birth'\r\n },\r\n // email: {\r\n // required: true,\r\n // inputType: 'email',\r\n // label: 'Email'\r\n // },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n passportNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 5,\r\n maxWords: 1,\r\n label: 'Passport Number'\r\n },\r\n address: {\r\n required: true,\r\n label: 'Address'\r\n }\r\n};\r\n","import { useState, useEffect } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { profileInformationState } from '../../../recoil/atoms';\r\n// import avatar from '../../../assets/image/avatar.png';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../utilities/use-validation';\r\nimport { schemas } from './profile-information.schema';\r\n\r\nconst ProfileInformation = () => {\r\n const { user, headers, fetchUser } = useLoginUser();\r\n\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const [profileInformation, setProfileInformation] = useRecoilState(\r\n profileInformationState\r\n );\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...profileInformation, [name]: value };\r\n setProfileInformation(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...profileInformation\r\n });\r\n\r\n if (success) {\r\n save();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const profile = {\r\n firstName: user.name,\r\n email: user.email,\r\n lastName: user?.profile?.last_name || '',\r\n otherNames: user?.profile?.other_names || '',\r\n passportNumber: user?.profile?.passport_no || '',\r\n address: user?.profile?.address || '',\r\n dateOfBirth: user?.profile?.date_of_birth || '',\r\n phoneNumber: user?.phone || ''\r\n };\r\n\r\n setProfileInformation(profile);\r\n // eslint-disable-next-line\r\n }, [user]);\r\n\r\n const save = () => {\r\n setLoading(true);\r\n const data = JSON.parse(JSON.stringify(user));\r\n data.profile = data.profile || {};\r\n data.name = profileInformation.firstName;\r\n data.profile.last_name = profileInformation.lastName;\r\n data.profile.other_names = profileInformation.otherNames;\r\n data.profile.passport_no = profileInformation.passportNumber;\r\n data.profile.address = profileInformation.address;\r\n data.profile.date_of_birth = profileInformation.dateOfBirth;\r\n data.phone = profileInformation.phoneNumber;\r\n\r\n fetch(`${baseUrl}/me`, {\r\n headers,\r\n method: 'POST',\r\n body: JSON.stringify({ ...data, _method: 'PUT' })\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.error || res.errors) throw new Error(res.message);\r\n fetchUser();\r\n toast.success('Profile updated successfully');\r\n setProfileInformation({});\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error(err.message || 'Error updating profile');\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n {/*

    Your Photo

    \r\n\r\n
    \r\n avatar\r\n
    \r\n

    Upload your photo

    \r\n

    Your profile photo helps us identify you

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

    Personal Information

    \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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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 \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProfileInformation;\r\n","export default __webpack_public_path__ + \"static/media/upload.12443553.svg\";","import React, { useState, useCallback } from 'react';\r\nimport { Spinner, ProgressBar } from 'react-bootstrap';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport { toast } from 'react-toastify';\r\nimport { baseUrl } from '../../../constants';\r\n// import { firebase } from '../../../utilities';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\n\r\nimport upload from '../../../assets/svg/upload.svg';\r\n\r\nexport default function ProfilePassport() {\r\n const [file, setFile] = useState(null);\r\n const [change, setChange] = useState(null);\r\n const [progress, setProgress] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const { headers, user, fetchUser } = useLoginUser();\r\n\r\n let interval;\r\n let baseProgress;\r\n\r\n const handleUpload = () => {\r\n if (!change) return setChange(true);\r\n\r\n if (!file) return;\r\n\r\n setLoading(true);\r\n savePassport();\r\n\r\n // const storage = firebase.storage();\r\n // const storageRef = storage.ref();\r\n // const uploadTask = storageRef.child('passports/' + file.name).put(file);\r\n\r\n // uploadTask.on(\r\n // firebase.storage.TaskEvent.STATE_CHANGED,\r\n // snapshot => {\r\n // setProgress(\r\n // Math.round(snapshot.bytesTransferred / snapshot.totalBytes) * 50\r\n // );\r\n // },\r\n // error => {\r\n // toast.error('An error occurred, please try again');\r\n // setLoading(false);\r\n // console.error(error);\r\n // },\r\n // () => {\r\n // uploadTask.snapshot.ref.getDownloadURL().then(url => {\r\n // baseProgress = 50;\r\n // savePassport({ userId: user.id, url });\r\n // });\r\n // }\r\n // );\r\n };\r\n\r\n const savePassport = async () => {\r\n interval && clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n baseProgress < 95 && setProgress(baseProgress);\r\n }, 50);\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('userId', user?.id);\r\n\r\n const reqHeaders = { ...headers };\r\n delete reqHeaders['Content-Type'];\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/savePassport`, {\r\n method: 'POST',\r\n headers: reqHeaders,\r\n body: formData\r\n });\r\n\r\n const data = await res.json();\r\n if (data.error || data.errors) throw new Error(data.message);\r\n\r\n await fetchUser();\r\n setChange(false);\r\n setFile(null);\r\n setLoading(false);\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n baseProgress <= 100 && setProgress(baseProgress);\r\n if (baseProgress >= 110) {\r\n setLoading(false);\r\n clearInterval(interval);\r\n }\r\n }, 50);\r\n };\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n if (acceptedFiles[0] && acceptedFiles[0].size > 204800) {\r\n toast.error('Please select a file smaller than 200kb');\r\n return;\r\n }\r\n\r\n if (acceptedFiles[0] && !acceptedFiles[0].type.includes('image')) {\r\n toast.error('Please select an image file (jpeg, png, gif)');\r\n return;\r\n }\r\n\r\n setFile(acceptedFiles[0]);\r\n }, []);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\r\n\r\n return (\r\n
    \r\n

    Manage Passport

    \r\n\r\n {change ? (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n upload\r\n

    \r\n Drag and drop the file here, or click to select file\r\n

    \r\n

    \r\n \r\n Note: The file should smaller 200kb and must be an\r\n image (jpeg,jpg,png,gif)\r\n \r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {file && (\r\n
    \r\n upload {file.name}\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 )}\r\n\r\n {\r\n
    \r\n \r\n {loading ? (\r\n <>\r\n loading...\r\n \r\n ) : !change ? (\r\n 'Change'\r\n ) : (\r\n 'Update'\r\n )}\r\n \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n","import { useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useRecoilState } from 'recoil';\r\nimport { selectedProfileTabState } from '../../../recoil/atoms';\r\nimport ChangePassword from './profile-change-password';\r\nimport ProfileInformation from './profile-information';\r\nimport ProfilePassport from './profile-passport';\r\n// import ProfileNextOfKin from './profile.next-of-kin';\r\n\r\nconst Profile = () => {\r\n const [activeTab, setActiveTab] = useRecoilState(selectedProfileTabState);\r\n const tabs = [\r\n { title: 'Profile Information', component: },\r\n // { title: 'Next of Kin Details', component: },\r\n { title: 'Passport', component: },\r\n { title: 'Update Password', component: }\r\n ];\r\n\r\n const { subpath } = useParams();\r\n useEffect(() => {\r\n switch (subpath) {\r\n case 'change-password':\r\n setActiveTab(3);\r\n break;\r\n case 'passport':\r\n setActiveTab(2);\r\n break;\r\n case 'next-of-link':\r\n setActiveTab(1);\r\n break;\r\n\r\n default:\r\n setActiveTab(0);\r\n break;\r\n }\r\n }, [subpath, setActiveTab]);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {tabs.map((tab, index) => (\r\n setActiveTab(index)}\r\n key={index}\r\n >\r\n {tab.title}\r\n
    \r\n ))}\r\n
    \r\n\r\n
    {tabs[activeTab].component}
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Profile;\r\n","import { Modal } from 'react-bootstrap';\r\nimport React, { useState } from 'react';\r\n\r\nexport default function UsersActiveProfile({\r\n user,\r\n hide,\r\n activateUser,\r\n loading\r\n}) {\r\n const [reason, setReason] = useState('');\r\n return (\r\n \r\n \r\n \r\n {!user?.enabled ? 'Activate' : 'Suspend'} {user?.name || 'User'}\r\n \r\n \r\n \r\n
    \r\n {!user?.enabled ? (\r\n

    \r\n Are your sure you want to enable disable\r\n

    \r\n ) : (\r\n
    \r\n

    \r\n Why do you want to Suspend this User\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n Close\r\n \r\n activateUser(user, reason)}\r\n disabled={loading}\r\n >\r\n {loading ? 'Updating...' : 'Update'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Modal } from 'react-bootstrap';\r\nimport React from 'react';\r\n\r\nexport default function UsersDeleteProfile({\r\n user,\r\n hide,\r\n deleteUser,\r\n loading\r\n}) {\r\n return (\r\n \r\n \r\n Delete Users {user?.name || 'User'}\r\n \r\n \r\n
    \r\n

    \r\n Are your sure you want to delete {user?.name || 'User'}?\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n Close\r\n \r\n deleteUser(user.id)}\r\n disabled={loading}\r\n >\r\n {loading ? 'Deleting...' : 'Delete'}\r\n \r\n \r\n \r\n );\r\n}\r\n","export const schemas = {\r\n name: {\r\n required: true,\r\n maxLength: 20,\r\n label: 'Other Names'\r\n },\r\n last_name: {\r\n required: true,\r\n maxLength: 20,\r\n label: 'Surname'\r\n },\r\n other_names: {\r\n required: false,\r\n maxLength: 20,\r\n label: 'Other Name'\r\n },\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n address: {\r\n required: false,\r\n label: 'Address'\r\n },\r\n phone: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n user_type: {\r\n required: true,\r\n label: 'User Type'\r\n },\r\n role_id: {\r\n required: false,\r\n label: 'Role'\r\n }\r\n};\r\n","import { Modal } from 'react-bootstrap';\r\nimport React, { useState } from 'react';\r\nimport {\r\n ErrorMessage,\r\n checkValidations\r\n} from '../../../utilities/use-validation';\r\n// import CustomDropdown from '../../../components/custom-dropdown';\r\nimport { editUserDataState, rolesState } from '../../../recoil/atoms';\r\nimport { useRecoilState } from 'recoil';\r\nimport { schemas } from './users.edit-profile-schema';\r\nimport { useEffect } from 'react';\r\n\r\nexport default function UsersEditProfile({ user, hide, save }) {\r\n const [userData, setUserData] = useRecoilState(editUserDataState);\r\n const [roles] = useRecoilState(rolesState);\r\n const [errors, setErrors] = useState({});\r\n\r\n useEffect(() => {\r\n setUserData({\r\n name: user?.name || '',\r\n last_name: user?.profile?.last_name || '',\r\n other_names: user?.profile?.other_names || '',\r\n address: user?.profile?.address || '',\r\n email: user?.email || '',\r\n phone: user?.phone || '',\r\n user_type: user?.user_type || '',\r\n role_id: user?.role_id || ''\r\n });\r\n setErrors({});\r\n return () => {\r\n setUserData({});\r\n setErrors({});\r\n };\r\n // eslint-disable-next-line\r\n }, [user]);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...userData, [name]: value };\r\n setUserData(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...userData\r\n });\r\n\r\n if (success) {\r\n save(user.id);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Edit {user?.name || 'User'}\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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 {userData.user_type === 'staff' ? (\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 Close\r\n \r\n \r\n {userData.loading ? 'Saving...' : 'Save'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import moment from 'moment';\r\nimport React, { useMemo, useState, createRef } from 'react';\r\nimport {\r\n Pagination,\r\n FormCheck,\r\n Tooltip,\r\n OverlayTrigger\r\n} from 'react-bootstrap';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\nimport { useRecoilState, useRecoilValue } from 'recoil';\r\nimport { baseUrl } from '../../../constants';\r\nimport {\r\n editUserDataState,\r\n permissionuserDataState\r\n} from '../../../recoil/atoms';\r\nimport UsersActiveProfile from './users.active-profile';\r\nimport UsersDeleteProfile from './users.delete-profile';\r\nimport UsersEditProfile from './users.edit-profile';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport ReactExport from 'react-export-excel';\r\nimport { savePDF } from '@progress/kendo-react-pdf';\r\n\r\nconst ExcelFile = ReactExport.ExcelFile;\r\nconst ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\nconst ExcelColumn = ReactExport.ExcelFile.ExcelColumn;\r\n\r\nexport default function UsersTable({ data, refresh }) {\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Other Names',\r\n accessor: d => d.name // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Surname',\r\n accessor: d => d?.profile?.last_name // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Email',\r\n accessor: 'email'\r\n },\r\n {\r\n Header: 'Phone No',\r\n accessor: 'phone'\r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'user_type'\r\n },\r\n // {\r\n // Header: 'Reference',\r\n // accessor: 'user_ref'\r\n // },\r\n {\r\n Header: 'Date Created',\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY')\r\n // orderByFn: (a, b) => Date(a.created_at).getTime() - Date(b.created_at).getTime()\r\n }\r\n ],\r\n []\r\n );\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n\r\n const { headers } = useLoginUser();\r\n const [deleteLoading, setDeleteLoading] = useState(false);\r\n const [editUser, setEditUser] = useState(null);\r\n const [deleteUser, setDeleteUser] = useState(null);\r\n const [activeUser, setActiveUser] = useState(null);\r\n const [editUserData, setEditUserData] = useRecoilState(editUserDataState);\r\n\r\n const updateUser = user_id => {\r\n setEditUserData({ ...editUserData, loading: true });\r\n const data = { ...editUserData, loading: undefined };\r\n fetch(`${baseUrl}/users/${user_id}`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...data, _method: 'PUT' }),\r\n headers\r\n })\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n setEditUserData({});\r\n refresh();\r\n toast.success('Changes saved');\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while saving, please try again');\r\n setEditUserData({ ...editUserData, loading: false });\r\n });\r\n };\r\n\r\n const removeUser = user_id => {\r\n setDeleteLoading(true);\r\n fetch(`${baseUrl}/users/${user_id}`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({ _method: 'DELETE' })\r\n })\r\n .then(users => users.json())\r\n .then(users => {\r\n if (users.error || users.errors) throw new Error(users.message);\r\n refresh();\r\n toast.success('User Deleted');\r\n setDeleteLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while deleting, please try again');\r\n setDeleteLoading(false);\r\n });\r\n };\r\n\r\n const activateUser = (user, reason) => {\r\n setDeleteLoading(true);\r\n fetch(`${baseUrl}/users/toggle/${user.id}`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({\r\n ...user,\r\n enabled: !user.enabled,\r\n suspension_reason: reason,\r\n _method: 'PUT'\r\n })\r\n })\r\n .then(users => users.json())\r\n .then(users => {\r\n if (users.error || users.errors) throw new Error(users.message);\r\n refresh();\r\n toast.success('User Status Updated');\r\n setDeleteLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while deleting, please try again');\r\n setDeleteLoading(false);\r\n });\r\n };\r\n\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n const ref = createRef();\r\n\r\n const exportPDF = () => {\r\n let element = ref.current;\r\n\r\n if (element !== null) {\r\n savePDF(element, {\r\n repeatHeaders: true,\r\n paperSize: 'A1',\r\n orientation: 'horizontal',\r\n margin: '0.5cm'\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n Download Excel\r\n }\r\n >\r\n \r\n col?.name} />\r\n d?.profile?.last_name} />\r\n col?.email} />\r\n col?.phone} />\r\n col?.profile?.address} />\r\n \r\n moment(col.created_at).format('DD/MM/YYYY hh:mmA')}\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map(headerGroup => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map(column => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map(row => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map(cell => {\r\n // Apply the cell props\r\n let itemClassName =\r\n cell.column.Header === 'Status'\r\n ? cell.value\r\n ? 'table-row-success'\r\n : 'table-row-failed'\r\n : '';\r\n return (\r\n \r\n {cell.column.Header === 'Status' && !cell.value\r\n ? 'Incomplete'\r\n : cell.render('Cell')}\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
    StatusActions
    \r\n {permissions.toggle_user ? (\r\n setActiveUser(row.original)}\r\n label={row.original.enabled ? 'Active' : 'Suspended'}\r\n />\r\n ) : row.original.enabled ? (\r\n 'Active'\r\n ) : (\r\n 'Suspended'\r\n )}\r\n \r\n {(permissions.get_user_with_role ||\r\n permissions.list_user_payments ||\r\n permissions.list_user_travels) && (\r\n \r\n (\r\n \r\n \r\n View User\r\n \r\n \r\n )}\r\n >\r\n null}\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 {permissions.update_user && (\r\n (\r\n \r\n \r\n Edit User\r\n \r\n \r\n )}\r\n >\r\n setEditUser(row.original)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {permissions.delete_user && (\r\n (\r\n \r\n \r\n Delete User\r\n \r\n \r\n )}\r\n >\r\n setDeleteUser(row.original)}\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 setEditUser(null)}\r\n save={updateUser}\r\n />\r\n\r\n setDeleteUser(null)}\r\n deleteUser={removeUser}\r\n loading={deleteLoading}\r\n />\r\n\r\n setActiveUser(null)}\r\n activateUser={activateUser}\r\n loading={deleteLoading}\r\n />\r\n\r\n
    \r\n {pages}\r\n
    \r\n
    \r\n );\r\n}\r\n","import { Modal } from 'react-bootstrap';\r\nimport React, { useState } from 'react';\r\nimport {\r\n ErrorMessage,\r\n checkValidations\r\n} from '../../../utilities/use-validation';\r\n// import CustomDropdown from '../../../components/custom-dropdown';\r\nimport { createUserDataState, rolesState } from '../../../recoil/atoms';\r\nimport { useRecoilState } from 'recoil';\r\nimport { schemas as defaultSchemas } from './users.edit-profile-schema';\r\nimport { useEffect } from 'react';\r\n\r\nexport default function UsersCreateProfile({ hide, save }) {\r\n const [userData, setUserData] = useRecoilState(createUserDataState);\r\n const [roles] = useRecoilState(rolesState);\r\n const [errors, setErrors] = useState({});\r\n const [schemas, setSchemas] = useState(defaultSchemas);\r\n\r\n useEffect(() => {\r\n if (userData?.user_type === 'staff') {\r\n setSchemas({\r\n ...defaultSchemas,\r\n role_id: {\r\n required: true,\r\n label: 'Role'\r\n }\r\n });\r\n } else {\r\n setSchemas(defaultSchemas);\r\n }\r\n }, [userData]);\r\n\r\n useEffect(() => {\r\n setUserData({\r\n name: '',\r\n last_name: '',\r\n other_names: '',\r\n email: '',\r\n phone: '',\r\n user_type: '',\r\n role_id: ''\r\n });\r\n setErrors({});\r\n return () => {\r\n setUserData({});\r\n setErrors({});\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...userData, [name]: value };\r\n setUserData(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...userData\r\n });\r\n\r\n if (success) {\r\n save();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Create User\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter phone number'\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 {userData.user_type === 'staff' ? (\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 Close\r\n \r\n \r\n {userData.loading ? 'Saving...' : 'Save'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { useState, useEffect, useMemo } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport UsersTable from './users.table';\r\nimport UsersCreateProfile from './users.create-profile';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useRecoilState, useRecoilValue } from 'recoil';\r\nimport {\r\n rolesState,\r\n createUserDataState,\r\n permissionuserDataState\r\n} from '../../../recoil/atoms';\r\nimport localforage from 'localforage';\r\nimport Search from '../../../components/commons/search';\r\n\r\nconst UsersIndex = () => {\r\n const { user, headers } = useLoginUser();\r\n const nav = useNavigate();\r\n\r\n const [users, setUsers] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [error, setError] = useState(false);\r\n // eslint-disable-next-line\r\n const [roles, setRoles] = useRecoilState(rolesState);\r\n const [createUserData, setCreateUserData] =\r\n useRecoilState(createUserDataState);\r\n\r\n const [showCreateUser, setShowCreateUser] = useState(false);\r\n\r\n const fetchUsers = async () => {\r\n setLoading(true);\r\n let cacheData = await localforage.getItem('all-users');\r\n\r\n if (cacheData) {\r\n setUsers(cacheData);\r\n setLoading(false);\r\n }\r\n\r\n fetch(`${baseUrl}/users`)\r\n .then(users => users.json())\r\n .then(users => {\r\n if (users.error || user.errors) throw new Error(users.message);\r\n localforage.setItem('all-users', users.data);\r\n setUsers(users.data);\r\n setLoading(false);\r\n setError(false);\r\n })\r\n .catch(err => {\r\n toast.error('An error occurred, please try again');\r\n setError(true);\r\n setLoading(false);\r\n console.error(err);\r\n });\r\n };\r\n\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n const fetchRoles = async () => {\r\n let cacheData = await localforage.getItem('all-roles');\r\n\r\n if (cacheData) {\r\n setRoles(cacheData);\r\n }\r\n\r\n fetch(`${baseUrl}/roles`)\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n localforage.setItem('all-roles', roles.data);\r\n setRoles(roles.data);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const createUser = () => {\r\n setCreateUserData({ ...createUserData, loading: true });\r\n const data = { ...createUserData, loading: undefined };\r\n fetch(`${baseUrl}/users`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n })\r\n .then(user => user.json())\r\n .then(user => {\r\n if (user.error || user.errors) throw new Error(user.message);\r\n setCreateUserData({});\r\n localforage.setItem('all-users', [user.data, ...users]);\r\n fetchUsers();\r\n setShowCreateUser(false);\r\n toast.success('User Created Successfully');\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error(\r\n err.message || 'An error occurred while saving, please try again'\r\n );\r\n setCreateUserData({ ...createUserData, loading: false });\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!user?.is_super_admin) {\r\n nav('/dashboard/index', { replace: true });\r\n }\r\n fetchUsers();\r\n fetchRoles();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const searchFields = useMemo(() => ['name', 'email'], []);\r\n\r\n const [filteredUsers, setFilteredUsers] = useState([]);\r\n\r\n // const search\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Users\r\n
    \r\n
    \r\n {permissions.create_user && (\r\n setShowCreateUser(true)}\r\n >\r\n Create User\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n \r\n\r\n {showCreateUser && (\r\n setShowCreateUser(false)}\r\n save={createUser}\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 UsersIndex;\r\n","import { Modal } from 'react-bootstrap';\r\nimport React from 'react';\r\n\r\nexport default function RolesActiveProfile({\r\n role,\r\n hide,\r\n activateRole,\r\n loading\r\n}) {\r\n return (\r\n \r\n \r\n \r\n {role?.enabled ? 'Enable' : 'Disable'} {role?.name || 'Role'}\r\n \r\n \r\n \r\n
    \r\n

    \r\n Are your sure you want to {!role?.enabled ? 'enable' : 'disable'}{' '}\r\n {role?.name || 'Role'}?\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n Close\r\n \r\n activateRole(role)}\r\n disabled={loading}\r\n >\r\n {loading ? 'Updating...' : 'Update'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Modal } from 'react-bootstrap';\r\nimport React from 'react';\r\n\r\nexport default function RolesDeleteProfile({\r\n role,\r\n hide,\r\n deleteRole,\r\n loading\r\n}) {\r\n return (\r\n \r\n \r\n Delete Roles {role?.name || 'Role'}\r\n \r\n \r\n
    \r\n

    \r\n Are your sure you want to delete {role?.name || 'Role'}?\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n Close\r\n \r\n deleteRole(role.id)}\r\n disabled={loading}\r\n >\r\n {loading ? 'Deleting...' : 'Delete'}\r\n \r\n \r\n \r\n );\r\n}\r\n","export const schemas = {\r\n name: {\r\n required: true,\r\n maxLength: 20,\r\n label: 'Other Names'\r\n },\r\n description: {\r\n required: true,\r\n minLength: 5,\r\n label: 'Description'\r\n },\r\n tasks: {\r\n required: false,\r\n label: 'Permissions'\r\n }\r\n};\r\n","import { Modal } from 'react-bootstrap';\r\nimport React, { useState } from 'react';\r\nimport {\r\n ErrorMessage,\r\n checkValidations\r\n} from '../../../utilities/use-validation';\r\n// import CustomDropdown from '../../../components/custom-dropdown';\r\nimport { editRoleDataState } from '../../../recoil/atoms';\r\nimport { useRecoilState } from 'recoil';\r\nimport { schemas } from './roles.edit-profile-schema';\r\nimport { useEffect } from 'react';\r\nimport Select from 'react-select';\r\nimport makeAnimated from 'react-select/animated';\r\n\r\nconst animatedComponents = makeAnimated();\r\n\r\nexport default function RolesEditProfile({\r\n role,\r\n hide,\r\n save,\r\n tasks,\r\n addPermission\r\n}) {\r\n const [roleData, setRoleData] = useRecoilState(editRoleDataState);\r\n const [errors, setErrors] = useState({});\r\n\r\n useEffect(() => {\r\n setRoleData({\r\n name: role?.name || '',\r\n description: role?.description || '',\r\n tasks: role?.tasks ? role?.tasks.map(t => t.id) : []\r\n });\r\n setErrors({});\r\n return () => {\r\n setRoleData({});\r\n setErrors({});\r\n };\r\n // eslint-disable-next-line\r\n }, [role]);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...roleData, [name]: value };\r\n setRoleData(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...roleData\r\n });\r\n\r\n if (success) {\r\n save(role.id);\r\n }\r\n };\r\n\r\n const handleSelect = e => {\r\n const data = {\r\n ...roleData,\r\n tasks: e.map(t => t.id)\r\n };\r\n setRoleData(data);\r\n handleValidations(data, 'tasks');\r\n };\r\n\r\n return (\r\n \r\n \r\n Edit {role?.name || 'Role'}\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 Close\r\n \r\n \r\n {roleData.loading ? 'Saving...' : 'Save'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import moment from 'moment';\r\nimport React, { useMemo, useState } from 'react';\r\nimport {\r\n Pagination,\r\n FormCheck,\r\n OverlayTrigger,\r\n Tooltip\r\n} from 'react-bootstrap';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\nimport { useRecoilValue } from 'recoil';\r\nimport { permissionuserDataState } from '../../../recoil/atoms';\r\nimport RolesActiveProfile from './roles.active-profile';\r\nimport RolesDeleteProfile from './roles.delete-profile';\r\nimport RolesEditProfile from './roles.edit-profile';\r\n\r\nexport default function RolesTable({\r\n deleteLoading,\r\n data,\r\n updateRole,\r\n removeRole,\r\n activateRole,\r\n tasks\r\n}) {\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Name',\r\n accessor: d => d.name // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Description',\r\n accessor: 'description'\r\n },\r\n {\r\n Header: 'Date Created',\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY')\r\n // orderByFn: (a, b) => Date(a.created_at).getTime() - Date(b.created_at).getTime()\r\n }\r\n ],\r\n []\r\n );\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n const [editRole, setEditRole] = useState(null);\r\n const [deleteRole, setDeleteRole] = useState(null);\r\n const [activeRole, setActiveRole] = useState(null);\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n return (\r\n
    \r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map(headerGroup => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map(column => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map(row => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map(cell => {\r\n // Apply the cell props\r\n let itemClassName =\r\n cell.column.Header === 'Status'\r\n ? cell.value\r\n ? 'table-row-success'\r\n : 'table-row-failed'\r\n : '';\r\n return (\r\n \r\n {cell.column.Header === 'Status' && !cell.value\r\n ? 'Incomplete'\r\n : cell.render('Cell')}\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
    StatusActions
    \r\n {permissions['toggle_role'] ? (\r\n setActiveRole(row.original)}\r\n label={row.original.enabled ? 'Active' : 'Suspended'}\r\n />\r\n ) : row.original.enabled ? (\r\n 'Active'\r\n ) : (\r\n 'Suspended'\r\n )}\r\n \r\n {permissions['get_role_with_tasks'] && (\r\n \r\n (\r\n \r\n \r\n View Role\r\n \r\n \r\n )}\r\n >\r\n null}\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 {permissions['update_role'] && (\r\n (\r\n \r\n \r\n Edit Role\r\n \r\n \r\n )}\r\n >\r\n setEditRole(row.original)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {permissions['delete_role'] && (\r\n (\r\n \r\n \r\n View Certificate\r\n \r\n \r\n )}\r\n >\r\n setDeleteRole(row.original)}\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 setEditRole(null)}\r\n save={updateRole}\r\n tasks={tasks}\r\n />\r\n\r\n setDeleteRole(null)}\r\n deleteRole={removeRole}\r\n loading={deleteLoading}\r\n />\r\n\r\n setActiveRole(null)}\r\n activateRole={activateRole}\r\n loading={deleteLoading}\r\n />\r\n\r\n
    \r\n {pages}\r\n
    \r\n
    \r\n );\r\n}\r\n","import { Modal } from 'react-bootstrap';\r\nimport React, { useState } from 'react';\r\nimport {\r\n ErrorMessage,\r\n checkValidations\r\n} from '../../../utilities/use-validation';\r\n// import CustomDropdown from '../../../components/custom-dropdown';\r\nimport { createRoleDataState } from '../../../recoil/atoms';\r\nimport { useRecoilState } from 'recoil';\r\nimport { schemas } from './roles.edit-profile-schema';\r\nimport { useEffect } from 'react';\r\nimport Select from 'react-select';\r\nimport makeAnimated from 'react-select/animated';\r\n\r\nconst animatedComponents = makeAnimated();\r\n\r\nexport default function RolesCreateProfile({ hide, save, tasks }) {\r\n const [roleData, setRoleData] = useRecoilState(createRoleDataState);\r\n const [errors, setErrors] = useState({});\r\n\r\n useEffect(() => {\r\n setRoleData({\r\n name: '',\r\n description: ''\r\n });\r\n setErrors({});\r\n return () => {\r\n setRoleData({});\r\n setErrors({});\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...roleData, [name]: value };\r\n setRoleData(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...roleData\r\n });\r\n\r\n if (success) {\r\n save();\r\n }\r\n };\r\n\r\n const handleSelect = e => {\r\n const data = { ...roleData, tasks: e.map(t => t.id) };\r\n setRoleData(data);\r\n handleValidations(data, 'tasks');\r\n };\r\n\r\n return (\r\n \r\n \r\n Create Role\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 Close\r\n \r\n \r\n {roleData.loading ? 'Saving...' : 'Save'}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl } from '../../../constants';\r\nimport { tasksState, tasksStatusState } from '../../../recoil/atoms';\r\nimport localforage from 'localforage';\r\n\r\nconst useTasks = () => {\r\n const [status, setStatus] = useState(tasksStatusState);\r\n const [tasks, setTasks] = useRecoilState(tasksState);\r\n const { loading, error } = status;\r\n\r\n useEffect(() => {\r\n getTasks();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const getTasks = async () => {\r\n setStatus({ ...status, loading: true });\r\n let cacheData = await localforage.getItem('all-tasks');\r\n\r\n if (cacheData) {\r\n setTasks(cacheData);\r\n setStatus({ error: false, loading: false });\r\n }\r\n\r\n fetch(`${baseUrl}/tasks`)\r\n .then(tasks => tasks.json())\r\n .then(tasks => {\r\n if (tasks.error || tasks.errors) throw new Error(tasks.message);\r\n localforage.setItem('all-tasks', tasks.data);\r\n setTasks(tasks.data);\r\n setStatus({ error: false, loading: false });\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n setStatus({ error: true, loading: false });\r\n });\r\n };\r\n\r\n return { tasks, loading, getTasks, error };\r\n};\r\n\r\nexport default useTasks;\r\n","import { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { useState, useEffect } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport RolesTable from './roles.table';\r\nimport RolesCreateProfile from './roles.create-profile';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useRecoilState, useRecoilValue } from 'recoil';\r\nimport {\r\n rolesState,\r\n editRoleDataState,\r\n createRoleDataState,\r\n permissionuserDataState\r\n} from '../../../recoil/atoms';\r\nimport useTasks from '../Tasks/useTasks';\r\nimport localforage from 'localforage';\r\n\r\nconst RolesIndex = () => {\r\n const { user, headers } = useLoginUser();\r\n const nav = useNavigate();\r\n const [loading, setLoading] = useState(true);\r\n const [deleteLoading, setDeleteLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [roles, setRoles] = useRecoilState(rolesState);\r\n const { tasks } = useTasks();\r\n const [editRoleData, setEditRoleData] = useRecoilState(editRoleDataState);\r\n const [createRoleData, setCreateRoleData] =\r\n useRecoilState(createRoleDataState);\r\n\r\n const [showCreateRole, setShowCreateRole] = useState(false);\r\n\r\n const fetchRoles = async () => {\r\n setLoading(true);\r\n let cacheData = await localforage.getItem('all-roles');\r\n\r\n if (cacheData) {\r\n setRoles(cacheData);\r\n setLoading(false);\r\n setError(false);\r\n }\r\n\r\n fetch(`${baseUrl}/roles`)\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n localforage.setItem('all-roles', roles.data);\r\n setRoles(roles.data);\r\n setLoading(false);\r\n setError(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n setLoading(false);\r\n setError(true);\r\n });\r\n };\r\n\r\n const createRole = () => {\r\n setCreateRoleData({ ...createRoleData, loading: true });\r\n const data = { ...createRoleData, loading: undefined };\r\n fetch(`${baseUrl}/roles`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n })\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n setCreateRoleData({});\r\n fetchRoles();\r\n setShowCreateRole(false);\r\n toast.success('New Role Created');\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while saving, please try again');\r\n setCreateRoleData({ ...createRoleData, loading: false });\r\n });\r\n };\r\n\r\n const updateRole = role_id => {\r\n setEditRoleData({ ...editRoleData, loading: true });\r\n const data = { ...editRoleData, loading: undefined };\r\n fetch(`${baseUrl}/roles/${role_id}`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...data, _method: 'PUT' }),\r\n headers\r\n })\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n setEditRoleData({});\r\n fetchRoles();\r\n toast.success('Changes saved');\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while saving, please try again');\r\n setEditRoleData({ ...editRoleData, loading: false });\r\n });\r\n };\r\n\r\n const removeRole = role_id => {\r\n setDeleteLoading(true);\r\n fetch(`${baseUrl}/roles/${role_id}`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({ _method: 'DELETE' })\r\n })\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n fetchRoles();\r\n toast.success('Role Deleted');\r\n setDeleteLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while deleting, please try again');\r\n setDeleteLoading(false);\r\n });\r\n };\r\n\r\n const activateRole = role => {\r\n setDeleteLoading(true);\r\n fetch(`${baseUrl}/roles/toggle/${role.id}`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({ ...role, enabled: !role.enabled, _method: 'PUT' })\r\n })\r\n .then(roles => roles.json())\r\n .then(roles => {\r\n if (roles.error || roles.errors) throw new Error(roles.message);\r\n fetchRoles();\r\n toast.success('Role Status Updated');\r\n setDeleteLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n toast.error('An error occurred while deleting, please try again');\r\n setDeleteLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!user?.is_super_admin) {\r\n nav('/dashboard/index', { replace: true });\r\n }\r\n fetchRoles();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Roles\r\n
    \r\n
    \r\n {permissions.create_role && (\r\n setShowCreateRole(true)}\r\n >\r\n Create Role\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n {showCreateRole && (\r\n setShowCreateRole(false)}\r\n save={createRole}\r\n tasks={tasks}\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 RolesIndex;\r\n","import moment from 'moment';\r\nimport React, { useMemo } from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\n\r\nexport default function TasksTable({ data }) {\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Name',\r\n accessor: d => d.label // accessor is the \"key\" in the data\r\n },\r\n {\r\n Header: 'Action',\r\n accessor: 'action'\r\n },\r\n {\r\n Header: 'Date Created',\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY')\r\n // orderByFn: (a, b) => Date(a.created_at).getTime() - Date(b.created_at).getTime()\r\n }\r\n ],\r\n []\r\n );\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map(headerGroup => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map(column => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map(row => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map(cell => {\r\n // Apply the cell props\r\n let itemClassName =\r\n cell.column.Header === 'Status'\r\n ? cell.value\r\n ? 'table-row-success'\r\n : 'table-row-failed'\r\n : '';\r\n return (\r\n \r\n {cell.column.Header === 'Status' && !cell.value\r\n ? 'Incomplete'\r\n : cell.render('Cell')}\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 {pages}\r\n
    \r\n
    \r\n );\r\n}\r\n","import useLoginUser from '../../../hooks/useLoginUser';\r\nimport { useEffect } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport TasksTable from './tasks.table';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useTasks from './useTasks';\r\n\r\nconst TasksIndex = () => {\r\n const { user } = useLoginUser();\r\n const nav = useNavigate();\r\n\r\n const { tasks, loading, error, getTasks } = useTasks();\r\n useEffect(() => {\r\n if (!user?.is_super_admin) {\r\n nav('/dashboard/index', { replace: true });\r\n }\r\n // getTasks();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Permissions\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 TasksIndex;\r\n","const UserDetailsInformation = ({ user }) => {\r\n return (\r\n
    \r\n {/*

    Your Photo

    \r\n\r\n
    \r\n avatar\r\n
    \r\n

    Upload your photo

    \r\n

    Your profile photo helps us identify you

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

    Personal Information

    \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 {!user?.enabled && (\r\n
    \r\n
    \r\n \r\n

    {user?.suspension_reason}

    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UserDetailsInformation;\r\n","import React from 'react';\r\n\r\nexport default function UserDetailPassport({ user }) {\r\n\r\n\r\n return (\r\n
    \r\n

    User Passport

    \r\n\r\n
    \r\n
    \r\n \"passport\"\r\n
    \r\n
    \r\n\r\n
    \r\n )\r\n}\r\n","import moment from 'moment';\r\nimport React, { useMemo, useEffect, useState } from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\nimport { useTable, usePagination, useSortBy } from 'react-table';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { numberWithCommas } from '../../../utilities';\r\nimport PrintCertifcate from '../../Quotes/SuccessPage/print-certifcate';\r\n\r\nimport ReactExport from 'react-export-excel';\r\n\r\nconst ExcelFile = ReactExport.ExcelFile;\r\nconst ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\nconst ExcelColumn = ReactExport.ExcelFile.ExcelColumn;\r\n\r\nexport default function Certificates({ loading, error, data, retry }) {\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: 'Amount',\r\n accessor: d => numberWithCommas(d?.amount)\r\n },\r\n {\r\n Header: 'Trans Ref',\r\n accessor: d => d?.trxref\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: d => d?.status\r\n },\r\n {\r\n Header: 'Payment Type',\r\n accessor: d => d?.payment_type\r\n },\r\n {\r\n Header: 'Date Created',\r\n accessor: b => moment(b.created_at).format('DD/MM/YYYY hh:mmA')\r\n }\r\n ],\r\n []\r\n );\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data\r\n },\r\n useSortBy,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n state: { pageIndex }\r\n } = tableInstance;\r\n\r\n const pages = useMemo(() => {\r\n const items = [];\r\n items.push(\r\n \r\n Previous\r\n \r\n );\r\n\r\n if (pageCount)\r\n items.push(\r\n gotoPage(0)}\r\n >\r\n 1\r\n \r\n );\r\n\r\n if (pageIndex - 1 > 1) items.push();\r\n\r\n for (let num = pageIndex - 1; num < pageIndex + 2; num++) {\r\n if (num >= 1 && num < pageCount - 1)\r\n items.push(\r\n gotoPage(num)}\r\n >\r\n {num + 1}\r\n \r\n );\r\n }\r\n\r\n if (pageIndex + 3 < pageCount) items.push();\r\n\r\n if (pageCount > 1)\r\n items.push(\r\n gotoPage(pageCount - 1)}\r\n >\r\n {pageCount}\r\n \r\n );\r\n\r\n items.push(\r\n \r\n Next\r\n \r\n );\r\n return items;\r\n }, [\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n previousPage,\r\n nextPage,\r\n pageIndex\r\n ]);\r\n\r\n const [print, setPrint] = useState(null);\r\n\r\n useEffect(() => {\r\n if (print) {\r\n setTimeout(() => {\r\n window.print();\r\n setPrint(false);\r\n }, 100);\r\n }\r\n }, [print]);\r\n\r\n return print ? (\r\n \r\n ) : (\r\n
    \r\n \r\n \r\n Download Excel\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n moment(col.created_at).format('DD/MM/YYYY hh:mmA')}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n // Loop over the header rows\r\n headerGroups.map(headerGroup => (\r\n // Apply the header row props\r\n \r\n {\r\n // Loop over the headers in each row\r\n headerGroup.headers.map(column => (\r\n // Apply the header cell props\r\n \r\n {column.render('Header')}\r\n \r\n {column.isSorted\r\n ? column.isSortedDesc\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 // Loop over the table rows\r\n page.map(row => {\r\n // Prepare the row for display\r\n prepareRow(row);\r\n return (\r\n // Apply the row props\r\n \r\n {\r\n // Loop over the rows cells\r\n row.cells.map(cell => {\r\n // Apply the cell props\r\n let itemClassName =\r\n cell.column.Header === 'Status'\r\n ? cell.value\r\n ? 'table-row-success'\r\n : 'table-row-failed'\r\n : '';\r\n return (\r\n \r\n {cell.column.Header === 'Status' && !cell.value\r\n ? 'Incomplete'\r\n : cell.render('Cell')}\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 {pages}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import UserDetailsInformation from './user-details.information';\r\nimport UserDetailsPassport from './user-details.passport';\r\n// import UserDetailsNextOfKin from './user-details.next-of-kin';\r\nimport { useMemo, useState } from 'react';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { useEffect } from 'react';\r\nimport Travels from '../DashboardHome/travels';\r\nimport Certificates from '../DashboardHome/certificates';\r\nimport Payments from '../DashboardHome/payments';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { baseUrl } from '../../../constants';\r\nimport { useRecoilValue } from 'recoil';\r\nimport { permissionuserDataState } from '../../../recoil/atoms';\r\n\r\nconst UserDetails = () => {\r\n const { subpath: user_id } = useParams();\r\n const nav = useNavigate();\r\n\r\n const { headers } = useLoginUser();\r\n const [user, setUser] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n const fetchUser = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/users/${user_id}`, { headers })\r\n .then(response => response.json())\r\n .then(user => {\r\n if (user.error || user.errors) throw new Error(user.message);\r\n\r\n if (user.data.profile?.next_of_kin) {\r\n try {\r\n user.data.profile.next_of_kin = JSON.parse(\r\n user.data.profile?.next_of_kin\r\n );\r\n } catch (error) {}\r\n }\r\n\r\n let certificates = user.data.travels.filter(tr => tr.mapfre_policy_no);\r\n let payments = user.data.travels.reduce(\r\n (all, tr) => [...tr.payments, ...all],\r\n []\r\n );\r\n\r\n certificates.forEach(tr => {\r\n if (tr.payments && tr.payments.reduce) {\r\n tr.payments = tr.payments.reduce(\r\n (acc, curr) =>\r\n curr.mapfre_policy_number === tr.mapfre_policy_no ? curr : acc,\r\n {}\r\n );\r\n }\r\n });\r\n\r\n user.data.certificates = certificates;\r\n user.data.payments = payments;\r\n\r\n setUser(user.data);\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n setError(true);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const [activeTab, setActiveTab] = useState(0);\r\n const tabs = useMemo(\r\n () => [\r\n {\r\n title: 'Profile Information',\r\n component: ,\r\n show: true\r\n },\r\n // {\r\n // title: 'Next of Kin Details',\r\n // component: ,\r\n // show: true\r\n // },\r\n {\r\n title: 'Passport',\r\n component: ,\r\n show: true\r\n },\r\n {\r\n title: 'Travels',\r\n show: permissions.list_user_travels,\r\n component: (\r\n \r\n )\r\n },\r\n {\r\n title: 'Cerificates',\r\n show: permissions.list_user_travels,\r\n component: (\r\n \r\n )\r\n },\r\n {\r\n title: 'Payments',\r\n show: permissions.list_user_payments,\r\n component: (\r\n \r\n )\r\n }\r\n ],\r\n // eslint-disable-next-line\r\n [user, loading, error]\r\n );\r\n\r\n useEffect(() => {\r\n fetchUser();\r\n if (!user_id) {\r\n nav('/dashboard/users', { replace: true });\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {tabs.map((tab, index) =>\r\n tab.show ? (\r\n setActiveTab(index)}\r\n key={index}\r\n >\r\n {tab.title}\r\n
    \r\n ) : (\r\n ''\r\n )\r\n )}\r\n
    \r\n\r\n
    \r\n \r\n {tabs[activeTab].component}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default UserDetails;\r\n","import { useState } from 'react';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { useEffect } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { baseUrl } from '../../../constants';\r\n\r\nimport UsersTable from '../Users/users.table';\r\nimport TasksTable from '../Tasks/tasks.table';\r\n\r\nconst RoleDetails = () => {\r\n const { subpath: role_id } = useParams();\r\n const nav = useNavigate();\r\n\r\n const { headers } = useLoginUser();\r\n const [role, setRole] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const fetchRole = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/roles/${role_id}`, { headers })\r\n .then(response => response.json())\r\n .then(role => {\r\n if (role.error || role.errors) throw new Error(role.message);\r\n setRole(role.data);\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n setError(true);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchRole();\r\n if (!role_id) {\r\n nav('/dashboard/roles', { replace: true });\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n

    {role?.name}

    \r\n
    \r\n \r\n {role?.enabled ? 'enbabled' : 'disabled'}\r\n \r\n
    \r\n
    {role?.description}
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Users\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Permissions\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 RoleDetails;\r\n","import { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { useState, useEffect } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { numberWithCommas } from '../../../utilities';\r\n\r\nimport {\r\n AreaChart,\r\n Area,\r\n XAxis,\r\n YAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n ResponsiveContainer,\r\n Pie,\r\n PieChart\r\n} from 'recharts';\r\n\r\nimport ReactExport from 'react-export-excel';\r\nimport localforage from 'localforage';\r\n\r\nconst ExcelFile = ReactExport.ExcelFile;\r\nconst ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\nconst ExcelColumn = ReactExport.ExcelFile.ExcelColumn;\r\n\r\nconst Reports = () => {\r\n const { user } = useLoginUser();\r\n\r\n const [dashboard, setDashboard] = useState(null);\r\n const [graphData, setGraphData] = useState(null);\r\n const [chartData, setChartData] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n const [period, setPeriod] = useState(false);\r\n\r\n const fectchDashboardData = async force => {\r\n setLoading(true);\r\n let cacheData = await localforage.getItem('dashboard-data');\r\n\r\n if (cacheData && !force) {\r\n setDashboard(cacheData);\r\n setGraph(cacheData);\r\n setLoading(false);\r\n }\r\n fetch(\r\n `${baseUrl}/dashboard${\r\n user?.is_super_admin ? '' : '/' + user?.id\r\n }?period=${period}`\r\n )\r\n .then(dashboard => dashboard.json())\r\n .then(dashboard => {\r\n if (dashboard.error || dashboard.errors)\r\n throw new Error(dashboard.message);\r\n dashboard.totalTransactionAmount = numberWithCommas(\r\n dashboard.totalTransactionAmount\r\n );\r\n localforage.setItem('dashboard-data', dashboard);\r\n setDashboard(dashboard);\r\n setGraph(dashboard);\r\n setLoading(false);\r\n setError(false);\r\n })\r\n .catch(err => {\r\n toast.error('An error occurred, please try again');\r\n setError(true);\r\n setLoading(false);\r\n console.error(err);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!period) return;\r\n fectchDashboardData(true);\r\n // eslint-disable-next-line\r\n }, [period]);\r\n\r\n const setGraph = data => {\r\n setChart(JSON.parse(JSON.stringify(data)));\r\n const graphData = data.graphData || {};\r\n const finalData = Object.keys(graphData).map(key => {\r\n graphData[key]['name'] = key;\r\n return graphData[key];\r\n });\r\n setGraphData(finalData);\r\n };\r\n\r\n const setChart = data => {\r\n const chartData = data.chartData || {};\r\n const finalData = {};\r\n Object.keys(chartData).forEach(key => {\r\n finalData[key] = Object.keys(chartData[key]).map(name => ({\r\n name,\r\n value: chartData[key][name]\r\n }));\r\n });\r\n setChartData(finalData);\r\n };\r\n\r\n useEffect(() => {\r\n fectchDashboardData();\r\n // eslint-disable-next-line\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\n \r\n \r\n \r\n
    \r\n

    \r\n ₦{dashboard?.totalTransactionAmount || 0}\r\n

    \r\n

    \r\n Total Transactions\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 {dashboard?.totalTravels}\r\n

    \r\n

    \r\n Travel Inquires\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 {dashboard?.totalCertificates}\r\n

    \r\n

    \r\n Certificates Issued\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {graphData && chartData && (\r\n \r\n Download Excel\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 setPeriod(e.target.value)}\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 Certificates and Inquires\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n new Intl.NumberFormat('en').format(value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Payments
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n '₦' + new Intl.NumberFormat('en').format(value)\r\n }\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Certificate by Payment Type\r\n
    \r\n
    \r\n \r\n \r\n setActiveIndex(_, index)}\r\n fill='#594fc9'\r\n label={d => `${d.name}: ${d.value}`}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Certificate by Travel Purpose\r\n
    \r\n
    \r\n \r\n \r\n `${d.name}: ${d.value}`}\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 Reports;\r\n","\r\nconst schemas = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { schemas };\r\n","import { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState, travelDetailsState } from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { packages } from '../../../../constants';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useCountries from '../../../../hooks/useCountries';\r\n\r\nconst TravelDetails = () => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const { countries } = useCountries();\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...travelDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{ destination: travelDetails.destination }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('purpose', selection.value);\r\n }}\r\n identifier='name'\r\n data={packages}\r\n inputId={`purpose`}\r\n placeholder='Pick your purpose'\r\n disable={false}\r\n showItems={true}\r\n value={{ name: travelDetails.purpose }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","export const schemas = {\r\n firstName: {\r\n required: true,\r\n label: 'Other Names'\r\n },\r\n lastName: {\r\n required: true,\r\n label: 'Surname'\r\n },\r\n otherNames: {\r\n required: false,\r\n label: 'Surname'\r\n },\r\n dateOfBirth: {\r\n required: true,\r\n label: 'Date of Birth'\r\n },\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n passportNumber: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Passport Number'\r\n },\r\n gender: {\r\n required: true,\r\n label: 'Gender'\r\n },\r\n title: {\r\n required: false,\r\n label: 'Title'\r\n }\r\n};\r\n","import moment from 'moment';\r\nimport { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { genders, titles } from '../../../../constants';\r\nimport {\r\n quotesPageState,\r\n passengerDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './passenger-details.schema';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\n\r\nconst PassengerDetails = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n\r\n const handleValidations = (data, field) => {\r\n let { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...passengerDetails, [name]: value };\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleChangeDropdown = (name, value) => {\r\n const data = { ...passengerDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...passengerDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n passengerDetails.title &&\r\n (passengerDetails.title === 'others' ||\r\n !titles.find(t => t.title === passengerDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (passengerDetails.title === 'others') {\r\n setPassengerDetails({ ...passengerDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [passengerDetails?.title]);\r\n\r\n return (\r\n
    \r\n

    We need some details about you

    \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 handleChangeDropdown('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: passengerDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangeDropdown('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: passengerDetails.title }}\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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 activePage !== 0 && setActivePage(0)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PassengerDetails;\r\n","const nextOfKinSchema = {\r\n name: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n relationship: { required: true, label: 'Relationship' },\r\n marketer: { label: 'Marketer' }\r\n};\r\n\r\nconst guardianSchema = {\r\n guardianFirstName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianLastName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianOtherName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n guardianEmail: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n guardianPhoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n guardianAddress: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n guardianDateOfBirth: {\r\n required: true,\r\n olderThan: 17,\r\n label: 'Guardian Date of Birth'\r\n },\r\n guardianRelationship: { required: true, label: 'Relationship' },\r\n guardianPassportNumber: {\r\n required: true,\r\n minLength: 5,\r\n label: 'Passport Number'\r\n },\r\n gender: { required: true, label: 'Gender' },\r\n title: { required: false, label: 'Title' }\r\n};\r\n\r\nexport { nextOfKinSchema, guardianSchema };\r\n","import { useRef, useEffect, useState, useMemo } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n nextOfKinDetailsState,\r\n guardianDetailsState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n insuranceDataState,\r\n profileDataState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport plusIcon from '../../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../../assets/svg/collapse.svg';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { getAge } from '../../../../utilities';\r\nimport { guardianSchema } from './next-of-kin.schema';\r\nimport moment from 'moment';\r\nimport { baseUrl, relationships, genders, titles } from '../../../../constants';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport localforage from 'localforage';\r\n\r\nconst NextOfKinDetails = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [marketers, setMarketers] = useState([]);\r\n const [guardianHeight, setGuardianHeight] = useState({});\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [, setProfileData_state] = useRecoilState(profileDataState);\r\n\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n // eslint-disable-next-line\r\n\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const guardianRef = useRef();\r\n\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas = guardianHeight.initial > 0 || isMinor ? guardianSchema : {};\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleNextOfKinChange = (name, value) => {\r\n const data = { ...nextOfKinDetails, [name]: value };\r\n setNextOfKinDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n setGuardianDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianToggle = () => {\r\n if (guardianHeight.initial > 0) {\r\n setGuardianHeight({ initial: 0, new: guardianHeight.initial });\r\n } else {\r\n setGuardianHeight({ initial: guardianHeight.new });\r\n }\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const data =\r\n guardianHeight.initial > 0 || isMinor\r\n ? { ...nextOfKinDetails, ...guardianDetails }\r\n : nextOfKinDetails;\r\n\r\n const { success } = handleValidations(data);\r\n\r\n if (success) {\r\n saveUserAndProceed();\r\n }\r\n };\r\n\r\n // const buildGibsProfileData = profileData => {\r\n // return {\r\n // Apikey: GibbsApiKey,\r\n // PolicyStartDate: profileData.from_date,\r\n // PolicyEndDate: profileData.to_date,\r\n // TravelPurpose: profileData.purpose,\r\n // Destination: profileData.destination,\r\n // ContactAddress: profileData.address,\r\n // LastName: profileData.last_name,\r\n // FirstName: profileData.first_name,\r\n // Gender: profileData.gender,\r\n // Title: profileData.title,\r\n // PassportNo: profileData.passport_no,\r\n // PhoneNo: profileData.phone,\r\n // Email: profileData.email,\r\n // DOB: profileData.date_of_birth,\r\n // NoK_Name: profileData.next_of_kin.nok_name,\r\n // NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n // NoK_Address: profileData.next_of_kin.nok_address,\r\n // NoK_Email: profileData.next_of_kin.nok_email,\r\n // NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n // CoverType: product.dsProduct\r\n // };\r\n // };\r\n\r\n const formateMafreDate = _date => {\r\n return _date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: passengerDetails.firstName,\r\n first_name: passengerDetails.firstName,\r\n last_name: passengerDetails.lastName,\r\n other_names: passengerDetails.otherNames,\r\n gender: passengerDetails.gender || 'N/A', //TODO: add to ui\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n passport_no: passengerDetails.passportNumber,\r\n destination: travelDetails.destination,\r\n title: passengerDetails.title || '',\r\n age: getAge(passengerDetails.dateOfBirth),\r\n date_of_birth: passengerDetails.dateOfBirth,\r\n medical_cond: 'N/A',\r\n address: passengerDetails.address,\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address,\r\n is_holder: nextOfKinDetails.isPolicyHolder && !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor || !nextOfKinDetails.isPolicyHolder,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n });\r\n\r\n const saveUserAndProceed = async () => {\r\n setLoading(true);\r\n\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian();\r\n\r\n if (guardianHeight.initial > 0 || isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n const attaches = allInsurers.filter(insurer => {\r\n return !insurer.is_holder;\r\n });\r\n\r\n let profileData = JSON.parse(JSON.stringify(passenger));\r\n profileData['attaches'] = attaches;\r\n profileData['guardian'] = guardian;\r\n profileData['next_of_kin'] = {\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n\r\n // if (travelDetailForm && travelDetailForm.travel_id) {\r\n // profileData.travel_id = travelDetailForm.travel_id;\r\n // }\r\n\r\n setProfileData_state(profileData);\r\n setActivePage(activePage + 1);\r\n\r\n // users/create\r\n // try {\r\n // const res = await fetch(`${baseUrl}/users/create`, {\r\n // method: 'POST',\r\n // body: JSON.stringify(profileData),\r\n // headers\r\n // });\r\n\r\n // const data = await res.json();\r\n\r\n // if (data.user_id && data.travel_id) {\r\n // let travelDetailForm = {\r\n // customer_name:\r\n // passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n // user_id: data.user_id,\r\n // travel_id: data.travel_id,\r\n // email: passengerDetails.email,\r\n // phone: passengerDetails.phoneNumber,\r\n // from_date: travelDetails.startDate,\r\n // to_date: travelDetails.endDate,\r\n // duration: travelDetails.duration,\r\n // age: getAge(guardianDetails.guardianDateOfBirth),\r\n // destination: travelDetails.destination,\r\n // marketer: nextOfKinDetails.marketer || 'N/A',\r\n // gibssTransactionData: buildGibsProfileData(profileData)\r\n // };\r\n\r\n // setTravelDetailForm(travelDetailForm);\r\n // setActivePage(activePage + 1);\r\n // } else {\r\n // toast.error('An error occurred, please try again');\r\n // }\r\n // } catch (error) {\r\n // console.error(error);\r\n // toast.error('An error occurred, please try again');\r\n // }\r\n\r\n setLoading(false);\r\n };\r\n\r\n const isMinor = useMemo(\r\n () => getAge(passengerDetails.dateOfBirth) < 18,\r\n [passengerDetails.dateOfBirth]\r\n );\r\n\r\n const fetchMarketers = async () => {\r\n const marketers = localforage.getItem('marketers');\r\n if (marketers) setMarketers(marketers);\r\n const res = await fetch(`${baseUrl}/marketers`);\r\n const data = await res.json();\r\n if (res.status === 200) {\r\n data.Marketer.forEach(d => {\r\n d.full_name = `${d.FirstName} ${d.LastName}`;\r\n });\r\n setMarketers(data.Marketer);\r\n localforage.setItem('marketers', data.Marketer);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isMinor) {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: !isMinor\r\n });\r\n setTimeout(handleGuardianToggle, 100);\r\n }\r\n // eslint-disable-next-line\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n const guardian = guardianRef.current.clientHeight + 25;\r\n setGuardianHeight({ initial: 0, new: guardian });\r\n fetchMarketers();\r\n document.querySelector('.quote-details__heading').scrollIntoView();\r\n }, [isMinor]);\r\n\r\n const showGuardian = guardianHeight.initial > 0 || isMinor;\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n guardianDetails.title &&\r\n (guardianDetails.title === 'others' ||\r\n !titles.find(t => t.title === guardianDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (guardianDetails.title === 'others') {\r\n setGuardianDetails({ ...guardianDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [guardianDetails?.title]);\r\n\r\n return (\r\n
    \r\n

    Guardian Details

    \r\n\r\n
    \r\n {/*
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter next of kin name'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter next of kin email'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleNextOfKinChange(e.target.name, e.target.value);\r\n }}\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter next of kin phone'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter next of kin address'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleNextOfKinChange('relationship', selection.relationship);\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: nextOfKinDetails.relationship }}\r\n />\r\n \r\n
    */}\r\n
    \r\n !isMinor && handleGuardianToggle()}>\r\n {guardianHeight.initial > 0 ? (\r\n \r\n {'Remove guardian'}\r\n \r\n ) : isMinor ? (\r\n 'You are quiet young, please add a guardian'\r\n ) : (\r\n 'I want to include a guardian'\r\n )}\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='expand'\r\n onClick={handleGuardianToggle}\r\n style={{ opacity: isMinor ? '0.5' : '1' }}\r\n />\r\n
    \r\n\r\n 0) ? 'hidden' : ''\r\n }}\r\n >\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter Guardian Other Names'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian surname'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n {/*
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianOtherName'\r\n placeholder='Enter guardian other name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    */}\r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n ) : (\r\n handleGuardianChange('title', e.target.value)}\r\n id='title'\r\n type='text'\r\n placeholder='Please enter title'\r\n />\r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(\r\n event.target.name,\r\n event.target.value?.replace(/[^0-9.]/g, '')\r\n )\r\n }\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='passport'\r\n type='passport'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange(\r\n 'guardianRelationship',\r\n selection.relationship\r\n );\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: guardianDetails.guardianRelationship }}\r\n readOnly={!showGuardian}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isReferred: e.target.value\r\n });\r\n }}\r\n value={nextOfKinDetails.isReferred}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {nextOfKinDetails.isReferred === 'Agency/Marketers' && (\r\n
    \r\n \r\n {\r\n handleNextOfKinChange('marketer', selection);\r\n }}\r\n identifier='full_name'\r\n data={marketers}\r\n inputId={`marketer`}\r\n placeholder='Pick marketer'\r\n disable={false}\r\n showItems={true}\r\n value={nextOfKinDetails.marketer}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {false && (\r\n
    \r\n
    \r\n {\r\n const { checked } = event.target;\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: checked\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n {\r\n const { checked } = event.target;\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isInGroup: checked\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextOfKinDetails;\r\n","import React, { Fragment } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { getProductDescription } from '../../../../constants';\r\nimport useProducts from '../../../../hooks/useProducts';\r\nimport {\r\n selectedProductState,\r\n quotesPageState,\r\n travelDetailsState\r\n} from '../../../../recoil/atoms';\r\n\r\nexport default function SelectPlan() {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [, setSelectedProduct] = useRecoilState(selectedProductState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n\r\n const buyNow = product => {\r\n setSelectedProduct(product);\r\n setActivePage(activePage + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip lenght: {travelDetails.duration} Days\r\n

    \r\n\r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Buy Now\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n activePage !== 0 && setActivePage(activePage - 1)\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","import React, { useEffect, useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl, GibbsApiKey } from '../../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n profileDataState,\r\n guardianDetailsState,\r\n travelDetailFormState,\r\n nextOfKinDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { getAge, numberWithCommas } from '../../../../utilities';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default function ProductDetails() {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [loading, setLoading] = useState(false);\r\n const [createLoading, setCreateLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [guardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [nextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n\r\n const getProductXml = async insuranceData => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n setCoverDetails(data?.cover_details || {});\r\n return data;\r\n };\r\n\r\n const getPrices = async insuranceDataParam => {\r\n setLoading(true);\r\n const xml = await getProductXml(insuranceDataParam || insuranceData);\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n setPriceInfo(data);\r\n setLoading(false);\r\n setError(false);\r\n } catch (error) {\r\n setError(true);\r\n setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setInsuranceData({ ...insuranceData, idRegProduct: product.cd });\r\n getPrices({ ...insuranceData, idRegProduct: product.cd });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n const totalInsured = priceInfo?.root?.premiumBreakdown?.numInsured || '1';\r\n\r\n const buildGibsProfileData = profileData => {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData.next_of_kin.nok_name,\r\n NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n NoK_Address: profileData.next_of_kin.nok_address,\r\n NoK_Email: profileData.next_of_kin.nok_email,\r\n NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n CoverType: product.dsProduct\r\n };\r\n };\r\n\r\n const saveTravelAndProceed = async () => {\r\n setCreateLoading(true);\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...profileData, product: product.dsProduct }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name:\r\n passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n user_id: data.user_id,\r\n travel_id: data.travel_id,\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n destination: travelDetails.destination,\r\n marketer: nextOfKinDetails.marketer || 'N/A',\r\n gibssTransactionData: buildGibsProfileData(profileData)\r\n };\r\n setProfileData({ ...profileData, travel_id: data.travel_id });\r\n setTravelDetailForm(travelDetailForm);\r\n setActivePage(activePage + 1);\r\n } else {\r\n toast.error('An error occurred, please try again');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n\r\n setCreateLoading(false);\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n Product Details and Price as below\r\n

    \r\n\r\n
    \r\n
    {`${product.dsProduct} PLAN`}
    \r\n
    \r\n {product.ds}\r\n
    \r\n
    \r\n\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\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 \r\n \r\n \r\n\r\n {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${product.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{product.maxDiasAntes}
    Maximum days after issuing (useful with claims):{product.maxDiasDespues}
    Insurer’s minimum age:{product.edadMinimaAsegurado}
    Insurer’s Maximum age:{product.edadMaximaAsegurado}
    Policy-holder’s minimum age:{product.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n
    \r\n Number Insured: {totalInsured}\r\n
    \r\n
    \r\n Total Fee: ₦{numberWithCommas(price)}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {!parseFloat(price) && !loading && (\r\n
    \r\n

    \r\n This product price is not available.
    \r\n You can proceed if you have other relevant information about the\r\n product.\r\n

    \r\n
    \r\n )}\r\n\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n {!(loading || error) ? (\r\n \r\n {createLoading ? 'Saving...' : 'Proceed'}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n headerState,\r\n priceInformationState,\r\n travelDetailFormState,\r\n selectedProductState,\r\n insuranceDataState\r\n} from '../../../../recoil/atoms';\r\n\r\nimport { useFlutterwave, closePaymentModal } from 'flutterwave-react-v3';\r\nimport { flutterwaveKey, baseUrl } from '../../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Retry from '../../../../components/commons/retry';\r\nimport { getRandomString, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function Payment() {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [priceInfo] = useRecoilState(priceInformationState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [paid, setPaid] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [certificate, setCertificate] = useState(false);\r\n const [gibbsResponse, setGibbsResponse] = useState(false);\r\n const [payment, setPayment] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n\r\n const config = {\r\n public_key: flutterwaveKey,\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n payment_options: 'card,mobilemoney,ussd',\r\n customer: {\r\n email: travelDetailForm.email,\r\n phonenumber: travelDetailForm.phone,\r\n name: travelDetailForm.customer_name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n }`,\r\n description: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const handleFlutterPayment = useFlutterwave(config);\r\n\r\n const handlePay = () => {\r\n setLoading(true);\r\n handleFlutterPayment({\r\n callback: response => {\r\n closePaymentModal(); // this will close the modal programmatically\r\n if (response.status === 'successful') {\r\n setPaid(response);\r\n savePayment(response);\r\n } else {\r\n toast.error('Payment unsuccessful');\r\n console.info(response);\r\n setLoading(false);\r\n }\r\n },\r\n onClose: e => {\r\n console.info(e, 'closed');\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n\r\n const savePayment = async response => {\r\n const flutterwavePayment = response || paid;\r\n if (!flutterwavePayment) return;\r\n setLoading(true);\r\n const paymentData = {\r\n travel_id: travelDetailForm.travel_id,\r\n amount: flutterwavePayment.amount,\r\n payment_type: 'staff',\r\n premium: price,\r\n paystack_ref: flutterwavePayment.flw_ref,\r\n trxref: flutterwavePayment.tx_ref,\r\n status: flutterwavePayment.status,\r\n product_name: product.dsProduct\r\n };\r\n\r\n try {\r\n const res = await Promise.all([\r\n fetch(`${baseUrl}/users/travel/payment`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n }),\r\n updateMapKey()\r\n ]);\r\n\r\n let data = await res[0].json();\r\n if (!data.error && !data.errors) {\r\n setPayment(data);\r\n issueCertificate(true, flutterwavePayment);\r\n } else {\r\n setError(true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const issueCertificate = async (hasPaid = false, paymentRequest) => {\r\n const pmt = paymentRequest || payment;\r\n setLoading(true);\r\n if (!payment && !hasPaid) {\r\n return savePayment(paid);\r\n }\r\n\r\n if (certificate) {\r\n return storeOnGibbs(certificate, pmt);\r\n }\r\n\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'issuing',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n storeOnGibbs(data.root, pmt);\r\n } else {\r\n console.error(data);\r\n setLoading(false);\r\n setError(true);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const storeOnGibbs = async (certificate, _payment) => {\r\n if (gibbsResponse) {\r\n return completePayment(gibbsResponse, payment, certificate);\r\n }\r\n\r\n const data = JSON.parse(\r\n JSON.stringify(travelDetailForm.gibssTransactionData)\r\n );\r\n data.Map_PolicyNo = certificate?.numContrato || '';\r\n data.Payment_Ref = _payment?.tx_ref || 'manual';\r\n data.MarketerID = travelDetailForm.marketer.MarketerID || '27033277';\r\n data.MarketerName =\r\n travelDetailForm.marketer.full_name || 'BOLAJI AKINMORIN';\r\n data.Title = travelDetailForm.Title || 'N/A';\r\n data.Premium = price;\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/complete-transaction`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n });\r\n\r\n let response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n console.error(response);\r\n setGibbsResponse(response);\r\n completePayment(response, payment, certificate);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const completePayment = async (response, payment, certificate) => {\r\n let chiData = response?.BuyTravelInsuranceResult?.TravelID;\r\n const paymentData = {\r\n certificate_url: certificate?.file || '',\r\n chi_certificate_no: chiData?.CertificateNos || 'Not Available',\r\n chi_invoice_no: chiData?.InvoiceID || 'Not Available',\r\n chi_policy_number: chiData?.PolicyNumber || 'Not Available',\r\n chi_response_status: chiData?.StatusmSG || 'Not Available',\r\n id: payment?.data?.id,\r\n mapfre_certificate_id: certificate?.idRegContrato || '',\r\n mapfre_policy_number: certificate?.numContrato || ''\r\n };\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/travel/payments`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n });\r\n const response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n nav(\r\n `/quotes/success/${travelDetailForm.travel_id}/${payment?.data?.id}`\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Make Payment

    \r\n
    \r\n\r\n
    \r\n Product:\r\n {product.dsProduct}\r\n
    \r\n
    \r\n Travel Purpose:\r\n {travelDetailForm.gibssTransactionData?.TravelPurpose}\r\n
    \r\n
    \r\n Amount: \r\n ₦{numberWithCommas(price)}\r\n
    \r\n\r\n {!paid && (\r\n
    \r\n Pay with Rave\r\n
    \r\n )}\r\n
    \r\n\r\n {!paid && !loading && (\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n
    \r\n )}\r\n\r\n {(paid || error) && (\r\n
    \r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n Please wait while we process your certificate, this may take a\r\n few minutes.
    \r\n Do not close the browser or leave this page.\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","import React from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState } from '../../../recoil/atoms';\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport PassengerDetails from './PassengerDetails/passenger-details';\r\nimport NextOfKinDetails from './NextOfKinDetails/next-of-kin-details';\r\nimport SelectPlan from './SelectPlan/select-plan';\r\nimport ProductDetails from './ProductDetails/product-details';\r\nimport Payment from './Payment/payment';\r\n\r\nconst QuotesForms = () => {\r\n const quotePages = [\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n const [activePage] = useRecoilState(quotesPageState);\r\n return
    {quotePages[activePage]}
    ;\r\n};\r\n\r\nexport default QuotesForms;\r\n","import React, { useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../../recoil/atoms';\r\nimport QuotesForms from './quotes.forms';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\n\r\nconst Quotes = () => {\r\n const [, setActivePage] = useRecoilState(quotesPageState);\r\n const { updateMapKey } = useLoginUser();\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n };\r\n\r\n const [, setGuardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [, setNextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n const [, setPassengerDetails] = useRecoilState(passengerDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n\r\n useEffect(() => {\r\n updateMapKey();\r\n setActivePage(0);\r\n\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n return (\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n // CHI\r\n // \r\n\r\n //
      \r\n // {quotesSteps.map((step, index) => (\r\n // \r\n // \r\n // \r\n // {step.title}\r\n // \r\n // \r\n // {index !== quotesSteps.length - 1 && (\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 Quotes;\r\n","const schemas = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { schemas };\r\n","import { useState, useEffect, useMemo } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n travelDetailsState,\r\n insuranceDataState,\r\n guardianDetailsState,\r\n // selectedProfileTabState,\r\n profileDataState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas as travelSchema } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { genders, titles, relationships } from '../../../../constants';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { getAge } from '../../../../utilities';\r\n\r\nimport { guardianSchema } from '../../../Quotes/NextOfKinDetails/next-of-kin.schema';\r\n\r\nimport useCountries from '../../../../hooks/useCountries';\r\n\r\nconst TravelDetails = ({ travel }) => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [errors, setErrors] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n const { countries } = useCountries();\r\n\r\n const { updateMapKey } = useLoginUser();\r\n\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n const [, setProfileData_state] = useRecoilState(profileDataState);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas = isMinor\r\n ? { ...travelSchema, ...guardianSchema }\r\n : travelSchema;\r\n\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n setGuardianDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n\r\n const data = isMinor\r\n ? { ...travelDetails, ...guardianDetails }\r\n : travelDetails;\r\n\r\n const { success } = handleValidations(data);\r\n\r\n if (success) {\r\n saveUserAndProceed();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const isMinor = useMemo(\r\n () => getAge(travel?.user?.profile?.date_of_birth) < 18,\r\n [travel]\r\n );\r\n\r\n const formateMafreDate = _date => {\r\n return _date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: travel?.user?.name,\r\n first_name: travel?.user?.name,\r\n last_name: travel?.user?.profile?.last_name,\r\n other_names: travel?.user?.profile?.other_names,\r\n gender: travel?.user?.profile?.gender || 'N/A', //TODO: add to ui\r\n email: travel?.user?.email,\r\n phone: travel?.user?.phone,\r\n passport_no: travel?.user?.profile?.passport_no,\r\n destination: travelDetails.destination,\r\n title: travel?.user?.title || '',\r\n age: getAge(travel?.user?.profile?.date_of_birth),\r\n date_of_birth: travel?.user?.profile?.date_of_birth,\r\n medical_cond: 'N/A',\r\n address: travel?.user?.profile?.address,\r\n nok_name: travel?.user?.profile?.next_of_kin?.nok_name || '',\r\n nok_relationship:\r\n travel?.user?.profile?.next_of_kin?.nok_relationship || '',\r\n nok_phone: travel?.user?.profile?.next_of_kin?.nok_phone || '',\r\n nok_email: travel?.user?.profile?.next_of_kin?.nok_email || '',\r\n nok_address: travel?.user?.profile?.next_of_kin?.nok_address || '',\r\n is_holder: !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n travel_id: travel?.id\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n });\r\n\r\n const saveUserAndProceed = async () => {\r\n setLoading(true);\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian();\r\n if (isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n let profileData = JSON.parse(JSON.stringify(passenger));\r\n profileData['attaches'] = [];\r\n profileData['guardian'] = guardian;\r\n\r\n profileData['next_of_kin'] = {\r\n nok_name: passenger.nok_name,\r\n nok_relationship: passenger.nok_relationship,\r\n nok_phone: passenger.nok_phone,\r\n nok_email: passenger.nok_email,\r\n nok_address: passenger.nok_address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n\r\n setProfileData_state(profileData);\r\n\r\n setActivePage(activePage + 1);\r\n\r\n setLoading(false);\r\n };\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n useEffect(() => {\r\n handleChange('purpose', travel?.purpose);\r\n updateMapKey();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={\r\n countries.find(\r\n country => country.cd === travelDetails.destination\r\n ) || {}\r\n }\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n null}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {isMinor && (\r\n
    \r\n
    \r\n \r\n You are quiet young, please add a guardian\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian Other Names'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian surname'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n {/*
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianOtherName'\r\n placeholder='Enter guardian other name'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    */}\r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='passport'\r\n type='passport'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!isMinor}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange(\r\n 'guardianRelationship',\r\n selection.relationship\r\n );\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={guardianDetails.relationship}\r\n readOnly={!isMinor}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl, GibbsApiKey } from '../../../../constants';\r\nimport {\r\n headerState,\r\n buyInsuranceScreenState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n profileDataState,\r\n travelDetailsState,\r\n travelDetailFormState\r\n} from '../../../../recoil/atoms';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { getAge, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function ProductDetails() {\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [headers] = useRecoilState(headerState);\r\n const [loading, setLoading] = useState(false);\r\n const [createLoading, setCreateLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const { updateMapKey, user } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n\r\n const getProductXml = async insuranceData => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n setCoverDetails(data?.cover_details || {});\r\n return data;\r\n };\r\n\r\n const getPrices = async insuranceDataParam => {\r\n setLoading(true);\r\n const xml = await getProductXml(insuranceDataParam || insuranceData);\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n setPriceInfo(data);\r\n setLoading(false);\r\n setError(false);\r\n } catch (error) {\r\n setError(true);\r\n setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setInsuranceData({ ...insuranceData, idRegProduct: product.cd });\r\n getPrices({ ...insuranceData, idRegProduct: product.cd });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const buildGibsProfileData = profileData => {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData.next_of_kin.nok_name,\r\n NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n NoK_Address: profileData.next_of_kin.nok_address,\r\n NoK_Email: profileData.next_of_kin.nok_email,\r\n NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n CoverType: product.dsProduct\r\n };\r\n };\r\n\r\n const saveTravelAndProceed = async () => {\r\n setCreateLoading(true);\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...profileData, product: product.dsProduct }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name: user?.name + ' ' + user?.profile?.last_name,\r\n user_id: user.id,\r\n travel_id: data.travel_id,\r\n email: user.email,\r\n phone: user.phone,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(user?.profile?.date_of_birth),\r\n destination: travelDetails.destination,\r\n marketer: { id: 0, name: 'N/A' },\r\n gibssTransactionData: buildGibsProfileData(profileData)\r\n };\r\n\r\n setProfileData({ ...profileData, travel_id: data.travel_id });\r\n setTravelDetailForm(travelDetailForm);\r\n setActivePage(activePage + 1);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n\r\n setCreateLoading(false);\r\n };\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n const totalInsured = priceInfo?.root?.premiumBreakdown?.numInsured || '1';\r\n\r\n return (\r\n
    \r\n

    \r\n Product Details and Price as below\r\n

    \r\n\r\n
    \r\n
    {`${product.dsProduct} PLAN`}
    \r\n
    \r\n {product.ds}\r\n
    \r\n
    \r\n\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\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 \r\n \r\n \r\n\r\n {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${product.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{product.maxDiasAntes}
    Maximum days after issuing (useful with claims):{product.maxDiasDespues}
    Insurer’s minimum age:{product.edadMinimaAsegurado}
    Insurer’s Maximum age:{product.edadMaximaAsegurado}
    Policy-holder’s minimum age:{product.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n {!parseFloat(price) && (\r\n
    \r\n This product is not available for this Destination and/or\r\n Duration.\r\n
    \r\n )}\r\n
    \r\n Number Insured: {totalInsured}\r\n
    \r\n
    \r\n Total Fee: ₦{numberWithCommas(price)}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {!parseFloat(price) && !loading && (\r\n
    \r\n

    \r\n This product is not available at moment.
    \r\n Please try other products or try again later.\r\n

    \r\n
    \r\n )}\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n {!parseFloat(price) || loading || error ? (\r\n <>\r\n ) : (\r\n \r\n {createLoading ? 'Saving...' : 'Proceed'}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n headerState,\r\n priceInformationState,\r\n travelDetailFormState,\r\n selectedProductState,\r\n insuranceDataState\r\n} from '../../../../recoil/atoms';\r\n\r\nimport { useFlutterwave, closePaymentModal } from 'flutterwave-react-v3';\r\nimport { flutterwaveKey, baseUrl } from '../../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Retry from '../../../../components/commons/retry';\r\nimport { getRandomString, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function Payment() {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n const [headers] = useRecoilState(headerState);\r\n const [priceInfo] = useRecoilState(priceInformationState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [paid, setPaid] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [certificate, setCertificate] = useState(false);\r\n const [gibbsResponse, setGibbsResponse] = useState(false);\r\n const [payment, setPayment] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n\r\n const config = {\r\n public_key: flutterwaveKey,\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n payment_options: 'card,mobilemoney,ussd',\r\n customer: {\r\n email: travelDetailForm.email,\r\n phonenumber: travelDetailForm.phone,\r\n name: travelDetailForm.customer_name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n }`,\r\n description: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const handleFlutterPayment = useFlutterwave(config);\r\n\r\n const handlePay = () => {\r\n setLoading(true);\r\n handleFlutterPayment({\r\n callback: response => {\r\n closePaymentModal(); // this will close the modal programmatically\r\n if (response.status === 'successful') {\r\n setPaid(response);\r\n savePayment(response);\r\n } else {\r\n toast.error('Payment unsuccessful');\r\n console.error(response);\r\n setLoading(false);\r\n }\r\n },\r\n onClose: e => {\r\n console.info(e, 'closed');\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n\r\n const savePayment = async response => {\r\n const flutterwavePayment = response || paid;\r\n if (!flutterwavePayment) return;\r\n setLoading(true);\r\n const paymentData = {\r\n travel_id: travelDetailForm.travel_id,\r\n amount: flutterwavePayment.amount,\r\n payment_type: 'Online',\r\n premium: price,\r\n paystack_ref: flutterwavePayment.flw_ref,\r\n trxref: flutterwavePayment.tx_ref,\r\n status: flutterwavePayment.status,\r\n product_name: product.dsProduct\r\n };\r\n\r\n try {\r\n const res = await Promise.all([\r\n fetch(`${baseUrl}/users/travel/payment`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n }),\r\n updateMapKey()\r\n ]);\r\n\r\n let data = await res[0].json();\r\n\r\n if (!data.error && !data.errors) {\r\n setPayment(data);\r\n issueCertificate(true, flutterwavePayment);\r\n } else {\r\n setError(true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const issueCertificate = async (hasPaid = false, paymentRequest) => {\r\n const pmt = paymentRequest || payment;\r\n setLoading(true);\r\n if (!payment && !hasPaid) {\r\n return savePayment(paid);\r\n }\r\n\r\n if (certificate) {\r\n return storeOnGibbs(certificate, pmt);\r\n }\r\n\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'issuing',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n storeOnGibbs(data.root, pmt);\r\n } else {\r\n console.error(data);\r\n setLoading(false);\r\n setError(true);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const storeOnGibbs = async (certificate, _payment) => {\r\n if (gibbsResponse) {\r\n return completePayment(gibbsResponse, payment, certificate);\r\n }\r\n\r\n const data = JSON.parse(\r\n JSON.stringify(travelDetailForm.gibssTransactionData)\r\n );\r\n data.Map_PolicyNo = certificate?.numContrato || '';\r\n data.Payment_Ref = _payment?.tx_ref || 'manual';\r\n data.MarketerID = travelDetailForm.marketer.MarketerID || '27033277';\r\n data.MarketerName =\r\n travelDetailForm.marketer.full_name || 'BOLAJI AKINMORIN';\r\n data.Title = travelDetailForm.Title || 'N/A';\r\n data.Premium = price;\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/complete-transaction`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n });\r\n\r\n let response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n setGibbsResponse(response);\r\n completePayment(response, payment, certificate);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const completePayment = async (response, payment, certificate) => {\r\n let chiData = response?.BuyTravelInsuranceResult?.TravelID;\r\n const paymentData = {\r\n certificate_url: certificate?.file || '',\r\n chi_certificate_no: chiData?.CertificateNos || 'Not Available',\r\n chi_invoice_no: chiData?.InvoiceID || 'Not Available',\r\n chi_policy_number: chiData?.PolicyNumber || 'Not Available',\r\n chi_response_status: chiData?.StatusmSG || 'Not Available',\r\n id: payment?.data?.id,\r\n mapfre_certificate_id: certificate?.idRegContrato || '',\r\n mapfre_policy_number: certificate?.numContrato || ''\r\n };\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/travel/payments`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n });\r\n\r\n const response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n nav(\r\n `/quotes/success/${travelDetailForm.travel_id}/${payment?.data?.id}`\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Make Payment

    \r\n
    \r\n\r\n
    \r\n Product:\r\n {product.dsProduct}\r\n
    \r\n
    \r\n Travel Purpose:\r\n {travelDetailForm.gibssTransactionData?.TravelPurpose}\r\n
    \r\n
    \r\n Amount: \r\n ₦{numberWithCommas(price)}\r\n
    \r\n\r\n {!paid && (\r\n
    \r\n Pay with Rave\r\n
    \r\n )}\r\n
    \r\n\r\n {!paid && !loading && (\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n
    \r\n )}\r\n\r\n {(paid || error) && (\r\n
    \r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n Please wait while we process your certificate, this may take a\r\n few minutes.
    \r\n Do not close the browser or leave this page.\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","import React, { Fragment } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { getProductDescription } from '../../../../constants';\r\nimport useProducts from '../../../../hooks/useProducts';\r\nimport {\r\n selectedProductState,\r\n buyInsuranceScreenState,\r\n travelDetailsState\r\n} from '../../../../recoil/atoms';\r\n\r\nexport default function SelectPlan() {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [, setSelectedProduct] = useRecoilState(selectedProductState);\r\n const [activePage, setActivePage] = useRecoilState(buyInsuranceScreenState);\r\n\r\n const buyNow = product => {\r\n setSelectedProduct(product);\r\n setActivePage(activePage + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip lenght: {travelDetails.duration} Days\r\n

    \r\n\r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Buy Now\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n activePage !== 0 && setActivePage(activePage - 1)\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","import { useRecoilState } from 'recoil';\r\nimport {\r\n buyInsuranceScreenState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../../recoil/atoms';\r\n\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport InsuranceDetails from './InsuranceDetails/insurance-details';\r\nimport InsurancePayment from './InsurancePayment/insurance-payment';\r\nimport SelectPlan from './SelectPlan/select-plan';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useEffect, useState } from 'react';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\nimport { toast } from 'react-toastify';\r\nimport { baseUrl } from '../../../constants';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\n\r\nconst BuyInsurance = () => {\r\n const { updateMapKey, headers } = useLoginUser();\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n };\r\n\r\n const [, setGuardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [, setNextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n const [, setPassengerDetails] = useRecoilState(passengerDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [travel, setTravel] = useState(null);\r\n\r\n const { subpath: user_travel } = useParams();\r\n const ids = (user_travel || '').split('-');\r\n const user_id = ids[0] || '';\r\n const travel_id = ids[1] || '';\r\n\r\n const fetchTravel = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/users/travel/${user_id}/view/${travel_id}`, { headers })\r\n .then(response => response.json())\r\n .then(trv => {\r\n const travel = trv.data;\r\n if (travel?.user?.profile) {\r\n travel.user.profile.next_of_kin = JSON.parse(\r\n travel.user.profile.next_of_kin\r\n );\r\n }\r\n setTravel(travel);\r\n setTravelDetailForm({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n travel_id: travel?.id,\r\n startDate: travel?.from_date,\r\n endDate: travel?.to_date\r\n });\r\n setTravelDetails({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n travel_id: travel?.id,\r\n startDate: travel?.from_date,\r\n endDate: travel?.to_date\r\n });\r\n setGuardianDetails({\r\n guardianFirstName: travel?.user?.profile?.guardian?.first_name || '',\r\n guardianLastName: travel?.user?.profile?.guardian?.last_name || '',\r\n guardianOtherName: travel?.user?.profile?.guardian?.other_names || '',\r\n gender: travel?.user?.profile?.guardian?.gender || '',\r\n guardianAddress: travel?.user?.profile?.guardian?.address || '',\r\n guardianPhoneNumber: travel?.user?.profile?.guardian?.phone || '',\r\n guardianEmail: travel?.user?.profile?.guardian?.email || '',\r\n guardianPassportNumber:\r\n travel?.user?.profile?.guardian?.passport_no || '',\r\n title: travel?.user?.profile?.guardian?.title || '',\r\n guardianDateOfBirth:\r\n travel?.user?.profile?.guardian?.date_of_birth || ''\r\n });\r\n setNextOfKinDetails({\r\n name: travel?.user?.profile?.next_of_kin?.nok_name || '',\r\n relationship:\r\n travel?.user?.profile?.next_of_kin?.nok_relationship || '',\r\n phoneNumber: travel?.user?.profile?.next_of_kin?.nok_phone || '',\r\n email: travel?.user?.profile?.next_of_kin?.nok_email || '',\r\n address: travel?.user?.profile?.next_of_kin?.nok_address || ''\r\n });\r\n setPassengerDetails({\r\n title: travel?.user?.profile?.title || '',\r\n firstName: travel?.user?.name || '',\r\n lastName: travel?.user?.profile?.last_name || '',\r\n email: travel?.user?.email || '',\r\n phoneNumber: travel?.user?.phone || '',\r\n otherNames: travel?.user?.profile?.other_names || '',\r\n dateOfBirth: travel?.user?.profile?.date_of_birth || '',\r\n gender: travel?.user?.profile?.gender || '',\r\n passportNumber: travel?.user?.profile?.passport_no || '',\r\n address: travel?.user?.profile?.address || ''\r\n });\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n // nav('/404', { replace: true });\r\n setError(true);\r\n setLoading(false);\r\n toast.error(err.message || 'Travel not found');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n updateMapKey();\r\n setActiveScreen(0);\r\n !travel && fetchTravel();\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const screens = [\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n const [activeScreen, setActiveScreen] = useRecoilState(\r\n buyInsuranceScreenState\r\n );\r\n\r\n return (\r\n \r\n
    {screens[activeScreen]}
    \r\n \r\n );\r\n};\r\n\r\nexport default BuyInsurance;\r\n","\r\nconst schemas = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { schemas };\r\n","import { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState, travelDetailsState } from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { packages } from '../../../../constants';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useCountries from '../../../../hooks/useCountries';\r\n\r\nconst TravelDetails = () => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const { countries } = useCountries();\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...travelDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{ destination: travelDetails.destination }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('purpose', selection.value);\r\n }}\r\n identifier='name'\r\n data={packages}\r\n inputId={`purpose`}\r\n placeholder='Pick your purpose'\r\n disable={false}\r\n showItems={true}\r\n value={{ name: travelDetails.purpose }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","export const schemas = {\r\n firstName: {\r\n required: true,\r\n label: 'Other Names'\r\n },\r\n lastName: {\r\n required: true,\r\n label: 'Surname'\r\n },\r\n otherNames: {\r\n required: false,\r\n label: 'Surname'\r\n },\r\n dateOfBirth: {\r\n required: true,\r\n label: 'Date of Birth'\r\n },\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n passportNumber: {\r\n required: true,\r\n minLength: 3,\r\n maxLength: 20,\r\n label: 'Passport Number'\r\n },\r\n gender: {\r\n required: true,\r\n label: 'Gender'\r\n },\r\n title: {\r\n required: false,\r\n label: 'Title'\r\n }\r\n};\r\n","import moment from 'moment';\r\nimport { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { genders, titles } from '../../../../constants';\r\nimport {\r\n quotesPageState,\r\n passengerDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './passenger-details.schema';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\n\r\nconst PassengerDetails = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n\r\n const handleValidations = (data, field) => {\r\n let { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...passengerDetails, [name]: value };\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleChangeDropdown = (name, value) => {\r\n const data = { ...passengerDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...passengerDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n passengerDetails.title &&\r\n (passengerDetails.title === 'others' ||\r\n !titles.find(t => t.title === passengerDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (passengerDetails.title === 'others') {\r\n setPassengerDetails({ ...passengerDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [passengerDetails?.title]);\r\n\r\n return (\r\n
    \r\n

    We need some details about you

    \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 handleChangeDropdown('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: passengerDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangeDropdown('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: passengerDetails.title }}\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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 activePage !== 0 && setActivePage(0)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PassengerDetails;\r\n","const nextOfKinSchema = {\r\n name: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n relationship: { required: true, label: 'Relationship' },\r\n marketer: { label: 'Marketer' }\r\n};\r\n\r\nconst guardianSchema = {\r\n guardianFirstName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianLastName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianOtherName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n guardianEmail: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n guardianPhoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n guardianAddress: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n guardianDateOfBirth: {\r\n required: true,\r\n olderThan: 17,\r\n label: 'Guardian Date of Birth'\r\n },\r\n guardianRelationship: { required: true, label: 'Relationship' },\r\n guardianPassportNumber: {\r\n required: true,\r\n minLength: 5,\r\n label: 'Passport Number'\r\n },\r\n gender: { required: true, label: 'Gender' },\r\n title: { required: false, label: 'Title' }\r\n};\r\n\r\nexport { nextOfKinSchema, guardianSchema };\r\n","import { useRef, useEffect, useState, useMemo } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n nextOfKinDetailsState,\r\n guardianDetailsState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n insuranceDataState,\r\n profileDataState,\r\n headerState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport plusIcon from '../../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../../assets/svg/collapse.svg';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { getAge, getIdRegProductByName } from '../../../../utilities';\r\nimport { guardianSchema } from './next-of-kin.schema';\r\nimport moment from 'moment';\r\nimport { baseUrl, relationships, genders, titles } from '../../../../constants';\r\nimport { Spinner, Modal } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst NextOfKinDetails = () => {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [guardianHeight, setGuardianHeight] = useState({});\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [headers] = useRecoilState(headerState);\r\n\r\n const [proceed, setProceed] = useState(false);\r\n const [, setCertificate] = useState(false);\r\n\r\n const [, setProfileData_state] = useRecoilState(profileDataState);\r\n\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n // eslint-disable-next-line\r\n\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const guardianRef = useRef();\r\n\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas = guardianHeight.initial > 0 || isMinor ? guardianSchema : {};\r\n // guardianHeight.initial > 0 || isMinor\r\n // ? { ...nextOfKinSchema, ...guardianSchema }\r\n // : nextOfKinSchema;\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n // const handleNextOfKinChange = (name, value) => {\r\n // const data = { ...nextOfKinDetails, [name]: value };\r\n // setNextOfKinDetails(data);\r\n // handleValidations(data, name);\r\n // };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n setGuardianDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianToggle = () => {\r\n if (guardianHeight.initial > 0) {\r\n setGuardianHeight({ initial: 0, new: guardianHeight.initial });\r\n } else {\r\n setGuardianHeight({ initial: guardianHeight.new });\r\n }\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const data =\r\n guardianHeight.initial > 0 || isMinor\r\n ? { ...nextOfKinDetails, ...guardianDetails }\r\n : nextOfKinDetails;\r\n\r\n const { success } = handleValidations(data);\r\n\r\n if (success) {\r\n saveUserAndProceed();\r\n }\r\n };\r\n\r\n const formateMafreDate = _date => {\r\n return _date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: getIdRegProductByName(travelDetails?.product),\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: passengerDetails.firstName,\r\n first_name: passengerDetails.firstName,\r\n last_name: passengerDetails.lastName,\r\n other_names: passengerDetails.otherNames,\r\n gender: passengerDetails.gender || 'N/A', //TODO: add to ui\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n passport_no: passengerDetails.passportNumber,\r\n destination: travelDetails.destination,\r\n title: passengerDetails.title || '',\r\n age: getAge(passengerDetails.dateOfBirth),\r\n date_of_birth: passengerDetails.dateOfBirth,\r\n medical_cond: 'N/A',\r\n address: passengerDetails.address,\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address,\r\n is_holder: nextOfKinDetails.isPolicyHolder && !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor || !nextOfKinDetails.isPolicyHolder,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n travel_id: travelDetails?.travel_id\r\n });\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n // updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const updateCertificate = async () => {\r\n setLoading(true);\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'modifyContract',\r\n idRegCertificate: travelDetails.mapfre_certificate_id,\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n nav(\r\n `/quotes/success/${travelDetails.travel_id}/${travelDetails?.payment_id}`\r\n );\r\n } else {\r\n console.error(data);\r\n\r\n toast.error('Unable to update certicate, please try again');\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n toast.error('An error occurred, please try again');\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const saveUserAndProceed = async () => {\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian();\r\n\r\n if (guardianHeight.initial > 0 || isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n const attaches = allInsurers.filter(insurer => {\r\n return !insurer.is_holder;\r\n });\r\n\r\n let profileData = JSON.parse(JSON.stringify(passenger));\r\n profileData['attaches'] = attaches;\r\n profileData['guardian'] = guardian;\r\n profileData['next_of_kin'] = {\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n\r\n setProfileData_state(profileData);\r\n // await updateCertificate();\r\n setProceed(true);\r\n };\r\n\r\n const isMinor = useMemo(\r\n () => getAge(passengerDetails.dateOfBirth) < 18,\r\n [passengerDetails.dateOfBirth]\r\n );\r\n\r\n useEffect(() => {\r\n if (isMinor) {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: !isMinor\r\n });\r\n setTimeout(handleGuardianToggle, 100);\r\n }\r\n // eslint-disable-next-line\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n const guardian = guardianRef.current.clientHeight + 25;\r\n setGuardianHeight({ initial: 0, new: guardian });\r\n document.querySelector('.quote-details__heading').scrollIntoView();\r\n }, [isMinor]);\r\n\r\n const showGuardian = guardianHeight.initial > 0 || isMinor;\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n guardianDetails.title &&\r\n (guardianDetails.title === 'others' ||\r\n !titles.find(t => t.title === guardianDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (guardianDetails.title === 'others') {\r\n setGuardianDetails({ ...guardianDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [guardianDetails?.title]);\r\n\r\n return (\r\n
    \r\n {proceed && (\r\n setProceed(false)} centered size='md'>\r\n \r\n Confirm Action\r\n \r\n \r\n

    \r\n Are you sure you want to proceed with updating this contract\r\n

    \r\n
    \r\n \r\n
    \r\n setProceed(false)}\r\n >\r\n Cancel\r\n \r\n \r\n {loading ? (\r\n <>\r\n Loading...\r\n \r\n ) : (\r\n 'Continue'\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n

    Guardian details

    \r\n\r\n
    \r\n {/*
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter next of kin name'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter next of kin email'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleNextOfKinChange(e.target.name, e.target.value);\r\n }}\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter next of kin phone'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter next of kin address'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleNextOfKinChange('relationship', selection.relationship);\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: nextOfKinDetails.relationship }}\r\n />\r\n \r\n
    */}\r\n
    \r\n !isMinor && handleGuardianToggle()}>\r\n {guardianHeight.initial > 0 ? (\r\n \r\n {'Remove guardian'}\r\n \r\n ) : isMinor ? (\r\n 'Bearer is quiet young, please add a guardian'\r\n ) : (\r\n 'I want to include a guardian'\r\n )}\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='expand'\r\n onClick={handleGuardianToggle}\r\n style={{ opacity: isMinor ? '0.5' : '1' }}\r\n />\r\n
    \r\n\r\n 0) ? 'hidden' : ''\r\n }}\r\n >\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian Other Names'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian surname'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n {/*
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianOtherName'\r\n placeholder='Enter guardian other name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    */}\r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n ) : (\r\n handleGuardianChange('title', e.target.value)}\r\n id='title'\r\n type='text'\r\n placeholder='Please enter title'\r\n />\r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(\r\n event.target.name,\r\n event.target.value?.replace(/[^0-9.]/g, '')\r\n )\r\n }\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='passport'\r\n type='passport'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange(\r\n 'guardianRelationship',\r\n selection.relationship\r\n );\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: guardianDetails.guardianRelationship }}\r\n readOnly={!showGuardian}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextOfKinDetails;\r\n","import React from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState } from '../../../recoil/atoms';\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport PassengerDetails from './PassengerDetails/passenger-details';\r\nimport NextOfKinDetails from './NextOfKinDetails/next-of-kin-details';\r\n\r\nconst QuotesForms = () => {\r\n const quotePages = [\r\n ,\r\n ,\r\n \r\n ];\r\n const [activePage] = useRecoilState(quotesPageState);\r\n return
    {quotePages[activePage]}
    ;\r\n};\r\n\r\nexport default QuotesForms;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../../recoil/atoms';\r\nimport QuotesForms from './quotes.forms';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { useParams } from 'react-router';\r\nimport { baseUrl } from '../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\n\r\nconst Quotes = () => {\r\n const [, setActivePage] = useRecoilState(quotesPageState);\r\n const { updateMapKey, headers } = useLoginUser();\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n };\r\n\r\n const [, setGuardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [, setNextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n const [, setPassengerDetails] = useRecoilState(passengerDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [travel, setTravel] = useState(null);\r\n\r\n const { subpath: user_travel } = useParams();\r\n const ids = (user_travel || '').split('-');\r\n const user_id = ids[0] || '';\r\n const travel_id = ids[1] || '';\r\n\r\n const fetchTravel = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/users/travel/${user_id}/view/${travel_id}`, { headers })\r\n .then(response => response.json())\r\n .then(trv => {\r\n const travel = trv.data;\r\n if (travel?.user?.profile) {\r\n travel.user.profile.next_of_kin = JSON.parse(\r\n travel.user.profile.next_of_kin\r\n );\r\n }\r\n\r\n const payment =\r\n travel?.payments && travel?.payments.length\r\n ? travel?.payments[0]\r\n : {};\r\n setTravel(travel);\r\n setTravelDetailForm({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n startDate: travel?.from_date || '',\r\n endDate: travel?.to_date || '',\r\n product: travel?.product || '',\r\n travel_id: travel?.id,\r\n mapfre_certificate_id: payment.mapfre_certificate_id,\r\n payment_id: payment.id\r\n });\r\n\r\n setTravelDetails({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n startDate: travel?.from_date || '',\r\n endDate: travel?.to_date || '',\r\n product: travel?.product || '',\r\n travel_id: travel?.id,\r\n mapfre_certificate_id: payment.mapfre_certificate_id,\r\n payment_id: payment.id\r\n });\r\n setGuardianDetails({\r\n guardianFirstName: travel?.user?.profile?.guardian?.first_name || '',\r\n guardianLastName: travel?.user?.profile?.guardian?.last_name || '',\r\n guardianOtherName: travel?.user?.profile?.guardian?.other_names || '',\r\n gender: travel?.user?.profile?.guardian?.gender || '',\r\n guardianAddress: travel?.user?.profile?.guardian?.address || '',\r\n guardianPhoneNumber: travel?.user?.profile?.guardian?.phone || '',\r\n guardianEmail: travel?.user?.profile?.guardian?.email || '',\r\n guardianPassportNumber:\r\n travel?.user?.profile?.guardian?.passport_no || '',\r\n title: travel?.user?.profile?.guardian?.title || '',\r\n guardianDateOfBirth:\r\n travel?.user?.profile?.guardian?.date_of_birth || ''\r\n });\r\n setNextOfKinDetails({\r\n name: travel?.user?.profile?.next_of_kin?.nok_name || '',\r\n relationship:\r\n travel?.user?.profile?.next_of_kin?.nok_relationship || '',\r\n phoneNumber: travel?.user?.profile?.next_of_kin?.nok_phone || '',\r\n email: travel?.user?.profile?.next_of_kin?.nok_email || '',\r\n address: travel?.user?.profile?.next_of_kin?.nok_address || ''\r\n });\r\n setPassengerDetails({\r\n title: travel?.user?.profile?.title || '',\r\n firstName: travel?.user?.name || '',\r\n lastName: travel?.user?.profile?.last_name || '',\r\n email: travel?.user?.email || '',\r\n phoneNumber: travel?.user?.phone || '',\r\n otherNames: travel?.user?.profile?.other_names || '',\r\n dateOfBirth: travel?.user?.profile?.date_of_birth || '',\r\n gender: travel?.user?.profile?.gender || '',\r\n passportNumber: travel?.user?.profile?.passport_no || '',\r\n address: travel?.user?.profile?.address || ''\r\n });\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n // nav('/404', { replace: true });\r\n setError(true);\r\n setLoading(false);\r\n toast.error(err.message || 'Travel not found');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n updateMapKey();\r\n setActivePage(0);\r\n fetchTravel();\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Quotes;\r\n","\r\nconst schemas = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { schemas };\r\n","import { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState, travelDetailsState } from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { packages } from '../../../../constants';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useCountries from '../../../../hooks/useCountries';\r\n\r\nconst TravelDetails = () => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const { countries } = useCountries();\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...travelDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={\r\n countries.find(\r\n country => country.cd === travelDetails.destination\r\n ) || {}\r\n }\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('purpose', selection.value);\r\n }}\r\n identifier='name'\r\n data={packages}\r\n inputId={`purpose`}\r\n placeholder='Pick your purpose'\r\n disable={false}\r\n showItems={true}\r\n value={{ name: travelDetails.purpose }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","export const schemas = {\r\n firstName: {\r\n required: true,\r\n label: 'Other Names'\r\n },\r\n lastName: {\r\n required: true,\r\n label: 'Surname'\r\n },\r\n otherNames: {\r\n required: false,\r\n label: 'Surname'\r\n },\r\n dateOfBirth: {\r\n required: true,\r\n label: 'Date of Birth'\r\n },\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n passportNumber: {\r\n required: true,\r\n minLength: 3,\r\n maxLength: 20,\r\n label: 'Passport Number'\r\n },\r\n gender: {\r\n required: true,\r\n label: 'Gender'\r\n },\r\n title: {\r\n required: false,\r\n label: 'Title'\r\n }\r\n};\r\n","import moment from 'moment';\r\nimport { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { genders, titles } from '../../../../constants';\r\nimport {\r\n quotesPageState,\r\n passengerDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { schemas } from './passenger-details.schema';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\n\r\nconst PassengerDetails = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n\r\n const handleValidations = (data, field) => {\r\n let { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...passengerDetails, [name]: value };\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleChangeDropdown = (name, value) => {\r\n const data = { ...passengerDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setPassengerDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...passengerDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n passengerDetails.title &&\r\n (passengerDetails.title === 'others' ||\r\n !titles.find(t => t.title === passengerDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (passengerDetails.title === 'others') {\r\n setPassengerDetails({ ...passengerDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [passengerDetails?.title]);\r\n\r\n return (\r\n
    \r\n

    We need some details about you

    \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 handleChangeDropdown('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: passengerDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangeDropdown('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: passengerDetails.title }}\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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 activePage !== 0 && setActivePage(0)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PassengerDetails;\r\n","const nextOfKinSchema = {\r\n name: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n relationship: { required: true, label: 'Relationship' },\r\n marketer: { label: 'Marketer' }\r\n};\r\n\r\nconst guardianSchema = {\r\n guardianFirstName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianLastName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n guardianOtherName: {\r\n required: true,\r\n maxLength: 50,\r\n label: 'Name'\r\n },\r\n\r\n guardianEmail: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n guardianPhoneNumber: {\r\n required: true,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n guardianAddress: {\r\n required: true,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n guardianDateOfBirth: {\r\n required: true,\r\n olderThan: 17,\r\n label: 'Guardian Date of Birth'\r\n },\r\n guardianRelationship: { required: true, label: 'Relationship' },\r\n guardianPassportNumber: {\r\n required: true,\r\n minLength: 5,\r\n label: 'Passport Number'\r\n },\r\n gender: { required: true, label: 'Gender' },\r\n title: { required: false, label: 'Title' }\r\n};\r\n\r\nexport { nextOfKinSchema, guardianSchema };\r\n","import { useRef, useEffect, useState, useMemo } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n nextOfKinDetailsState,\r\n guardianDetailsState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n insuranceDataState,\r\n profileDataState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport plusIcon from '../../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../../assets/svg/collapse.svg';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { getAge } from '../../../../utilities';\r\nimport { guardianSchema } from './next-of-kin.schema';\r\nimport moment from 'moment';\r\nimport { baseUrl, relationships, genders, titles } from '../../../../constants';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport localforage from 'localforage';\r\n\r\nconst NextOfKinDetails = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const [marketers, setMarketers] = useState([]);\r\n const [guardianHeight, setGuardianHeight] = useState({});\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [, setProfileData_state] = useRecoilState(profileDataState);\r\n\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n // eslint-disable-next-line\r\n\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const guardianRef = useRef();\r\n\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas = guardianHeight.initial > 0 || isMinor ? guardianSchema : {};\r\n // guardianHeight.initial > 0 || isMinor\r\n // ? { ...nextOfKinSchema, ...guardianSchema }\r\n // : nextOfKinSchema;\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleNextOfKinChange = (name, value) => {\r\n const data = { ...nextOfKinDetails, [name]: value };\r\n setNextOfKinDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n setGuardianDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleGuardianToggle = () => {\r\n if (guardianHeight.initial > 0) {\r\n setGuardianHeight({ initial: 0, new: guardianHeight.initial });\r\n } else {\r\n setGuardianHeight({ initial: guardianHeight.new });\r\n }\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const data =\r\n guardianHeight.initial > 0 || isMinor\r\n ? { ...nextOfKinDetails, ...guardianDetails }\r\n : nextOfKinDetails;\r\n\r\n const { success } = handleValidations(data);\r\n\r\n if (success) {\r\n saveUserAndProceed();\r\n }\r\n };\r\n\r\n // const buildGibsProfileData = profileData => {\r\n // return {\r\n // Apikey: GibbsApiKey,\r\n // PolicyStartDate: profileData.from_date,\r\n // PolicyEndDate: profileData.to_date,\r\n // TravelPurpose: profileData.purpose,\r\n // Destination: profileData.destination,\r\n // ContactAddress: profileData.address,\r\n // LastName: profileData.last_name,\r\n // FirstName: profileData.first_name,\r\n // Gender: profileData.gender,\r\n // Title: profileData.title,\r\n // PassportNo: profileData.passport_no,\r\n // PhoneNo: profileData.phone,\r\n // Email: profileData.email,\r\n // DOB: profileData.date_of_birth,\r\n // NoK_Name: profileData.next_of_kin.nok_name,\r\n // NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n // NoK_Address: profileData.next_of_kin.nok_address,\r\n // NoK_Email: profileData.next_of_kin.nok_email,\r\n // NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n // CoverType: product.dsProduct\r\n // };\r\n // };\r\n\r\n const formateMafreDate = _date => {\r\n return _date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: passengerDetails.firstName,\r\n first_name: passengerDetails.firstName,\r\n last_name: passengerDetails.lastName,\r\n other_names: passengerDetails.otherNames,\r\n gender: passengerDetails.gender || 'N/A', //TODO: add to ui\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n passport_no: passengerDetails.passportNumber,\r\n destination: travelDetails.destination,\r\n title: passengerDetails.title || '',\r\n age: getAge(passengerDetails.dateOfBirth),\r\n date_of_birth: passengerDetails.dateOfBirth,\r\n medical_cond: 'N/A',\r\n address: passengerDetails.address,\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address,\r\n is_holder: nextOfKinDetails.isPolicyHolder && !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor || !nextOfKinDetails.isPolicyHolder,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n travel_id: travelDetails?.travel_id\r\n });\r\n\r\n const saveUserAndProceed = async () => {\r\n setLoading(true);\r\n\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian();\r\n\r\n if (guardianHeight.initial > 0 || isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n const attaches = allInsurers.filter(insurer => {\r\n return !insurer.is_holder;\r\n });\r\n\r\n let profileData = JSON.parse(JSON.stringify(passenger));\r\n profileData['attaches'] = attaches;\r\n profileData['guardian'] = guardian;\r\n profileData['next_of_kin'] = {\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n\r\n // if (travelDetailForm && travelDetailForm.travel_id) {\r\n // profileData.travel_id = travelDetailForm.travel_id;\r\n // }\r\n\r\n setProfileData_state(profileData);\r\n setActivePage(activePage + 1);\r\n\r\n // users/create\r\n // try {\r\n // const res = await fetch(`${baseUrl}/users/create`, {\r\n // method: 'POST',\r\n // body: JSON.stringify(profileData),\r\n // headers\r\n // });\r\n\r\n // const data = await res.json();\r\n\r\n // if (data.user_id && data.travel_id) {\r\n // let travelDetailForm = {\r\n // customer_name:\r\n // passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n // user_id: data.user_id,\r\n // travel_id: data.travel_id,\r\n // email: passengerDetails.email,\r\n // phone: passengerDetails.phoneNumber,\r\n // from_date: travelDetails.startDate,\r\n // to_date: travelDetails.endDate,\r\n // duration: travelDetails.duration,\r\n // age: getAge(guardianDetails.guardianDateOfBirth),\r\n // destination: travelDetails.destination,\r\n // marketer: nextOfKinDetails.marketer || 'N/A',\r\n // gibssTransactionData: buildGibsProfileData(profileData)\r\n // };\r\n\r\n // setTravelDetailForm(travelDetailForm);\r\n // setActivePage(activePage + 1);\r\n // } else {\r\n // toast.error('An error occurred, please try again');\r\n // }\r\n // } catch (error) {\r\n // console.error(error);\r\n // toast.error('An error occurred, please try again');\r\n // }\r\n\r\n setLoading(false);\r\n };\r\n\r\n const isMinor = useMemo(\r\n () => getAge(passengerDetails.dateOfBirth) < 18,\r\n [passengerDetails.dateOfBirth]\r\n );\r\n\r\n const fetchMarketers = async () => {\r\n const marketers = await localforage.getItem('marketers');\r\n if (marketers) setMarketers(marketers);\r\n const res = await fetch(`${baseUrl}/marketers`);\r\n const data = await res.json();\r\n if (res.status === 200) {\r\n data.Marketer.forEach(d => {\r\n d.full_name = `${d.FirstName} ${d.LastName}`;\r\n });\r\n setMarketers(data.Marketer);\r\n localforage.setItem('marketers', data.Marketer);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isMinor) {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: !isMinor\r\n });\r\n setTimeout(handleGuardianToggle, 100);\r\n }\r\n // eslint-disable-next-line\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n const guardian = guardianRef.current.clientHeight + 25;\r\n setGuardianHeight({ initial: 0, new: guardian });\r\n fetchMarketers();\r\n document.querySelector('.quote-details__heading').scrollIntoView();\r\n }, [isMinor]);\r\n\r\n const showGuardian = guardianHeight.initial > 0 || isMinor;\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n useEffect(() => {\r\n if (\r\n guardianDetails.title &&\r\n (guardianDetails.title === 'others' ||\r\n !titles.find(t => t.title === guardianDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (guardianDetails.title === 'others') {\r\n setGuardianDetails({ ...guardianDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [guardianDetails?.title]);\r\n\r\n return (\r\n
    \r\n

    Guardian Details

    \r\n\r\n
    \r\n {/*
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter next of kin name'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter next of kin email'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleNextOfKinChange(e.target.name, e.target.value);\r\n }}\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter next of kin phone'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleNextOfKinChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter next of kin address'\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleNextOfKinChange('relationship', selection.relationship);\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: nextOfKinDetails.relationship }}\r\n />\r\n \r\n
    */}\r\n
    \r\n !isMinor && handleGuardianToggle()}>\r\n {guardianHeight.initial > 0 ? (\r\n \r\n {'Remove guardian'}\r\n \r\n ) : isMinor ? (\r\n 'You are quiet young, please add a guardian'\r\n ) : (\r\n 'I want to include a guardian'\r\n )}\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='expand'\r\n onClick={handleGuardianToggle}\r\n style={{ opacity: isMinor ? '0.5' : '1' }}\r\n />\r\n
    \r\n\r\n 0) ? 'hidden' : ''\r\n }}\r\n >\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian Other Name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='name'\r\n id='name'\r\n placeholder='Enter guardian surname'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n {/*
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianOtherName'\r\n placeholder='Enter guardian other name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    */}\r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n ) : (\r\n handleGuardianChange('title', e.target.value)}\r\n id='title'\r\n type='text'\r\n placeholder='Please enter title'\r\n />\r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='email'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(\r\n event.target.name,\r\n event.target.value?.replace(/[^0-9.]/g, '')\r\n )\r\n }\r\n id='phone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='passport'\r\n type='passport'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='address'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange(\r\n 'guardianRelationship',\r\n selection.relationship\r\n );\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: guardianDetails.guardianRelationship }}\r\n readOnly={!showGuardian}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isReferred: e.target.value\r\n });\r\n }}\r\n value={nextOfKinDetails.isReferred}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {nextOfKinDetails.isReferred === 'Agency/Marketers' && (\r\n
    \r\n \r\n {\r\n handleNextOfKinChange('marketer', selection);\r\n }}\r\n identifier='full_name'\r\n data={marketers}\r\n inputId={`marketer`}\r\n placeholder='Pick marketer'\r\n disable={false}\r\n showItems={true}\r\n value={nextOfKinDetails.marketer}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {false && (\r\n
    \r\n
    \r\n {\r\n const { checked } = event.target;\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: checked\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n {\r\n const { checked } = event.target;\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isInGroup: checked\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextOfKinDetails;\r\n","import React, { Fragment } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { getProductDescription } from '../../../../constants';\r\nimport {\r\n selectedProductState,\r\n quotesPageState,\r\n travelDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport useProducts from '../../../../hooks/useProducts';\r\n\r\nexport default function SelectPlan() {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [, setSelectedProduct] = useRecoilState(selectedProductState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n\r\n const buyNow = product => {\r\n setSelectedProduct(product);\r\n setActivePage(activePage + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip lenght: {travelDetails.duration} Days\r\n

    \r\n\r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Buy Now\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n activePage !== 0 && setActivePage(activePage - 1)\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","import React, { useEffect, useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl, GibbsApiKey } from '../../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n profileDataState,\r\n guardianDetailsState,\r\n travelDetailFormState,\r\n nextOfKinDetailsState\r\n} from '../../../../recoil/atoms';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { getAge, numberWithCommas } from '../../../../utilities';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default function ProductDetails() {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [loading, setLoading] = useState(false);\r\n const [createLoading, setCreateLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [guardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [nextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n\r\n const getProductXml = async insuranceData => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n setCoverDetails(data?.cover_details || {});\r\n return data;\r\n };\r\n\r\n const getPrices = async insuranceDataParam => {\r\n setLoading(true);\r\n const xml = await getProductXml(insuranceDataParam || insuranceData);\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n setPriceInfo(data);\r\n setLoading(false);\r\n setError(false);\r\n } catch (error) {\r\n setError(true);\r\n setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setInsuranceData({ ...insuranceData, idRegProduct: product.cd });\r\n getPrices({ ...insuranceData, idRegProduct: product.cd });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n const totalInsured = priceInfo?.root?.premiumBreakdown?.numInsured || '1';\r\n\r\n const buildGibsProfileData = profileData => {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData.next_of_kin.nok_name,\r\n NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n NoK_Address: profileData.next_of_kin.nok_address,\r\n NoK_Email: profileData.next_of_kin.nok_email,\r\n NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n CoverType: product.dsProduct\r\n };\r\n };\r\n\r\n const saveTravelAndProceed = async () => {\r\n setCreateLoading(true);\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...profileData, product: product.dsProduct }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name:\r\n passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n user_id: data.user_id,\r\n travel_id: data.travel_id,\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n destination: travelDetails.destination,\r\n marketer: nextOfKinDetails.marketer || 'N/A',\r\n gibssTransactionData: buildGibsProfileData(profileData)\r\n };\r\n setProfileData({ ...profileData, travel_id: data.travel_id });\r\n setTravelDetailForm(travelDetailForm);\r\n setActivePage(activePage + 1);\r\n } else {\r\n toast.error('An error occurred, please try again');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n\r\n setCreateLoading(false);\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n Product Details and Price as below\r\n

    \r\n\r\n
    \r\n
    {`${product.dsProduct} PLAN`}
    \r\n
    \r\n {product.ds}\r\n
    \r\n
    \r\n\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\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 \r\n \r\n \r\n\r\n {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${product.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{product.maxDiasAntes}
    Maximum days after issuing (useful with claims):{product.maxDiasDespues}
    Insurer’s minimum age:{product.edadMinimaAsegurado}
    Insurer’s Maximum age:{product.edadMaximaAsegurado}
    Policy-holder’s minimum age:{product.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n
    \r\n Number Insured: {totalInsured}\r\n
    \r\n
    \r\n Total Fee: ₦{numberWithCommas(price)}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {!parseFloat(price) && !loading && (\r\n
    \r\n

    \r\n This product price is not available.
    \r\n You can proceed if you have other relevant information about the\r\n product.\r\n

    \r\n
    \r\n )}\r\n\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n {!(loading || error) ? (\r\n \r\n {createLoading ? 'Saving...' : 'Proceed'}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState, useCallback } from 'react';\r\nimport { Spinner, ProgressBar } from 'react-bootstrap';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport { toast } from 'react-toastify';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl } from '../../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n passportUrlState,\r\n travelDetailFormState\r\n} from '../../../../recoil/atoms';\r\n// import { firebase } from '../../../../utilities';\r\nimport upload from '../../../../assets/svg/upload.svg';\r\n\r\nexport default function PassportUpload() {\r\n const [file, setFile] = useState(null);\r\n const [progress, setProgress] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [, setPassport] = useRecoilState(passportUrlState);\r\n const [headers] = useRecoilState(headerState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n\r\n let interval;\r\n let baseProgress;\r\n\r\n const handleUpload = () => {\r\n setLoading(true);\r\n\r\n savePassport();\r\n\r\n // if (passport) {\r\n // baseProgress = 0;\r\n // interval = setInterval(() => {\r\n // baseProgress++;\r\n // baseProgress < 51 && setProgress(baseProgress + 1);\r\n // }, 10);\r\n // return savePassport({\r\n // userId: travelDetailForm.user_id,\r\n // url: passport\r\n // });\r\n // }\r\n\r\n // const storage = firebase.storage();\r\n // const storageRef = storage.ref();\r\n // const uploadTask = storageRef.child('passports/' + file.name).put(file);\r\n\r\n // uploadTask.on(\r\n // firebase.storage.TaskEvent.STATE_CHANGED,\r\n // snapshot => {\r\n // setProgress(\r\n // Math.round(snapshot.bytesTransferred / snapshot.totalBytes) * 50\r\n // );\r\n // },\r\n // error => {\r\n // toast.error('An error occurred, please try again');\r\n // setLoading(false);\r\n // console.error(error);\r\n // },\r\n // () => {\r\n // uploadTask.snapshot.ref.getDownloadURL().then(url => {\r\n // baseProgress = 50;\r\n // setPassport(url);\r\n // savePassport({ userId: travelDetailForm.user_id, url });\r\n // });\r\n // }\r\n // );\r\n };\r\n\r\n const savePassport = async () => {\r\n let status = true;\r\n interval && clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n if (isNaN(baseProgress)) {\r\n baseProgress = 10;\r\n }\r\n baseProgress < 95 && setProgress(baseProgress);\r\n }, 50);\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('userId', travelDetailForm.user_id);\r\n\r\n const reqHeaders = { ...headers };\r\n delete reqHeaders['Content-Type'];\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/savePassport`, {\r\n method: 'POST',\r\n headers: reqHeaders,\r\n body: formData\r\n });\r\n\r\n const data = await res.json();\r\n if (data.error || data.errors) throw new Error(data.message);\r\n } catch (error) {\r\n toast.error('An error occurred, please try again');\r\n status = false;\r\n setError(true);\r\n setLoading(false);\r\n }\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n baseProgress <= 100 && setProgress(baseProgress);\r\n if (baseProgress >= 110) {\r\n setLoading(false);\r\n clearInterval(interval);\r\n if (status) {\r\n //redirect to pay\r\n setActivePage(activePage + 1);\r\n }\r\n }\r\n }, 50);\r\n };\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n if (acceptedFiles[0] && acceptedFiles[0].size > 204800) {\r\n toast.error('Please select a file smaller than 200kb');\r\n return;\r\n }\r\n\r\n if (acceptedFiles[0] && !acceptedFiles[0].type.includes('image')) {\r\n toast.error('Please select an image file (jpeg, png, gif)');\r\n return;\r\n }\r\n setPassport(null);\r\n setFile(acceptedFiles[0]);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\r\n\r\n return (\r\n
    \r\n

    \r\n Please upload a copy of your passport\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n
    \r\n upload\r\n

    \r\n Drag and drop the file here, or click to select file\r\n

    \r\n

    \r\n \r\n Note: The file should smaller 200kb and must be an\r\n image (jpeg,jpg,png,gif)\r\n \r\n

    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n {file && (\r\n
    \r\n upload {file.name}\r\n
    \r\n )}\r\n\r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n \r\n {loading ? (\r\n <>\r\n loading...\r\n \r\n ) : (\r\n 'Proceed'\r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n headerState,\r\n priceInformationState,\r\n travelDetailFormState,\r\n selectedProductState,\r\n insuranceDataState\r\n} from '../../../../recoil/atoms';\r\n\r\nimport { useFlutterwave, closePaymentModal } from 'flutterwave-react-v3';\r\nimport { flutterwaveKey, baseUrl } from '../../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Retry from '../../../../components/commons/retry';\r\nimport { getRandomString, numberWithCommas } from '../../../../utilities';\r\n\r\nexport default function Payment() {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [priceInfo] = useRecoilState(priceInformationState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [paid, setPaid] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [certificate, setCertificate] = useState(false);\r\n const [gibbsResponse, setGibbsResponse] = useState(false);\r\n const [payment, setPayment] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n\r\n const config = {\r\n public_key: flutterwaveKey,\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n payment_options: 'card,mobilemoney,ussd',\r\n customer: {\r\n email: travelDetailForm.email,\r\n phonenumber: travelDetailForm.phone,\r\n name: travelDetailForm.customer_name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n }`,\r\n description: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const handleFlutterPayment = useFlutterwave(config);\r\n\r\n const handlePay = () => {\r\n setLoading(true);\r\n handleFlutterPayment({\r\n callback: response => {\r\n closePaymentModal(); // this will close the modal programmatically\r\n if (response.status === 'successful') {\r\n setPaid(response);\r\n savePayment(response);\r\n } else {\r\n toast.error('Payment unsuccessful');\r\n console.error(response);\r\n setLoading(false);\r\n }\r\n },\r\n onClose: e => {\r\n console.info(e, 'closed');\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n\r\n const savePayment = async response => {\r\n const flutterwavePayment = response || paid;\r\n if (!flutterwavePayment) return;\r\n setLoading(true);\r\n const paymentData = {\r\n travel_id: travelDetailForm.travel_id,\r\n amount: flutterwavePayment.amount,\r\n payment_type: 'staff',\r\n premium: price,\r\n paystack_ref: flutterwavePayment.flw_ref,\r\n trxref: flutterwavePayment.tx_ref,\r\n status: flutterwavePayment.status,\r\n product_name: product.dsProduct\r\n };\r\n\r\n try {\r\n const res = await Promise.all([\r\n fetch(`${baseUrl}/users/travel/payment`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n }),\r\n updateMapKey()\r\n ]);\r\n\r\n let data = await res[0].json();\r\n\r\n if (!data.error && !data.errors) {\r\n setPayment(data);\r\n issueCertificate(true, flutterwavePayment);\r\n } else {\r\n setError(true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const issueCertificate = async (hasPaid = false, paymentRequest) => {\r\n const pmt = paymentRequest || payment;\r\n setLoading(true);\r\n if (!payment && !hasPaid) {\r\n return savePayment(paid);\r\n }\r\n\r\n if (certificate) {\r\n return storeOnGibbs(certificate, pmt);\r\n }\r\n\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'issuing',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n storeOnGibbs(data.root, pmt);\r\n } else {\r\n console.error(data);\r\n setLoading(false);\r\n setError(true);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const storeOnGibbs = async (certificate, _payment) => {\r\n if (gibbsResponse) {\r\n return completePayment(gibbsResponse, payment, certificate);\r\n }\r\n\r\n const data = JSON.parse(\r\n JSON.stringify(travelDetailForm.gibssTransactionData)\r\n );\r\n data.Map_PolicyNo = certificate?.numContrato || '';\r\n data.Payment_Ref = _payment?.tx_ref || 'manual';\r\n data.MarketerID = travelDetailForm.marketer.MarketerID || '27033277';\r\n data.MarketerName =\r\n travelDetailForm.marketer.full_name || 'BOLAJI AKINMORIN';\r\n data.Title = travelDetailForm.Title || 'N/A';\r\n data.Premium = price;\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/complete-transaction`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n });\r\n\r\n let response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n setGibbsResponse(response);\r\n completePayment(response, payment, certificate);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const completePayment = async (response, payment, certificate) => {\r\n let chiData = response?.BuyTravelInsuranceResult?.TravelID;\r\n const paymentData = {\r\n certificate_url: certificate?.file || '',\r\n chi_certificate_no: chiData?.CertificateNos || 'Not Available',\r\n chi_invoice_no: chiData?.InvoiceID || 'Not Available',\r\n chi_policy_number: chiData?.PolicyNumber || 'Not Available',\r\n chi_response_status: chiData?.StatusmSG || 'Not Available',\r\n id: payment?.data?.id,\r\n mapfre_certificate_id: certificate?.idRegContrato || '',\r\n mapfre_policy_number: certificate?.numContrato || ''\r\n };\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/travel/payments`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n });\r\n\r\n const response = await res.json();\r\n\r\n if (response.error || response.errors) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n nav(\r\n `/quotes/success/${travelDetailForm.travel_id}/${payment?.data?.id}`\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Make Payment

    \r\n
    \r\n\r\n
    \r\n Product:\r\n {product.dsProduct}\r\n
    \r\n
    \r\n Travel Purpose:\r\n {travelDetailForm.gibssTransactionData?.TravelPurpose}\r\n
    \r\n
    \r\n Amount: \r\n ₦{numberWithCommas(price)}\r\n
    \r\n\r\n {!paid && (\r\n
    \r\n Pay with Rave\r\n
    \r\n )}\r\n
    \r\n\r\n {!paid && !loading && (\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n
    \r\n )}\r\n\r\n {(paid || error) && (\r\n
    \r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n Please wait while we process your certificate, this may take a\r\n few minutes.
    \r\n Do not close the browser or leave this page.\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","import React from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState } from '../../../recoil/atoms';\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport PassengerDetails from './PassengerDetails/passenger-details';\r\nimport NextOfKinDetails from './NextOfKinDetails/next-of-kin-details';\r\nimport SelectPlan from './SelectPlan/select-plan';\r\nimport ProductDetails from './ProductDetails/product-details';\r\nimport PassportUpload from './PassportUpload/passport-upload';\r\nimport Payment from './Payment/payment';\r\n\r\nconst QuotesForms = () => {\r\n const quotePages = [\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n const [activePage] = useRecoilState(quotesPageState);\r\n return
    {quotePages[activePage]}
    ;\r\n};\r\n\r\nexport default QuotesForms;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../../recoil/atoms';\r\nimport QuotesForms from './quotes.forms';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { useParams } from 'react-router';\r\nimport { baseUrl } from '../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport RetryLoader from '../../../components/commons/retryLoader';\r\n\r\nconst Quotes = () => {\r\n const [, setActivePage] = useRecoilState(quotesPageState);\r\n const { updateMapKey, headers } = useLoginUser();\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n };\r\n\r\n const [, setGuardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [, setNextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n const [, setPassengerDetails] = useRecoilState(passengerDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [travel, setTravel] = useState(null);\r\n\r\n const { subpath: user_travel } = useParams();\r\n const ids = (user_travel || '').split('-');\r\n const user_id = ids[0] || '';\r\n const travel_id = ids[1] || '';\r\n\r\n const fetchTravel = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/users/travel/${user_id}/view/${travel_id}`, { headers })\r\n .then(response => response.json())\r\n .then(trv => {\r\n const travel = trv.data;\r\n if (travel?.user?.profile) {\r\n travel.user.profile.next_of_kin = JSON.parse(\r\n travel.user.profile.next_of_kin\r\n );\r\n }\r\n setTravel(travel);\r\n setTravelDetailForm({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n travel_id: travel?.id,\r\n startDate: travel?.from_date,\r\n endDate: travel?.to_date\r\n });\r\n setTravelDetails({\r\n destination: travel?.destination || '',\r\n purpose: travel?.purpose || '',\r\n travel_id: travel?.id,\r\n startDate: travel?.from_date,\r\n endDate: travel?.to_date\r\n });\r\n setGuardianDetails({\r\n guardianFirstName: travel?.user?.profile?.guardian?.first_name || '',\r\n guardianLastName: travel?.user?.profile?.guardian?.last_name || '',\r\n guardianOtherName: travel?.user?.profile?.guardian?.other_names || '',\r\n gender: travel?.user?.profile?.guardian?.gender || '',\r\n guardianAddress: travel?.user?.profile?.guardian?.address || '',\r\n guardianPhoneNumber: travel?.user?.profile?.guardian?.phone || '',\r\n guardianEmail: travel?.user?.profile?.guardian?.email || '',\r\n guardianPassportNumber:\r\n travel?.user?.profile?.guardian?.passport_no || '',\r\n title: travel?.user?.profile?.guardian?.title || '',\r\n guardianDateOfBirth:\r\n travel?.user?.profile?.guardian?.date_of_birth || ''\r\n });\r\n setNextOfKinDetails({\r\n name: travel?.user?.profile?.next_of_kin?.nok_name || '',\r\n relationship:\r\n travel?.user?.profile?.next_of_kin?.nok_relationship || '',\r\n phoneNumber: travel?.user?.profile?.next_of_kin?.nok_phone || '',\r\n email: travel?.user?.profile?.next_of_kin?.nok_email || '',\r\n address: travel?.user?.profile?.next_of_kin?.nok_address || ''\r\n });\r\n setPassengerDetails({\r\n title: travel?.user?.profile?.title || '',\r\n firstName: travel?.user?.name || '',\r\n lastName: travel?.user?.profile?.last_name || '',\r\n email: travel?.user?.email || '',\r\n phoneNumber: travel?.user?.phone || '',\r\n otherNames: travel?.user?.profile?.other_names || '',\r\n dateOfBirth: travel?.user?.profile?.date_of_birth || '',\r\n gender: travel?.user?.profile?.gender || '',\r\n passportNumber: travel?.user?.profile?.passport_no || '',\r\n address: travel?.user?.profile?.address || ''\r\n });\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n // nav('/404', { replace: true });\r\n setError(true);\r\n setLoading(false);\r\n toast.error(err.message || 'Travel not found');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n updateMapKey();\r\n setActivePage(0);\r\n !travel && fetchTravel();\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Quotes;\r\n","import DashboardHome from './DashboardHome/dashboard-home';\r\nimport BuyInsurance from './BuyInsurance/buy-insurance.index';\r\nimport ProcessInsurance from './BuyInsurance/process-insurance.index';\r\nimport Profile from './Profile/profile.index';\r\nimport { useParams } from 'react-router-dom';\r\nimport UsersIndex from './Users/users.index';\r\nimport RolesIndex from './Roles/roles.index';\r\nimport TasksIndex from './Tasks/tasks.index';\r\nimport UserDetails from './UserDetails/user-details.index';\r\nimport RoleDetails from './RoleDetails/role-details.index';\r\nimport { useRecoilValue } from 'recoil';\r\nimport { permissionuserDataState } from '../../recoil/atoms';\r\nimport { toast } from 'react-toastify';\r\nimport { useEffect, useMemo } from 'react';\r\nimport Reports from './Report/reports';\r\nimport Quotes from './BuyInsuranceOffline/quotes.index';\r\nimport ContinueBuyInsurance from './ContinueBuyInsurance/process-insurance.index';\r\nimport EditInsurance from './EditInsurance/quotes.index';\r\nimport ContinueBuyInsuranceOffline from './ContinueBuyInsuranceOffline/quotes.index';\r\n\r\nconst DashboardScreens = () => {\r\n const { path } = useParams();\r\n\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n const screens = useMemo(\r\n () => ({\r\n index: {\r\n component: ,\r\n show: true\r\n },\r\n 'buy-insurance': {\r\n component: ,\r\n show: true\r\n },\r\n 'process-insurance': {\r\n component: ,\r\n show: true\r\n },\r\n profile: {\r\n component: ,\r\n show: true\r\n },\r\n users: {\r\n component: ,\r\n show: permissions.list_users\r\n },\r\n 'user-details': {\r\n component: ,\r\n show:\r\n permissions.get_user_with_role ||\r\n permissions.list_user_travels ||\r\n permissions.list_user_payments\r\n },\r\n roles: {\r\n component: ,\r\n show: permissions.list_roles\r\n },\r\n permissions: {\r\n component: ,\r\n show: permissions.list_tasks\r\n },\r\n 'role-details': {\r\n component: ,\r\n show: permissions.get_role_with_tasks\r\n },\r\n report: {\r\n component: ,\r\n show: permissions.get_role_with_tasks\r\n },\r\n 'buy-insurance-offline': {\r\n component: ,\r\n show: permissions.create_user_travel_payment\r\n },\r\n 'continue-buy-insurance': {\r\n component: ,\r\n show: true\r\n },\r\n 'continue-buy-insurance-offline': {\r\n component: ,\r\n show: permissions.create_user_travel_payment\r\n },\r\n 'edit-insurance': {\r\n component: ,\r\n show: true\r\n }\r\n }),\r\n [permissions]\r\n );\r\n\r\n useEffect(() => {\r\n if (screens[path] && !screens[path].show) {\r\n toast.info('You dont have permissions to view this page');\r\n }\r\n }, [path, screens]);\r\n\r\n return (\r\n
    \r\n {screens[path] && screens[path].show ? (\r\n screens[path].component\r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default DashboardScreens;\r\n","export const dashboardMenu = {\r\n index: {\r\n title: 'Dashboard',\r\n route: 'index',\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n 'buy-insurance-offline': {\r\n title: 'Buy As Staff',\r\n route: 'buy-insurance-offline',\r\n permission: 'create_user_travel',\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n 'buy-insurance': {\r\n title: 'Buy Insurance',\r\n route: 'buy-insurance',\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n profile: {\r\n title: 'Profile',\r\n route: 'profile',\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n 'process-insurance': {\r\n title: 'Buy Insurance',\r\n route: 'buy-insurance',\r\n hidden: true,\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n users: {\r\n title: 'Users',\r\n route: 'users',\r\n permission: 'list_users',\r\n admin: true,\r\n icon: (\r\n \r\n \r\n \r\n )\r\n },\r\n roles: {\r\n title: 'Roles',\r\n route: 'roles',\r\n permission: 'list_roles',\r\n admin: true,\r\n icon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n permissions: {\r\n title: 'Permissions',\r\n route: 'permissions',\r\n permission: 'list_tasks',\r\n icon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n },\r\n reports: {\r\n title: 'Reports',\r\n route: 'report',\r\n // permission: 'list_tasks',\r\n admin: true,\r\n icon: (\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 logout: {\r\n title: 'Logout',\r\n icon: (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n};\r\n","export default __webpack_public_path__ + \"static/media/alert.7b5244bc.svg\";","import alertIcon from '../../assets/svg/alert.svg';\r\nimport avatar from '../../assets/image/avatar.png';\r\n// import chevron from '../../assets/svg/chevron.svg';\r\nimport { NavLink } from 'react-router-dom';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\nimport { useRecoilState } from 'recoil';\r\nimport { dashboardMenuState } from '../../recoil/atoms';\r\n\r\nconst DashboardHeader = ({ title }) => {\r\n const { login } = useLoginUser();\r\n\r\n // eslint-disable-next-line\r\n const [menu, setMenu] = useRecoilState(dashboardMenuState);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default DashboardHeader;\r\n","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport { useRecoilState, useRecoilValue } from 'recoil';\r\nimport { useNavigate, useParams, NavLink } from 'react-router-dom';\r\n\r\nimport {\r\n dashboardMenuState,\r\n permissionuserDataState\r\n} from '../../recoil/atoms';\r\n\r\nimport logo from '../../assets/image/logo.png';\r\nimport { dashboardMenu } from '../../pages/Dashboard/dashboard-menu';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\n\r\nconst Sidebar = () => {\r\n const nav = useNavigate();\r\n const { path } = useParams();\r\n const { logoutUser, user } = useLoginUser();\r\n\r\n const [menu, setMenu] = useRecoilState(dashboardMenuState);\r\n const permissions = useRecoilValue(permissionuserDataState);\r\n\r\n return (\r\n
    \r\n {menu && (\r\n
    setMenu(false)}>\r\n ×\r\n
    \r\n )}\r\n\r\n
    \r\n \r\n CHI\r\n \r\n\r\n
      \r\n {Object.values(dashboardMenu).map(menu =>\r\n (!menu.admin || (menu.admin && user.is_super_admin)) &&\r\n (!menu.permission || permissions[menu.permission]) &&\r\n !menu.hidden ? (\r\n {\r\n if (menu.title === 'Logout') return logoutUser();\r\n nav(`/dashboard/${menu.route}`);\r\n setMenu(false);\r\n }}\r\n >\r\n {menu.icon}\r\n\r\n {menu.title}\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 Sidebar;\r\n","import React from 'react';\r\nimport Screens from '../Dashboard/dashboard.screens';\r\nimport { dashboardMenu } from './dashboard-menu';\r\nimport DashboardHeader from './dashboard-header';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport Sidebar from '../../components/commons/Sidebar';\r\n\r\nconst Dashboard = () => {\r\n const { path } = useParams();\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\nexport default Dashboard;\r\n","export default __webpack_public_path__ + \"static/media/robot.75e8652d.svg\";","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Robot from \"./../../assets/svg/robot.svg\";\r\n\r\nconst NotFound = ({ heading = \"Nothing here\", body = \"Come back later\" }) => (\r\n
    \r\n
    \r\n \"not\r\n
    \r\n\r\n
    \r\n

    {heading}

    \r\n\r\n

    {body}

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nexport default NotFound;\r\n","\r\nconst schemas = {\r\n destination: {\r\n required: true,\r\n label: 'Travel destination'\r\n },\r\n purpose: {\r\n required: true,\r\n label: 'Purpose of travelling'\r\n },\r\n startDate: {\r\n required: true,\r\n label: 'Start Date'\r\n },\r\n endDate: {\r\n required: true,\r\n label: 'End Date'\r\n },\r\n duration: {\r\n required: true,\r\n minimumValue: 0\r\n }\r\n};\r\n\r\nexport { schemas };\r\n","import { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState, travelDetailsState } from '../../../recoil/atoms';\r\nimport CustomDropdown from '../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../utilities/use-validation';\r\nimport { schemas } from './travel-details.schema';\r\nimport moment from 'moment';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport useCountries from '../../../hooks/useCountries';\r\n\r\nconst TravelDetails = () => {\r\n const nav = useNavigate();\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [errors, setErrors] = useState({});\r\n const { countries } = useCountries();\r\n\r\n const { package: purpose } = useParams();\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n setTravelDetails(data);\r\n handleValidations(data, name);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n const { success } = handleValidations({\r\n ...travelDetails\r\n });\r\n\r\n if (success) {\r\n setActivePage(activePage + 1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n useEffect(() => {\r\n handleChange('purpose', purpose);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n
    \r\n

    \r\n Please give us some info about your travel\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{ destination: travelDetails.destination }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n null}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\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 activePage !== 0 ? setActivePage(activePage - 1) : nav(-1)\r\n }\r\n >\r\n Back\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelDetails;\r\n","export const schemas = {\r\n firstName: {\r\n required: true,\r\n label: 'Other Names'\r\n },\r\n lastName: {\r\n required: true,\r\n label: 'Surname'\r\n },\r\n otherNames: {\r\n required: false,\r\n label: 'Surname'\r\n },\r\n dateOfBirth: {\r\n required: true,\r\n label: 'Date of Birth'\r\n },\r\n email: {\r\n required: false,\r\n inputType: 'email',\r\n label: 'Email'\r\n },\r\n phoneNumber: {\r\n required: false,\r\n maxLength: 15,\r\n minLength: 9,\r\n maxWords: 1,\r\n label: 'Phone Number'\r\n },\r\n address: {\r\n required: false,\r\n maxLength: 45,\r\n label: 'Address'\r\n },\r\n passportNumber: {\r\n required: true,\r\n minLength: 3,\r\n maxLength: 20,\r\n label: 'Passport Number'\r\n },\r\n gender: {\r\n required: true,\r\n label: 'Gender'\r\n },\r\n title: {\r\n required: false,\r\n label: 'Title'\r\n }\r\n};\r\n","import React, { useState, useCallback, useEffect } from 'react';\r\nimport { Spinner, ProgressBar } from 'react-bootstrap';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport { toast } from 'react-toastify';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl } from '../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n passportUrlState,\r\n travelDetailFormState,\r\n uploadState,\r\n fileState\r\n} from '../../../recoil/atoms';\r\n// import { firebase } from '../../../utilities';\r\nimport upload from '../../../assets/svg/upload.svg';\r\n\r\nexport default function PassportUpload() {\r\n const [file, setFile] = useRecoilState(fileState);\r\n const [progress, setProgress] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [error, setError] = useState(false);\r\n const [, setPassport] = useRecoilState(passportUrlState);\r\n const [headers] = useRecoilState(headerState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [, setUploadState] = useRecoilState(uploadState);\r\n\r\n let interval;\r\n let baseProgress;\r\n useEffect(() => {\r\n if (\r\n file &&\r\n Object.keys(travelDetailForm).length &&\r\n travelDetailForm.user_id\r\n ) {\r\n savePassport(file, travelDetailForm.user_id);\r\n }\r\n }, [file, travelDetailForm, travelDetailForm.user_id]);\r\n\r\n const savePassport = async (passportFile, userId) => {\r\n let status = true;\r\n setLoading(true);\r\n interval && clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n if (isNaN(baseProgress)) {\r\n baseProgress = 10;\r\n }\r\n baseProgress < 95 && setProgress(baseProgress);\r\n }, 50);\r\n const formData = new FormData();\r\n\r\n formData.append('file', passportFile);\r\n formData.append('userId', userId);\r\n\r\n const reqHeaders = { ...headers };\r\n delete reqHeaders['Content-Type'];\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/savePassport`, {\r\n method: 'POST',\r\n headers: reqHeaders,\r\n body: formData\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.error || data.errors) throw new Error('message: ', data.message);\r\n else setUploadState('success'); // passport has been sent to backend\r\n } catch (error) {\r\n // toast.error('An error occurred, please try again');\r\n setUploadState('failure');\r\n status = false;\r\n setError(true);\r\n setLoading(false);\r\n }\r\n\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n baseProgress <= 100 && setProgress(baseProgress);\r\n if (baseProgress >= 110) {\r\n // setLoading(false);\r\n clearInterval(interval);\r\n }\r\n }, 50);\r\n };\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n setPassport(null);\r\n if (acceptedFiles[0] && acceptedFiles[0].size > 2097152) {\r\n toast.error('Please select a file smaller than 2Mb');\r\n return;\r\n }\r\n\r\n if (acceptedFiles[0] && !acceptedFiles[0].type.includes('image')) {\r\n toast.error('Please select an image file (jpeg, png, gif)');\r\n return;\r\n }\r\n\r\n setFile(acceptedFiles[0]);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n
    \r\n upload\r\n
    \r\n

    \r\n Drag and drop or click to select file\r\n

    \r\n

    \r\n \r\n Note: The file should be smaller 2MB and must be an\r\n image (jpeg,jpg,png,gif)\r\n \r\n

    \r\n e.preventDefault()}\r\n >\r\n Upload\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n {file && (\r\n
    \r\n upload {file.name}\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","import moment from 'moment';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { genders, titles, relationships } from '../../../constants';\r\nimport {\r\n quotesPageState,\r\n passengerDetailsState,\r\n fileState,\r\n userDataState,\r\n profileDataState,\r\n guardianDetailsState,\r\n nextOfKinDetailsState,\r\n travelDetailsState,\r\n insuranceDataState\r\n} from '../../../recoil/atoms';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../utilities/use-validation';\r\nimport { schemas } from './passenger-details.schema';\r\nimport { guardianSchema } from '../NextOfKinDetails/next-of-kin.schema';\r\n\r\nimport CustomDropdown from '../../../components/custom-dropdown';\r\nimport PassportUpload from '../PassportUpload/passport-upload';\r\nimport { toast } from 'react-toastify';\r\nimport { getAge } from '../../../utilities';\r\nimport plusIcon from '../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../assets/svg/collapse.svg';\r\n\r\nconst PassengerDetails = () => {\r\n const [errors, setErrors] = useState({});\r\n const [guardianHeight, setGuardianHeight] = useState({});\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n const [isMinor, setIsMinor] = useState(false);\r\n const [hasGuardian, setHasGuardian] = useState(false);\r\n\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n const [file, setFile] = useRecoilState(fileState);\r\n const [user] = useRecoilState(userDataState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n\r\n const guardianRef = useRef();\r\n const showGuardian = guardianHeight.initial > 0 || isMinor;\r\n\r\n useEffect(() => {\r\n if (\r\n passengerDetails.title &&\r\n (passengerDetails.title === 'others' ||\r\n !titles.find(t => t.title === passengerDetails.title))\r\n ) {\r\n setOtherTitle(true);\r\n if (passengerDetails.title === 'others') {\r\n setPassengerDetails({ ...passengerDetails, title: '' });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [passengerDetails?.title]);\r\n\r\n useEffect(() => {\r\n const guardian = guardianRef.current.clientHeight + 25;\r\n setGuardianHeight({ initial: 0, new: guardian });\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n if (isMinor) {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: !isMinor\r\n });\r\n setTimeout(handleGuardianToggle, 100);\r\n }\r\n // eslint-disable-next-line\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n const newIsMinor = getAge(passengerDetails.dateOfBirth) < 18;\r\n setIsMinor(newIsMinor);\r\n }, [passengerDetails.dateOfBirth]);\r\n\r\n const getPassenger = () => {\r\n return {\r\n name: passengerDetails.firstName,\r\n first_name: passengerDetails.firstName,\r\n last_name: passengerDetails.lastName,\r\n other_names: passengerDetails.otherNames,\r\n gender: passengerDetails.gender || 'N/A', //TODO: add to ui\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n passport_no: passengerDetails.passportNumber,\r\n destination: travelDetails.destination,\r\n title: passengerDetails.title || '',\r\n age: getAge(passengerDetails.dateOfBirth),\r\n date_of_birth: passengerDetails.dateOfBirth,\r\n medical_cond: 'N/A',\r\n address: passengerDetails.address,\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address,\r\n is_holder: nextOfKinDetails.isPolicyHolder && !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n };\r\n\r\n const getGuardian = () => ({\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor || !nextOfKinDetails.isPolicyHolder,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n });\r\n\r\n const handleGuardianToggle = () => {\r\n setHasGuardian(!hasGuardian);\r\n if (guardianHeight.initial > 0) {\r\n setGuardianHeight({ initial: 0, new: guardianHeight.initial });\r\n } else {\r\n setGuardianHeight({ initial: guardianHeight.new });\r\n }\r\n };\r\n\r\n const handleValidations = (data, field) => {\r\n let { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleGuardianValidations = (data, field) => {\r\n const schemas =\r\n guardianHeight.initial > 0 || isMinor ? { ...{}, ...guardianSchema } : {};\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n setPassengerDetails({ ...passengerDetails, [name]: value });\r\n };\r\n\r\n const handleChangeDropdown = (name, value) => {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n [name]: value\r\n });\r\n if (name === 'startDate') {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n endDate: '' //! TO-DO: confirm that this field was updated correctly\r\n });\r\n }\r\n };\r\n\r\n const handleGuardianChange = (name, value) => {\r\n setGuardianDetails({ ...guardianDetails, [name]: value });\r\n // handleGuardianValidations(data, name);\r\n };\r\n\r\n const formateMafreDate = date => {\r\n if (date) return date.split('-').reverse().join('/');\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const saveUserAndProceed = async () => {\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger();\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian();\r\n\r\n if (guardianHeight.initial > 0 || isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n const attaches = allInsurers.filter(insurer => !insurer.is_holder);\r\n\r\n let passengerData = JSON.parse(JSON.stringify(passenger)); // this clones the passenger object and assigns the clone to passengerData\r\n passengerData['attaches'] = attaches;\r\n passengerData['guardian'] = guardian;\r\n\r\n passengerData['next_of_kin'] = {\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n })\r\n );\r\n setProfileData({ ...profileData, ...passengerData });\r\n };\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n const passengerValidationResult = handleValidations({\r\n ...passengerDetails\r\n });\r\n\r\n if (passengerValidationResult.success) {\r\n // check if passengerDetails has email address, address and phone number\r\n // if any of these fields is missing,\r\n // get user profile data and add it to passengerDetails\r\n\r\n //this can only be done when user is logged in\r\n if (user && user.profile) {\r\n if (!passengerDetails.email) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n email: user.profile?.email || ''\r\n });\r\n }\r\n if (!passengerDetails.phoneNumber) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n phoneNumber: user.profile?.phone || ''\r\n });\r\n }\r\n if (!passengerDetails.address) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n address: user.profile?.address || ''\r\n });\r\n }\r\n }\r\n\r\n if (!passengerDetails.name) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n name: passengerDetails?.firstName\r\n });\r\n }\r\n\r\n setProfileData({\r\n ...profileData,\r\n ...passengerDetails\r\n });\r\n saveUserAndProceed();\r\n\r\n // run validation for guardian info?\r\n const guardianData =\r\n guardianHeight.initial > 0 || isMinor\r\n ? { ...nextOfKinDetails, ...guardianDetails }\r\n : nextOfKinDetails;\r\n\r\n const guardianValidationResult = handleGuardianValidations({\r\n ...guardianData\r\n });\r\n if (guardianValidationResult.error) {\r\n toast.error('An error occurred while validating the guardian details');\r\n }\r\n\r\n if (file) {\r\n toast.success('Passport uploaded successfully');\r\n let errorCount = 0;\r\n // if isMinor and guardian details not added, don't navigate to next page\r\n if (isMinor && !hasGuardian) {\r\n toast.error(\"You're quite young. Please include a guardian.\");\r\n return;\r\n }\r\n if (hasGuardian) {\r\n // check that guardian details has all fields completed\r\n for (const key in guardianDetails) {\r\n if (key === 'title') continue;\r\n else if (!guardianDetails[key]) errorCount++;\r\n }\r\n if (errorCount > 1) {\r\n toast.error('Please fill all the fields in the guardian section.');\r\n return;\r\n }\r\n }\r\n if ((isMinor && hasGuardian && errorCount <= 1) || !isMinor) {\r\n setActivePage(activePage + 1);\r\n }\r\n } else {\r\n toast.error('File upload failed. Did you upload a passport?');\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n

    We need some details about you

    \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 handleChangeDropdown('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: passengerDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangeDropdown('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: passengerDetails.title }}\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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
    \r\n \r\n
    \r\n\r\n {/* Start Of The Gaurdian Section */}\r\n
    \r\n !isMinor && handleGuardianToggle()}>\r\n {guardianHeight.initial > 0 ? (\r\n \r\n {'Remove guardian'}\r\n \r\n ) : isMinor ? (\r\n 'You are quite young, please add a guardian'\r\n ) : (\r\n 'I want to include a guardian'\r\n )}\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='expand'\r\n onClick={handleGuardianToggle}\r\n style={{ opacity: isMinor ? '0.5' : '1' }}\r\n />\r\n
    \r\n\r\n 0) ? 'collapse' : 'visible'\r\n }}\r\n >\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianFirstName'\r\n placeholder='Enter guardian first name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianLastName'\r\n placeholder='Enter guardian surname'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`guardianGender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n handleGuardianChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`guardianTitle`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianEmail'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(\r\n event.target.name,\r\n event.target.value.replace(/[^0-9.]/g, '')\r\n )\r\n }\r\n id='guardianPhone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianPassport'\r\n type='text'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleGuardianChange(event.target.name, event.target.value)\r\n }\r\n id='guardianAddress'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleGuardianChange('relationship', selection.relationship);\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: guardianDetails.relationship }}\r\n readOnly={!showGuardian}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n activePage !== 0 && setActivePage(0)}\r\n >\r\n Back\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PassengerDetails;\r\n","import React, { Fragment } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { getProductDescription } from '../../../constants';\r\nimport {\r\n selectedProductState,\r\n quotesPageState,\r\n travelDetailsState\r\n} from '../../../recoil/atoms';\r\nimport useProducts from '../../../hooks/useProducts';\r\n\r\nexport default function SelectPlan() {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const [, setSelectedProduct] = useRecoilState(selectedProductState);\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n\r\n const buyNow = product => {\r\n setSelectedProduct(product);\r\n setActivePage(activePage + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip lenght: {travelDetails.duration} Days\r\n

    \r\n\r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Buy Now\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n activePage !== 0 && setActivePage(activePage - 1)\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","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n headerState,\r\n priceInformationState,\r\n travelDetailFormState,\r\n selectedProductState,\r\n insuranceDataState\r\n} from '../../../recoil/atoms';\r\n\r\nimport { useFlutterwave, closePaymentModal } from 'flutterwave-react-v3';\r\nimport { flutterwaveKey, baseUrl } from '../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Retry from '../../../components/commons/retry';\r\nimport { getRandomString } from '../../../utilities';\r\n\r\nexport default function Payment() {\r\n const nav = useNavigate();\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [priceInfo] = useRecoilState(priceInformationState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [paid, setPaid] = useState(false);\r\n const [paymentInfo, setPaymentInfo] = useState({});\r\n const [error, setError] = useState(null);\r\n const [certificate, setCertificate] = useState(null);\r\n const [gibbsResponse, setGibbsResponse] = useState(null);\r\n const [payment, setPayment] = useState(null);\r\n const [loading, setLoading] = useState(null);\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n\r\n const config = {\r\n public_key: flutterwaveKey,\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n payment_options: 'card,mobilemoney,ussd,banktransfer',\r\n customer: {\r\n email: travelDetailForm.email,\r\n phonenumber: travelDetailForm.phone,\r\n name: travelDetailForm.customer_name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n }`,\r\n description: `Insurance payment ${\r\n product.dsProduct ? 'for' + product.dsProduct : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n\r\n const getProductXml = async () => {\r\n let data;\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n updateMapKey();\r\n }\r\n\r\n return data;\r\n };\r\n\r\n const handleFlutterPayment = useFlutterwave(config);\r\n\r\n const handlePay = () => {\r\n setLoading(true);\r\n handleFlutterPayment({\r\n callback: response => {\r\n closePaymentModal(); // this will close the modal programmatically\r\n if (response.status === 'successful') {\r\n setPaid(true);\r\n setPaymentInfo(response);\r\n savePayment(response);\r\n } else {\r\n toast.error('Payment unsuccessful');\r\n console.error(response);\r\n setLoading(false);\r\n }\r\n },\r\n onClose: e => {\r\n console.info(e, 'closed');\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n\r\n const savePayment = async response => {\r\n const flutterwavePayment = response || paymentInfo;\r\n if (!flutterwavePayment) return;\r\n setLoading(true);\r\n const paymentData = {\r\n travel_id: travelDetailForm.travel_id,\r\n amount: flutterwavePayment.amount,\r\n payment_type: 'Online',\r\n premium: price,\r\n paystack_ref: flutterwavePayment.flw_ref,\r\n trxref: flutterwavePayment.tx_ref,\r\n status: flutterwavePayment.status,\r\n product_name: product.dsProduct\r\n };\r\n\r\n try {\r\n const res = await Promise.all([\r\n fetch(`${baseUrl}/users/travel/payment`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n }),\r\n updateMapKey()\r\n ]);\r\n\r\n let data = await res[0].json();\r\n if (!data.error && !data.errors) {\r\n setPayment(data);\r\n issueCertificate(true, data);\r\n } else {\r\n setError(true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const issueCertificate = async (hasPaid = false, paymentRequest) => {\r\n const pmt = paymentRequest || payment;\r\n setLoading(true);\r\n if (!payment && !hasPaid) {\r\n return savePayment(paymentInfo);\r\n }\r\n\r\n if (certificate) {\r\n return storeOnGibbs(certificate, pmt);\r\n }\r\n\r\n const xml = await getProductXml();\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'issuing',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n\r\n if (data.root.idRegContrato) {\r\n setCertificate(data.root);\r\n storeOnGibbs(data.root, pmt);\r\n } else {\r\n console.error(data);\r\n setLoading(false);\r\n setError(true);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const storeOnGibbs = async (certificate, _payment) => {\r\n if (gibbsResponse) {\r\n return completePayment(gibbsResponse, _payment, certificate);\r\n }\r\n const data = JSON.parse(\r\n JSON.stringify(travelDetailForm.gibssTransactionData)\r\n );\r\n data.Map_PolicyNo = certificate?.numContrato || '';\r\n data.Payment_Ref = _payment?.tx_ref || 'manual';\r\n data.MarketerID = travelDetailForm.marketer.MarketerID || '27033277';\r\n data.MarketerName =\r\n travelDetailForm.marketer.full_name || 'BOLAJI AKINMORIN';\r\n data.Title = travelDetailForm.Title || 'N/A';\r\n data.Premium = price;\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/complete-transaction`, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers\r\n });\r\n\r\n let response = await res.json();\r\n\r\n if (response.error) {\r\n setError(true);\r\n setLoading(false);\r\n } else {\r\n console.error(response);\r\n setGibbsResponse(response);\r\n completePayment(response, _payment, certificate);\r\n }\r\n } catch (error) {\r\n setLoading(false);\r\n console.error(error);\r\n setError(true);\r\n }\r\n };\r\n\r\n const completePayment = async (response, payment, certificate) => {\r\n let chiData = response?.BuyTravelInsuranceResult?.TravelID;\r\n\r\n const paymentData = {\r\n certificate_url: certificate?.file || '',\r\n chi_certificate_no: chiData?.CertificateNos || 'Not Available',\r\n chi_invoice_no: chiData?.InvoiceID || 'Not Available',\r\n chi_policy_number: chiData?.PolicyNumber || 'Not Available',\r\n chi_response_status: chiData?.StatusmSG || 'Not Available',\r\n id: payment?.data?.id,\r\n mapfre_certificate_id: certificate?.idRegContrato || '',\r\n mapfre_policy_number: certificate?.numContrato || ''\r\n };\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/travel/payments`, {\r\n method: 'POST',\r\n body: JSON.stringify(paymentData),\r\n headers\r\n });\r\n await res.json();\r\n nav(`/quotes/success/${travelDetailForm.travel_id}/${payment?.data?.id}`);\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n

    Make Payment

    \r\n
    \r\n\r\n
    \r\n Product:\r\n {product.dsProduct}\r\n
    \r\n
    \r\n Travel Purpose:\r\n {travelDetailForm.gibssTransactionData?.TravelPurpose}\r\n
    \r\n
    \r\n Amount: \r\n {price}\r\n
    \r\n\r\n {!paid && (\r\n
    \r\n Pay with Rave\r\n
    \r\n )}\r\n
    \r\n\r\n {!paid && !loading && (\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n
    \r\n )}\r\n\r\n {(paid || error) && (\r\n
    \r\n \r\n {loading ? (\r\n
    \r\n
    \r\n Please wait while we process your certificate, this may take a\r\n few minutes.
    \r\n Do not close the browser or leave this page.\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","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl, GibbsApiKey } from '../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n passengerDetailsState,\r\n travelDetailsState,\r\n profileDataState,\r\n guardianDetailsState,\r\n travelDetailFormState,\r\n nextOfKinDetailsState\r\n} from '../../../recoil/atoms';\r\nimport useLoginUser from '../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport { getAge } from '../../../utilities';\r\nimport localforage from 'localforage';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../utilities/use-validation';\r\nimport { guardianSchema } from '../NextOfKinDetails/next-of-kin.schema';\r\nimport CustomDropdown from '../../../components/custom-dropdown';\r\nimport Payment from '../Payment/payment';\r\n\r\nexport default function ProductDetails() {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const [headers] = useRecoilState(headerState);\r\n const [loading, setLoading] = useState(false);\r\n const [createLoading, setCreateLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [product] = useRecoilState(selectedProductState);\r\n const { updateMapKey } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [guardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [marketers, setMarketers] = useState([]);\r\n const [guardianHeight, setGuardianHeight] = useState({});\r\n const [errors, setErrors] = useState({});\r\n const isMinor = useMemo(\r\n () => getAge(passengerDetails.dateOfBirth) < 18,\r\n [passengerDetails.dateOfBirth]\r\n );\r\n\r\n const [completeUserCreate, setCompleteUserCreate] = useState(false);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas =\r\n guardianHeight.initial > 0 || isMinor ? { ...{}, ...guardianSchema } : {};\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const getProductXml = async insuranceData => {\r\n let data;\r\n console.log('insurance data: ', insuranceData);\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n setCoverDetails(data?.cover_details || {});\r\n return data;\r\n };\r\n\r\n const getPrices = async insuranceDataParam => {\r\n setLoading(true);\r\n const xml = await getProductXml(insuranceDataParam || insuranceData);\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n console.log('data in getPrices: ', data);\r\n setPriceInfo(data);\r\n setLoading(false);\r\n setError(false);\r\n } catch (error) {\r\n setError(true);\r\n setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setInsuranceData({ ...insuranceData, idRegProduct: product.cd });\r\n getPrices({ ...insuranceData, idRegProduct: product.cd });\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const buildGibsProfileData = (profileData, GibbsApiKey, product) => {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData.next_of_kin.nok_name,\r\n NoK_Relationship: profileData.next_of_kin.nok_relationship,\r\n NoK_Address: profileData.next_of_kin.nok_address,\r\n NoK_Email: profileData.next_of_kin.nok_email,\r\n NoK_PhoneNo: profileData.next_of_kin.nok_phone,\r\n CoverType: product.dsProduct\r\n };\r\n };\r\n\r\n const saveTravelAndProceed = async () => {\r\n setCreateLoading(true);\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n ...profileData,\r\n product: product.dsProduct\r\n }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name:\r\n passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n user_id: data.user_id,\r\n travel_id: data.travel_id,\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n destination: travelDetails.destination,\r\n marketer: nextOfKinDetails.marketer || 'N/A',\r\n gibssTransactionData: buildGibsProfileData(\r\n profileData,\r\n GibbsApiKey,\r\n product\r\n )\r\n };\r\n setProfileData({ ...profileData, travel_id: data.travel_id });\r\n setTravelDetailForm(travelDetailForm);\r\n setCompleteUserCreate(true);\r\n } else {\r\n toast.error('An error occurred, please try again');\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n toast.error('An error occurred, please try again');\r\n }\r\n\r\n setCreateLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n fetchMarketers();\r\n }, []);\r\n\r\n const fetchMarketers = async () => {\r\n const marketers = await localforage.getItem('marketers');\r\n if (marketers) setMarketers(marketers);\r\n const res = await fetch(`${baseUrl}/marketers`);\r\n const data = await res.json();\r\n if (res.status === 200) {\r\n data.Marketer.forEach(d => {\r\n d.full_name = `${d.FirstName} ${d.LastName}`;\r\n });\r\n setMarketers(data.Marketer);\r\n localforage.setItem('marketers', data.Marketer);\r\n }\r\n };\r\n\r\n const handleNextOfKinChange = (name, value) => {\r\n const data = { ...nextOfKinDetails, [name]: value };\r\n setNextOfKinDetails(data);\r\n // handleValidations(data, name);\r\n };\r\n\r\n const price = priceInfo?.root?.premiumBreakdown?.startPrice || '0.00';\r\n const totalInsured = priceInfo?.root?.premiumBreakdown?.numInsured || '1';\r\n\r\n return completeUserCreate ? (\r\n \r\n ) : (\r\n
    \r\n {/* add markerer referral here */}\r\n
    \r\n

    Referral

    \r\n \r\n\r\n {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isReferred: e.target.value\r\n });\r\n }}\r\n value={nextOfKinDetails.isReferred}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {nextOfKinDetails.isReferred === 'Agency/Marketers' && (\r\n
    \r\n \r\n {\r\n handleNextOfKinChange('marketer', selection);\r\n }}\r\n identifier='full_name'\r\n data={marketers}\r\n inputId={`marketer`}\r\n placeholder='Pick marketer'\r\n disable={false}\r\n showItems={true}\r\n value={nextOfKinDetails.marketer}\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n

    \r\n Product Details and Price as below\r\n

    \r\n
    \r\n
    {`${product.dsProduct} PLAN`}
    \r\n
    \r\n {product.ds}\r\n
    \r\n
    \r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\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 \r\n \r\n \r\n\r\n {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${product.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{product.maxDiasAntes}
    Maximum days after issuing (useful with claims):{product.maxDiasDespues}
    Insurer’s minimum age:{product.edadMinimaAsegurado}
    Insurer’s Maximum age:{product.edadMaximaAsegurado}
    Policy-holder’s minimum age:{product.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n
    \r\n Number Insured: {totalInsured}\r\n
    \r\n
    \r\n Total Fee: {price}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {!parseFloat(price) && !loading && (\r\n
    \r\n

    \r\n This product is not available at moment.
    \r\n Please try other products or try again later.\r\n

    \r\n
    \r\n )}\r\n\r\n
    \r\n activePage !== 0 && setActivePage(activePage - 1)}\r\n >\r\n Back\r\n \r\n {!parseFloat(price) || loading || error ? (\r\n <>\r\n ) : (\r\n \r\n {createLoading ? 'Saving...' : 'Proceed'}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { quotesPageState } from '../../recoil/atoms';\r\nimport TravelDetails from './TravelDetails/travel-details';\r\nimport PassengerDetails from './PassengerDetails/passenger-details';\r\nimport SelectPlan from './SelectPlan/select-plan';\r\nimport ProductDetails from './ProductDetails/product-details';\r\n\r\nconst QuotesForms = () => {\r\n const quotePages = [\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n const [activePage] = useRecoilState(quotesPageState);\r\n return
    {quotePages[activePage]}
    ;\r\n};\r\n\r\nexport default QuotesForms;\r\n","import React, { useEffect, Fragment } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n quotesPageState,\r\n guardianDetailsState,\r\n travelDetailsState,\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n travelDetailFormState\r\n} from '../../recoil/atoms';\r\nimport logo from '../../assets/image/logo.png';\r\nimport { quotesSteps } from '../../constants';\r\nimport QuotesForms from './quotes.forms';\r\nimport { Link } from 'react-router-dom';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\n\r\nconst Quotes = () => {\r\n const [activePage, setActivePage] = useRecoilState(quotesPageState);\r\n const { updateMapKey } = useLoginUser();\r\n\r\n const resetForms = () => {\r\n setGuardianDetails({});\r\n setNextOfKinDetails({});\r\n setPassengerDetails({});\r\n setTravelDetails({});\r\n setTravelDetailForm({});\r\n };\r\n\r\n const [, setGuardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [, setNextOfKinDetails] = useRecoilState(nextOfKinDetailsState);\r\n const [, setPassengerDetails] = useRecoilState(passengerDetailsState);\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n\r\n useEffect(() => {\r\n updateMapKey();\r\n setActivePage(0);\r\n\r\n return resetForms;\r\n // eslint-disable-next-line\r\n }, []);\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n CHI\r\n \r\n\r\n
      \r\n {quotesSteps.map((step, index) => (\r\n \r\n \r\n \r\n {step.title}\r\n \r\n \r\n {index !== quotesSteps.length - 1 && (\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 Quotes;\r\n","export default __webpack_public_path__ + \"static/media/travellers.8ce7dca9.svg\";","export default __webpack_public_path__ + \"static/media/success-icon.2d2f5e1d.svg\";","import travellers from '../../../assets/svg/travellers.svg';\r\nimport successIcon from '../../../assets/svg/success-icon.svg';\r\nimport { useEffect, useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { baseUrl } from '../../../constants';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport Retry from '../../../components/commons/retry';\r\nimport PrintCertifcate from './print-certifcate';\r\n\r\nconst SuccessPage = () => {\r\n const [data, setData] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [print, setPrint] = useState(false);\r\n\r\n const { travel_id, payment_id } = useParams();\r\n\r\n const printReciept = () => {\r\n setPrint(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (print) {\r\n setTimeout(() => {\r\n window.print();\r\n setPrint(false);\r\n }, 100);\r\n }\r\n }, [print]);\r\n\r\n const getDetails = () => {\r\n setLoading(true);\r\n fetch(`${baseUrl}/users/travel/${travel_id}/payment/${payment_id}`)\r\n .then(response => response.json())\r\n .then(response => {\r\n if (response.error || response.errors)\r\n throw new Error(response.message);\r\n if (response.data.payments && response.data.payments.reduce) {\r\n response.data.payments = response.data.payments.reduce(\r\n (acc, curr) =>\r\n parseInt(curr.id) === parseInt(payment_id) ? curr : acc,\r\n {}\r\n );\r\n }\r\n setData(response.data);\r\n setError(false);\r\n setLoading(false);\r\n })\r\n .catch(err => {\r\n toast.error(err.message);\r\n console.error(err);\r\n setError(true);\r\n setLoading(false);\r\n });\r\n };\r\n useEffect(() => {\r\n getDetails();\r\n // eslint-disable-next-line\r\n }, []);\r\n return print ? (\r\n \r\n ) : loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n ) : (\r\n
    \r\n
    \r\n travellers\r\n
    \r\n
    \r\n Success\r\n

    \r\n Congratulations! you insurance purchase was successful.\r\n

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

    Important Message!!!

    \r\n
    \r\n\r\n
    \r\n *Please note that the letter addressed to the embassy can be found\r\n in the 3rd page of the policy document***\r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SuccessPage;\r\n","export const schemas = {\r\n password: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Password'\r\n },\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport Header from '../../components/commons/header';\r\nimport { checkValidations, ErrorMessage } from '../../utilities/use-validation';\r\nimport { schemas } from './login.schema';\r\n\r\nimport { useRecoilState } from 'recoil';\r\nimport { loginState, userTypeState } from '../../recoil/atoms';\r\n\r\nimport { baseUrl } from '../../constants';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport localforage from 'localforage';\r\n// import { useMutation } from '@tanstack/react-query';\r\nimport axios from 'axios';\r\nimport endpoints from '../../requests/endpoints';\r\n\r\nconst Login = () => {\r\n const nav = useNavigate();\r\n const [state, setState] = useState({\r\n email: '',\r\n password: ''\r\n });\r\n const [errors, setErrors] = useState({\r\n email: '',\r\n password: ''\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const [login] = useRecoilState(loginState);\r\n const [, setUserType] = useRecoilState(userTypeState);\r\n\r\n const { updateLogin } = useLoginUser();\r\n\r\n // const loginUser = async () => {\r\n // try {\r\n // let res = await axios.post(endpoints.login.url);\r\n // console.log('res: ', res);\r\n // return res;\r\n // } catch (error) {\r\n // console.log('error: ', error);\r\n // }\r\n // };\r\n\r\n // const mutation = useMutation({\r\n // mutationFn: loginUser\r\n // });\r\n\r\n useEffect(() => {\r\n if (login) {\r\n if (login.first_login) {\r\n nav('/first-change-password');\r\n } else {\r\n nav('/dashboard');\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [login]);\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n setLoading(true);\r\n\r\n try {\r\n const response = await fetch(`${baseUrl}/login`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n },\r\n body: JSON.stringify(state)\r\n });\r\n\r\n const res = await response.json();\r\n if (res?.errors) {\r\n toast.error(res.message);\r\n setState({ ...state, password: '' });\r\n return;\r\n }\r\n if (res?.error) {\r\n toast.error(res.error);\r\n setState({ ...state, password: '' });\r\n return;\r\n }\r\n\r\n if (res?.user?.user_type === 'staff') {\r\n setUserType('staff');\r\n }\r\n\r\n setLoading(false);\r\n updateLogin(res);\r\n toast.success('Login successful, Welcome');\r\n localforage.setItem('loginState', res);\r\n return;\r\n } catch (error) {\r\n toast.error(error || 'Incorrect email and/or password');\r\n setLoading(false);\r\n }\r\n\r\n // mutation.mutate(userDetails);\r\n\r\n login();\r\n };\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n const data = { ...state, [name]: value };\r\n setState({ ...state, [name]: value });\r\n handleValidations(data, name);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Login

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

    Welcome back. Please login to your account here.

    \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 {/* {showPassword ? (\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 Forgot password?\r\n \r\n \r\n );\r\n};\r\nexport default Login;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Header from '../../components/commons/header';\r\nimport { checkValidations, ErrorMessage } from '../../utilities/use-validation';\r\n\r\nimport { useRecoilState } from 'recoil';\r\nimport { loginState } from '../../recoil/atoms';\r\n\r\nimport { baseUrl } from '../../constants';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\n\r\nconst ForgotPassword = () => {\r\n const nav = useNavigate();\r\n\r\n const [state, setState] = React.useState({\r\n email: '',\r\n password: '',\r\n invalidError: false,\r\n formErrors: {\r\n email: '',\r\n password: ''\r\n }\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [login] = useRecoilState(loginState);\r\n\r\n useEffect(() => {\r\n if (login) nav('/dashboard');\r\n });\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setLoading(true);\r\n const userDetails = {\r\n email: state.email\r\n };\r\n const { success } = handleValidations(userDetails);\r\n\r\n if (success) {\r\n fetch(`${baseUrl}/forgot-password`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n },\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.error || res.errors) {\r\n toast.error('Incorrect email');\r\n } else {\r\n toast.success('Reset instructions have been sent to your mail');\r\n }\r\n setLoading(false);\r\n })\r\n .catch(error => {\r\n toast.error('An error occurred, please try again');\r\n console.error(error);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas: {\r\n email: {\r\n required: true,\r\n inputType: 'email',\r\n label: 'Email'\r\n }\r\n },\r\n data,\r\n field: field\r\n });\r\n\r\n setState({ ...data, formErrors: errors });\r\n return { success };\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n const data = { ...state, [name]: value };\r\n setState({ ...state, [name]: value });\r\n handleValidations(data, name);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Forgot Password

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

    \r\n Enter your Email and instructions will be sent to you!. If you did not\r\n forget your password\r\n \r\n {' '}\r\n Login here?\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 ForgotPassword;\r\n","import { useLocation } from 'react-router-dom';\r\n\r\nconst useQuery = (key) => {\r\n const query = new URLSearchParams(useLocation().search)\r\n return query.get(key);\r\n};\r\n\r\nexport default useQuery;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Header from '../../components/commons/header';\r\nimport { checkValidations, ErrorMessage } from '../../utilities/use-validation';\r\n\r\nimport { useRecoilState } from 'recoil';\r\nimport { loginState } from '../../recoil/atoms';\r\n\r\nimport { baseUrl } from '../../constants';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport useQuery from '../../hooks/useQuery';\r\n\r\nconst ChangePassword = () => {\r\n const token = useQuery('amneshref');\r\n const nav = useNavigate();\r\n const [state, setState] = React.useState({\r\n password: '',\r\n password_confirmation: '',\r\n formErrors: {\r\n password: '',\r\n password_confirmation: ''\r\n }\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [login] = useRecoilState(loginState);\r\n\r\n useEffect(() => {\r\n if (login) nav('/dashboard');\r\n });\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setLoading(true);\r\n const userDetails = {\r\n password: state.password,\r\n password_confirmation: state.password_confirmation,\r\n token,\r\n amneshref: token\r\n };\r\n const { success } = handleValidations(userDetails);\r\n\r\n if (state.password !== state.password_confirmation) {\r\n setState({\r\n ...state,\r\n formErrors: {\r\n ...state.formErrors,\r\n password_confirmation: {\r\n success: false,\r\n input: state.password_confirmation,\r\n message: 'Password does not match'\r\n }\r\n }\r\n });\r\n } else {\r\n setState({\r\n ...state,\r\n formErrors: { ...state.formErrors, password_confirmation: '' }\r\n });\r\n }\r\n\r\n if (!success || state.password !== state.password_confirmation) {\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n fetch(`${baseUrl}/change-password`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n },\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.error || res.errors) {\r\n toast.error(res.message);\r\n setLoading(false);\r\n return;\r\n }\r\n toast.success('Password reset successfully, proceed to login');\r\n nav('/login');\r\n })\r\n .catch(error => {\r\n toast.error('An error occurred, please try again');\r\n console.error(error);\r\n setLoading(false);\r\n });\r\n };\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas: {\r\n password: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Password'\r\n },\r\n password_confirmation: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Password Confirm'\r\n }\r\n },\r\n data,\r\n field: field\r\n });\r\n\r\n setState({ ...data, formErrors: errors });\r\n return { success };\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n const data = { ...state, [name]: value };\r\n setState({ ...state, [name]: value });\r\n handleValidations(data, name);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Forgort Password

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

    \r\n Enter new password to complete you password reset, or skip and return\r\n to\r\n \r\n {' '}\r\n Login here?\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\nexport default ChangePassword;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Header from '../../components/commons/header';\r\nimport { checkValidations, ErrorMessage } from '../../utilities/use-validation';\r\n\r\nimport { useRecoilState } from 'recoil';\r\nimport { loginState } from '../../recoil/atoms';\r\n\r\nimport { baseUrl } from '../../constants';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\nimport localforage from 'localforage';\r\n\r\nconst FirstChangePassword = props => {\r\n const { headers, updateLogin } = useLoginUser();\r\n const nav = useNavigate();\r\n const [state, setState] = React.useState({\r\n password: '',\r\n password_confirmation: '',\r\n formErrors: {\r\n password: '',\r\n password_confirmation: ''\r\n }\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [login] = useRecoilState(loginState);\r\n\r\n useEffect(() => {\r\n if (!login) nav('/login');\r\n });\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setLoading(true);\r\n const userDetails = {\r\n password: state.password,\r\n password_confirmation: state.password_confirmation\r\n };\r\n const { success } = handleValidations(userDetails);\r\n\r\n if (state.password !== state.password_confirmation) {\r\n setState({\r\n ...state,\r\n formErrors: {\r\n ...state.formErrors,\r\n password_confirmation: {\r\n success: false,\r\n input: state.password_confirmation,\r\n message: 'Password does not match'\r\n }\r\n }\r\n });\r\n } else {\r\n setState({\r\n ...state,\r\n formErrors: { ...state.formErrors, password_confirmation: '' }\r\n });\r\n }\r\n\r\n if (!success || state.password !== state.password_confirmation) {\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n fetch(`${baseUrl}/update-password`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(res => res.json())\r\n .then(async res => {\r\n if (res.error || res.errors) {\r\n toast.error(res.message);\r\n setLoading(false);\r\n return;\r\n }\r\n toast.success('Password change successfully, proceed to dashboard');\r\n let loginState = await localforage.getItem('loginState');\r\n if (loginState) {\r\n await updateLogin(loginState);\r\n }\r\n nav('/dashboard');\r\n })\r\n .catch(error => {\r\n toast.error('An error occurred, please try again');\r\n console.error(error);\r\n setLoading(false);\r\n });\r\n };\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas: {\r\n password: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Password'\r\n },\r\n password_confirmation: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 20,\r\n label: 'Password Confirm'\r\n }\r\n },\r\n data,\r\n field: field\r\n });\r\n\r\n setState({ ...data, formErrors: errors });\r\n return { success };\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n const data = { ...state, [name]: value };\r\n setState({ ...state, [name]: value });\r\n handleValidations(data, name);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Change Password

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

    Please change your password to secure your account better

    \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\nexport default FirstChangePassword;\r\n","import React, { useState } from 'react';\r\nimport { checkValidations, ErrorMessage } from '../../utilities/use-validation';\r\nimport { schemas } from './login.schema';\r\n\r\nimport { baseUrl } from '../../constants';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport useLoginUser from '../../hooks/useLoginUser';\r\nimport localforage from 'localforage';\r\n\r\nconst ModalLogin = ({ close, email }) => {\r\n const [state, setState] = React.useState({\r\n email,\r\n password: '',\r\n invalidError: false,\r\n formErrors: {\r\n email: '',\r\n password: ''\r\n }\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { updateLogin } = useLoginUser();\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setLoading(true);\r\n const userDetails = {\r\n email: state.email,\r\n password: state.password\r\n };\r\n const { success } = handleValidations(userDetails);\r\n\r\n if (success) {\r\n fetch(`${baseUrl}/login`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n },\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n if (res.error || res.errors) {\r\n toast.error(res.error || 'Incorrect email and/or password');\r\n setLoading(false);\r\n return;\r\n }\r\n updateLogin(res);\r\n toast.success('Login successful, Welcome Back');\r\n localforage.setItem('loginState', res);\r\n close();\r\n // nav('/dashboard');\r\n })\r\n .catch(error => {\r\n toast.error('An error occurred, please try again');\r\n console.error(error);\r\n setLoading(false);\r\n });\r\n }\r\n };\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n\r\n setState({ ...data, formErrors: errors });\r\n return { success };\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n const data = { ...state, [name]: value };\r\n setState({ ...state, [name]: value });\r\n handleValidations(data, name);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Session Timeout

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

    Your Session timed out, Please login to continue.

    \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\nexport default ModalLogin;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useRecoilState } from 'recoil';\r\nimport { currentPackageState, currentPlanState } from '../../recoil/atoms';\r\nimport { toast } from 'react-toastify';\r\nimport Sidebar from '../../components/commons/Sidebar';\r\n\r\nconst InBetween = () => {\r\n const nav = useNavigate();\r\n const { package: insurancePackage, class: plan } = useParams();\r\n const [, setCurrentPackage] = useRecoilState(currentPackageState);\r\n const [, setCurrentPlan] = useRecoilState(currentPlanState);\r\n const [multiple, setMultiple] = useState(false);\r\n\r\n useEffect(() => {\r\n setCurrentPackage(insurancePackage);\r\n setCurrentPlan(plan);\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

    Buy Insurance

    \r\n nav(-1)}\r\n style={{ fontSize: '1.5rem', color: 'blue', cursor: 'pointer' }}\r\n >\r\n Cancel\r\n

    \r\n
    \r\n\r\n
    \r\n
    Agent
    \r\n

    \r\n What type of transaction do you want to handle?\r\n

    \r\n\r\n
    \r\n {multiple ? (\r\n
    \r\n {\r\n nav('/quotes/group/travel-details', {\r\n state: {\r\n insurancePackage,\r\n plan\r\n }\r\n });\r\n }}\r\n >\r\n Group transaction\r\n \r\n \r\n nav('/quotes/batch', {\r\n state: {\r\n insurancePackage,\r\n plan\r\n }\r\n })\r\n }\r\n >\r\n Bulk transaction\r\n \r\n
    \r\n ) : (\r\n <>\r\n setMultiple(true)}\r\n className=' button-secondary py-3 my-2'\r\n >\r\n Multiple Transaction\r\n \r\n\r\n \r\n nav(`/get-quotes/${insurancePackage}/${plan}`)\r\n }\r\n className='button-primary py-3 my-2'\r\n >\r\n Single Transaction\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 InBetween;\r\n","import { Outlet } from 'react-router-dom';\r\nimport Sidebar from '../../../components/commons/Sidebar';\r\nimport { Suspense } from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nconst Batch = () => {\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\nexport default Batch;\r\n","import { getRandomString } from '../utilities';\r\n\r\nexport default function generateConfig(details, price, product) {\r\n const url =\r\n (!process.env.NODE_ENV || process.env.NODE_ENV) === 'development'\r\n ? 'http://localhost:3000'\r\n : 'travel.chiplc.com';\r\n\r\n const name = details?.customer_name || details?.name;\r\n\r\n console.log('details: ', details);\r\n console.log('name: ', name);\r\n console.log('price: ', price);\r\n console.log('product: ', product);\r\n\r\n if (!details || !details.email || !name || !price || !product) {\r\n return { error: 'Missing necessary value(s).' };\r\n }\r\n\r\n return {\r\n tx_ref: getRandomString(3) + '-' + Date.now(),\r\n amount: parseFloat(price),\r\n currency: 'NGN',\r\n redirect_url: `${url}/certificate`,\r\n payment_options: 'card,mobilemoney,ussd,banktransfer',\r\n customer: {\r\n email: details.email,\r\n phonenumber: details.phone,\r\n name\r\n },\r\n customizations: {\r\n title: `Insurance payment ${product ? 'for ' + product : ''}`,\r\n description: `Insurance payment ${\r\n product ? 'for ' + product : ''\r\n } on CHI Plc`,\r\n logo: 'https://chiplc.com/wp-content/uploads/2019/09/cropped-New-CHI-logo-1.png'\r\n }\r\n };\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Button, Modal, Spinner } from 'react-bootstrap';\r\nimport { useRecoilState } from 'recoil';\r\nimport { NavLink, useNavigate } from 'react-router-dom';\r\nimport { baseUrl } from '../../../../constants';\r\nimport {\r\n headerState,\r\n selectedProductState,\r\n priceInformationState,\r\n insuranceDataState,\r\n mafreKeyState,\r\n allDataState,\r\n passengerDetailsState,\r\n totalPriceState\r\n} from '../../../../recoil/atoms';\r\nimport useLoginUser from '../../../../hooks/useLoginUser';\r\nimport { toast } from 'react-toastify';\r\nimport generateConfig from '../../../../helpers/generateConfig';\r\n\r\nexport default function ProductDetails() {\r\n const [headers] = useRecoilState(headerState);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [priceInfo, setPriceInfo] = useRecoilState(priceInformationState);\r\n const [selectedProduct] = useRecoilState(selectedProductState);\r\n const [mapKey, setMapKey] = useRecoilState(mafreKeyState);\r\n const [allData, setAllData] = useRecoilState(allDataState);\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const { updateMapKey } = useLoginUser();\r\n const [coverDetails, setCoverDetails] = useState(null);\r\n const [indx, setIndx] = useState(0);\r\n const [price, setPrice] = useState([]);\r\n const [totalInsured, setTotalInsured] = useState([]);\r\n const [totalPrice, setTotalPrice] = useState(0);\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const nav = useNavigate();\r\n const getProductXml = async insuranceData => {\r\n try {\r\n const res = await fetch(`${baseUrl}/products-xml-formatted`, {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(insuranceData)\r\n });\r\n\r\n let data = await res.json();\r\n if (data.error || data.errors) {\r\n throw new Error('Missing Token');\r\n }\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n setError(true);\r\n updateMapKey();\r\n }\r\n };\r\n\r\n const naira = Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'NGN'\r\n });\r\n\r\n const getPrices = async insuranceData => {\r\n if (\r\n insuranceData &&\r\n insuranceData?.terms &&\r\n insuranceData?.idRegProduct &&\r\n insuranceData?.deliveryDate\r\n ) {\r\n // all required data is available, proceed\r\n const xml = await getProductXml(insuranceData);\r\n\r\n try {\r\n if (!xml || !xml.data) {\r\n throw new Error(\"Couldn't load xml\");\r\n }\r\n if (\r\n xml &&\r\n xml?.raw_data?.root[0] ===\r\n 'THE SESSION DOES Not EXIST, THE USER HAS Not BEEN AUTHENTICATED'\r\n ) {\r\n throw new Error(\r\n 'THE SESSION DOES Not EXIST, THE USER HAS Not BEEN AUTHENTICATED'\r\n );\r\n }\r\n const res = await fetch(`${baseUrl}/product-quotes`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n action: 'getPrices',\r\n xml: xml.data,\r\n xml_raw: xml.xml\r\n }),\r\n headers\r\n });\r\n\r\n let data = await res.json(); // contains price info\r\n if (data.error || data.errors) {\r\n throw new Error('Unable to generate price');\r\n }\r\n return { ...xml?.cover_details, ...data };\r\n } catch (error) {\r\n console.log('error: ', error);\r\n }\r\n } else {\r\n console.log('InsuranceData is missing some data');\r\n return;\r\n }\r\n };\r\n\r\n const handlePayNow = async data => {\r\n //! generate payment link for bulk sum\r\n // generateConfig(travelDetailForm, totalPrice, selectedProduct.dsProduct)\r\n //! redirect to payment link\r\n await fetch('https://api.flutterwave.com/v3/payments', {\r\n method: 'POST',\r\n body: data\r\n });\r\n };\r\n\r\n //! probably going to have to loop through insurance data for each customer\r\n useEffect(() => {\r\n const updatedAllData = allData.map(userData =>\r\n // update allData's insuranceData state with idRegProduct\r\n ({\r\n ...userData,\r\n insuranceData: {\r\n ...userData.insuranceData,\r\n idRegProduct: userData.selectedProduct.cd\r\n }\r\n })\r\n );\r\n\r\n setAllData(updatedAllData);\r\n\r\n const fetch = () =>\r\n Promise.all(\r\n updatedAllData.map(async data => await getPrices(data.insuranceData))\r\n );\r\n\r\n setLoading(true);\r\n\r\n fetch()\r\n .then(data => {\r\n if (data?.length) {\r\n data.map((datum, datumIndex) => {\r\n if (datum) {\r\n const {\r\n root: {\r\n premiumBreakdown: { startPrice, numInsured }\r\n }\r\n } = datum;\r\n\r\n setAllData(prevData =>\r\n prevData.map((data, indx) => {\r\n if (indx === datumIndex) {\r\n return { ...data, price: startPrice };\r\n }\r\n return data;\r\n })\r\n );\r\n\r\n setPriceInfo(prevPriceInfo => [...prevPriceInfo, datum]);\r\n setTotalInsured(prevTotalInsured => [\r\n ...prevTotalInsured,\r\n numInsured\r\n ]);\r\n\r\n if (startPrice && !isNaN(startPrice)) {\r\n setPrice(prevPrice => [...prevPrice, startPrice]);\r\n setTotalPrice(\r\n prevTotalPrice => prevTotalPrice + Number(startPrice)\r\n );\r\n }\r\n }\r\n });\r\n\r\n setLoading(false);\r\n setError(false);\r\n }\r\n })\r\n .catch(err => {\r\n console.log('error from getPrices: ', err);\r\n setError(true);\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n useEffect(\r\n () => console.log('selectedProduct: ', selectedProduct),\r\n [selectedProduct]\r\n );\r\n\r\n let data = '';\r\n\r\n if (loading) {\r\n data = (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n if (error) {\r\n data = (\r\n <>\r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n if (!loading && !error) {\r\n data = (\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 {coverDetails &&\r\n Object.keys(coverDetails).map(detail => (\r\n <>\r\n \r\n \r\n \r\n {coverDetails[detail].map(cover => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
    \r\n PRODUCT DETAILS\r\n
    Maximum number of risks:${allData[indx]?.selectedProduct?.numMaxRiesgos}
    Maximum days before issuing (useful with claims):{allData[indx]?.selectedProduct?.maxDiasAntes}
    Maximum days after issuing (useful with claims):{allData[indx]?.selectedProduct?.maxDiasDespues}
    Insurer’s minimum age:{allData[indx]?.selectedProduct?.edadMinimaAsegurado}
    Insurer’s Maximum age:{allData[indx]?.selectedProduct?.edadMaximaAsegurado}
    Policy-holder’s minimum age:{allData[indx]?.selectedProduct?.edadMinimaTomador}
    \r\n COVERAGE DETAILS\r\n
    BENEFITSLimits
    \r\n {detail}\r\n
    {cover.name}{cover.value}
    \r\n
    \r\n

    \r\n Number Insured: {totalInsured[indx]}\r\n

    \r\n

    \r\n Fee: {naira.format(price[indx])}\r\n

    \r\n\r\n

    {`Total Price for all ${\r\n allData.length\r\n } customer ${allData.length > 1 ? 's' : ''}: ${naira.format(\r\n Number.parseFloat(totalPrice).toFixed(2)\r\n )}`}

    \r\n
    \r\n\r\n {indx > 0 && (\r\n setIndx(ind => ind - 1)}\r\n >\r\n View previous product details\r\n \r\n )}\r\n\r\n {indx < allData.length - 1 && (\r\n setIndx(ind => ind + 1)}\r\n >\r\n View next product details\r\n \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n

    \r\n {`Product Details and Price for passenger: ${allData[indx]?.passengerDetails?.firstName} ${allData[indx]?.passengerDetails?.lastName}`}\r\n

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

    {`${allData[indx]?.selectedProduct?.dsProduct} PLAN`}

    \r\n {allData[indx]?.selectedProduct?.ds}\r\n
    \r\n\r\n \r\n {data}\r\n\r\n {!parseFloat(price[indx]) && !loading && (\r\n
    \r\n

    \r\n This product is not available at moment.
    \r\n Please try other products or try again later.\r\n

    \r\n
    \r\n )}\r\n\r\n
    \r\n {\r\n nav(-1);\r\n if (allData?.length) {\r\n toast.info(\r\n 'Check list at bottom of page to edit or delete previous data.'\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 \r\n Payment\r\n \r\n Pay now or send payment link to Policy Holder.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\n\r\nimport {\r\n displayPopUpFormState,\r\n formIndexState,\r\n allDataState\r\n} from '../../recoil/atoms';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst List = ({ setBuyingForMultiple }) => {\r\n const [displayPopUpForm, setDisplayPopUpForm] = useRecoilState(\r\n displayPopUpFormState\r\n );\r\n const [formIndex, setFormIndex] = useRecoilState(formIndexState);\r\n const [allData, setAllData] = useRecoilState(allDataState);\r\n\r\n const [showConfirmation, setShowConfirmation] = useState(false);\r\n\r\n const handleEdit = index => {\r\n setDisplayPopUpForm(true);\r\n setFormIndex(index);\r\n };\r\n\r\n const handleDelete = index => {\r\n const updatedAllData = allData?.filter((_, i) => i !== index);\r\n setAllData(updatedAllData);\r\n toast.info('Deleted successfully.');\r\n if (!updatedAllData?.length) setBuyingForMultiple(false);\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\n \r\n \r\n {allData.map(({ passengerDetails }, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    First NameLast NamePhone NumberPassport NumberAction
    \r\n {passengerDetails?.firstName}\r\n {passengerDetails?.lastName}\r\n {passengerDetails?.phoneNumber}\r\n \r\n {passengerDetails?.passportNumber}\r\n \r\n {!showConfirmation ? (\r\n <>\r\n handleEdit(index)}\r\n style={{\r\n fontSize: '1.5rem'\r\n }}\r\n >\r\n Edit\r\n \r\n\r\n setShowConfirmation(true)}\r\n style={{\r\n fontSize: '1.5rem'\r\n }}\r\n >\r\n Delete\r\n \r\n \r\n ) : (\r\n
    \r\n Are you sure?\r\n\r\n
    \r\n handleDelete(index)}\r\n >\r\n Yes\r\n \r\n setShowConfirmation(false)}\r\n >\r\n No\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default List;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport moment from 'moment';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport {\r\n nextOfKinDetailsState,\r\n passengerDetailsState,\r\n guardianDetailsState,\r\n insuranceDataState,\r\n clearFieldsState,\r\n isMinorState,\r\n guardianHeightState\r\n} from '../../../../recoil/atoms';\r\nimport { useRecoilState } from 'recoil';\r\nimport { getAge } from '../../../../utilities';\r\n\r\nimport plusIcon from '../../../../assets/svg/plus.svg';\r\nimport collapseIcon from '../../../../assets/svg/collapse.svg';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport { genders, titles, relationships } from '../../../../constants';\r\nimport { guardianSchema } from '../../NextOfKinDetails/next-of-kin.schema';\r\nimport getPassenger from '../helpers/getPassenger';\r\nimport getGuardian from '../helpers/getGuardian';\r\n\r\nconst GuardianDetails = () => {\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n const [guardianDetails, setGuardianDetails] =\r\n useRecoilState(guardianDetailsState);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [clearFields] = useRecoilState(clearFieldsState);\r\n const [isMinor, setIsMinor] = useRecoilState(isMinorState);\r\n\r\n const [errors, setErrors] = useState({});\r\n const [guardianHeight, setGuardianHeight] =\r\n useRecoilState(guardianHeightState);\r\n\r\n const guardianRef = useRef();\r\n const showGuardian = guardianHeight.initial > 0 || isMinor;\r\n\r\n // useEffect(() => {\r\n // if (callSaveUserAndProceed) saveUserAndProceed();\r\n // }, [callSaveUserAndProceed]);\r\n\r\n useEffect(() => {\r\n const guardian = guardianRef.current.clientHeight + 25;\r\n setGuardianHeight({ initial: 0, new: guardian });\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n if (isMinor) {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isPolicyHolder: !isMinor\r\n });\r\n setTimeout(handleToggle, 100);\r\n }\r\n // eslint-disable-next-line\r\n }, [isMinor]);\r\n\r\n useEffect(() => {\r\n const newIsMinor = getAge(passengerDetails.dateOfBirth) < 18;\r\n setIsMinor(newIsMinor);\r\n }, [passengerDetails.dateOfBirth]);\r\n\r\n useEffect(() => {\r\n if (clearFields) {\r\n setGuardianDetails({\r\n firstName: '',\r\n lastName: '',\r\n gender: '',\r\n title: '',\r\n email: '',\r\n phoneNumber: '',\r\n dateOfBirth: '',\r\n passportNumber: '',\r\n address: '',\r\n relationship: ''\r\n });\r\n setIsMinor(false);\r\n setInsuranceData({});\r\n }\r\n }, [clearFields]);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas =\r\n guardianHeight.initial > 0 || isMinor ? { ...{}, ...guardianSchema } : {};\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleToggle = () => {\r\n if (guardianHeight.initial > 0) {\r\n setGuardianHeight({ initial: 0, new: guardianHeight.initial });\r\n } else {\r\n setGuardianHeight({ initial: guardianHeight.new });\r\n }\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...guardianDetails, [name]: value };\r\n // const { success } = handleValidations(data, name);\r\n\r\n // if (success)\r\n setGuardianDetails(data);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n !isMinor && handleToggle()}>\r\n {guardianHeight.initial > 0 ? (\r\n \r\n {'Remove guardian'}\r\n \r\n ) : isMinor ? (\r\n 'You are quite young, please add a guardian'\r\n ) : (\r\n 'I want to include a guardian'\r\n )}\r\n \r\n 0 ? collapseIcon : plusIcon}\r\n alt='expand'\r\n onClick={handleToggle}\r\n style={{ opacity: isMinor ? '0.5' : '1' }}\r\n />\r\n
    \r\n\r\n 0) ? 'collapse' : 'visible'\r\n }}\r\n >\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianFirstName'\r\n placeholder='Enter guardian first name'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n type='text'\r\n id='guardianLastName'\r\n placeholder='Enter guardian surname'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`guardianGender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{ gender: guardianDetails.gender }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`guardianTitle`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{ title: guardianDetails.title }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n id='guardianEmail'\r\n type='email'\r\n placeholder='Enter guardian email'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n handleChange(\r\n event.target.name,\r\n event.target.value.replace(/[^0-9.]/g, '')\r\n )\r\n }\r\n id='guardianPhone'\r\n type='phone'\r\n placeholder='Enter guardian phone'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n id='guardianDateOfBirth'\r\n type='date'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n id='guardianPassport'\r\n type='text'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleChange(event.target.name, event.target.value)\r\n }\r\n id='guardianAddress'\r\n type='address'\r\n placeholder='enter guardian address'\r\n readOnly={!showGuardian}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n handleChange('relationship', selection.relationship);\r\n }}\r\n identifier='relationship'\r\n data={relationships}\r\n inputId={`guardian-relationship`}\r\n placeholder='Pick relationship'\r\n disable={false}\r\n showItems={true}\r\n value={{ relationship: guardianDetails.relationship }}\r\n readOnly={!showGuardian}\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 GuardianDetails;\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\nimport { useRecoilState } from 'recoil';\r\nimport {\r\n passengerDetailsState,\r\n clearFieldsState,\r\n allDataState,\r\n formIndexState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport { genders, titles, relationships } from '../../../../constants';\r\nimport { schemas } from '../../PassengerDetails/passenger-details.schema';\r\n\r\nconst PassengerDetails = ({ setAllPassengerDetailsInputSuccess }) => {\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n const [clearFields] = useRecoilState(clearFieldsState);\r\n\r\n const [errors, setErrors] = useState({});\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n const [successMap, setSuccessMap] = useState({});\r\n\r\n useEffect(() => {\r\n if (clearFields) {\r\n setPassengerDetails({});\r\n }\r\n }, [clearFields]);\r\n\r\n const numberOfRequiredInputFields = 5;\r\n const notRequiredKeys = ['title', 'phoneNumber', 'email', 'address'];\r\n useEffect(() => {\r\n const trueKeys = Object.keys(successMap).filter(\r\n key => successMap[key] === true && !notRequiredKeys.includes(key)\r\n );\r\n\r\n if (trueKeys?.length)\r\n setAllPassengerDetailsInputSuccess(\r\n trueKeys.length >= numberOfRequiredInputFields\r\n );\r\n }, [successMap]);\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...passengerDetails, [name]: value };\r\n const { success } = handleValidations(data, name);\r\n setPassengerDetails(data);\r\n setSuccessMap({ ...successMap, [name]: success });\r\n };\r\n\r\n const handleChangeDropdown = (name, value) => {\r\n const data = {\r\n ...passengerDetails,\r\n [name]: value\r\n };\r\n const { success } = handleValidations(data, name);\r\n setPassengerDetails(data);\r\n setSuccessMap({ ...successMap, [name]: success });\r\n if (name === 'startDate') {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n endDate: ''\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n

    Passenger Details

    \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 handleChangeDropdown('gender', selection.gender);\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n gender:\r\n passengerDetails.gender ||\r\n // allData[formIndex]?.passengerDetails.gender ||\r\n ''\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangeDropdown('title', selection.title);\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n title:\r\n passengerDetails.title ||\r\n // allData[formIndex]?.passengerDetails.title ||\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handleChange(e);\r\n }}\r\n id='phone'\r\n type='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
    \r\n );\r\n};\r\n\r\nexport default PassengerDetails;\r\n","import React, { useState, useCallback, useEffect } from 'react';\r\nimport { Spinner, ProgressBar } from 'react-bootstrap';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport { toast } from 'react-toastify';\r\nimport { useRecoilState } from 'recoil';\r\nimport { baseUrl } from '../../../../constants';\r\nimport {\r\n headerState,\r\n quotesPageState,\r\n passportUrlState,\r\n travelDetailFormState,\r\n uploadState,\r\n fileState,\r\n clearFieldsState\r\n} from '../../../../recoil/atoms';\r\nimport upload from '../../../../assets/svg/upload.svg';\r\n\r\nconst PassportUpload = () => {\r\n const [file, setFile] = useRecoilState(fileState);\r\n const [, setPassport] = useRecoilState(passportUrlState);\r\n const [clearFields] = useRecoilState(clearFieldsState);\r\n\r\n const [progress, setProgress] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (clearFields) {\r\n setFile(null);\r\n }\r\n }, [clearFields]);\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n setPassport(null);\r\n if (acceptedFiles[0] && acceptedFiles[0].size > 2097152) {\r\n toast.error('Please select a file smaller than 2Mb');\r\n return;\r\n }\r\n\r\n if (acceptedFiles[0] && !acceptedFiles[0].type.includes('image')) {\r\n toast.error('Please select an image file (jpeg, png, gif)');\r\n return;\r\n }\r\n\r\n setFile(acceptedFiles[0]);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\r\n\r\n return (\r\n
    \r\n

    Passport Upload

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n
    \r\n upload\r\n
    \r\n

    \r\n Drag and drop the file here, or click to select file\r\n

    \r\n

    \r\n \r\n Note: The file should be smaller 2MB and must be an\r\n image (jpeg,jpg,png,gif)\r\n \r\n

    \r\n e.preventDefault()}\r\n >\r\n Upload\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n {file && (\r\n
    \r\n upload {file.name}\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\nexport default PassportUpload;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport moment from 'moment';\r\nimport {\r\n travelDetailsState,\r\n clearFieldsState,\r\n currentPackageState,\r\n currentPlanState,\r\n allDataState,\r\n formIndexState\r\n} from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport { schemas } from '../../TravelDetails/travel-details.schema';\r\n\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport useCountries from '../../../../hooks/useCountries';\r\nimport { packages } from '../../../../constants';\r\n\r\nconst TravelDetails = ({ setAllTravelDetailsInputSuccess }) => {\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [clearFields] = useRecoilState(clearFieldsState);\r\n const [currentPackage] = useRecoilState(currentPackageState);\r\n const [currentPlan] = useRecoilState(currentPlanState);\r\n const [allData] = useRecoilState(allDataState);\r\n const [formIndex] = useRecoilState(formIndexState);\r\n\r\n const [errors, setErrors] = useState({});\r\n const [successMap, setSuccessMap] = useState({});\r\n\r\n const { countries } = useCountries();\r\n\r\n const numberOfRequiredInputFields = 5;\r\n useEffect(() => {\r\n const trueKeys = Object.keys(successMap).filter(\r\n key => successMap[key] === true\r\n );\r\n\r\n if (trueKeys?.length)\r\n setAllTravelDetailsInputSuccess(\r\n trueKeys.length >= numberOfRequiredInputFields\r\n );\r\n }, [successMap]);\r\n\r\n useEffect(() => {\r\n getDateDifference(travelDetails.startDate, travelDetails.endDate);\r\n // eslint-disable-next-line\r\n }, [travelDetails.startDate, travelDetails.endDate]);\r\n\r\n useEffect(() => {\r\n handleChange('purpose', currentPackage);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (clearFields) {\r\n setTravelDetails({});\r\n }\r\n }, [clearFields]);\r\n\r\n const getDateDifference = (startDate, endDate) => {\r\n const difference = Math.floor(\r\n (new Date(endDate) - new Date(startDate)) / 86400000\r\n );\r\n handleChange('duration', difference + 1);\r\n };\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n const { success } = handleValidations(data, name);\r\n setTravelDetails(data);\r\n setSuccessMap({ ...successMap, [name]: success });\r\n };\r\n\r\n return (\r\n
    \r\n

    Travel Details

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n handleChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n destination: travelDetails.destination || ''\r\n }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('purpose', selection?.purpose)}\r\n identifier='purpose'\r\n data={[\r\n { purpose: packages[0]?.name },\r\n { purpose: packages[1]?.name },\r\n { purpose: packages[2]?.name },\r\n { purpose: packages[3]?.name }\r\n ]}\r\n inputId={`purpose`}\r\n placeholder='Purpose'\r\n disable={false}\r\n showItems={true}\r\n value={travelDetails?.purpose || ''}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('startDate', event.target.value)}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n handleChange('endDate', event.target.value)}\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 TravelDetails;\r\n","import React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nconst Back = () => {\r\n const nav = useNavigate();\r\n\r\n return (\r\n nav(-1)}\r\n className='align-self-end'\r\n style={{ fontSize: '1.5rem', cursor: 'pointer', color: 'blue' }}\r\n >\r\n Back\r\n

    \r\n );\r\n};\r\n\r\nexport default Back;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { allDataState, currentPackageState } from '../../../../recoil/atoms';\r\nimport { baseUrl } from '../../../../constants';\r\nimport { getRandomString } from '../../../../utilities';\r\nimport Back from '../../../../components/commons/Back';\r\nimport generateConfig from '../../../../helpers/generateConfig';\r\n\r\nexport default function Payment() {\r\n const [allData] = useRecoilState(allDataState);\r\n const [currentPackage] = useRecoilState(currentPackageState);\r\n\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [configs, setConfigs] = useState([]);\r\n\r\n const makePayment = async arr => {\r\n const res = await fetch(`${baseUrl}/users/travel/batch-payment`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(arr)\r\n });\r\n return res.json();\r\n };\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n let configs = allData?.map(\r\n ({\r\n travelDetailForm,\r\n selectedProduct,\r\n price,\r\n insuranceData,\r\n travelDetails: { purpose }\r\n }) => {\r\n if (!travelDetailForm) {\r\n console.log(\r\n `Cannot generate config. Missing travelDetailForm. travelDetailForm: ${travelDetailForm}`\r\n );\r\n return null;\r\n }\r\n if (!selectedProduct) {\r\n console.log(\r\n `Cannot generate config. Missing selectedProduct. selectedProduct: ${selectedProduct}`\r\n );\r\n return null;\r\n }\r\n if (!price) {\r\n console.log(`Cannot generate config. Missing price. price: ${price}`);\r\n return null;\r\n }\r\n\r\n if (!purpose) {\r\n console.log(\r\n `Cannot generate config. Missing purpose. purpose: ${purpose}`\r\n );\r\n return null;\r\n }\r\n\r\n const conf = generateConfig(\r\n travelDetailForm,\r\n price,\r\n selectedProduct.dsProduct\r\n );\r\n if (conf?.error) {\r\n console.log('error: ', conf.error);\r\n return null;\r\n }\r\n return {\r\n ...conf,\r\n insurance_data: insuranceData,\r\n travel_detail: travelDetailForm,\r\n product: selectedProduct?.dsProduct,\r\n price,\r\n purpose\r\n };\r\n }\r\n );\r\n //! TO-DO: add check to ensure config is non-empty\r\n console.log('configs: ', configs);\r\n if (configs) {\r\n setConfigs(configs);\r\n try {\r\n makePayment(configs)\r\n .then(data => {\r\n console.log('result of batch payment operation: ', data);\r\n if (data?.data === 'success') {\r\n setSuccess(true);\r\n } else {\r\n setError(true);\r\n toast.error(data?.data);\r\n return;\r\n }\r\n })\r\n .catch(err => {\r\n console.log('error during batch payment: ', err);\r\n setError(true);\r\n toast.error(err);\r\n });\r\n } catch (error) {\r\n console.log('error during batch payment: ', error);\r\n setError(error);\r\n toast.error(error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n } else {\r\n toast.err('An error occurred');\r\n setError(true);\r\n return;\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n\r\n {loading && }\r\n\r\n {error && (\r\n
    \r\n

    An error occurred. Please retry.

    \r\n
    \r\n )}\r\n\r\n {success && (\r\n
    \r\n

    Successful Transaction

    \r\n

    \r\n Payment links have been generated and sent to customers.\r\n

    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport localforage from 'localforage';\r\nimport { nextOfKinDetailsState, isMinorState } from '../../../../recoil/atoms';\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n ErrorMessage,\r\n checkValidations\r\n} from '../../../../utilities/use-validation';\r\nimport { guardianSchema } from '../../NextOfKinDetails/next-of-kin.schema';\r\nimport { baseUrl } from '../../../../constants';\r\n\r\nconst Referral = () => {\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [isMinor] = useRecoilState(isMinorState);\r\n\r\n const [marketers, setMarketers] = useState([]);\r\n const [guardianHeight] = useState({});\r\n const [errors, setErrors] = useState({});\r\n\r\n const fetchMarketers = async () => {\r\n const marketers = await localforage.getItem('marketers');\r\n if (marketers) setMarketers(marketers);\r\n const res = await fetch(`${baseUrl}/marketers`);\r\n const data = await res.json();\r\n if (res.status === 200) {\r\n data.Marketer.forEach(d => {\r\n d.full_name = `${d.FirstName} ${d.LastName}`;\r\n });\r\n setMarketers(data.Marketer);\r\n localforage.setItem('marketers', data.Marketer);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchMarketers();\r\n }, []);\r\n\r\n const handleValidations = (data, field) => {\r\n const schemas =\r\n guardianHeight.initial > 0 || isMinor ? { ...{}, ...guardianSchema } : {};\r\n console.log('schemas: ', schemas);\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleNextOfKinChange = (name, value) => {\r\n const data = { ...nextOfKinDetails, [name]: value };\r\n handleValidations(data, name);\r\n setNextOfKinDetails(data);\r\n };\r\n\r\n return (\r\n
    \r\n {/* add markerer referral here */}\r\n
    \r\n

    Referral

    \r\n\r\n \r\n\r\n
    \r\n
    \r\n {\r\n setNextOfKinDetails({\r\n ...nextOfKinDetails,\r\n isReferred: e.target.value\r\n });\r\n }}\r\n value={nextOfKinDetails.isReferred}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n {nextOfKinDetails.isReferred === 'Agency/Marketers' && (\r\n
    \r\n \r\n {\r\n handleNextOfKinChange('marketer', selection);\r\n }}\r\n identifier='full_name'\r\n data={marketers}\r\n inputId={`marketer`}\r\n placeholder='Pick marketer'\r\n disable={false}\r\n showItems={true}\r\n value={nextOfKinDetails.marketer}\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 Referral;\r\n","export default function formateMafreDate(date) {\r\n if (date) return date.split('-').reverse().join('/');\r\n}\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport moment from 'moment';\r\nimport { allDataState, displayPopUpFormState } from '../../../../recoil/atoms';\r\nimport { AiOutlineClose } from 'react-icons/ai';\r\nimport { toast } from 'react-toastify';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport CustomDropdown from '../../../../components/custom-dropdown';\r\nimport {\r\n checkValidations,\r\n ErrorMessage\r\n} from '../../../../utilities/use-validation';\r\nimport {\r\n travelDetailsState,\r\n clearFieldsState,\r\n currentPackageState,\r\n currentPlanState,\r\n formIndexState,\r\n passengerDetailsState,\r\n passportUrlState,\r\n fileState,\r\n selectedProductState\r\n} from '../../../../recoil/atoms';\r\nimport { schemas } from '../../TravelDetails/travel-details.schema';\r\nimport useCountries from '../../../../hooks/useCountries';\r\nimport useProducts from '../../../../hooks/useProducts';\r\nimport { genders, titles, relationships } from '../../../../constants';\r\nimport upload from '../../../../assets/svg/upload.svg';\r\nimport { getProductDescription } from '../../../../constants';\r\n\r\nconst EditModal = () => {\r\n const [allData, setAllData] = useRecoilState(allDataState);\r\n const [displayPopUpForm, setDisplayPopUpForm] = useRecoilState(\r\n displayPopUpFormState\r\n );\r\n const [travelDetails, setTravelDetails] = useRecoilState(travelDetailsState);\r\n const [currentPackage] = useRecoilState(currentPackageState);\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n const [, setPassport] = useRecoilState(passportUrlState);\r\n const [file, setFile] = useRecoilState(fileState);\r\n const [formIndex, setFormIndex] = useRecoilState(formIndexState);\r\n const [selectedProduct, setSelectedProduct] =\r\n useRecoilState(selectedProductState);\r\n\r\n const [otherTitle, setOtherTitle] = useState(false);\r\n const [errors, setErrors] = useState({});\r\n const [showPlans, setShowPlans] = useState(true);\r\n\r\n const { countries } = useCountries();\r\n\r\n useEffect(() => console.log('formIndex: ', formIndex), [formIndex]);\r\n useEffect(() => console.log('allData: ', allData), [allData]);\r\n\r\n const { products, loading, error, getProducts } = useProducts();\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n if (acceptedFiles[0] && acceptedFiles[0].size > 2097152) {\r\n toast.error('Please select a file smaller than 2Mb');\r\n return;\r\n }\r\n\r\n if (acceptedFiles[0] && !acceptedFiles[0].type.includes('image')) {\r\n toast.error('Please select an image file (jpeg, png, gif)');\r\n return;\r\n }\r\n\r\n let updatedAllData = allData.map((data, index) => {\r\n if (index === formIndex) {\r\n return {\r\n ...data,\r\n file: acceptedFiles[0]\r\n };\r\n }\r\n });\r\n setAllData(updatedAllData);\r\n }, []);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\r\n\r\n const closePopUp = () => {\r\n setDisplayPopUpForm(false);\r\n };\r\n\r\n const buyNow = product => {\r\n let updatedAllData = allData.map((data, index) => {\r\n if (index === formIndex) {\r\n return {\r\n ...data,\r\n selectedProduct: product\r\n };\r\n }\r\n });\r\n setAllData(updatedAllData);\r\n setShowPlans(false);\r\n };\r\n\r\n const handleValidations = (data, field) => {\r\n const { errors, success } = checkValidations({\r\n schemas,\r\n data,\r\n field: field\r\n });\r\n setErrors(errors);\r\n return { success };\r\n };\r\n\r\n const handleTravelDetailsChange = (name, value) => {\r\n const data = { ...travelDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n // handleValidations(data, name);\r\n\r\n let updatedAllData = allData.map((data, index) => {\r\n if (index === formIndex) {\r\n return {\r\n ...data,\r\n travelDetails: {\r\n ...data.travelDetails,\r\n [name]: value\r\n }\r\n };\r\n }\r\n });\r\n setAllData(updatedAllData);\r\n };\r\n\r\n const handlePassengerDetailsChange = event => {\r\n const { name, value } = event.target;\r\n const data = { ...passengerDetails, [name]: value };\r\n if (name === 'startDate') data.endDate = '';\r\n // handleValidations(data, name);\r\n\r\n let updatedAllData = allData.map((data, index) => {\r\n if (index === formIndex) {\r\n return {\r\n ...data,\r\n passengerDetails: {\r\n ...data.passengerDetails,\r\n [name]: value\r\n }\r\n };\r\n }\r\n });\r\n setAllData(updatedAllData);\r\n };\r\n\r\n const handleChangePassengerDetailsDropdown = (name, value) => {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n [name]: value\r\n });\r\n if (name === 'startDate') {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n endDate: ''\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

    Edit Form

    \r\n\r\n

    \r\n Travel Details\r\n

    \r\n\r\n {/* travel details */}\r\n
    \r\n
    \r\n \r\n {\r\n handleTravelDetailsChange('destination', selection.cd);\r\n }}\r\n identifier='ds'\r\n data={countries}\r\n inputId={`destination`}\r\n placeholder='Pick your destination'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n destination:\r\n allData[formIndex]?.travelDetails?.destination || ''\r\n }}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n null}\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleTravelDetailsChange('startDate', event.target.value)\r\n }\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n handleTravelDetailsChange('endDate', event.target.value)\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 {/* passenger details */}\r\n

    \r\n Passenger Details\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 handleChangePassengerDetailsDropdown(\r\n 'gender',\r\n selection.gender\r\n );\r\n }}\r\n identifier='gender'\r\n data={genders}\r\n inputId={`gender`}\r\n placeholder='Pick your gender'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n gender: allData[formIndex]?.passengerDetails.gender || ''\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {!otherTitle ? (\r\n {\r\n handleChangePassengerDetailsDropdown(\r\n 'title',\r\n selection.title\r\n );\r\n }}\r\n identifier='title'\r\n data={titles}\r\n inputId={`title`}\r\n placeholder='Pick your title'\r\n disable={false}\r\n showItems={true}\r\n value={{\r\n title: allData[formIndex]?.passengerDetails.title || ''\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 e.target.value = e.target.value\r\n .replace(/[^0-9+]/g, '')\r\n .replace(/[+%]/g, function (match, offset, all) {\r\n return match === '+'\r\n ? all.indexOf('+') === offset\r\n ? '+'\r\n : ''\r\n : '';\r\n });\r\n handlePassengerDetailsChange(e);\r\n }}\r\n id='phone'\r\n type='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\r\n {/* passport */}\r\n

    Replace passport image

    \r\n

    {`Current passport filename : ${allData[formIndex]?.file['name']}`}

    \r\n\r\n \r\n
    \r\n \r\n {\r\n
    \r\n upload\r\n
    \r\n

    \r\n Drag and drop the file here, or click to select file\r\n

    \r\n

    \r\n \r\n Note: The file should be smaller 2MB and must be an\r\n image (jpeg,jpg,png,gif)\r\n \r\n

    \r\n e.preventDefault()}\r\n >\r\n Upload\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n {allData[formIndex]?.file && (\r\n
    \r\n upload{' '}\r\n {allData[formIndex]?.file?.name}\r\n
    \r\n )}\r\n\r\n {/* select plan */}\r\n
    \r\n {loading || error ? (\r\n
    \r\n {loading ? (\r\n \r\n ) : (\r\n
    \r\n

    \r\n An error occurred while loading the products\r\n
    please try again.\r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : showPlans ? (\r\n <>\r\n

    \r\n Please Select an Insurance Plan\r\n

    \r\n

    \r\n Current planned trip length: {travelDetails.duration} Days\r\n

    \r\n
    \r\n {products && products.length ? (\r\n products.map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`}\r\n )\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n onClick={() => buyNow(product)}\r\n >\r\n Select plan\r\n \r\n ) : (\r\n
    \r\n \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n ) : (\r\n

    No products available

    \r\n )}\r\n
    \r\n \r\n ) : (\r\n <>\r\n

    Selected product: {allData[formIndex]?.selectedProduct.ds}

    \r\n setShowPlans(true)}\r\n >\r\n Select another plan\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 EditModal;\r\n","import React from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport {\r\n selectedProductState,\r\n travelDetailsState\r\n} from '../../../../../recoil/atoms';\r\nimport useProducts from '../../../../../hooks/useProducts';\r\nimport { getProductDescription } from '../../../../../constants';\r\n\r\nconst Plan = ({ setTravelPlanSelected, insurancePackage }) => {\r\n const { products, loading, error, getProducts } = useProducts();\r\n const [selectedProduct, setSelectedProduct] =\r\n useRecoilState(selectedProductState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n\r\n const isProductSelected = Object.keys(selectedProduct).length;\r\n\r\n let product_ =

    No products available

    ;\r\n\r\n if (loading) {\r\n product_ = ;\r\n }\r\n\r\n if (error) {\r\n product_ = (\r\n <>\r\n

    \r\n An error occurred while loading the products. Please try again.\r\n

    \r\n \r\n \r\n );\r\n }\r\n\r\n if (products?.length) {\r\n product_ = products\r\n .filter(product => {\r\n const worldwidePackages = ['family', 'economy', 'pearl', 'traveller'];\r\n const productName = product.ds.split(' ')[0].toLowerCase();\r\n if (insurancePackage.toLowerCase() === 'worldwide') {\r\n return worldwidePackages.includes(productName);\r\n }\r\n return new RegExp(insurancePackage.toLowerCase()).test(productName);\r\n }) //only show plans for the selected package\r\n .map((product, i) => {\r\n const productDesc = getProductDescription(product);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productDesc?.title} (\r\n {`${productDesc?.minDays} - ${productDesc?.maxDays} Days`})\r\n
    \r\n
    \r\n
    \r\n {productDesc?.description}\r\n
    \r\n
    \r\n {!(\r\n productDesc?.minDays < travelDetails?.duration &&\r\n travelDetails?.duration > productDesc?.maxDays\r\n ) ? (\r\n productDesc?.maxDays\r\n }\r\n className='button-primary select-button'\r\n onClick={() => {\r\n setSelectedProduct(product);\r\n setTravelPlanSelected(true);\r\n }}\r\n >\r\n Select plan\r\n \r\n ) : (\r\n
    \r\n

    \r\n Travel Details does not qualify for this Plan\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n {isProductSelected ? (\r\n <>\r\n

    \r\n Selected product: {selectedProduct.ds}\r\n

    \r\n {\r\n setSelectedProduct({});\r\n setTravelPlanSelected(false);\r\n }}\r\n >\r\n Select another plan\r\n

    \r\n \r\n ) : (\r\n <>\r\n
    \r\n

    Select Insurance Plan

    \r\n
    \r\n
    {product_}
    \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Plan;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useRecoilState } from 'recoil';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport {\r\n TravelDetails,\r\n PassengerDetails,\r\n GuardianDetails,\r\n PassportUpload\r\n} from './components';\r\nimport {\r\n passengerDetailsState,\r\n userDataState,\r\n passportUrlState,\r\n headerState,\r\n travelDetailFormState,\r\n uploadState,\r\n fileState,\r\n formSubmittedState,\r\n travelDetailsState,\r\n profileDataState,\r\n insuranceDataState,\r\n nextOfKinDetailsState,\r\n guardianDetailsState,\r\n guardianHeightState,\r\n isMinorState,\r\n finalSubmitState,\r\n clearFieldsState,\r\n displayPopUpFormState,\r\n formIndexState\r\n} from '../../../recoil/atoms';\r\nimport { baseUrl } from '../../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport getPassenger from './helpers/getPassenger';\r\nimport { getAge } from '../../../utilities';\r\nimport getGuardian from './helpers/getGuardian';\r\nimport Referral from './components/Referral';\r\nimport formateMafreDate from '../../../helpers/formateMafreDate';\r\nimport EditModal from './components/EditModal';\r\nimport Back from '../../../components/commons/Back';\r\nimport Plan from '../Group/TravelDetails/components/Plan';\r\n\r\nconst AllInOneForm = ({\r\n submit,\r\n setFieldsSuccess,\r\n buyingForMultiple,\r\n insurancePackage\r\n}) => {\r\n const headingRef = useRef();\r\n\r\n const [passengerDetails, setPassengerDetails] = useRecoilState(\r\n passengerDetailsState\r\n );\r\n const [user] = useRecoilState(userDataState);\r\n const [file, setFile] = useRecoilState(fileState);\r\n const [formSubmitted, setFormSubmitted] = useRecoilState(formSubmittedState);\r\n const [, setPassport] = useRecoilState(passportUrlState);\r\n const [headers] = useRecoilState(headerState);\r\n const [travelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [, setUploadState] = useRecoilState(uploadState);\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [insuranceData, setInsuranceData] = useRecoilState(insuranceDataState);\r\n const [isMinor] = useRecoilState(isMinorState);\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [guardianDetails] = useRecoilState(guardianDetailsState);\r\n const [guardianHeight, setGuardianHeight] =\r\n useRecoilState(guardianHeightState);\r\n const [finalSubmit, setFinalSubmit] = useRecoilState(finalSubmitState);\r\n const [clearFields, setClearFields] = useRecoilState(clearFieldsState);\r\n const [displayPopUpForm, setDisplayPopUpForm] = useRecoilState(\r\n displayPopUpFormState\r\n );\r\n const [formIndex, setFormIndex] = useRecoilState(formIndexState);\r\n\r\n const [progress, setProgress] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(false);\r\n const [allTravelDetailsInputSuccess, setAllTravelDetailsInputSuccess] =\r\n useState(false);\r\n const [allPassengerDetailsInputSuccess, setAllPassengerDetailsInputSuccess] =\r\n useState(false);\r\n const [travelPlanSelected, setTravelPlanSelected] = useState(false);\r\n\r\n useEffect(() => {\r\n headingRef.current.scrollIntoView();\r\n }, [buyingForMultiple]);\r\n\r\n let interval;\r\n let baseProgress;\r\n\r\n const savePassport = async (passportFile, userId) => {\r\n let status = true;\r\n setLoading(true);\r\n interval && clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n if (isNaN(baseProgress)) {\r\n baseProgress = 10;\r\n }\r\n baseProgress < 95 && setProgress(baseProgress);\r\n }, 50);\r\n const formData = new FormData();\r\n\r\n formData.append('file', passportFile);\r\n formData.append('userId', userId);\r\n\r\n const reqHeaders = { ...headers };\r\n delete reqHeaders['Content-Type'];\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/savePassport`, {\r\n method: 'POST',\r\n headers: reqHeaders,\r\n body: formData\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.error || data.errors) throw new Error('message: ', data.message);\r\n else setUploadState('success'); // passport has been sent to backend\r\n } catch (error) {\r\n // toast.error('An error occurred, please try again');\r\n setUploadState('failure');\r\n status = false;\r\n setError(true);\r\n setLoading(false);\r\n }\r\n\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n baseProgress++;\r\n baseProgress <= 100 && setProgress(baseProgress);\r\n if (baseProgress >= 110) {\r\n // setLoading(false);\r\n clearInterval(interval);\r\n }\r\n }, 50);\r\n };\r\n\r\n const saveInsuranceData = (\r\n start_date,\r\n end_date,\r\n duration,\r\n destination,\r\n policyHolder,\r\n insuredData,\r\n insuranceData\r\n ) => {\r\n let data = {\r\n duration,\r\n destination,\r\n idRegProduct: insuranceData?.idRegProduct || null,\r\n terms: 1,\r\n start_date: formateMafreDate(start_date),\r\n end_date: formateMafreDate(end_date),\r\n policyHolder,\r\n insuredData,\r\n deliveryDate: start_date\r\n };\r\n setInsuranceData(data);\r\n };\r\n\r\n const saveUserAndProceed = async () => {\r\n console.log('saved user and proceeding...');\r\n const allInsurers = [];\r\n\r\n const passenger = getPassenger(\r\n passengerDetails,\r\n travelDetails,\r\n isMinor,\r\n nextOfKinDetails,\r\n getAge\r\n );\r\n\r\n allInsurers.push(passenger);\r\n\r\n let policyHolder = passenger;\r\n const guardian = getGuardian(\r\n guardianDetails,\r\n travelDetails,\r\n isMinor,\r\n nextOfKinDetails,\r\n getAge\r\n );\r\n\r\n if (guardianHeight.initial > 0 || isMinor) {\r\n if (isMinor) policyHolder = guardian;\r\n allInsurers.push(guardian);\r\n }\r\n\r\n const attaches = allInsurers.filter(insurer => {\r\n return !insurer.is_holder;\r\n });\r\n\r\n let passengerData = JSON.parse(JSON.stringify(passenger));\r\n passengerData['attaches'] = attaches;\r\n passengerData['guardian'] = guardian;\r\n\r\n passengerData['next_of_kin'] = {\r\n nok_name: nextOfKinDetails.name || '',\r\n nok_relationship: nextOfKinDetails.relationship || '',\r\n nok_phone: nextOfKinDetails.phoneNumber || '',\r\n nok_email: nextOfKinDetails.email || '',\r\n nok_address: nextOfKinDetails.address || ''\r\n };\r\n\r\n saveInsuranceData(\r\n travelDetails.startDate,\r\n travelDetails.endDate,\r\n travelDetails.duration,\r\n travelDetails.destination,\r\n {\r\n ...policyHolder,\r\n date_of_birth: formateMafreDate(policyHolder.date_of_birth)\r\n },\r\n allInsurers.map(i => {\r\n i.date_of_birth = formateMafreDate(i.date_of_birth);\r\n return i;\r\n }),\r\n insuranceData\r\n );\r\n\r\n // if (travelDetailForm && travelDetailForm.travel_id) {\r\n // profileData.travel_id = travelDetailForm.travel_id;\r\n // }\r\n\r\n setProfileData({ ...profileData, ...passengerData });\r\n };\r\n\r\n const handleSubmit = () => {\r\n // ignore if no fields have been filled (well, i'm kinda just checking some important fields)\r\n if (\r\n !passengerDetails.firstName &&\r\n !passengerDetails.lastName &&\r\n !travelDetails.startDate &&\r\n !travelDetails.endDate &&\r\n !travelDetails.purpose\r\n ) {\r\n return;\r\n }\r\n // if email address, address and phone number are missing in passenger details, use user profile data\r\n\r\n if (user?.profile) {\r\n if (!passengerDetails.email) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n email: user.profile?.email || ''\r\n });\r\n }\r\n if (!passengerDetails.phoneNumber) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n phoneNumber: user.profile?.phone || ''\r\n });\r\n }\r\n if (!passengerDetails.address) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n address: user.profile?.address || ''\r\n });\r\n }\r\n }\r\n\r\n if (!passengerDetails.name) {\r\n setPassengerDetails({\r\n ...passengerDetails,\r\n name: passengerDetails?.firstName\r\n });\r\n }\r\n\r\n saveUserAndProceed();\r\n\r\n // passport upload\r\n if (\r\n file &&\r\n Object.keys(travelDetailForm).length &&\r\n travelDetailForm.user_id\r\n ) {\r\n savePassport(file, travelDetailForm.user_id);\r\n }\r\n setFormSubmitted(true);\r\n };\r\n\r\n if (submit) {\r\n // ! bulk transaction\r\n handleSubmit();\r\n }\r\n\r\n const allFieldsSuccess =\r\n allTravelDetailsInputSuccess &&\r\n allPassengerDetailsInputSuccess &&\r\n travelPlanSelected &&\r\n file;\r\n\r\n if (allFieldsSuccess) {\r\n setFieldsSuccess(true);\r\n } else {\r\n setFieldsSuccess(false);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    \r\n Bulk transaction\r\n

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

    Fill in customer details 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
    \r\n
    \r\n\r\n {displayPopUpForm &&\r\n createPortal(, document.body)}\r\n \r\n );\r\n};\r\n\r\nexport default AllInOneForm;\r\n","export default function getPassenger(\r\n passengerDetails,\r\n travelDetails,\r\n isMinor,\r\n nextOfKinDetails,\r\n getAge\r\n) {\r\n return {\r\n name: passengerDetails.firstName,\r\n first_name: passengerDetails.firstName,\r\n last_name: passengerDetails.lastName,\r\n other_names: passengerDetails.otherNames,\r\n gender: passengerDetails.gender || 'N/A', //TODO: add to ui\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n passport_no: passengerDetails.passportNumber,\r\n destination: travelDetails.destination,\r\n title: passengerDetails.title || '',\r\n age: getAge(passengerDetails.dateOfBirth),\r\n date_of_birth: passengerDetails.dateOfBirth,\r\n medical_cond: 'N/A',\r\n address: passengerDetails.address,\r\n nok_name: nextOfKinDetails.name,\r\n nok_relationship: nextOfKinDetails.relationship,\r\n nok_phone: nextOfKinDetails.phoneNumber,\r\n nok_email: nextOfKinDetails.email,\r\n nok_address: nextOfKinDetails.address,\r\n is_holder: nextOfKinDetails.isPolicyHolder && !isMinor,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n}\r\n","export default function getGuardian(\r\n guardianDetails,\r\n travelDetails,\r\n isMinor = false,\r\n nextOfKinDetails,\r\n getAge\r\n) {\r\n return {\r\n name: guardianDetails.guardianFirstName,\r\n first_name: guardianDetails.guardianFirstName,\r\n last_name: guardianDetails.guardianLastName,\r\n other_names: guardianDetails.guardianOtherName,\r\n gender: guardianDetails.gender || 'N/A',\r\n address: guardianDetails.guardianAddress,\r\n phone: guardianDetails.guardianPhoneNumber,\r\n email: guardianDetails.guardianEmail,\r\n passport_no: guardianDetails.guardianPassportNumber,\r\n title: guardianDetails.title || '',\r\n age: getAge(guardianDetails.guardianDateOfBirth),\r\n date_of_birth: guardianDetails.guardianDateOfBirth,\r\n is_holder: isMinor || !nextOfKinDetails.isPolicyHolder,\r\n no_of_days: travelDetails.duration,\r\n purpose: travelDetails.purpose,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate\r\n };\r\n}\r\n","export default function buildGibsProfileData(\r\n profileData,\r\n GibbsApiKey,\r\n product\r\n) {\r\n return {\r\n Apikey: GibbsApiKey,\r\n PolicyStartDate: profileData.from_date,\r\n PolicyEndDate: profileData.to_date,\r\n TravelPurpose: profileData.purpose,\r\n Destination: profileData.destination,\r\n ContactAddress: profileData.address,\r\n LastName: profileData.last_name,\r\n FirstName: profileData.first_name,\r\n Gender: profileData.gender,\r\n Title: profileData.title,\r\n PassportNo: profileData.passport_no,\r\n PhoneNo: profileData.phone,\r\n Email: profileData.email,\r\n DOB: profileData.date_of_birth,\r\n NoK_Name: profileData?.next_of_kin?.nok_name || \"\",\r\n NoK_Relationship: profileData?.next_of_kin?.nok_relationship || \"\",\r\n NoK_Address: profileData?.next_of_kin?.nok_address || \"\",\r\n NoK_Email: profileData?.next_of_kin?.nok_email || \"\",\r\n NoK_PhoneNo: profileData?.next_of_kin?.nok_phone || \"\",\r\n CoverType: product.dsProduct\r\n };\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { useRecoilState } from 'recoil';\r\nimport { toast } from 'react-toastify';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport {\r\n travelDetailsState,\r\n passengerDetailsState,\r\n guardianDetailsState,\r\n clearFieldsState,\r\n formSubmittedState,\r\n allDataState,\r\n fileState,\r\n selectedProductState,\r\n insuranceDataState,\r\n profileDataState,\r\n finalSubmitState,\r\n headerState,\r\n travelDetailFormState,\r\n nextOfKinDetailsState\r\n} from '../../../recoil/atoms';\r\nimport List from '../../../components/commons/List';\r\nimport AllInOneForm from './AllInOneForm';\r\nimport buildGibsProfileData from './helpers/buildGibsProfileData';\r\nimport { baseUrl, GibbsApiKey } from '../../../constants';\r\nimport { getAge } from '../../../utilities';\r\n\r\nconst BatchHome = () => {\r\n const nav = useNavigate();\r\n const {\r\n state: { insurancePackage }\r\n } = useLocation();\r\n\r\n const [travelDetails] = useRecoilState(travelDetailsState);\r\n const [passengerDetails] = useRecoilState(passengerDetailsState);\r\n const [guardianDetails] = useRecoilState(guardianDetailsState);\r\n const [, setClearFields] = useRecoilState(clearFieldsState);\r\n const [formSubmitted, setFormSubmitted] = useRecoilState(formSubmittedState);\r\n const [file] = useRecoilState(fileState);\r\n const [selectedProduct] = useRecoilState(selectedProductState);\r\n const [allData, setAllData] = useRecoilState(allDataState);\r\n const [insuranceData] = useRecoilState(insuranceDataState);\r\n const [profileData, setProfileData] = useRecoilState(profileDataState);\r\n const [finalSubmit, setFinalSubmit] = useRecoilState(finalSubmitState);\r\n const [headers] = useRecoilState(headerState);\r\n\r\n const [, setTravelDetailForm] = useRecoilState(travelDetailFormState);\r\n const [nextOfKinDetails, setNextOfKinDetails] = useRecoilState(\r\n nextOfKinDetailsState\r\n );\r\n const [updating, setUpdating] = useState(false);\r\n const [hasBeenAdded, setHasBeenAdded] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [fieldsSuccess, setFieldsSuccess] = useState(false);\r\n const [submit, setSubmit] = useState(false);\r\n const [buyingForMultiple, setBuyingForMultiple] = useState(false);\r\n\r\n const updateState = () => {\r\n let key = passengerDetails?.passportNumber;\r\n\r\n if (key && !hasBeenAdded[key]) {\r\n console.log('performing state update...');\r\n setUpdating(true);\r\n\r\n let currentData = {\r\n travelDetails,\r\n passengerDetails,\r\n guardianDetails,\r\n file,\r\n selectedProduct,\r\n insuranceData,\r\n profileData,\r\n nextOfKinDetails,\r\n price: 0\r\n };\r\n console.log('currentData: ', currentData);\r\n //! TO-DO: check that currentData has non-empty values\r\n setAllData([...allData, currentData]);\r\n setHasBeenAdded({\r\n ...hasBeenAdded,\r\n [key]: true\r\n });\r\n\r\n setTimeout(() => {\r\n setUpdating(false);\r\n }, 2000);\r\n\r\n return [...allData, currentData];\r\n } else {\r\n // no currentData (form wasn't filled)\r\n if (allData?.length && allData[0]?.passportNumber) {\r\n // there is at least one user, so proceed\r\n } else {\r\n // no data, throw error\r\n toast.error('No data. Please fill form.');\r\n // throw new Error('No data. Please fill form.');\r\n }\r\n }\r\n console.log(\r\n `User: ${passengerDetails?.firstName} ${passengerDetails?.lastName} with passport number: ${passengerDetails?.passportNumber} has been previously added to state.`\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (allData?.length) {\r\n console.log('allData: ', allData);\r\n setBuyingForMultiple(true);\r\n toast.info(\r\n 'Check list at bottom of page to edit or delete previous data.'\r\n );\r\n }\r\n }, [allData]);\r\n\r\n const saveTravelAndProceed = async (\r\n profileData,\r\n product,\r\n passengerDetails,\r\n nextOfKinDetails\r\n ) => {\r\n console.log('nextOfKinDetails: ', nextOfKinDetails);\r\n\r\n try {\r\n const res = await fetch(`${baseUrl}/users/create`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n ...profileData,\r\n product: product.dsProduct\r\n }),\r\n headers\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data.user_id && data.travel_id) {\r\n let travelDetailForm = {\r\n customer_name:\r\n passengerDetails.firstName + ' ' + passengerDetails.lastName,\r\n user_id: data.user_id,\r\n travel_id: data.travel_id,\r\n email: passengerDetails.email,\r\n phone: passengerDetails.phoneNumber,\r\n from_date: travelDetails.startDate,\r\n to_date: travelDetails.endDate,\r\n duration: travelDetails.duration,\r\n age: getAge(passengerDetails.dateOfBirth),\r\n destination: travelDetails.destination,\r\n marketer: nextOfKinDetails?.marketer || 'N/A',\r\n gibssTransactionData: buildGibsProfileData(\r\n profileData,\r\n GibbsApiKey,\r\n product\r\n )\r\n };\r\n\r\n return travelDetailForm;\r\n } else {\r\n throw data.message;\r\n }\r\n } catch (error) {\r\n console.log('error: ', error);\r\n return;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (formSubmitted) {\r\n const updatedAllData = updateState();\r\n\r\n // reset state values\r\n setClearFields(true);\r\n setSubmit(false);\r\n setFormSubmitted(false);\r\n\r\n if (finalSubmit) {\r\n // ! create accounts for all customers\r\n if (updatedAllData?.length) {\r\n const fetch = async arr => {\r\n if (!arr.length) {\r\n throw new Error('allData is empty');\r\n } else {\r\n return Promise.allSettled(\r\n arr.map(\r\n async ({\r\n profileData,\r\n selectedProduct,\r\n passengerDetails,\r\n nextOfKinDetails\r\n }) => {\r\n try {\r\n const response = await saveTravelAndProceed(\r\n profileData,\r\n selectedProduct,\r\n passengerDetails,\r\n nextOfKinDetails\r\n );\r\n return response;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n fetch(updatedAllData)\r\n .then(data => {\r\n data.map((el, id) => {\r\n if (el.status === 'fulfilled') {\r\n const { value } = el;\r\n\r\n setAllData(prevData =>\r\n prevData.map((dt, indx) => {\r\n if (indx === id) {\r\n return { ...dt, travelDetailForm: value };\r\n }\r\n return dt;\r\n })\r\n );\r\n }\r\n if (el.status === 'rejected') {\r\n throw new Error(el.reason);\r\n }\r\n });\r\n })\r\n .catch(err => {\r\n console.log('error during account creation: ', err);\r\n toast.error(err);\r\n return;\r\n });\r\n\r\n // reset state value\r\n setFinalSubmit(false);\r\n\r\n //!TO-DO: check that allData has been collated correctly before navigating to next screen\r\n\r\n // if (createdCount !== allData.length) {\r\n // toast.error('Not all customers have had their accounts created.');\r\n // } else {\r\n if (!updating) {\r\n setLoading(true);\r\n setTimeout(() => {\r\n setLoading(false);\r\n nav('product-details');\r\n }, 3000);\r\n }\r\n // }\r\n }\r\n }\r\n }\r\n }, [allData, formSubmitted, finalSubmit]);\r\n\r\n const handleMultiple = () => {\r\n setSubmit(true);\r\n setBuyingForMultiple(true); // displays list of userData at bottom of page\r\n };\r\n\r\n const handleSubmit = () => {\r\n setFormSubmitted(true);\r\n setSubmit(true); // trigger bulkSubmit in AllInOneForm\r\n setFinalSubmit(true);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n Buy More\r\n \r\n\r\n \r\n Submit\r\n \r\n
    \r\n\r\n {buyingForMultiple && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BatchHome;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Header = () => {\r\n const url =\r\n (!process.env.NODE_ENV || process.env.NODE_ENV) === 'development'\r\n ? 'localhost:3000/dashboard/index'\r\n : 'https://travelinsurance.com';\r\n\r\n return (\r\n \r\n \r\n Travel Insurance\r\n \r\n \r\n Home\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport {\r\n AiFillTwitterSquare,\r\n AiOutlineFacebook,\r\n AiOutlineLinkedin,\r\n AiOutlineInstagram\r\n} from 'react-icons/ai';\r\n\r\nconst Footer = () => {\r\n return (\r\n
    \r\n
    \r\n

    © {new Date().getFullYear()} CHI Plc. All Rights Reserved

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { baseUrl } from '../../../../constants';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport { Spinner } from 'react-bootstrap';\r\nimport Header from './Header';\r\nimport Footer from './Footer';\r\n\r\nconst Certificate = () => {\r\n const nav = useNavigate();\r\n\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState('');\r\n const [errorSubtext, setErrorSubtext] = useState('');\r\n const [paymentConfirmed, setPaymentConfirmed] = useState(false);\r\n const [webhookLoading, setWebhookLoading] = useState(false);\r\n const [webhookSuccess, setWebhookSuccess] = useState(false);\r\n\r\n const location = useLocation();\r\n const regex = /[?&]([^=]+)=([^&]+)/g;\r\n let match;\r\n const queryParams = {};\r\n\r\n while ((match = regex.exec(location.search)) !== null) {\r\n const key = match[1];\r\n const value = match[2];\r\n queryParams[key] = value;\r\n }\r\n\r\n const callWebhook = async val => {\r\n const res = await fetch(`${baseUrl}/flw-webhook`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(val)\r\n });\r\n return res.json();\r\n };\r\n\r\n const confirmPayment = async ref => {\r\n const res = await fetch(`${baseUrl}/agents/travel/verify-payment/${ref}`, {\r\n method: 'POST'\r\n });\r\n return res.json();\r\n };\r\n\r\n const getCertificate = async id => {\r\n const res = await fetch(`${baseUrl}/agents/travel/certificate/${id}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n if (res?.status === 500) {\r\n return { data: res.statusText };\r\n }\r\n\r\n return res.json();\r\n };\r\n\r\n const { status, tx_ref, transaction_id } = queryParams;\r\n\r\n useEffect(() => {\r\n if (status === 'successful') {\r\n const confirm = async () => {\r\n try {\r\n const data = await confirmPayment(tx_ref);\r\n\r\n if (data?.status === 'success') {\r\n setLoading(false);\r\n setPaymentConfirmed(true);\r\n setIsSuccess(true);\r\n // call endpoint to update DB\r\n const res = await callWebhook(data);\r\n setWebhookLoading(true);\r\n if (res) {\r\n setWebhookLoading(false);\r\n if (res?.statusCode === 200) {\r\n //! TODO: confirm current implementation behaviour i.e. this process must succeed before certificate generation can happen.\r\n setWebhookSuccess(true);\r\n } else {\r\n setWebhookSuccess(false);\r\n }\r\n }\r\n } else {\r\n setIsError(true);\r\n setError('Unable to confirm payment.');\r\n setErrorSubtext(\r\n 'Please retry payment using the payment link that was sent to your email.'\r\n );\r\n }\r\n } catch (error) {\r\n console.log('error: ', error);\r\n setError(error);\r\n }\r\n };\r\n confirm();\r\n } else {\r\n setIsError(true);\r\n setError('Payment unsuccessful');\r\n }\r\n }, [status, tx_ref]);\r\n\r\n const handleClick = val => {\r\n const res = getCertificate(val);\r\n setLoading(true);\r\n\r\n res.then(data => {\r\n setLoading(false);\r\n setIsSuccess(false);\r\n const { successful, certificate_url } = data;\r\n if (successful) {\r\n nav(`${certificate_url}`, { replace: true });\r\n //! TODO: implement this page -> nav(`/quotes/isSuccess/${travel_id}/${payment?.data?.id}`);\r\n } else {\r\n setIsError(true);\r\n setError('Certificate generation failed');\r\n setErrorSubtext('Refresh page to retry.');\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n
    \r\n\r\n {loading && !paymentConfirmed && (\r\n
    \r\n \r\n

    Verifying payment...

    \r\n
    \r\n )}\r\n\r\n {isSuccess && (\r\n
    \r\n

    \r\n {paymentConfirmed\r\n ? loading\r\n ? 'Generating certificate...'\r\n : 'Payment confirmed successfully!'\r\n : 'Confirm payment.'}\r\n

    \r\n\r\n {!loading && (\r\n handleClick(tx_ref)}\r\n disabled={webhookLoading || !webhookSuccess || loading}\r\n >\r\n Get Certificate\r\n \r\n )}\r\n
    \r\n )}\r\n\r\n {isError && (\r\n
    \r\n

    {error}

    \r\n {errorSubtext &&

    {errorSubtext}

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