{"version":3,"sources":["pages/about-us/about.module.css","components/inputs/input.module.css","components/footer/footer.module.css","components/design-btn/styles.module.css","components/sidenav/sidenav.module.css","components/button/button.module.css","components/FAQ/faq.module.css","pages/login/login.module.css","pages/home/home.module.css","components/button/cta-button.jsx","components/inputs/password-input.jsx","components/inputs/onboarding-input.jsx","theme.jsx","components/forgot-password/forgot-password.jsx","_constants/alert.constants.js","_constants/user.constants.js","_constants/support.constants.js","_constants/product.constants.js","_constants/transaction.constants.js","_constants/tell-a-friend.constants.js","config.js","_helpers/history.js","_helpers/auth-header.js","components/print-pdf.js","_actions/alert.actions.js","_actions/support.actions.js","_actions/product.actions.js","helpers.js","_services/user.service.js","_services/product.service.js","_actions/user.actions.js","_reducers/registration.reducer.js","_reducers/alert.reducer.js","context/alert-context.js","context/user-context.js","components/spinner.js","components/modal/loginModal.jsx","components/modal/forgotPasswordModal.jsx","_reducers/modal.reducer.js","context/modal-context.js","components/modal/signupModal.jsx","pages/login/login.jsx","pages/signup/signup.jsx","pages/xpress-wallet/xpress-wallet-balance.jsx","components/inputs/input.jsx","components/profiles/update-profile.jsx","components/profiles/change-password.jsx","components/modal/view-transaction-modal.jsx","components/print-transaction/print.jsx","components/modal/print-modal.jsx","_reducers/transaction.reducer.js","context/transaction-history-context.js","components/table/EnhanceTableHead.js","components/table/EnhancedTableToolbar.js","components/table/EnhancedTable.js","components/receipt.js","components/transaction-history/transaction-history.jsx","components/transaction-history/bulk-transaction-history.jsx","pages/Transaction-History/index.js","components/profiles/backup-email.jsx","components/profile-dropdown/profile-dropdown.jsx","components/header/header.jsx","components/policy-popover/policy-popover.jsx","components/footer/footer.jsx","_reducers/product.reducer.js","context/product-context.js","components/carousel/other-pages-carousel.jsx","pages/other-transactions/other-services.jsx","pages/purchase/purchase.jsx","pages/purchase/form-review.jsx","pages/purchase/gate-way.js","pages/purchase/purchase-form.jsx","pages/purchase/purchase-status.jsx","components/design-btn/design-btn.jsx","pages/about-us/about.jsx","pages/overview/overview.jsx","components/carousel/carousel.jsx","pages/home/home.jsx","components/button/menu-button.jsx","components/FAQ/faq.jsx","components/inputs/form-input.jsx","_reducers/support.reducer.js","context/support-context.js","components/support/support.jsx","components/carousel/dashboard-carousel.jsx","context/transaction-context.js","components/activity-log/activity-log.jsx","pages/dashboard/dashboard.jsx","components/alert-content.js","_reducers/tell-a-friend.reducer.js","context/tell-a-friend-context.js","_actions/tell-a-friend.actions.js","pages/Tell a friend/tell-a-friend.jsx","components/navigations/PrivateRoute.js","pages/Policy/cookies-policy.jsx","pages/Policy/privacy-policy.jsx","context/activation-context.js","pages/signup/account-confirmation.jsx","context/backupEmail-update-context.js","pages/login/backup-email-confirmation.jsx","context/account-reset-context.js","pages/login/reset-password.jsx","pages/Notification/print-receipt-modal.jsx","pages/Notification/rating.jsx","pages/Notification/notification.jsx","pages/logout/logout.jsx","components/gate-way.js","pages/bulk-upload/bulk-upload-form.jsx","_actions/bulk-upload.actions.js","_actions/event.actions.js","pages/tickets/event-ticket-summary.jsx","pages/tickets/event-ticket-form.jsx","pages/tickets/events.jsx","_actions/movie.actions.js","pages/tickets/movie-ticket-summary.jsx","pages/tickets/movie-ticket-form.jsx","pages/tickets/movies.jsx","pages/tickets/index.js","pages/bulk-upload/bulkupload-preview.jsx","pages/xpress-wallet/index.jsx","pages/xpress-wallet/wallet-topup-summary.jsx","pages/xpress-wallet/topup-wallet.jsx","pages/bulk-upload/bulk-transaction-details.jsx","pages/bulk-upload/bulk-upload-notification.jsx","pages/tickets/movie-notification.jsx","pages/tickets/event-notification.jsx","components/guessandwin/form.jsx","components/guessandwin/index.jsx","pages/layout/layout.jsx","components/modal/privacy-policy-modal.jsx","components/modal/cookies-policy-modal.jsx","pages/Policy/policy-modal.jsx","App.js","index.js","pages/dashboard/dashboard.module.css"],"names":["module","exports","CTA","text","icon","small","noBackground","green","orange","large","nav","rounded","medium","style","action","type","disabled","className","styles","btn","onClick","color","PasswordInput","placeholder","name","value","onChange","onBlur","position","zIndex","marginLeft","marginTop","fontSize","opacity","passwordInput","OnboardingInput","error","onKeyUp","onboarding","theme","createMuiTheme","breakpoints","values","xs","sm","md","lg","xl","palette","primary","main","secondary","typography","fontFamily","body2","shape","borderRadius","spacing","overrides","MuiFilledInput","root","backgroundColor","MuiInputLabel","MuiTextField","MuiButton","textTransform","padding","fullWidth","maxWidth","MuiBackdrop","props","disableRipple","variant","MuiCheckbox","MuiPaper","elevation","boxShadow","MuiCard","makeStyles","paper","width","border","outline","background","down","left","top","between","up","modal","button","marginBottom","alertConstants","userConstants","supportConstants","productConstants","transactionConstants","tellAFriendConstant","config","apiUrl","apiUrl2","apiUrl2Credentials","siteTitle","paymentMethod","oldUrl","createBrowserHistory","authHeader","user","JSON","parse","localStorage","getItem","access_token","PrintPDF","state","download","this","pdfExportComponent","save","setState","prevProps","nextProps","children","filename","Fragment","ref","component","paperSize","fileName","React","Component","alertActions","success","message","clear","fetchCategories","a","requestOptions","method","headers","fetch","configuration","then","handleResponse","fetchProducts","getReceipt","Id","data","_url","resp","fetchTransactionHistory","fetchWalletBalance","_req","body","stringify","response","json","fetchFieldsForTopUp","formatDate","date","format","moment","ok","status","window","history","pushState","setTimeout","location","href","substr","responseCode","responseMessage","statusText","Promise","reject","responseData","validatePhone","control","_message","test","exclusive","RegExp","e","print","content","winSet","screen","availWidth","availHeight","_wndw","open","div","document","createElement","render","_html","outerHTML","write","convertUrl","rawHTML","text1","replace","dangerouslySetInnerHTML","__html","splitResponse","records","split","length","i","str","arr","splitOnFirst","sep","index","indexOf","slice","truncate","ending","substring","userService","login","logout","register","requestData","ConsumerID","email","EmailAddress","Password","password","Surname","Firstname","firstName","PhoneNumber","phone","ConsumerStatus","ReferedBy","activate","token","update","surname","DateOfBirth","dob","ReferralCode","referral","changePassword","OldPassword","btoa","oldpwd","ConfirmPassword","confirmpwd","sendResetLink","verifyResetToken","resetPassword","decodeURIComponent","tellAFriend","req","Teller","teller","Tellee","telle","TelleeName","telleeName","checkLogin","getCarouselImages","submitBackEmail","BackupEmail","backupEmail","sendForgotUserame","phoneNumber","sendForgotUserDetail","updateRegWithBackupEmail","user1","backupemail","username","property","details","grant_type","formBody","encodedKey","encodeURIComponent","encodedValue","push","join","Accept","handleLoginResponse","error_description","productService","fetchProduct","logTransaction","customerLookup","categoryCode","billerCode","ResponseMsg","userActions","callback","setItem","userDispatch","failure","dispatch","toString","images","registration","registering","signUpMessage","payload","loginIn","loggingIn","loggedIn","updating","backupUpdateMessage","errorMessage","updatingBackupEmail","activating","activationMessage","forgottenPassword","ressetting","changeErrorMessage","alert","initialState","AlertContext","createContext","AlertProvider","useReducer","Provider","userDetails","changePasswordMessage","changingPassword","updateRegisterMessage","updatingRegister","forgotPasswordMessage","updateBackupEmailMessage","UserContext","UserProvider","signUp","msg","updateRegister","forgotPassword","clearMessage","Dialog","DialogContent","Typography","LinearProgress","useStyles","height","overflowY","LoginModal","handleClose","handleForgotPassword","handleSignUp","classes","useHistory","useContext","Yup","regex","passed","validationSchema","typeError","required","change","persist","handleChange","setFieldTouched","useEffect","useFormik","initialValues","onSubmit","setSubmitting","resetForm","handleSubmit","dirty","touched","isValid","isSubmitting","errors","ThemeProvider","Button","right","Row","Col","bind","ForgotPasswordModal","handleSignin","modalReducer","signInModal","signUpModal","ModalContext","ModalProvider","modalDispatch","openSignInModal","closeSignInModal","openSignUpModal","closeSignUpModal","SignupModal","handleLogin","openSignUp","min","matches","oneOf","Login","useState","setOpen","setForgotPassword","setOpenSignUp","setLogin","Modal","onClose","aria-labelledby","aria-describedby","disableBackdropClick","disableScrollLock","Signup","transition","only","balance","viewBalanceBtn","hideBalanceBtn","XpressWalletBalance","walletBallance","Parameter","WalletID","Pin","ResponseCode","Balance","BorderlessInput","id","borderless","autofocus","updateBtn","UpdateProfile","evt","event","code","keyCode","target","formatString","ChangePassword","loginTitle","createStyles","paperForm","margin","previewTitle","fontWeight","summaryFontBold","formButtons","paddingLeft","display","titleProduct","typegraphyStyles","textAlign","shadows","transactionReducer","loading","transactions","TranHistoryContext","TranHistoryProvider","historyDispatch","getTransactionHistrory","getTransactionHistrorySearch","startDate","endDate","paymentRef","fetchTransactionHistorySearch","EnhanceTableHead","createSortHandler","onRequestSort","onSelectAllClick","order","orderBy","numSelected","rowCount","columns","showCheckbox","showAction","TableHead","TableRow","TableCell","Checkbox","indeterminate","checked","map","column","key","numeric","Numeric","tableCell","DisablePadding","sortDirection","Tooltip","title","placement","enterDelay","TableSortLabel","active","direction","Label","EnhancedTableToolbar","onExportExcel","onExportPdf","onPrint","Toolbar","classNames","highlight","spacer","actions","whiteSpace","IconButton","aria-label","withStyles","paddingRight","unit","minHeight","lighten","light","dark","flex","desc","b","EnhancedTable","handleRequestSort","handleSelectAllClick","selected","n","rowId","selectedData","handleDownloadExcel","_exporter","getPrintableContent","Table","pdfTable","pdfTableHeader","align","TableBody","row","Format","formatCellValue","handleDownloadPdf","pdfFileName","getElementById","downloadPdf","handlePrint","handleClick","selectedIndex","newSelected","concat","_selectedData","filter","f","handleChangePage","page","handleChangeRowsPerPage","rowsPerPage","isSelected","processData","mainData","_data","el","v","toLocaleString","navigator","language","minimumFractionDigits","excelFileName","showToolbar","paging","actionOption","onCreateAction","headerPaddingCellOptions","exporter","field","Value","Paper","tableWrapper","table","array","cmp","stabilizedThis","sort","stableSort","getSorting","hover","role","aria-checked","tabIndex","colSpan","TablePagination","count","backIconButtonProps","nextIconButtonProps","onChangePage","onChangeRowsPerPage","overflowX","getReceiptData","_receipt","rowHeight","transactionDetails","justifyContent","src","alt","ProductImage","TransactionDescription","scope","OrderStatus","ReceiptItems","OrderDetails","OrderNumber","OrderAmount","Fee","OrderDate","tranHistoryColumns","head","overallContainer","container","maxHeight","webkitBoxShadow","play","topForm","inputPadding","dialogContent","lineHeight","TransactionHistory","openDetails","setOpenDetails","setTransactionDetails","when","is","val","undefined","showDetails","closeDetails","Grid","TextField","label","InputLabelProps","shrink","option","preventDefault","UrlPath","BillerCode","DialogTitle","DialogActions","createData","Date","PR","Product","Amount","NS","PS","Action","handleSearch","bulkTransactionTitle","paddingTop","paddingBottom","transactionContainer","AllTransactionHistory","reset","marginRight","AddBackupEmail","item","ProfileDropdown","data-toggle","aria-haspopup","aria-expanded","textDecoration","to","Header","setShowLogo","Policy","anchorEl","setAnchorEl","Boolean","currentTarget","Popover","popover","anchorOrigin","vertical","horizontal","transformOrigin","Footer","footer","about","socialIcons","info","downloads","categories","products","filteredPproducts","mappedCategoriesAndProducts","lookup","transactionId","currentCategory","loadingNotification","notifyBillerResponse","items","fields","ProductContext","ProductProvider","productReducer","productDispatch","getProductCategories","categoriesAndProducts","data1","forEach","product","category","CategoryCode","searchBillers","searchText","lowerCaseSearchText","toLowerCase","filterProducts","ProductName","includes","notifyBillers","url","PaymentMethodString","transId","TranId","path","notifyBiller","clearSearchResult","rateTransactions","rateTransaction","otherPagesSlider","img","OtherPagesSlider","settings","dots","infinite","speed","slidesToShow","slidesToScroll","autoplay","autoplaySpeed","adaptiveHeight","borderBottom","flexGrow","searchField","categoryName","image","OtherServices","pathname","tooltip","Purchase","showProduct","setSearchText","pathUrl","useRouteMatch","pathName","decodeURI","handleProduct","Accessibility","ExternalLink","ProductType","LinkType","handleRedirect","_type","product1","p","noValidate","autoComplete","searchText1","CategoryName","Link","FormReview","handleBack","getFee","formValues","reviewValues","setReviewValue","customerEmail","convFee","totalAmount","toDisplay","ShowOnPaymentConfirmation","AmountField","emailField","find","FieldType","l","_value","ControlType","_option","ListItems","ItemValue","ItemDesc","iValue","parseFloat","_item","FieldName","alignItems","previewMain","_handleSubmit","Divider","GateWay","parameters","_this","XPay","InitialisePayment","amount","TotalAmount","TransactionId","Email","publicKey","PublicKey","currency","mode","callbackUrl","CallBackUrl","productId","ProductId","productDescription","metadata","authorizeUrl","console","log","withTheme","formTitle","formControl","minWidth","productName","PurchaseForm","tranId","logTransactions","setProduct","formFields","setFormFields","validationsSchema","setValidationsSchema","formValue","setFormValue","_formStatus","amountField","listId","formStatus","gateWay","transactionDetail","approvalStatus","redirect","loadTransaction","_values","fetchTransaction","c","ControlId","ControlValue","_status","queryString","search","filterdCategory","obj","Object","entries","Fields","getValidationSchema","customised","_email","_phone","_validation","flds","_validations","shouldValidate","InputSource","Required","_minAmount","MinAmount","MaxAmount","max","Size","getValidations","enableReinitialize","DoCustomerLookup","lookupInputs","CustomerLookupInput","prop","CustomerLookupInputKey","ItemDataValue","lookupCallBack","setFieldValue","amountRef","toPopulate","InputSourceKey","Properties","amountFld","AmountEditable","isDisabled","_isDisabled","populator","LookupListAmountFieldId","_inputProps","editable","toUpperCase","controlId","FormControl","InputLabel","Select","helperText","_targetInst","pendingProps","populateAmount","selectProps","displayEmpty","MenuProps","dropdownStyle","InputProps","startAdornment","InputAdornment","MenuItem","data-amount","inputRef","createRef","inputComponent","NumberFormatCustom","inputProps","amt","fee","ChargeType","Charge","_controls","_control","WControls","BillCode","ApprovalStatus","PaymentMode","other","getInputRef","onValueChange","thousandSeparator","prefix","PurchaseStatus","itemxs","DesignBtn","big","About","aboutContainer","vision","other2","mission","other3","ourValues","Overview","Carousel","options","rewind","loop","autoHeight","autoWidth","cellPadding","animateIn","class","Home","searchResults","setSearchResults","activeIndex","Btn","menu","Icon","float","Faq","faqContainer","faqContent","faqs","question","answer","advert","supportReducer","subjects","SupportContext","SupportContextProvider","supportDispatch","getSupportSubjects","fetchSubjects","supportAction","CustomerName","displayName","CustomerEmail","Comment","comment","Subject","subject","saveSupport","commentBox","Support","Input","select","SelectProps","TextareaAutosize","rowsMin","dashboardSliders","SimpleSlider","TransactionContext","TransactionProvider","transactionDispatch","loadingActivity","getDashboardTransaction","fetchDashboardTransactionHistory","listItem","borderLeft","borderBottomLeftRadius","borderTopLeftRadius","listItem2","headerContainer","header","letterSpacing","ActivityLog","phoneNumberLebels","setPhoneNumberLebel","getPhoneNumber","receiptItems","getMonth","List","ListItem","ListItemAvatar","Dashboard","slideRef","useRef","billers","setBillers","dashboardContainer","welcomeAvatar","userAvatar","avatar","welcomeMsg","leftSide","quickAccess","accessContainer","Card","card","controls","current","scrollTo","behavior","scrollLeft","clientWidth","transactionAdverts","variantIcon","CheckCircleIcon","warning","WarningIcon","ErrorIcon","InfoIcon","amber","iconVariant","_showAction","SnackbarContent","close","tellAFriendreducer","TellAFriendContext","TellAFriendContextProvider","tellAFriendDispatch","TAF","PrivateRoute","LoggedIn","rest","exact","CookiesPolicy","PrivacyPolicy","ActivationContext","ActivationContextProvider","activationDispatch","ConfirmAccount","resetMessage","_token","BackupEmailUpdateContext","BackupEmailUpdateContextProvider","profileUpdateDispatch","BackUpEmailConfirmation","params","AccountResetContext","AccountResetContextProvider","verifyDispatch","ResetPassword","param","formButton","getModalStyle","transform","stars","ratingImg","paragraph","labels","1","2","3","4","5","RatingModal","openModal","modalStyle","setHover","ratingIllustration","Rating","defaultValue","size","emptyIcon","precision","newValue","onChangeActive","newHover","Box","ml","typographyStyles","yourInfo","paper2","Notification","rating","rate","UserId","Channel","TransactionStatus","CategoryPath","LogOut","logoutUser","overflow","paperForm1","tableContent","downloadLink","caveat","textField","total","BulkUploadForm","providers","handleFetchProviders","fileUpload","setFileUpload","narration","file","handleFileChange","files","fileChange","fetchProviders","FormData","append","uploadFile","bulkDetails","BulkDetails","Message","fileStyle","input","ProviderName","ProviderCode","SubscriberNo","fetchEvents","getTotalAmount","summary","TicketSummary","handleProdceed","fullName","_class","ticketClassses","t","classid","ticket","venue","quantity","_amt","eventArtwork","goBack","reviewValueObject","buttonDiv","EventTicketForm","handleGoBack","handleStatus","price","getAmt","_amount","_val","isNaN","onTicketChange","onQtyChange","data-price","data-venue","containerDiv","cardImg","fontStyle","bookTicketBtn","Img","paper3","eventModal","eventTitle","events","eventDescription","Events","showView","handleOpen","hanadleEventForm","CardContent","CardActionArea","BackdropProps","description","formvalues","fetchMovies","fetchShowtimes","movieId","cinemaId","MovieTicketSummary","movie","allShowTimes","_cinema","cinemas","uid","cinema","day","showtimeid","adult","student","artworkThumbnail","MovieTicketForm","showTimes","days","getShowDays","_days","_showTimes","showtimes","getShowTimes","_day","s","showTime","adultPrice","studentPrice","childrenPrice","onCinemaChange","onDayChange","ListAlt","onShowTimeChange","data-adult","data-student","data-children","movies","seeMore","movieDescription","movieModal","movieTitle","Movies","openTrailer","setOpenTrailer","openMovieInfo","setOpenMovieInfo","handleTrailerClose","hanadleMovieForm","handleMovieInfoClose","artwork","genre","youtubeid","frameBorder","allowFullScreen","autoFocus","duration","providerName","providerCode","productCode","BulkUploadPreview","WalletTopupSummary","customerName","customerAccountNumber","accountInfo","walletForm","TopUpWallet","walltetBalance","setWalletBalance","customerAccountType","verified","wId","person","ws","getitemValue","_success","_failure","descendingComparator","headCells","disablePadding","EnhancedTableHead","headCell","visuallyHidden","clip","setOrder","setOrderBy","setPage","setRowsPerPage","setLoading","repost","transaction","repostTransaction","TableContainer","comparator","getComparator","PaymentReference","RequestData","PaymentStatus","rowsPerPageOptions","newPage","parseInt","dialog","compliment","BulkUploadNotification","openTransactionDetail","setOpenTransactionDetail","handleTransactionDetailsClose","fecthBulkDetail","paymentReference","fetchTransactions","Narration","TransactionCount","MovieNotification","EventNotification","customStyles","overlay","bottom","xpressPrimaryBtn","xpressDefaultBtn","setAppElement","form","PostGuess","UserEmail","elements","UserPhone","UserGuess","guess","Headers","Authorization","cache","credentials","closeModal","Swal","fire","animation","customClass","html","inputAttributes","autocapitalize","showCancelButton","confirmButtonText","showLoaderOnConfirm","focusConfirm","preConfirm","phoneToCredit","ageRange","gender","Array","from","getElementsByName","r","showValidationMessage","ValidatePhoneNo","data2","Location","PhoneNotoCredit","AgeRange","Gender","allowEscapeKey","allowOutsideClick","result","modalIsOpen","afterOpenModal","subtitle","isOpen","onAfterOpen","onRequestClose","contentLabel","overlayClassName","shouldCloseOnOverlayClick","CampaignName","GuessRange","htmlFor","GuessAndWin","Status","UploadFrequency","appBar","drawer","transitions","create","easing","sharp","leavingScreen","appBarShift","enteringScreen","menuButton","hide","flexShrink","iconImg","dashboardIcon","moreServicesIcon","boxSizing","drawerOpen","hideLogo","showLogo","drawerClose","toolbar","mixins","brand","MiniDrawer","useTheme","innerWidth","handleDrawerOpen","handleDrawerClose","sideNavItems","setSideNavItems","filteredMenu","sideNavItem","closeAlert","AppBar","clsx","edge","Drawer","icon1","img1","dense","ListItemIcon","dropdown","cursor","route","EventTicketSummary","Snackbar","autoHideDuration","PrivacyPolicyModal","handleCookies","CookiesPolicyModal","handlePrivacy","policyButton","PolicyModal","openCookies","setOpenCookies","openPrivacy","setOpenPrivacy","App","onDecline","debug","declineButtonText","buttonText","cookieName","onAccept","Cookies","set","overlayStyle","buttonClasses","contentClasses","disableButtonStyles","expires","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.188ba502.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"aboutContainer\":\"about_aboutContainer__1MEnK\",\"info1\":\"about_info1__cYx9d\",\"vision\":\"about_vision__1P80X\",\"about\":\"about_about__3Uyyn\",\"info2\":\"about_info2__2bsCF\",\"mission\":\"about_mission__2lmqq\",\"values\":\"about_values__1Wgr8\",\"ourValues\":\"about_ourValues__2Detb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"input_input__3qcL7\",\"passwordInput\":\"input_passwordInput__2EVcR\",\"onboarding\":\"input_onboarding__1gYnr\",\"disabled\":\"input_disabled__C1mBG\",\"formInput\":\"input_formInput__20-iD\",\"borderless\":\"input_borderless__DFHi4\",\"change\":\"input_change__25LHk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"footer_footer__1lZIc\",\"about\":\"footer_about__2GpIx\",\"socialIcons\":\"footer_socialIcons__RQ_En\",\"info\":\"footer_info__32CKn\",\"downloads\":\"footer_downloads__47fwq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"styles_btn__3k3v9\",\"small\":\"styles_small__2PFg3\",\"big\":\"styles_big__2xb9P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"sidenav_container__3E-lE\",\"dropdown\":\"sidenav_dropdown__1vZk3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"button_btn__SGdXd\",\"nav\":\"button_nav__2XHOx\",\"small\":\"button_small__14mQu\",\"medium\":\"button_medium__2JYYh\",\"large\":\"button_large__29CND\",\"menu\":\"button_menu__3wS2J\",\"noBackground\":\"button_noBackground__JuOKu\",\"rounded\":\"button_rounded__33rn3\",\"green\":\"button_green__PjkyF\",\"orange\":\"button_orange__2zWem\",\"close\":\"button_close__2amMr\",\"left\":\"button_left__1qdx0\",\"right\":\"button_right__bNlzB\",\"disabled\":\"button_disabled__2q2tI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"faqContainer\":\"faq_faqContainer__3w8N5\",\"faqContent\":\"faq_faqContent__3U5c_\",\"topDecor\":\"faq_topDecor__2rso2\",\"listAds\":\"faq_listAds__19vDb\",\"question\":\"faq_question__35zEO\",\"answer\":\"faq_answer__17swI\",\"advert\":\"faq_advert__Pz1wH\",\"container\":\"faq_container__3IXaj\",\"faqs\":\"faq_faqs__2kkUA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginTitle\":\"login_loginTitle__2I87J\",\"more\":\"login_more__1_Guc\",\"other\":\"login_other__10G5J\",\"left\":\"login_left__jINfj\",\"right\":\"login_right__zs5Ii\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search\":\"home_search__1nTJt\"};","import React from 'react';\nimport styles from './button.module.css';\n\n\nconst CTA = ({text, icon, small, noBackground,green,orange, large, nav, rounded,medium,style, action, type, disabled }) =>{\n return (\n \n {icon} \n {text} \n \n )\n\n}\n\nexport default CTA;","import React from \"react\";\nimport styles from \"./input.module.css\";\n\nconst PasswordInput = ({\n text,\n icon,\n placeholder,\n style,\n name,\n value,\n onChange,\n onBlur,\n type,\n}) => {\n return (\n
\n \n {icon}\n \n \n {/* {icon} */}\n
\n );\n};\nexport default PasswordInput;\n","import React from \"react\";\nimport styles from \"./input.module.css\";\n\nconst OnboardingInput = ({\n text,\n icon,\n placeholder,\n style,\n type,\n name,\n value,\n onChange,\n onBlur,\n error,\n disabled,\n onKeyUp,\n}) => {\n return (\n
\n \n {icon}\n \n \n
\n );\n};\nexport default OnboardingInput;\n","import { createMuiTheme } from \"@material-ui/core/styles\";\n\nconst breakpointValues = {\n xs: 0,\n sm: 450,\n md: 600,\n lg: 1040,\n xl: 1300,\n};\n\n// Create a theme instance.\nexport const theme = createMuiTheme({\n breakpoints: {\n values: breakpointValues,\n },\n palette: {\n primary: {\n main: \"#ff6c00\",\n },\n secondary: {\n main: \"#006d01\",\n },\n },\n typography: {\n fontFamily: \"century gothic\",\n body2: {\n fontFamily: \"century gothic\",\n // fontSize: \"1.1rem\"\n },\n },\n shape: {\n borderRadius: 3,\n },\n spacing: 8,\n overrides: {\n MuiFilledInput: {\n root: {\n backgroundColor: \"white\",\n },\n },\n MuiInputLabel: {\n root: {\n backgroundColor: \"transparent\",\n },\n },\n MuiTextField: {\n root: {},\n },\n MuiButton: {\n root: {\n textTransform: \"none\",\n padding: \"20px\",\n },\n fullWidth: {\n maxWidth: \"300px\",\n },\n },\n MuiBackdrop: {\n backgroundColor: \"rgba(0,0,0,0.2)\",\n },\n },\n props: {\n MuiButton: {\n disableRipple: true,\n variant: \"contained\",\n color: \"primary\",\n },\n MuiCheckbox: {\n disableRipple: true,\n },\n MuiTextField: {\n // variant: \"filled\",\n },\n MuiPaper: {\n elevation: 12,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n },\n MuiCard: {\n elevation: 12,\n },\n },\n});\n","import React from \"react\";\nimport { InputLabel, Input } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CTA from \"../button/cta-button\";\nimport styles from \"../../pages/login/login.module.css\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"@material-ui/core\";\nimport { TextField, ThemeProvider } from \"@material-ui/core\";\nimport OnboardingInput from \"../inputs/onboarding-input\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.between(\"md\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-100px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n // backgroundColor: 'orange',\n },\n },\n modal: {\n background: \"rgba(237, 219, 219, 0.9)\",\n },\n button: {\n marginLeft: \"90%\",\n marginBottom: \"40px\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\n\nconst ForgotPswd = (style) => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const body = (\n \n \n

\n Recover my password\n

\n \n \n }\n />\n \n \n \n \n \n \n \n
\n \n \n \n I remember my Password\n

\n \n \n {\" \"}\n \n \n
\n \n
\n \n );\n\n return (\n
\n
\n Forgot Password?\n
\n \n {body}\n \n
\n );\n};\n\n// const ForgotPswd =() =>{\n// return(\n//
\n//
I want to recover my account
\n// \n//
\n\n// )\n// }\n\nexport default ForgotPswd;\n","export const alertConstants = {\n SUCCESS: 'ALERT_SUCCESS',\n ERROR: 'ALERT_ERROR',\n CLEAR: 'ALERT_CLEAR'\n};\n","export const userConstants = {\n REGISTER_REQUEST: 'USERS_REGISTER_REQUEST',\n REGISTER_SUCCESS: 'USERS_REGISTER_SUCCESS',\n REGISTER_FAILURE: 'USERS_REGISTER_FAILURE',\n REGISTER_CLEAR: 'REGISTER_CLEAR',\n\n ACTIVATE_REQUEST: 'USERS_ACTIVATE_REQUEST',\n ACTIVATE_SUCCESS: 'USERS_ACTIVATE_SUCCESS',\n ACTIVATE_FAILURE: 'USERS_ACTIVATE_FAILURE',\n\n LOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\n LOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\n LOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\n LOGIN_IN_REQUEST: 'LOGIN_IN_REQUEST',\n LOGIN_IN_REQUEST_FINISH: 'LOGIN_IN_REQUEST_FINISH',\n \n LOGOUT: 'USERS_LOGOUT',\n\n GETALL_REQUEST: 'USERS_GETALL_REQUEST',\n GETALL_SUCCESS: 'USERS_GETALL_SUCCESS',\n GETALL_FAILURE: 'USERS_GETALL_FAILURE',\n\n GET_REQUEST: 'USERS_GET_REQUEST',\n GET_SUCCESS: 'USERS_GET_SUCCESS',\n GET_FAILURE: 'USERS_GET_FAILURE',\n\n UPDATE_REQUEST: 'USERS_UPDATE_REQUEST',\n UPDATE_SUCCESS: 'USERS_UPDATE_SUCCESS',\n UPDATE_FAILURE: 'USERS_UPDATE_FAILURE',\n\n DELETE_REQUEST: 'USERS_DELETE_REQUEST',\n DELETE_SUCCESS: 'USERS_DELETE_SUCCESS',\n DELETE_FAILURE: 'USERS_DELETE_FAILURE',\n \n RESET_REQUEST: 'USERS_RESET_REQUEST',\n RESET_SUCCESS: 'USERS_RESET_SUCCESS',\n RESET_FAILURE: 'USERS_RESET_FAILURE',\n\n VERIFY_REQUEST: 'USERS_VERIFY_REQUEST',\n VERIFY_SUCCESS: 'USERS_VERIFY_SUCCESS',\n VERIFY_FAILURE: 'USERS_VERIFY_FAILURE',\n\n CHANGE_REQUEST: 'USERS_CHANGE_REQUEST',\n CHANGE_SUCCESS: 'USERS_CHANGE_SUCCESS',\n CHANGE_FAILURE: 'USERS_CHANGE_FAILURE',\n\n BACKUP_REQUEST: 'BACKUP_REQUEST',\n BACKUP_SUCCESS: 'BACKUP_SUCCESS',\n BACKUP_FAILURE: 'BACKUP_FAILURE',\n\n UPDATE_BACKUP_REQUEST: 'UPDATE_BACKUP_REQUEST',\n UPDATE_BACKUP_SUCCESS: 'UPDATE_BACKUP_SUCCESS',\n UPDATE_BACKUP_FAILURE: 'UPDATE_BACKUP_FAILURE',\n\n PAGE_TITLE: 'PAGE_TITLE',\n};\n","export const supportConstants = {\n FETCH_SUBJECTS: 'SUPPORT_FETCH_SUBJECTS',\n FETCH_SUBJECTS_REQUEST: 'FETCH_SUBJECTS_REQUEST',\n SUPPORT_SAVE: 'SUPPORT_SAVE'\n};\n","export const productConstants = {\n FETCH_CATEGORIES: 'FETCH_PRODUCT_CATEGORIES',\n FETCH_CATEGORY_PRODUCTS: 'FETCH_CATEGORY_PRODUCTS',\n FILTER_CATEGORY_PRODUCTS: 'FILTER_CATEGORY_PRODUCTS',\n FETCH_PRODUCT_FIELDS: 'FETCH_PRODUCT_FIELDS',\n CLEAR_CATEGORY: 'CLEAR_CATEGORY',\n CUSTOMER_LOOKUP_ACTION: 'CUSTOMER_LOOKUP_ACTION',\n TRANSACTION_INITIATION: 'TRANSACTION_INITIATION',\n CONTROL_TYPE_SELECT: 'LOOKUP',\n CONTROL_TYPE_TEXTBOX: 'TEXTBOX',\n CONTROL_INPUT_TYPE_USER: 'user',\n CONTROL_INPUT_TYPE_LOOKUP: 'customer-lookup',\n FIELD_TYPE_EMAIL: 'Email',\n FIELD_TYPE_PHONE: 'Phone',\n FIELD_TYPE_NUMBER: 'Number',\n FIELD_TYPE_DECIMAL: 'Decimal',\n FORM_STATUS_INPUTTING: 'FORM_STATUS_INPUTTING',\n FORM_STATUS_LOOKEDUP: 'FORM_STATUS_LOOKEDUP',\n FORM_STATUS_CONFIRMING: 'FORM_STATUS_CONFIRMING',\n FORM_STATUS_CONFIRMED: 'FORM_STATUS_CONFIRMED',\n CHARGE_TYPE_FIXED: 'FIXED',\n CHARGE_TYPE_PERCENTAGE: 'PERCENTAGE',\n REQUEST_FINISH: 'REQUEST_FINISH',\n SENDING_REQUEST: 'SENDING_REQUEST',\n SENDING_PRODUCT_REQUEST: 'SENDING_PRODUCT_REQUEST',\n PRODUCT_REQUEST_FINISH: 'PRODUCT_REQUEST_FINISH',\n FETCH_CATEGORY_MAPPED_PRODUCTS: 'FETCH_CATEGORY_MAPPED_PRODUCTS',\n FETCH_PRODUCT_FIELDS_COMPLETED: 'FETCH_PRODUCT_FIELDS_COMPLETED',\n NOTIFY_BILLER_RESPONSE: 'NOTIFY_BILLER_RESPONSE',\n REQUEST_NOTIFICATION_FINISH: 'REQUEST_NOTIFICATION_FINISH',\n SENDING_NOTIFICATION_REQUEST: 'SENDING_NOTIFICATION_REQUEST',\n SEARCH_FETCH_CATEGORY_PRODUCTS: 'SEARCH_FETCH_CATEGORY_PRODUCTS',\n};\n","export const transactionConstants = {\n FETCH_DASHBOARD_TRANSACTION: 'FETCH_DASHBOARD_TRANSACTION',\n SENDING_REQUEST: 'SENDING_REQUEST',\n\n FETCH_TRANSACTION_HISTORY: 'FETCH_TRANSACTION_HISTORY',\n TRANSACTION_HISTORY_REQUEST: 'TRANSACTION_HISTORY_REQUEST',\n\n FETCH_TRANSACTION_HISTORY_SEARCH: 'FETCH_TRANSACTION_HISTORY_SEARCH',\n TRANSACTION_HISTORY_SEARCH_REQUEST: 'TRANSACTION_HISTORY_SEARCH_REQUEST',\n};\n","export const tellAFriendConstant = {\n REQUEST: 'TELL_A_FRIEND_REQUEST',\n RESPONSE: 'TELL_A_FRIEND_RESPONSE',\n};\n","// const config = {\n// apiUrl:\n// // \"http://80.88.8.245:9007\",\n// \"https://cloned.payxpress.com/PayXpressAPI\",\n// // \"https://test.payxpress.com:9007\",\n// //\"http://localhost:64572\",\n// apiUrl2: \"https://cloned.payxpress.com/VASAPI2\",\n// // \"http://80.88.8.245:9006\",\n// //\"https://test.payxpress.com:9006\",\n// // \"http://80.88.8.245:9006\",\n// // \"http://localhost:54260\",\n// apiUrl2Credentials: \"web:password123\",\n// siteTitle: \"Xpress Payment Solutions Limited\",\n// paymentMethod: \"PAYXPRESS\",\n// ghanaUrl: \"https://test.payxpress.com:9001\",\n// \"https://test.payxpress.com:9000/XpressEvents/index.aspx\": \"events\",\n// \"https://test.payxpress.com:9000/XpressMovies/index.aspx\": \"movies\",\n// \"https://test.payxpress.com:9001/BulkUpload.aspx\": \"bulk-upload\",\n// };\n// export default config;\n\nconst config = {\n apiUrl: \"https://www.payxpress.com/PayXpressAPI\",\n apiUrl2: \"https://www.payxpress.com/VASAPI2\",\n apiUrl2Credentials: \"web:xLaa0fhhCsiSdpvOjXPWxw==\",\n siteTitle: \"Xpress Payment Solutions Limited\",\n paymentMethod: \"PAYXPRESS\",\n oldUrl: \"https://old.payxpress.com:9000\",\n \"https://payxpress.com/Events/index.aspx\": \"events\",\n \"https://payxpress.com/Movies/index.aspx\": \"movies\",\n \"https://old.payxpress.com:9000/BulkUpload1.aspx\": \"bulk-upload\",\n};\nexport default config;\n","import { createBrowserHistory } from 'history';\n\nexport const history = createBrowserHistory();","export function authHeader() {\n let user = JSON.parse(localStorage.getItem('user'));\n\n if (user && user.access_token) {\n return { 'Authorization': 'Bearer ' + user.access_token };\n } else {\n return {};\n }\n}","import React from 'react';\nimport { PDFExport } from '@progress/kendo-react-pdf';\nclass PrintPDF extends React.Component { \n constructor(props) {\n super(props);\n this.state = {\n download: true,\n };\n }\n pdfExportComponent;\n componentDidMount(){\n this.pdfExportComponent.save();\n this.setState({download:false});\n }\n\n componentWillUpdate(prevProps, nextProps){\n if(nextProps.download){\n if (this.pdfExportComponent){\n this.pdfExportComponent.save();\n this.setState({download:false});\n } \n else{\n this.setState({download:true});\n } \n }\n }\n\n componentWillReceiveProps(){\n if (!this.state.download) this.setState({download:true});\n }\n \n render(){\n const { children, filename } = this.props;\n return (\n \n { this.state.download && \n this.pdfExportComponent = component} \n paperSize=\"A4\"\n fileName={filename}\n >\n {children}\n \n }\n \n );\n }\n}\nexport default PrintPDF;","import { alertConstants } from '../_constants';\n\nexport const alertActions = {\n success,\n error,\n clear,\n};\n\nfunction success(message) {\n return { type: alertConstants.SUCCESS, message };\n}\n\nfunction error(message) {\n return { type: alertConstants.ERROR, message };\n}\n\nfunction clear() {\n return { type: alertConstants.CLEAR };\n}","//import config from 'react-global-configuration';\nimport configuration from '../config';\nimport { handleResponse } from '../helpers';\nimport { authHeader } from '../_helpers';\n\nexport const fetchSubjects = () => {\n const requestOptions = {\n method: 'GET',\n headers: { ...authHeader(), 'Content-Type': 'application/json' }\n };\n return fetch(`${configuration.apiUrl}/Supports/Subjects`, requestOptions)\n .then(handleResponse);\n}\n\nexport const saveSupport = (req) => {\n const _req = {\n requestData: {\n CustomerName: req.displayName,\n CustomerEmail: req.email,\n Comment: req.comment,\n Subject: req.subject\n }\n }\n const requestOptions = {\n method: 'POST',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify(_req)\n };\n return fetch(`${configuration.apiUrl}/Supports/Save`, requestOptions)\n .then(handleResponse);\n}\n","//import config from 'react-global-configuration';\nimport configuration from \"../config\";\n\nimport { productConstants } from \"../_constants\";\nimport { alertActions } from \".\";\nimport { handleResponse } from \"../helpers\";\nimport { authHeader } from \"../_helpers\";\nimport { productService } from \"../_services\";\n\nexport const fetchCategories = async () => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n return fetch(\n `${configuration.apiUrl}/Products/Categories`,\n requestOptions\n ).then(handleResponse);\n};\n\nexport const fetchProducts = async () => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n return fetch(`${configuration.apiUrl}/Products`, requestOptions).then(\n handleResponse\n );\n};\n\nexport const fetchProduct = (categoryCode, billerCode) => {\n return productService.fetchProduct(categoryCode, billerCode).then(\n (resp) => {\n return resp;\n },\n (error) => {\n return error;\n }\n );\n};\n\nexport const fetchCategoryAndProducts = (category, items) => {\n let products = [];\n if (items && items.length > 0) {\n return {\n type: productConstants.FILTER_CATEGORY_PRODUCTS,\n payload: products,\n category,\n };\n } else {\n return {\n type: productConstants.FILTER_CATEGORY_PRODUCTS,\n payload: [],\n category: [],\n };\n }\n};\n\nexport const fetchServerProducts = async (category) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n fetch(\n `${configuration.apiUrl}/Products/GetCategoryProducts/?CategoryCode=${category}`,\n requestOptions\n )\n .then(handleResponse)\n .then(\n (resp) => {\n return resp;\n },\n (error) => {}\n );\n};\n\nexport const fetchAllProducts = async () => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n fetch(`${configuration.apiUrl}/Products`, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n return resp;\n },\n (error) => {}\n );\n};\n\nexport const fetchDashboardTransactionHistory = () => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Reports/FetchDashBoardTransactionHistory`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const clearCategory = () => ({\n type: productConstants.CLEAR_CATEGORY\n});\n\nexport const fetchFields = async (billerCode, category) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Products/Fields/?BillerCode=${billerCode}&Category=${category}`;\n fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n return resp;\n },\n (error) => {}\n );\n};\n\nexport const customerLookup = (_req, _success, _failure) => (dispatch) => {\n dispatch(request());\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n var _url = `${configuration.apiUrl}/Products/Lookup`;\n fetch(_url, requestOptions)\n .then((response) => {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n const error = (data && data.ResponseMsg) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n })\n .then(\n (resp) => {\n dispatch(success(resp));\n if (resp !== null && resp.ResponseCode === \"00\") {\n if (!!_success) {\n _success();\n }\n } else {\n dispatch(alertActions.error(resp.ResponseMsg));\n if (!!_failure) {\n _failure();\n }\n }\n },\n (error) => {\n dispatch(failure());\n dispatch(alertActions.error(error.toString()));\n if (!!_failure) {\n _failure();\n }\n }\n );\n\n function request() {\n return { type: productConstants.CUSTOMER_LOOKUP_ACTION, payload: {} };\n }\n function success(data) {\n return { type: productConstants.CUSTOMER_LOOKUP_ACTION, payload: data };\n }\n function failure() {\n return { type: productConstants.CUSTOMER_LOOKUP_ACTION, payload: {} };\n }\n};\n\nexport const logTransaction = (_req, _success, _failure) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/Products/LogTransaction`;\n return fetch(_url, requestOptions).then(handleResponse);\n\n function request() {\n return { type: productConstants.TRANSACTION_INITIATION, payload: {} };\n }\n function success(data) {\n return { type: productConstants.TRANSACTION_INITIATION, payload: data };\n }\n function failure() {\n return { type: productConstants.TRANSACTION_INITIATION, payload: {} };\n }\n};\n\nexport const logWalletTransaction = (_req, _success, _failure) => (\n dispatch\n) => {\n dispatch(request());\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(req),\n // mode: 'no-cors',\n };\n var _url = `${configuration.apiUrl}/Products/LogTransaction`;\n fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n dispatch(success(resp));\n if (!!_success) {\n _success(resp);\n }\n },\n (error) => {\n dispatch(failure());\n dispatch(alertActions.error(error.toString()));\n if (!!_failure) {\n _failure();\n }\n }\n );\n\n function request() {\n return {\n type: productConstants.TRANSACTION_INITIATION,\n payload: {},\n };\n }\n\n function success(data) {\n return {\n type: productConstants.TRANSACTION_INITIATION,\n payload: data,\n };\n }\n\n function failure() {\n return {\n type: productConstants.TRANSACTION_INITIATION,\n payload: {},\n };\n }\n};\n\nexport const notifyBiller = (_req) => {\n let req = {};\n if (!!_req.url && _req.url !== \"\") {\n req = {\n requestData: {\n PaymentMethodString: _req.PaymentMethodString,\n transId: _req.TranId,\n },\n };\n } else {\n req = {\n requestData: {\n PaymentMethodString: _req.PaymentMethodString,\n TranId: _req.TranId,\n },\n };\n }\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n\n const path = _req.url ? _req.url : \"Products/NotifyBiller\";\n var _url = `${configuration.apiUrl}/${path}`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const fetchTransaction = (id) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n return fetch(\n `${configuration.apiUrl}/Products/FetchTransactionValues?TranId=${id}`,\n requestOptions\n ).then(handleResponse);\n};\n\nexport const rateTransaction = (_req) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/Ratings/RateTransaction`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const fetchDashboardItems = (_success, _failure) => (dispatch) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Reports/FetchDashboardItems`;\n fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n if (!!_success) {\n _success(resp);\n }\n },\n (error) => {\n dispatch(alertActions.error(error.toString()));\n if (!!_failure) {\n _failure();\n }\n }\n );\n};\nexport const searchProducts = (q, _success, _failure) => (dispatch) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Products/Search?q=${q}`;\n fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n if (!!_success) {\n _success(resp);\n }\n },\n (error) => {\n dispatch(alertActions.error(error.toString()));\n if (!!_failure) {\n _failure();\n }\n }\n );\n};\nexport const getReceipt = async (Id) => {\n let data = {};\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Reports/FetchReceipt?Id=${Id}`;\n await fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n data = resp;\n },\n (error) => {}\n );\n return data;\n};\nexport const searchTransaction = (req, _success, _failure) => (dispatch) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n let _url = `${configuration.apiUrl}/Reports/FetchTransactionByDate?datefrom=${req.startDate}&dateto=${req.endDate}`;\n fetch(_url, requestOptions)\n .then(handleResponse)\n .then(\n (resp) => {\n if (!!_success) {\n _success(resp);\n }\n },\n (error) => {\n dispatch(alertActions.error(error.toString()));\n if (!!_failure) {\n _failure();\n }\n }\n );\n};\n\nexport const fetchTransactionHistory = () => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n let _url = `${configuration.apiUrl}/Reports/FetchTransactionHistory`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const fetchTransactionHistorySearch = (req) => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n let startDate = req.startDate ? req.startDate : \"\";\n let endDate = req.startDate ? req.endDate : \"\";\n let paymentRef = req.paymentRef ? req.paymentRef : \"\";\n let _url = `${configuration.apiUrl}/Reports/FetchTransactionHistorySearch?datefrom=${startDate}&dateto=${endDate}&paymentRef=${paymentRef}`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const fetchWalletBalance = (_req) => {\n const requestOptions = {\n method: \"POST\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(_req),\n };\n var _url = `${configuration.apiUrl}/Products/GetWalletBalance`;\n return fetch(_url, requestOptions).then((response) => response.json());\n};\n\nexport const fetchFieldsForTopUp = () => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n let _url = `${configuration.apiUrl}/Products/FieldsForTopUp`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { range } from \"lodash/fp\";\nimport moment from \"moment\";\nimport PrintPDF from \"./components/print-pdf\";\nimport { userActions } from \"./_actions\";\n// import { store } from './_helpers';\n\nexport const delay = (ms) => new Promise((res) => setTimeout(res, ms));\n\nexport const checkStatus = (response) => {\n if (response.status >= 200 && response.status < 300) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n};\nexport const checkJsonStatus = (json) => {\n if (json.status === \"success\") {\n return json;\n }\n const error = new Error(json.data.message);\n error.payload = json;\n throw error;\n};\nexport const checkStatusIs200 = (response) => {\n if (response.status === 200) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n};\nexport const check401 = (response) => {\n if (response.status === 401) {\n const error = new Error(response.statusText);\n throw error;\n }\n return;\n};\n\nexport const checkContentType = (contentType, response) => {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType && responseContentType.includes(contentType)) {\n return response;\n }\n const error = new Error(\"not json\");\n error.response = response;\n throw error;\n};\n\nexport const parseJSON = (response) => response.json();\n\nexport const createRequestWithToken = (url = \"\", config) => (token) => {\n const validMethods = [\"GET\", \"POST\", \"HEAD\", \"PUT\", \"DELETE\", \"PATCH\"];\n const defaultconfig = {\n mode: \"cors\",\n cache: \"default\",\n credentials: \"same-origin\",\n };\n const defaultHeaders = new Headers();\n defaultHeaders.set(\"Content-Type\", \"application/json\");\n defaultHeaders.set(\"Authorization\", `Bearer ${token}`);\n defaultHeaders.set(\"Accept\", `application/json`);\n\n if (typeof config.method !== \"string\") {\n throw new TypeError(\"config method property must be a string.\");\n }\n if (validMethods.indexOf(config.method.toUpperCase()) === -1) {\n throw Error(\n \"config method property value most be one of ['GET','POST','HEAD','PUT','DELETE']\"\n );\n }\n\n config.headers = config.headers || defaultHeaders;\n\n if (config.headers && !config.headers instanceof Headers) {\n throw new TypeError(\"config headers property must be of type Headers.\");\n }\n\n const requestConfig = {\n ...defaultconfig,\n ...config,\n };\n return new Request(url, requestConfig);\n};\nexport const createRequest = (url = \"\", config, token = \"\") => {\n const validMethods = [\"GET\", \"POST\", \"HEAD\", \"PUT\", \"DELETE\", \"PATCH\"];\n const defaultconfig = {\n mode: \"cors\",\n cache: \"default\",\n credentials: \"same-origin\",\n };\n const defaultHeaders = new Headers();\n defaultHeaders.set(\"Content-Type\", \"application/json\");\n if (token) {\n defaultHeaders.set(\"Authorization\", `Bearer ${token}`);\n }\n defaultHeaders.set(\"Accept\", `application/json`);\n\n if (typeof config.method !== \"string\") {\n throw new TypeError(\"config method property must be a string.\");\n }\n if (validMethods.indexOf(config.method.toUpperCase()) === -1) {\n throw Error(\n \"config method property value most be one of ['GET','POST','HEAD','PUT','DELETE']\"\n );\n }\n\n config.headers = config.headers || defaultHeaders;\n\n if (config.headers && !config.headers instanceof Headers) {\n throw new TypeError(\"config headers property must be of type Headers.\");\n }\n\n const requestConfig = {\n ...defaultconfig,\n ...config,\n };\n return new Request(url, requestConfig);\n};\nexport const is_Array = (value) =>\n value && typeof value === \"object\" && value.constructor === Array;\n\nexport const createPager = (\n { totalCount: totalItems, pageSize },\n currentPage\n) => {\n if (!totalItems) {\n return false;\n }\n const totalPages = Math.ceil(totalItems / pageSize);\n let startPage, endPage;\n if (totalPages <= 10) {\n // less than 10 total pages so show all\n startPage = 1;\n endPage = totalPages;\n } else {\n // more than 10 total pages so calculate start and end pages\n if (currentPage <= 6) {\n startPage = 1;\n endPage = 10;\n } else if (currentPage + 4 >= totalPages) {\n startPage = totalPages - 9;\n endPage = totalPages;\n } else {\n startPage = currentPage - 5;\n endPage = currentPage + 4;\n }\n }\n // calculate start and end item indexes\n const startIndex = (currentPage - 1) * pageSize;\n const endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\n\n // create an array of pages to ng-repeat in the pager control\n const pages = range(startPage, endPage + 1);\n\n // return object with all pager properties required by the view\n return {\n totalItems: totalItems,\n currentPage: currentPage,\n pageSize: pageSize,\n totalPages: totalPages,\n startPage: startPage,\n endPage: endPage,\n startIndex: startIndex,\n endIndex: endIndex,\n pages: pages,\n };\n};\nexport const removeTrailingSlash = (str) => {\n return str.split(\"\")[str.length - 1] === \"/\"\n ? str\n .split(\"\")\n .slice(0, str.length - 1)\n .join(\"\")\n : str;\n};\nexport const capitalizeFirstLetter = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n};\nexport const getFileNameFromPath = (filePath) => {\n const arr = filePath.split(\"/\");\n return arr[arr.length - 1];\n};\n\nexport const createArrayFromString = (string, limiter) => {\n const arr = string.split(limiter);\n return arr;\n};\nexport const contains = (haystack, arr) =>\n arr.some((v) => haystack.indexOf(v) >= 0);\n\nexport const formatDate = (date, format = \"DD-MM-YY h:mm: a\") =>\n moment(date).format(format);\n\n\nfunction reloadIt() {\n if (window.location.href.substr(-1) !== \"#\") {\n window.location = window.location.href + \"#\";\n }\n}\n\nexport const handleResponse = (response) => {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n if (response.status === 401) {\n window.history.pushState(\"\", \"\", \"/logout\");\n setTimeout(() => {\n reloadIt();\n }, 3000);\n }\n data.responseCode = \"01\";\n const error =\n (data && data.responseMessage) || (data && response.statusText);\n return Promise.reject(error);\n }\n return (data && data.responseData) || {};\n });\n};\n\nexport const validatePhone = (control, _message) => {\n return control.test({\n name: \"phone\",\n exclusive: true,\n message: _message,\n test: (value) => {\n try {\n //var regExp = new RegExp('^(234|0)([0-9]{8,10})$');\n //eslint-disable-next-line\n let regExp = new RegExp(\"^(0)([0-9]{10})$\");\n return regExp.test(value);\n } catch (e) {\n return false;\n }\n },\n });\n};\n\nexport const downloadPdf = (content, filename) => {\n filename = filename ? filename : \"export.pdf\";\n render(\n {content},\n document.getElementById(\"pdf\")\n );\n};\n\nexport const print = (content) => {\n let winSet =\n \"toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes, resizable=yes\",\n width = 800,\n height = 600;\n winSet +=\n \",width=\" +\n width +\n \",height=\" +\n height +\n \",left=\" +\n (window.screen.availWidth - width) / 2 +\n \",top=\" +\n (window.screen.availHeight - height) / 2;\n let _wndw = window.open(\"_blank\", \"print-window\", winSet);\n let div = document.createElement(\"div\");\n render({content}, div);\n let _html = div.outerHTML;\n let headstr =\n \"Print\";\n let footstr = \"\";\n _wndw.document.write(headstr + _html + footstr);\n _wndw.print();\n return false;\n};\n\nexport const renderHTML = (rawHTML) =>\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: rawHTML } });\nexport const convertUrl = (text) => {\n // eslint-disable-next-line\n var exp = /(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/gi;\n var text1 = text.replace(\n exp,\n \"$1\"\n );\n // eslint-disable-next-line\n var exp2 = /(^|[^\\/])(www\\.[\\S]+(\\b|$))/gim;\n return renderHTML(\n text1.replace(\n exp2,\n \"$1$2\"\n )\n );\n};\nexport const splitResponse = (text) => {\n let response = text;\n if (text && typeof text != \"undefined\") {\n const records = text.split(\"|\");\n if (records && records.length > 1) {\n response = \"\";\n for (var i = 0; i < records.length; i++) {\n response += \"\";\n var str = records[i];\n var arr = splitOnFirst(str, \":\");\n // var arr = _child.split(\":\");\n // var index = str.indexOf(\"_\");\n // var arr = [str.slice(0, index), str.slice(index + 1)];\n\n // var str = \"good_luck_buddy\";\n // var index = str.indexOf('_');\n // var arr = [str.slice(0, index), str.slice(index + 1)];\n if (records && records.length > 1) {\n response +=\n '\";\n } else {\n response += '\";\n }\n response += \"\";\n }\n response += \"
' +\n arr[0] +\n '' +\n arr[1] +\n \"' + str + \"
\";\n }\n response = convertUrl(response);\n }\n return response;\n};\n\nfunction splitOnFirst(str, sep) {\n const index = str.indexOf(sep);\n return index < 0\n ? [str]\n : [str.slice(0, index), str.slice(index + sep.length)];\n}\nexport const truncate = function (str, length, ending) {\n if (length == null) {\n length = 20;\n }\n if (ending == null) {\n ending = \"...\";\n }\n if (str.length > length) {\n return str.substring(0, length - ending.length) + ending;\n } else {\n return str;\n }\n};\n\nexport const getMonthName = () => {\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n const d = new Date();\n return monthNames[d.getMonth()];\n};\n","import configuration from \"../config\";\n\nimport { authHeader } from \"../_helpers\";\nimport { handleResponse } from \"../helpers\";\n\nexport const userService = {\n login,\n logout,\n register,\n activate,\n update: _update,\n changePassword,\n sendResetLink,\n verifyResetToken,\n resetPassword,\n tellAFriend,\n checkLogin,\n getCarouselImages,\n submitBackEmail,\n sendForgotUserame,\n sendForgotUserDetail,\n updateRegWithBackupEmail,\n\n //getGuessAndWinConfig\n};\nasync function login(username, password) {\n let details = {\n username: btoa(username),\n password: btoa(password),\n grant_type: \"password\",\n };\n var formBody = [];\n for (var property in details) {\n var encodedKey = encodeURIComponent(property);\n var encodedValue = encodeURIComponent(details[property]);\n formBody.push(encodedKey + \"=\" + encodedValue);\n }\n formBody = formBody.join(\"&\");\n const requestOptions = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: formBody,\n };\n return await fetch(\n `${configuration.apiUrl}/Users/Authenticate`,\n requestOptions\n ).then(handleLoginResponse);\n}\n\nfunction checkLogin() {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n return fetch(`${configuration.apiUrl}/Users/CheckLogin`, requestOptions).then(\n handleResponse\n );\n}\n\nfunction getCarouselImages() {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n return fetch(\n `${configuration.apiUrl}/Users/CarouselImages`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction logout() {\n // remove user from local storage to log user out\n // localStorage.removeItem(\"user\");\n}\n\nfunction register(user) {\n const _req = {\n requestData: {\n ConsumerID: user.email,\n EmailAddress: user.email,\n Password: user.password,\n Surname: \"\",\n Firstname: user.firstName,\n PhoneNumber: user.phone,\n ConsumerStatus: \"Disabled\",\n ReferedBy: \"\",\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(`${configuration.apiUrl}/Users/Register`, requestOptions).then(\n handleResponse\n );\n}\n\nfunction _update(user) {\n const _req = {\n requestData: {\n ConsumerID: user.email,\n EmailAddress: user.email,\n Surname: user.surname,\n Firstname: user.firstName,\n PhoneNumber: user.phone,\n DateOfBirth: user.dob,\n ReferralCode: user.referral,\n //BackupEmail:''\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/UpdateRegister`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction changePassword(user) {\n const _req = {\n requestData: {\n ConsumerID: user.email,\n EmailAddress: user.email,\n OldPassword: btoa(user.oldpwd),\n Password: btoa(user.password),\n ConfirmPassword: btoa(user.confirmpwd),\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/ChangePassword`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction resetPassword(user) {\n const _req = {\n requestData: {\n ConsumerID: user.email,\n EmailAddress: user.email,\n Password: btoa(user.password),\n ConfirmPassword: btoa(user.confirmpwd),\n token: decodeURIComponent(user.token),\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n return fetch(\n `${configuration.apiUrl}/Users/ResetPassword`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction sendResetLink(user) {\n const _req = {\n requestData: {\n EmailAddress: user.email,\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/ForgotPassword`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction tellAFriend(req) {\n const _req = {\n requestData: {\n Teller: req.teller,\n Tellee: req.telle,\n TelleeName: req.telleeName,\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/TellAFriend`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction activate(token) {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/ActivateAccount/?encrToken=${token}`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction verifyResetToken(token) {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/VerifyResetToken/?encrToken=${token}`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction handleLoginResponse(response) {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n const error = (data && data.error_description) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n\nfunction submitBackEmail(user) {\n const _req = {\n requestData: {\n EmailAddress: user.email,\n ConsumerID: user.email,\n BackupEmail: user.backupEmail,\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/SendBackUpEmail`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction sendForgotUserame(user) {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/getMaskedBackupEmailWithPhoneNo?phoneNo=${user.phoneNumber}`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction sendForgotUserDetail(user) {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/SendUserDetailstoBackUpEmail?phoneNo=${user.phoneNumber}`,\n requestOptions\n ).then(handleResponse);\n}\n\nfunction updateRegWithBackupEmail(user) {\n let user1 = JSON.parse(localStorage.getItem(\"user\"));\n const _req = {\n requestData: {\n token: user.token,\n ConsumerID: user1.ConsumerID,\n BackupEmail: user.backupemail,\n },\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(_req),\n };\n\n return fetch(\n `${configuration.apiUrl}/Users/UpdateRegWithBackupEmail`,\n requestOptions\n ).then(handleResponse);\n}\n","import configuration from \"../config\";\nimport {\n authHeader\n} from \"../_helpers\";\nimport {\n handleResponse\n} from \"../helpers\";\n\nexport const productService = {\n fetchProduct,\n logTransaction,\n customerLookup,\n};\n\nasync function fetchProduct(categoryCode, billerCode) {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\",\n },\n };\n return fetch(`${configuration.apiUrl}/Products/Fields/?BillerCode=${billerCode}&Category=${categoryCode}`, requestOptions)\n .then(handleResponse);\n}\n\n\nasync function logTransaction(_req) {\n const req = {\n requestData: _req\n }\n const requestOptions = {\n method: 'POST',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify(req)\n };\n var _url = `${configuration.apiUrl}/Products/LogTransaction`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n}\n\nasync function customerLookup(_req) {\n const requestOptions = {\n method: 'POST',\n headers: {\n ...authHeader(),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(_req)\n };\n var _url = `${configuration.apiUrl}/Products/Lookup`;\n return fetch(_url, requestOptions)\n .then(\n response => {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n const error = (data && data.ResponseMsg) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n })\n }\n )\n}","import { userConstants } from \"../_constants\";\nimport { userService } from \"../_services\";\nimport { alertActions } from \"./\";\nimport { common } from \"@material-ui/core/colors\";\n\nexport const userActions = {\n login,\n logout,\n register,\n activate,\n update: _update,\n changePassword,\n sendResetLink,\n verifyResetToken,\n resetPassword,\n tellAFriend,\n checkLogin,\n getCarouselImages,\n submitBackEmail,\n updateRegWithBackupEmail,\n};\n\nfunction login(username, password, callback) {\n return userService.login(username, password).then(\n (user) => {\n if (user.access_token) {\n localStorage.setItem(\"user\", JSON.stringify(user));\n return user;\n }\n },\n (error) => {\n return { message: error, responseCode: \"09\" };\n }\n );\n}\n\nfunction checkLogin() {\n userService.checkLogin();\n}\n\nfunction getCarouselImages(success, failure) {\n userService.getCarouselImages().then(\n (images) => {\n if (!!success) {\n success(images);\n }\n },\n (error) => {\n if (!!failure) {\n failure();\n }\n }\n );\n}\n\nfunction logout() {\n // localStorage.removeItem(\"user\");\n // userService.logout();\n localStorage.clear();\n // return { type: userConstants.LOGOUT };\n}\nfunction register(user, history) {\n return userService.register(user).then(\n (user) => {\n var msg =\n \"An email notification has been sent to \" +\n user.ConsumerID +\n \" click on the link to get verified.\";\n return { message: msg, responseCode: \"00\" };\n },\n (error) => {\n return { message: error, responseCode: \"09\" };\n }\n );\n}\n\nfunction _update(user, userDispatch) {\n return userService.update(user).then(\n (user) => {\n // dispatch(success(user));\n // dispatch({ type: userConstants.UPDATE_SUCCESS, user });\n // history.push(\"/update-profile\");\n var msg = \"Records updated successfully\";\n // dispatch(alertActions.success(msg));\n return { message: msg, responseCode: \"00\" };\n },\n (error) => {\n return { message: error, responseCode: \"09\" };\n // dispatch(failure(error.toString()));\n // dispatch(alertActions.error(error.toString()));\n }\n );\n}\n\nfunction changePassword(user, history) {\n //let _temp = { ConsumerID: user.email };\n return userService\n .changePassword(user)\n .then\n // (user) => {\n // //history.push(\"/change-password\");\n //\n // return { message: msg, responseCode: \"00\" };\n // },\n // (error) => {\n // return { message: error, responseCode: \"09\" };\n // }\n ();\n\n function request(user) {\n return { type: userConstants.RESET_REQUEST, user };\n }\n function success(user) {\n return { type: userConstants.RESET_SUCCESS, user };\n }\n function failure(user) {\n return { type: userConstants.RESET_FAILURE, user };\n }\n}\n\nfunction sendResetLink(user, history) {\n return userService.sendResetLink(user).then(\n (user) => {\n //history.push(\"/forgot-password\");\n var msg = \"Password Reset steps have been sent to your mailbox.\";\n // dispatch(alertActions.success(msg));\n return { message: msg, responseCode: \"00\" };\n },\n (error) => {\n return { message: error, responseCode: \"09\" };\n // dispatch(failure(error.toString()));\n // dispatch(alertActions.error(error.toString()));\n }\n );\n\n function request(user) {\n return { type: userConstants.RESET_REQUEST, user };\n }\n function success(user) {\n return { type: userConstants.RESET_SUCCESS, user };\n }\n function failure(error) {\n return { type: userConstants.RESET_FAILURE, error };\n }\n}\n\nfunction resetPassword(user, history) {\n return userService.resetPassword(user);\n}\n\nfunction tellAFriend(req, success, failure) {\n return (dispatch) => {\n userService.tellAFriend(req).then(\n () => {\n if (!!success) success();\n var msg = \"Your friend has been notified\";\n dispatch(alertActions.success(msg));\n },\n (error) => {\n if (!!failure) failure();\n dispatch(alertActions.error(error.toString()));\n }\n );\n };\n}\n\nfunction activate(token) {\n return userService.activate(token);\n}\n\nfunction verifyResetToken(token) {\n return userService.verifyResetToken(token);\n}\n\nfunction submitBackEmail(user) {\n return userService.submitBackEmail(user);\n}\n\nfunction updateRegWithBackupEmail(user) {\n return userService.updateRegWithBackupEmail(user);\n}\n\n// function register(user, history) {\n// //return dispatch => {\n// userService.register(user)\n// .then(\n// (resp) => {\n// var msg = \"An email notification has been sent to \" + user.ConsumerID +\" click on the link to get verified.\";\n\n// return msg;\n// },\n// (error) => {}\n// // user => {\n// // dispatch(success(user));\n// // history.push('/');\n// // var msg = \"An email notification has been sent to \" + user.ConsumerID +\" click on the link to get verified.\";\n// // dispatch(alertActions.success(msg));\n// // },\n// // error => {\n// // dispatch(failure(error.toString()));\n// // dispatch(alertActions.error(error.toString()));\n// // }\n// );\n// // };\n// }\n\n// function login(username, password, callback) {\n// return dispatch => {\n// dispatch(request({ username }));\n// userService.login(username, password)\n// .then(\n// user => {\n// if (user.access_token) {\n// localStorage.setItem('user', JSON.stringify(user));\n// }\n// dispatch(success(user));\n// if(!!callback){\n// callback();\n// }\n// },\n// error => {\n// dispatch(failure(error.toString()));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) { return { type: userConstants.LOGIN_REQUEST, user } }\n// function success(user) {return { type: userConstants.LOGIN_SUCCESS, user }}\n// function failure(error) { return { type: userConstants.LOGIN_FAILURE, error } }\n// }\n\n// function _update(user, history) {\n// return (dispatch) => {\n// dispatch(request(user));\n// userService.update(user).then(\n// (user) => {\n// dispatch(success(user));\n// dispatch({ type: userConstants.UPDATE_SUCCESS, user });\n// history.push(\"/update-profile\");\n// var msg = \"Records updated successfully\";\n// dispatch(alertActions.success(msg));\n// },\n// (error) => {\n// dispatch(failure(error.toString()));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.UPDATE_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.UPDATE_SUCCESS, user };\n// }\n// function failure(error) {\n// return { type: userConstants.UPDATE_FAILURE, error };\n// }\n// }\n\n// function changePassword(user, history) {\n// return (dispatch) => {\n// let _temp = { ConsumerID: user.email };\n// dispatch(request(user));\n// userService.changePassword(user).then(\n// (user) => {\n// dispatch(success(user));\n// history.push(\"/change-password\");\n// var msg = \"Password Changed Successfully\";\n// dispatch(alertActions.success(msg));\n// },\n// (error) => {\n// dispatch(failure(_temp));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.RESET_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.RESET_SUCCESS, user };\n// }\n// function failure(user) {\n// return { type: userConstants.RESET_FAILURE, user };\n// }\n// }\n\n// function resetPassword(user, history) {\n// return (dispatch) => {\n// let _temp = { ConsumerID: user.email };\n// dispatch(request(user));\n// userService.resetPassword(user).then(\n// (response) => {\n// dispatch(success(response));\n// history.push(\"/\");\n// var msg = \"Password reset successfully\";\n// dispatch(alertActions.success(msg));\n// },\n// (error) => {\n// dispatch(failure(_temp));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.RESET_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.RESET_SUCCESS, user };\n// }\n// function failure(user) {\n// return { type: userConstants.RESET_FAILURE, user };\n// }\n// }\n\n// function sendResetLink(user, history) {\n// return (dispatch) => {\n// dispatch(request(user));\n// userService.sendResetLink(user).then(\n// (user) => {\n// dispatch(success(user.CustomerID));\n// history.push(\"/forgot-password\");\n// var msg = \"Password Reset steps have been sent to your mailbox.\";\n// dispatch(alertActions.success(msg));\n// },\n// (error) => {\n// dispatch(failure(error.toString()));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.RESET_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.RESET_SUCCESS, user };\n// }\n// function failure(error) {\n// return { type: userConstants.RESET_FAILURE, error };\n// }\n//}\n\n// function activate(token) {\n// return (dispatch) => {\n// dispatch(request(token));\n// userService.activate(token).then(\n// (user) => {\n// dispatch(success(user));\n// },\n// (error) => {\n// dispatch(failure(error.toString()));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.ACTIVATE_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.ACTIVATE_SUCCESS, user };\n// }\n// function failure(error) {\n// return { type: userConstants.ACTIVATE_FAILURE, error };\n// }\n// }\n\n// function verifyResetToken(token) {\n// return (dispatch) => {\n// dispatch(request(token));\n// userService.verifyResetToken(token).then(\n// (user) => {\n// dispatch(success(user));\n// },\n// (error) => {\n// dispatch(failure(error.toString()));\n// dispatch(alertActions.error(error.toString()));\n// }\n// );\n// };\n\n// function request(user) {\n// return { type: userConstants.VERIFY_REQUEST, user };\n// }\n// function success(user) {\n// return { type: userConstants.VERIFY_SUCCESS, user };\n// }\n// function failure(error) {\n// return { type: userConstants.VERIFY_FAILURE, error };\n// }\n// }\n","import { userConstants } from \"../_constants\";\n\nexport function registration(state = {}, action) {\n\n switch (action.type) {\n case userConstants.REGISTER_REQUEST:\n return { registering: true };\n case userConstants.REGISTER_SUCCESS:\n return {\n ...state,\n signUpMessage: action.payload,\n registering: false,\n };\n case userConstants.REGISTER_FAILURE:\n return {\n ...state,\n signUpMessage: action.payload,\n registering: false,\n };\n case userConstants.LOGIN_IN_REQUEST:\n return {\n loginIn: true\n };\n case userConstants.LOGIN_IN_REQUEST_FINISH:\n return {\n loginIn: false\n };\n case userConstants.LOGIN_REQUEST:\n return {\n loggingIn: false,\n user: action.payload\n };\n case userConstants.LOGIN_SUCCESS:\n return {\n // ...state,\n loggedIn: true,\n user: action.payload\n };\n case userConstants.UPDATE_BACKUP_REQUEST:\n return {\n // ...state,\n updating: true\n };\n case userConstants.UPDATE_BACKUP_SUCCESS:\n return {\n // ...state,\n updating: false,\n backupUpdateMessage: action.payload\n };\n case userConstants.UPDATE_BACKUP_FAILURE:\n return {\n // ...state,\n updating: false,\n errorMessage: action.payload\n };\n\n case userConstants.BACKUP_REQUEST:\n return {\n ...state,\n updatingBackupEmail: true\n };\n case userConstants.BACKUP_SUCCESS:\n return {\n ...state,\n updatingBackupEmail: false\n };\n case userConstants.BACKUP_FAILURE:\n return {\n ...state,\n updatingBackupEmail: false\n };\n case userConstants.UPDATE_FAILURE:\n return {};\n case userConstants.UPDATE_SUCCESS:\n return {\n ...state,\n loggedIn: true,\n user: action.payload\n // user: {\n // ...user,\n // ...action.user\n // }\n };\n case userConstants.LOGIN_FAILURE:\n return {};\n case userConstants.REGISTER_CLEAR:\n return {\n ...state,\n signUpMessage: \"\",\n\n }\n case userConstants.LOGOUT:\n return {};\n case userConstants.ACTIVATE_REQUEST:\n return {\n activating: true\n };\n case userConstants.ACTIVATE_SUCCESS:\n return {\n activating: false,\n activationMessage: action.payload\n };\n case userConstants.ACTIVATE_FAILURE:\n return {\n activating: false,\n errorMessage: action.payload\n }\n case userConstants.RESET_REQUEST:\n return {\n forgottenPassword: true,\n };\n\n case userConstants.RESET_SUCCESS:\n return {\n forgottenPassword: false,\n user: action.user\n };\n case userConstants.RESET_FAILURE:\n return {\n forgottenPassword: false,\n user: action.user\n };\n case userConstants.VERIFY_REQUEST:\n return {\n ressetting: true,\n user: action.user\n };\n case userConstants.VERIFY_SUCCESS:\n return {\n ...state,\n ressetting: false,\n user: action.payload\n };\n case userConstants.VERIFY_FAILURE:\n return {\n ...state,\n ressetting: false,\n errorMessage: action.errorMessage\n };\n\n case userConstants.CHANGE_REQUEST:\n return {\n ...state,\n ressetting: true,\n };\n case userConstants.CHANGE_SUCCESS:\n return {\n ...state,\n ressetting: false,\n // user: action.payload\n };\n case userConstants.CHANGE_FAILURE:\n return {\n ...state,\n ressetting: false,\n changeErrorMessage: action.changeErrorMessage\n };\n\n default:\n return state;\n }\n}\n","import { alertConstants } from '../_constants';\n\nexport function alert(state = {}, action) {\n switch (action.type) {\n case alertConstants.SUCCESS:\n return {\n type: 'success',\n message: action.message\n };\n case alertConstants.ERROR:\n return {\n type: 'error',\n message: action.message.toString()\n };\n case alertConstants.CLEAR:\n return {};\n default:\n return state\n }\n}","import React, { createContext, useReducer, useContext } from \"react\";\nimport { userActions } from \"../_actions/user.actions\";\nimport { alertActions } from \"../_actions/alert.actions\";\nimport { registration } from \"../_reducers/registration.reducer\";\nimport { userConstants, alertConstants } from \"../_constants\";\nimport { alert } from \"../_reducers/alert.reducer\";\n\n\nconst initialState = {\n message: \"\",\n type: \"\",\n};\n\nexport const AlertContext = createContext(initialState);\n\n\nexport const AlertProvider = ({ children }) => {\n\n const [state, dispatch] = useReducer(alert, initialState);\n\n const clear = () => {\n dispatch({ type: alertConstants.CLEAR })\n }\n\n const error = (message) => {\n dispatch({type: alertConstants.ERROR, message: message})\n }\n\n const success = (message) => {\n dispatch({ type: alertConstants.SUCCESS, message: message })\n }\n return (\n \n {children}\n \n );\n};\n","import React, { createContext, useReducer, useContext } from \"react\";\nimport { userActions } from \"../_actions/user.actions\";\nimport { registration } from \"../_reducers/registration.reducer\";\nimport { users } from \"../_reducers/users.reducer\";\nimport { userConstants, alertConstants } from \"../_constants\";\nimport { AlertContext } from \"./alert-context\";\nimport { alertActions } from \"../_actions\";\n\nlet userDetails = JSON.parse(localStorage.getItem(\"user\"));\n\nconst initialState = {\n user: !!userDetails ? userDetails : {},\n loggedIn: !!userDetails ? true : false,\n signUpMessage: \"\",\n registering: false,\n loginIn: false,\n changePasswordMessage: \"\",\n changingPassword: false,\n updateRegisterMessage: \"\",\n updatingRegister: false,\n activationMessage: \"\",\n activating: false,\n forgottenPassword: false,\n forgotPasswordMessage: \"\",\n updatingBackupEmail: false,\n updateBackupEmailMessage: \"\",\n};\n\nexport const UserContext = createContext(initialState);\n\nexport const UserProvider = (props) => {\n const [state, userDispatch] = useReducer(registration, initialState);\n\n //,authentication\n\n function signUp(user, dispatch) {\n userDispatch({\n type: userConstants.REGISTER_REQUEST,\n });\n userActions.register(user, \"\").then((resp) => {\n if (resp.responseCode === \"00\") {\n userDispatch({\n type: userConstants.REGISTER_SUCCESS,\n payload: resp.message,\n });\n dispatch({\n type: alertConstants.SUCCESS,\n message: resp.message,\n });\n } else {\n dispatch({\n type: alertConstants.ERROR,\n message: resp.message,\n });\n userDispatch({\n type: userConstants.REGISTER_FAILURE,\n });\n }\n });\n }\n\n function login(username, password, history, dispatch) {\n userDispatch({\n type: userConstants.LOGIN_IN_REQUEST,\n });\n userActions.login(username, password).then((resp) => {\n userDispatch({\n type: userConstants.LOGIN_IN_REQUEST_FINISH,\n });\n if (resp.access_token) {\n userDispatch({\n type: userConstants.LOGIN_SUCCESS,\n payload: resp,\n });\n history.push(\"/dashboard\");\n } else {\n dispatch({\n type: alertConstants.ERROR,\n message: resp.message,\n });\n userDispatch({\n type: userConstants.LOGIN_FAILURE,\n payload: resp.message,\n });\n }\n });\n }\n\n function logout(history) {\n\n history.push(\"/\");\n userActions.logout();\n userDispatch({\n type: userConstants.LOGOUT,\n });\n }\n\n function changePassword(user, dispatch) {\n userDispatch({\n type: userConstants.RESET_REQUEST,\n });\n userActions.changePassword(user, dispatch).then(\n (resp) => {\n var msg = \"Password Changed Successfully\";\n dispatch(alertActions.clear());\n userDispatch({\n type: userConstants.RESET_SUCCESS,\n payload: msg,\n });\n dispatch({\n type: alertConstants.SUCCESS,\n message: msg,\n });\n },\n (error) => {\n dispatch({\n type: alertConstants.ERROR,\n message: error.message,\n });\n userDispatch({\n type: userConstants.RESET_FAILURE,\n });\n }\n );\n }\n\n function updateRegister(user, dispatch) {\n userDispatch({\n type: userConstants.UPDATE_REQUEST,\n });\n userActions.update(user, userDispatch).then((resp) => {\n if (resp.responseCode === \"00\") {\n userDispatch({\n type: userConstants.UPDATE_SUCCESS,\n payload: {\n ...state.user,\n ...user,\n },\n });\n dispatch({\n type: alertConstants.SUCCESS,\n message: resp.message,\n });\n } else {\n dispatch({\n type: alertConstants.ERROR,\n message: resp.message,\n });\n userDispatch({\n type: userConstants.UPDATE_FAILURE,\n });\n }\n });\n }\n\n function forgotPassword(user, dispatch) {\n userDispatch({\n type: userConstants.RESET_REQUEST,\n });\n userActions.sendResetLink(user, dispatch).then((resp) => {\n if (resp.responseCode === \"00\") {\n userDispatch({\n type: userConstants.RESET_SUCCESS,\n payload: resp.message,\n });\n dispatch({\n type: alertConstants.SUCCESS,\n message: resp.message,\n });\n } else {\n dispatch({\n type: alertConstants.ERROR,\n message: resp.message,\n });\n userDispatch({\n type: userConstants.RESET_FAILURE,\n });\n }\n });\n }\n\n function submitBackEmail(user, dispatch) {\n userDispatch({\n type: userConstants.BACKUP_REQUEST,\n });\n userActions.submitBackEmail(user).then(\n (resp) => {\n var msg = \"Mail sent successfully to your registered email address!!!\";\n dispatch(alertActions.clear());\n userDispatch({\n type: userConstants.BACKUP_SUCCESS,\n payload: {\n ...state.user,\n ...user,\n },\n });\n dispatch({\n type: alertConstants.SUCCESS,\n message: msg,\n });\n },\n (error) => {\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n userDispatch({\n type: userConstants.BACKUP_FAILURE,\n });\n }\n );\n }\n\n function clearMessage() {\n userDispatch({\n type: userConstants.REGISTER_CLEAR,\n });\n }\n\n return (\n \n {props.children}{\" \"}\n \n );\n};\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport Typography from '@material-ui/core/Typography';\nexport default ({message}) => (\n \n \n {message ? message : 'Processing...please wait'}\n \n \n \n)","import React, { useContext, useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport styles from \"../../components/button/button.module.css\";\nimport { Button, ThemeProvider, TextField } from \"@material-ui/core\";\nimport Row from \"react-bootstrap/Row\";\nimport { Col } from \"react-bootstrap\";\nimport \"../../index.css\";\nimport Close from \"../../components/button/close-btn\";\nimport OnboardingInput from \"../../components/inputs/onboarding-input\";\nimport PasswordInput from \"../../components/inputs/password-input\";\nimport { FaUser, FaEnvelope, FaUserLock } from \"react-icons/fa\";\nimport { MdEmail, MdAccountCircle, MdSettingsEthernet } from \"react-icons/md\";\nimport CTA from \"../../components/button/cta-button\";\nimport { UserContext } from \"../../context/user-context\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { useHistory } from \"react-router\";\nimport { Redirect } from \"react-router-dom\";\nimport Spinner from \"../../components/spinner\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { theme } from \"../../theme\";\n\n\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n height: \"90vh\",\n overflowY: \"scroll\",\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n modal: {\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n // marginTop:'-5%'\n },\n modal: {\n background: \"rgba(237, 219, 219, 0.9)\",\n },\n button: {\n marginLeft: \"90%\",\n marginTop: \"10%\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\n\nexport default function LoginModal({\n handleClose,\n handleForgotPassword,\n handleSignUp,\n}) {\n const classes = useStyles();\n const history = useHistory();\n const {\n user,\n login,\n loggedIn,\n loginIn,\n clearMessage,\n userDispatch,\n } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n\n Yup.addMethod(Yup.string, \"password\", function () {\n return this.test({\n name: \"password\",\n exclusive: true,\n message:\n \"Please choose a strong password. Password must meet the following criteria; 1. At least one block letter. 2. At least one small letter. 3. At least one number. 4. At least one special character\",\n test: (value) => {\n try {\n //Regular Expressions.\n var regex = [];\n regex.push(\"[A-Z]\"); //Uppercase Alphabet.\n regex.push(\"[a-z]\"); //Lowercase Alphabet.\n regex.push(\"[0-9]\"); //Digit.\n regex.push(\"[$@$!%*#?&]\"); //Special Character.\n\n var passed = 0;\n\n //Validate for each Regular Expression.\n for (var i = 0; i < regex.length; i++) {\n if (new RegExp(regex[i]).test(value)) {\n passed++;\n }\n }\n\n //Validate for length of Password.\n if (passed > 2 && value.length > 8) {\n passed++;\n }\n return passed >= 2;\n } catch (e) {\n return false;\n }\n },\n });\n });\n\n const validationSchema = Yup.object().shape({\n username: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n password: Yup.string(\"Enter Your Password\")\n .typeError(\"Enter Your Password\")\n .required(\"Password is Required\"),\n });\n\n const clearForm = () => {\n this.setState({\n username: \"\",\n password: \"\",\n });\n };\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n useEffect(() => {\n if (user && user.access_token && loginIn == false) {\n handleClose();\n }\n }, [user]);\n\n const { handleSubmit, handleChange, setFieldTouched, dirty, touched, isValid, isSubmitting, resetForm, setSubmitting, values, errors } = useFormik({\n initialValues: {\n username: \"\",\n password: \"\",\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n login(values.username, values.password, history, dispatch);\n setSubmitting(false)\n resetForm({\n username: \"\",\n password: \"\",\n });\n },\n });\n\n return (\n \n
\n \n {loginIn && }\n \n

\n Welcome Back!\n

\n \n \n }\n name=\"username\"\n value={values.username}\n onChange={change.bind(null, \"username\")}\n />\n {errors.username && touched.username ? (\n
{errors.username}
\n ) : null}\n {/*
{errors.username ? errors.username : null}
*/}\n \n\n \n {\" \"}\n }\n name=\"password\"\n value={values.password}\n onChange={change.bind(null, \"password\")}\n />\n {errors.password && touched.password ? (\n
{errors.password}
\n ) : null}\n \n
\n \n \n \n \n \n \n \n
\n \n
\n \n \n
\n
\n New to PayXpress?\n
\n \n {/* Sign Up here */}\n
\n \n
\n \n
\n \n \n
\n );\n}\n","import React,{useContext,useEffect} from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport styles from \"../../components/button/button.module.css\";\nimport { Button, ThemeProvider, TextField } from \"@material-ui/core\";\nimport Row from \"react-bootstrap/Row\";\nimport { Col } from \"react-bootstrap\";\nimport Close from \"../../components/button/close-btn\";\nimport OnboardingInput from \"../../components/inputs/onboarding-input\";\nimport PasswordInput from \"../../components/inputs/password-input\";\nimport { FaUser, FaEnvelope, FaUserLock } from \"react-icons/fa\";\nimport { MdEmail, MdAccountCircle, MdSettingsEthernet } from \"react-icons/md\";\nimport CTA from \"../../components/button/cta-button\";\nimport { UserContext } from \"../../context/user-context\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { useHistory } from \"react-router\";\nimport { Redirect } from \"react-router-dom\";\nimport Spinner from \"../../components/spinner\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { theme } from \"../../theme\";\n\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n [theme.breakpoints.up(\"lg\")]: {\n // marginTop:'100%'\n },\n // marginTop:'-5%'\n },\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n },\n button: {\n marginLeft: \"90%\",\n marginTop: \"10%\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\nexport default function ForgotPasswordModal({ handleClose, handleSignin }) {\n const classes = useStyles();\n const {\n //user,\n forgotPassword,\n forgotPasswordMessage,\n forgottenPassword,\n clearMessage,\n //userDispatch,\n } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n const history = useHistory();\n\n const validationSchema = Yup.object().shape({\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n });\n\n const clearForm = () => {\n this.setState({\n email: \"\",\n });\n };\n\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n const {handleSubmit, handleChange, setFieldTouched, dirty, touched, isValid, isSubmitting, resetForm, setSubmitting, values, errors} = useFormik({\n initialValues: {\n email: \"\",\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n setSubmitting(false)\n forgotPassword(values, dispatch);\n setSubmitting(false)\n resetForm({\n email: \"\",\n })\n \n },\n });\n\n // const handleChange = () => {\n // setHint(true);\n // };\n\n return (\n \n \n {forgottenPassword && }\n
\n \n

\n Recover my password\n

\n \n \n }\n />\n {errors.email && touched.email ? (\n
{errors.email}
\n ) : null}\n \n \n \n \n \n \n \n
\n \n \n \n I remember my password\n

\n \n \n {\" \"}\n \n \n
\n \n
\n
\n \n
\n );\n}\n","\nexport function modalReducer(state = {}, action) {\n switch (action.type) {\n case \"SIGN_IN_MODAL_OPEN\":\n return {\n ...state,\n signInModal: true,\n };\n case \"SIGN_IN_MODAL_CLOSE\":\n return {\n ...state,\n signInModal: false,\n };\n case \"SIGN_UP_MODAL_OPEN\":\n return {\n ...state,\n signUpModal: true,\n };\n case \"SIGN_UP_MODAL_CLOSE\":\n return {\n ...state,\n signUpModal: true,\n };\n default:\n return \"\"\n }\n}","import React, { createContext, useReducer } from \"react\";\nimport { modalReducer } from \"../_reducers/modal.reducer\";\n\n\nconst initialState = {\n signInModal: true,\n signUpModal: false,\n};\n\nexport const ModalContext = createContext();\n\nexport const ModalProvider = ({ children }) => {\n const [state, modalDispatch] = useReducer(modalReducer, initialState);\n function openSignInModal() {\n modalDispatch({\n type: 'SIGN_IN_MODAL_OPEN',\n signInModal: true,\n });\n }\n function closeSignInModal() {\n modalDispatch({\n type: 'SIGN_IN_MODAL_CLOSE',\n signInModal: false,\n });\n }\n\n function openSignUpModal() {\n modalDispatch({\n type: 'SIGN_UP_MODAL_OPEN',\n signUpModal: true,\n });\n }\n\n function closeSignUpModal() {\n modalDispatch({\n type: 'SIGN_UP_MODAL_CLOSE',\n signUpModal: false,\n });\n }\n\n return (\n \n {children}\n \n );\n};\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport styles from \"../../components/button/button.module.css\";\nimport { Button, ThemeProvider, TextField } from \"@material-ui/core\";\nimport Row from \"react-bootstrap/Row\";\nimport { Col } from \"react-bootstrap\";\nimport \"../../index.css\";\nimport Close from \"../../components/button/close-btn\";\nimport OnboardingInput from \"../../components/inputs/onboarding-input\";\nimport PasswordInput from \"../../components/inputs/password-input\";\nimport { FaUser, FaEnvelope, FaUserLock } from \"react-icons/fa\";\nimport {\n MdEmail,\n MdAccountCircle,\n MdPhoneAndroid,\n MdSettingsEthernet,\n} from \"react-icons/md\";\nimport CTA from \"../../components/button/cta-button\";\nimport * as Yup from \"yup\";\nimport { useFormik, Formik, Field, Form, ErrorMessage } from \"formik\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { userConstants, alertConstants } from \"../../_constants\";\nimport { ModalContext } from \"../../context/modal-context\";\nimport Spinner from \"../../components/spinner\";\nimport { useHistory } from \"react-router\";\nimport { validatePhone } from \"../../helpers\";\nimport { theme } from \"../../theme\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n height: \"90vh\",\n overflowY: \"scroll\",\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n [theme.breakpoints.up(\"lg\")]: {\n // marginTop:'100%'\n },\n // marginTop:'-5%'\n },\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n // marginTop:'100%'\n },\n // marginTop:'-5%'\n // },\n modal: {\n background: \"rgba(237, 219, 219, 0.9)\",\n },\n button: {\n marginLeft: \"90%\",\n marginTop: \"10%\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\n\nexport default function SignupModal({\n handleClose,\n handleForgotPassword,\n handleSignUp,\n openSignUp,\n handleSignin,\n handleLogin,\n}) {\n const classes = useStyles();\n const { signUp, signUpMessage, registering, clearMessage } = useContext(\n UserContext\n );\n const { dispatch } = useContext(AlertContext);\n const history = useHistory();\n\n Yup.addMethod(Yup.string, \"phone\", function (msg) {\n return validatePhone(this, msg);\n });\n const validationSchema = Yup.object().shape({\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n phone: Yup.string(\"Enter Your Phone Number\")\n .phone(\"Enter a Valid Phone Number\")\n .typeError(\"Enter Your Phone Number\")\n .required(\"Phone Number is Required\"),\n firstName: Yup.string(\"Enter Your First Name\")\n .typeError(\"Enter Your First Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"First Name is Required\"),\n surname: Yup.string(\"Enter Your Last Name\")\n .typeError(\"Enter Your Last Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"Last Name is Required\"),\n password: Yup.string(\"Enter Your Password\")\n .typeError(\"Enter Your Password\")\n .matches(\n /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,}$/,\n \"Please choose a strong password. Password must meet the following criteria; 1. At least one block letter. 2. At least one small letter. 3. At least one number. 4. At least one special character 5. At least 8 characters\"\n )\n .required(\"Password is Required\"),\n confirmpwd: Yup.string(\"Confirm Your Password\")\n .typeError(\"Confirm Your Password\")\n .oneOf([Yup.ref(\"password\")], \"Passwords do not match\")\n .required(\"Confirm Password is Required\"),\n });\n\n const clearForm = () => {\n this.setState({\n email: \"\",\n firstName: \"\",\n surname: \"\",\n phone: \"\",\n password: \"\",\n confirmpwd: \"\",\n });\n };\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n useEffect(() => {\n if (signUpMessage && registering == false) {\n handleClose();\n // handleSignin();\n clearMessage();\n history.push(\"/\");\n }\n });\n\n const {\n values,\n touched,\n errors,\n dirty,\n isValid,\n isSubmitting,\n handleChange,\n handleSubmit,\n setFieldTouched,\n setSubmitting,\n resetForm,\n } = useFormik({\n initialValues: {\n firstName: \"\",\n email: \"\",\n phone: \"\",\n password: \"\",\n confirmpwd: \"\",\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n signUp(values, dispatch);\n setSubmitting(false);\n resetForm({\n firstName: \"\",\n email: \"\",\n phone: \"\",\n password: \"\",\n confirmpwd: \"\",\n });\n },\n });\n\n return (\n \n \n {registering && }\n
\n \n

SIGN UP

\n \n \n }\n />\n {errors.firstName && touched.firstName ? (\n
{errors.firstName}
\n ) : null}\n \n \n }\n />\n {errors.surname && touched.surname ? (\n
{errors.surname}
\n ) : null}\n \n \n }\n />\n {errors.email && touched.email ? (\n
{errors.email}
\n ) : null}\n \n \n }\n />\n {errors.phone && touched.phone ? (\n
{errors.phone}
\n ) : null}\n \n
\n \n \n }\n placeholder=\"password\"\n name=\"password\"\n type=\"password\"\n value={values.password}\n onChange={change.bind(null, \"password\")}\n style={{ marginTop: \"20px\" }}\n />\n {errors.password && touched.password ? (\n
{errors.password}
\n ) : null}\n \n \n }\n placeholder=\"Confirm Password\"\n name=\"confirmpwd\"\n type=\"password\"\n value={values.confirmpwd}\n onChange={change.bind(null, \"confirmpwd\")}\n />\n {errors.confirmpwd && touched.confirmpwd ? (\n
{errors.confirmpwd}
\n ) : null}\n \n
\n \n \n \n \n \n
\n

Already have an account?

\n \n
\n \n
\n
\n \n
\n );\n}\n","import React, { useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\n// import Input from \"../inputs/input\";\nimport CTA from \"../../components/button/cta-button\";\nimport PasswordInput from \"../../components/inputs/password-input\";\nimport styles from \"./login.module.css\";\nimport { Row, Col, ThemeProvider } from \"react-bootstrap\";\nimport { Button } from \"@material-ui/core\";\nimport OnboardingInput from \"../../components/inputs/onboarding-input\";\nimport { FaUserLock } from \"react-icons/fa\";\nimport { MdAccountCircle, MdEmail } from \"react-icons/md\";\nimport ForgotPswd from \"../../components/forgot-password/forgot-password\";\nimport LoginModal from \"../../components/modal/loginModal\";\nimport ForgotPasswordModal from \"../../components/modal/forgotPasswordModal\";\nimport SignupModal from \"../../components/modal/signupModal\";\nimport { theme } from \"../../theme\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.between(\"md\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-100px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n // backgroundColor: 'orange',\n },\n },\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n // background:'rgba(240, 218, 213, 0.9)'\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n button: {\n marginLeft: \"90%\",\n marginBottom: \"40px\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\n\nexport default function Login() {\n const classes = useStyles();\n // const [] = useContext();\n const [open, setOpen] = React.useState(false);\n const [forgotPassword, setForgotPassword] = React.useState(false);\n const [openSignUp, setOpenSignUp] = React.useState(false);\n const [login, setLogin] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n setLogin(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n setOpenSignUp(false);\n setLogin(false);\n setForgotPassword(false);\n };\n\n const handleForgotPassword = () => {\n setLogin(false);\n setForgotPassword(true);\n };\n\n const handleLogin = () => {\n setLogin(true);\n };\n\n const handleSignin = () => {\n setForgotPassword(false);\n setLogin(true);\n };\n\n const handleSignUp = () => {\n setOpenSignUp(true);\n setOpen(true);\n setLogin(false);\n };\n\n // handleChange=()=>{\n\n // }\n return (\n
\n \n \n {login ? (\n \n ) : forgotPassword ? (\n \n ) : (\n \n )}\n \n
\n );\n}\n","import React, { useEffect, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CTA from \"../../components/button/cta-button\";\nimport \"../../index.css\";\nimport LoginModal from \"../../components/modal/loginModal\";\nimport ForgotPasswordModal from \"../../components/modal/forgotPasswordModal\";\nimport SignupModal from \"../../components/modal/signupModal\";\nimport { ModalContext } from \"../../context/modal-context\";\nimport { theme } from \"../../theme\";\nimport { ThemeProvider } from \"react-bootstrap\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n [theme.breakpoints.up(\"lg\")]: {},\n },\n modal: {\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n button: {\n marginLeft: \"90%\",\n marginTop: \"10%\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n}));\n\nexport default function Signup() {\n const classes = useStyles();\n const [openSignUp, setOpenSignUp] = React.useState(false);\n const [login, setLogin] = React.useState(false);\n const [forgotPassword, setForgotPassword] = React.useState(false);\n const { signUpModal } = useContext(ModalContext);\n\n const handleOpen = () => {\n setLogin(false);\n setOpenSignUp(true);\n };\n\n function handleClose() {\n setOpenSignUp(false);\n setLogin(false);\n setForgotPassword(false);\n }\n\n const handleLogin = () => {\n setLogin(true);\n };\n\n const handleForgotPassword = () => {\n setForgotPassword(true);\n setLogin(false);\n };\n\n const handleSignin = () => {\n setForgotPassword(false);\n setLogin(true);\n };\n\n const handleSignUp = () => {\n setOpenSignUp(true);\n setLogin(false);\n };\n\n return (\n \n
\n \n \n {login ? (\n \n ) : forgotPassword ? (\n \n ) : (\n \n )}\n \n
\n
\n );\n}\n","import React, { useState } from \"react\";\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { Button, Typography } from \"@material-ui/core\";\nimport { Link } from \"react-router-dom\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport MenuIcon from \"@material-ui/icons/ArrowDropDownSharp\";\nimport AccountBalanceWalletIcon from \"@material-ui/icons/AccountBalanceWallet\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\nimport AccountBalanceWalletTwoToneIcon from \"@material-ui/icons/AccountBalanceWalletTwoTone\";\nimport NumberFormat from \"react-number-format\";\nimport { useEffect } from \"react\";\nimport { useContext } from \"react\";\nimport { UserContext } from \"../../context/user-context\";\nimport { fetchWalletBalance } from \"../../_actions/product.actions\";\n\nconst useStyles = makeStyles((theme) => ({\n button: {\n background: \"green\",\n width: \"120px\",\n height: \"40px\",\n marginLeft: \"-40px\",\n marginTop: \"-10px\",\n transition: \"all .35s ease-in-out\",\n \"&:hover\": {\n background: \"#ff6c00\",\n },\n [theme.breakpoints.only(\"xs\")]: {\n width: \"80px\",\n height: \"25px\",\n fontSize: \"10px\",\n marginLeft: \"-10px\",\n },\n },\n balance: {\n color: \"#fff\",\n },\n viewBalanceBtn: {\n marginTop: \"-10px\",\n width: \"50px\",\n height: \"50px\",\n borderRadius: \"50%\",\n fontSize: \"50px\",\n transition:\n \"background-color 250ms cubic-bezier(0.4,0,0.2,1) 0ms, box-shadow 250ms cubic-beizer(0.4,0,0.2,1) 0ms, border 250ms cubic-bezier(0.4,0,0.2,1) 0ms\",\n\n \"&:focus\": {\n outline: \"none\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"10px\",\n },\n },\n hideBalanceBtn: {\n marginTop: \"-15px\",\n color: \"green\",\n transition: \"all 0.3s ease\",\n\n \"&:focus\": {\n outline: \"none\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"11px\",\n // position: \"absolute\",\n top: \"0px\",\n right: \"0px\",\n left: \"-5px\",\n },\n },\n}));\n\nexport default function XpressWalletBalance(props) {\n const classes = useStyles();\n const { loggedIn, user } = useContext(UserContext);\n const [showBalance, setShowBalance] = useState(false);\n const [state, setState] = useState({\n walletBallance: \"0.00\",\n });\n const showWalletBalance = () => {\n setShowBalance(true);\n };\n\n useEffect(() => {\n if (loggedIn) {\n const req = {\n Parameter: user.WalletID,\n Pin: \"\",\n };\n fetchWalletBalance(req).then((response) => {\n if (response.ResponseCode === \"00\") {\n setState({\n walletBallance: response.Balance,\n });\n }\n });\n }\n }, [user, fetchWalletBalance]);\n\n const hideWalletBalance = () => {\n setShowBalance(false);\n };\n\n return (\n
\n {/* {showBalance ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n )} */}\n
\n );\n}\n","import React from 'react';\nimport styles from './input.module.css';\nimport PropTypes from 'prop-types'\nimport InputLabel from '@material-ui/core/InputLabel'\n\n\n\nconst BorderlessInput = ({ icon,value,onChange,id, style,placeholder, onboarding}) => {\n BorderlessInput.propTypes ={\n onChange:PropTypes.func,\n text: PropTypes.string,\n // icon: PropTypes.symbol,\n };\n return (\n
\n \n {icon}\n \n \n
\n )\n}\n\n\n \n\nexport default BorderlessInput;\n\n\n","import React, { useContext, useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport Input from \"../inputs/input\";\nimport CTA from \"../button/cta-button\";\nimport PasswordInput from \"../inputs/password-input\";\nimport styles from \"../../pages/login/login.module.css\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"@material-ui/core\";\nimport OnboardingInput from \"../inputs/onboarding-input\";\nimport \"../../index.css\";\nimport {\n MdEmail,\n MdVerifiedUser,\n MdPhoneAndroid,\n MdCode,\n MdEnhancedEncryption,\n MdPermContactCalendar,\n} from \"react-icons/md\";\nimport { FaUser } from \"react-icons/fa\";\nimport { useHistory } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useFormik} from \"formik\";\nimport Spinner from \"../../components/spinner\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { validatePhone } from \"../../helpers\";\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n // background:'rgba(240, 218, 213, 0.9)'\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n button: {\n marginLeft: \"80%\",\n marginBottom: \"40px\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n updateBtn: {\n transition: \"all 0.3s ease-in \",\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:hover\": {\n color: \"green\",\n },\n },\n}));\n\nexport default function UpdateProfile(style) {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n const history = useHistory();\n\n const {\n user,\n updateRegister,\n clearMessage,\n updatingRegister,\n updateRegisterMessage,\n } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n\n Yup.addMethod(Yup.string, \"dob\", function () {\n return this.test({\n name: \"dob\",\n exclusive: true,\n message: \"Must be a valid birth month and year (MM/DD)\",\n test: (value) => {\n try {\n // eslint-disable-next-line\n var regExp = new RegExp(\"^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])$\");\n return regExp.test(value);\n } catch (e) {\n return false;\n }\n },\n });\n });\n Yup.addMethod(Yup.string, \"phone\", function (msg) {\n return validatePhone(this, msg);\n });\n const formatString = (event) => {\n let code = event.keyCode;\n let allowedKeys = [8];\n if (allowedKeys.indexOf(code) !== -1) {\n return;\n }\n\n event.target.value = event.target.value\n .replace(\n /^([1-9]\\/|[2-9])$/g,\n \"0$1/\" // 3 > 03/\n )\n .replace(\n /^(0[1-9]|1[0-2])$/g,\n \"$1/\" // 11 > 11/\n )\n .replace(\n /^([0-1])([3-9])$/g,\n \"0$1/$2\" // 13 > 01/3\n )\n .replace(\n /^(0?[1-9]|1[0-2])([0-9]{2})$/g,\n \"$1/$2\" // 141 > 01/41\n )\n .replace(\n /^([0]+)\\/|[0]+$/g,\n \"0\" // 0/ > 0 and 00 > 0\n )\n .replace(\n //eslint-disable-next-line\n /[^\\d\\/]|^[\\/]*$/g,\n \"\" // To allow only digits and `/`\n )\n .replace(\n /\\/\\//g,\n \"/\" // Prevent entering more than 1 `/`\n );\n };\n\n const validationSchema = Yup.object().shape({\n phone: Yup.string(\"Enter Your Phone Number\")\n .phone(\"Enter a Valid Phone Number\")\n .typeError(\"Enter Your Phone Number\")\n .required(\"Phone Number is Required\"),\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n firstName: Yup.string(\"Enter Your First Name\")\n .typeError(\"Enter Your First Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"First Name is Required\"),\n surname: Yup.string(\"Enter Your Last Name\")\n .typeError(\"Enter Your Last Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"Last Name is Required\"),\n dob: Yup.string(\"Enter Birth Month and Day\")\n .dob(\"Enter Birth Month and Day\")\n .typeError(\"Enter Birth Month and Day\")\n .required(\"Birth Month and Day is Required\"),\n });\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n\n const clearForm = () => {\n this.setState({\n email: user.ConsumerID,\n surname: user.Surname,\n firstName: user.Firstname,\n phone: user.PhoneNumber,\n dob: user.DateOfBirth,\n referral: user.ReferralCode,\n });\n };\n useEffect(() => {\n if (updateRegisterMessage && updatingRegister == false) {\n //handleClose();\n // handleSignin();\n //clearMessage();\n history.push(\"/\");\n }\n });\n\n const {handleSubmit, handleChange, setFieldTouched, dirty, touched, isValid, isSubmitting, resetForm, setSubmitting, values, errors} = useFormik({\n initialValues: {\n email: user.ConsumerID,\n surname: user.Surname,\n firstName: user.Firstname,\n phone: user.PhoneNumber,\n dob: user.DateOfBirth,\n referral: user.ReferralCode,\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n updateRegister(values, dispatch);\n setSubmitting(false);\n // resetForm();\n },\n });\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n return (\n <>\n \n \n
\n \n {updatingRegister && }\n \n\n

UPDATE PROFILE

\n
\n \n \n }\n />\n {errors.email && touched.email ? (\n
{errors.email}
\n ) : null}\n \n \n }\n />\n {errors.phone && touched.phone ? (\n
{errors.phone}
\n ) : null}\n \n \n }\n />\n {errors.surname && touched.surname ? (\n
{errors.surname}
\n ) : null}\n \n \n }\n />\n {errors.firstName && touched.firstName ? (\n
{errors.firstName}
\n ) : null}\n \n \n formatString(evt)}\n icon={}\n style={{ marginBottom: \"20px\" }}\n />\n {errors.dob && touched.dob ? (\n
{errors.dob}
\n ) : null}\n \n \n }\n />\n \n
\n \n \n \n \n \n
\n \n \n \n \n );\n}\n","import React, { useContext, useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport Input from \"../inputs/input\";\nimport CTA from \"../button/cta-button\";\nimport PasswordInput from \"../inputs/password-input\";\nimport styles from \"../../pages/login/login.module.css\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"@material-ui/core\";\nimport OnboardingInput from \"../inputs/onboarding-input\";\nimport { FaUserLock } from \"react-icons/fa\";\nimport { MdAccountCircle, MdEmail } from \"react-icons/md\";\nimport { useHistory } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useFormik, Formik, Field, Form, ErrorMessage } from \"formik\";\nimport Spinner from \"../../components/spinner\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.between(\"md\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-100px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n // backgroundColor: 'orange',\n },\n },\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n // background:'rgba(240, 218, 213, 0.9)'\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n button: {\n marginLeft: \"90%\",\n marginBottom: \"40px\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n changePassword: {\n transition: \"all .3s ease-in\",\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:hover\": {\n color: \"green\",\n },\n },\n}));\n// style\nexport default function ChangePassword() {\n const classes = useStyles();\n const history = useHistory();\n const [open, setOpen] = React.useState(false);\n\n const {\n user,\n changePassword,\n clearMessage,\n changingPassword,\n logout,\n changePasswordMessage,\n } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n\n Yup.addMethod(Yup.string, \"password\", function () {\n return this.test({\n name: \"password\",\n exclusive: true,\n message:\n \"Please choose a strong password. Password must meet the following criteria; 1. At least one block letter. 2. At least one small letter. 3. At least one number. 4. At least one special character\",\n test: (value) => {\n try {\n //Regular Expressions.\n var regex = [];\n regex.push(\"[A-Z]\"); //Uppercase Alphabet.\n regex.push(\"[a-z]\"); //Lowercase Alphabet.\n regex.push(\"[0-9]\"); //Digit.\n regex.push(\"[$@$!%*#?&]\"); //Special Character.\n var passed = 0;\n //Validate for each Regular Expression.\n for (var i = 0; i < regex.length; i++) {\n if (new RegExp(regex[i]).test(value)) {\n passed++;\n }\n }\n //Validate for length of Password.\n if (passed > 2 && value.length > 8) {\n passed++;\n }\n return passed >= 2;\n } catch (e) {\n return false;\n }\n },\n });\n });\n\n const validationSchema = Yup.object().shape({\n oldpwd: Yup.string(\"Enter Your Old Password\")\n .typeError(\"Enter Your Old Password\")\n //.password(\"Enter a Valid Password\")\n .required(\"Password is Required\"),\n password: Yup.string(\"Enter Your New Password\")\n .typeError(\"Enter Your New Password\")\n .matches(\n /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,}$/,\n \"Please choose a strong password. Password must meet the following criteria; 1. At least one block letter. 2. At least one small letter. 3. At least one number. 4. At least one special character\"\n )\n .required(\"Password is Required\"),\n confirmpwd: Yup.string(\"Confirm Your New Password\")\n .typeError(\"Confirm Your New Password\")\n .oneOf([Yup.ref(\"password\")], \"Passwords do not match\")\n .required(\"Confirm Password is Required\"),\n });\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n const clearForm = () => {\n this.setState({\n //email: \"\",\n oldpwd: \"\",\n password: \"\",\n confirmpwd: \"\",\n });\n };\n useEffect(() => {\n if (changePasswordMessage && changingPassword == false) {\n logout()\n // history.push(\"/\");\n }\n }, []);\n\n const {handleSubmit, handleChange, setFieldTouched, dirty, touched, isValid, isSubmitting, resetForm, setSubmitting, values, errors} = useFormik({\n initialValues: {\n // email: user.ConsumerID,\n oldpwd: \"\",\n password: \"\",\n confirmpwd: \"\",\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n values.email = user.ConsumerID;\n changePassword(values, dispatch);\n setSubmitting(false);\n resetForm({\n oldpwd: \"\",\n password: \"\",\n confirmpwd: \"\",\n });\n },\n });\n\n // }\n const body = (\n \n \n \n CHANGE PASSWORD\n \n \n \n }\n />\n \n \n {\" \"}\n }\n />\n \n password must atleast one uppercase, one lowercase alphabeth and one\n special character\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n );\n\n return (\n
\n {/* */}\n \n
Change Password
\n \n \n
\n \n {changingPassword && }\n \n \n CHANGE PASSWORD\n \n \n \n }\n name=\"oldpwd\"\n type=\"password\"\n value={values.oldpwd}\n onChange={change.bind(null, \"oldpwd\")}\n />\n {errors.oldpwd && touched.oldpwd ? (\n
{errors.oldpwd}
\n ) : null}\n \n \n {\" \"}\n }\n />\n {errors.password && touched.password ? (\n
{errors.password}
\n ) : null}\n {/* password must atleast one uppercase, one lowercase alphabeth and one special character */}\n \n \n }\n name=\"confirmpwd\"\n type=\"password\"\n value={values.confirmpwd}\n onChange={change.bind(null, \"confirmpwd\")}\n />\n {errors.confirmpwd && touched.confirmpwd ? (\n
{errors.confirmpwd}
\n ) : null}\n \n
\n \n \n \n \n \n
\n \n \n \n );\n}\n","import React from \"react\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport { MdPageview } from \"react-icons/md\";\nimport { Grid, Paper, Typography, Divider } from \"@material-ui/core\";\nimport CTA from \"../button/cta-button\";\n\nfunction getModalStyle() {\n const top = 50;\n const left = 50;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`,\n };\n}\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n paper: {\n position: \"absolute\",\n width: 500,\n backgroundColor: theme.palette.background.paper,\n border: \"none !important\",\n // boxShadow: theme.shadows[5],\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n // padding: theme.spacing(2, 4, 3),\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n border: \"none !important\",\n // width: '450px',\n width: 500,\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n },\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n })\n);\n\nexport default function ViewTransactionModal() {\n const classes = useStyles();\n // getModalStyle is not a pure function, we roll the style only on the first render\n const [modalStyle] = React.useState(getModalStyle);\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n const handleProceed = () => {};\n\n const body = (\n
\n \n \n \n Transaction Details\n \n \n {/* \n \n */}\n \n \n \n \n Product\n \n \n Airtimes\n \n \n \n
\n \n \n Email\n \n \n \n text@email.com\n \n \n \n \n
\n \n \n Phone Number\n \n \n 0801 2345 678\n \n \n \n
\n \n \n Convenience fee\n \n \n 0.00\n \n \n \n
\n \n \n Total Amount\n \n \n 100.00\n \n \n \n
\n \n \n \n \n \n \n
\n );\n\n return (\n
\n \n \n {body}\n \n
\n );\n}\n","import React, { useRef } from \"react\";\nimport ReactToPrint from \"react-to-print\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\nimport { Grid, Paper, Typography, Divider } from \"@material-ui/core\";\n\n// const useStyles = makeStyles((theme) =>\n// createStyles({\n// paper: {\n// position: \"absolute\",\n// width: 700,\n// backgroundColor: theme.palette.background.paper,\n// boxShadow: theme.shadows[5],\n// // padding: theme.spacing(2, 4, 3),\n// },\n// paperForm: {\n// margin: \"20px auto 0px auto\",\n// padding: \"3px 40px 10px 40px\",\n// // width: '450px',\n// width: 700,\n// [theme.breakpoints.down(\"sm\")]: {\n// padding: \"20px\",\n// width: \"310px\",\n// marginLeft: \"-8px\",\n// },\n// },\n// previewTitle: {\n// fontWeight: \"600\",\n// marginBottom: \"10px\",\n// marginTop: \"20px\",\n// fontFamily: \"Montserrat\",\n// [theme.breakpoints.down(\"sm\")]: {\n// fontSize: \"16px\",\n// fontWeight: \"bold\",\n// marginTop: \"0px\",\n// },\n// },\n// summaryFontBold: {\n// fontWeight: \"600\",\n// [theme.breakpoints.down(\"sm\")]: {\n// fontSize: \"12px\",\n// fontWeight: \"bold\",\n// },\n// },\n// formButtons: {\n// marginTop: \"20px\",\n// paddingLeft: \"20px\",\n// marginLeft: \"150px\",\n// [theme.breakpoints.down(\"sm\")]: {\n// display: \"flex\",\n// marginLeft: \"0px\",\n// },\n// [theme.breakpoints.down(\"xs\")]: {\n// marginLeft: \"-18px\",\n// },\n// },\n// titleProduct: {\n// fontFamily: \"Montserrat\",\n// fontWeight: \"bold\",\n// fontSize: \"25px\",\n// marginTop: \"50px\",\n// marginLeft: \"-30px\",\n// [theme.breakpoints.down(\"sm\")]: {\n// fontSize: \"18px\",\n// fontWeight: \"600px\",\n// marginLeft: \"-20px\",\n// marginTop: \"30px\",\n// },\n// },\n// typegraphyStyles: {\n// textAlign: \"right\",\n// fontSize: \"14px\",\n// },\n// })\n// );\n\nconst handleProceed = () => {};\n// const handleOpen = () => {\n// setOpen(true);\n// };\n\n// const handleClose = () => {\n// setOpen(false);\n// };\n\nclass ComponentToPrint extends React.Component {\n render() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n Product\n \n \n Airtimes\n \n \n\n
\n \n \n E-mail\n \n \n \n me@email.com\n \n \n
\n\n
\n \n \n Phone Number\n \n \n 0801 2345 678\n \n \n\n
\n \n \n Convenience fee\n \n \n 0.00\n \n
\n\n
\n \n \n Total Amount\n \n \n 100.00\n \n \n \n \n Total Amount\n \n \n 100.00\n \n \n \n \n Total Amount\n \n \n 100.00\n \n \n\n
\n \n \n \n
\n );\n }\n}\n\nconst ContentToPrint = () => {\n const componentRef = useRef();\n // const classes = useStyles();\n return (\n
\n \n }\n content={() => componentRef.current}\n />\n
\n );\n};\n\nexport default ContentToPrint;\n","import React from \"react\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport { MdPageview } from \"react-icons/md\";\nimport { Grid, Paper, Typography, Divider } from \"@material-ui/core\";\nimport { FaPlay, FaFastForward, FaPrint } from \"react-icons/fa\";\nimport CTA from \"../button/cta-button\";\nimport Print from \"../print-transaction/print\";\nimport ContentToPrint from \"../print-transaction/print\";\n\nfunction rand() {\n return Math.round(Math.random() * 20) - 10;\n}\n\nfunction getModalStyle() {\n const top = 50;\n const left = 50;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`,\n };\n}\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n paper: {\n position: \"absolute\",\n width: 500,\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n // padding: theme.spacing(2, 4, 3),\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: 500,\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n },\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"11px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"11px\",\n },\n })\n);\n\nexport default function PrintModal() {\n const classes = useStyles();\n // getModalStyle is not a pure function, we roll the style only on the first render\n const [modalStyle] = React.useState(getModalStyle);\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n const handleProceed = () => {};\n\n const body = (\n
\n \n \n \n \n
\n );\n\n return (\n
\n \n \n {body}\n \n
\n );\n}\n","import { transactionConstants } from '../_constants';\n\nexport function transactionReducer(state = {}, action) {\n switch (action.type) {\n case transactionConstants.SENDING_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case transactionConstants.FETCH_DASHBOARD_TRANSACTION:\n return {\n loading: false,\n transactions: action.payload\n }; \n\n case transactionConstants.TRANSACTION_HISTORY_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case transactionConstants.FETCH_TRANSACTION_HISTORY:\n return {\n loading: false,\n transactions: action.payload\n };\n case transactionConstants.TRANSACTION_HISTORY_SEARCH_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case transactionConstants.FETCH_TRANSACTION_HISTORY_SEARCH:\n return {\n loading: false,\n transactions: action.payload\n };\n\n default:\n return state\n }\n}","import React, { createContext, useReducer } from \"react\";\nimport { transactionReducer } from \"../_reducers/transaction.reducer\";\nimport { fetchTransactionHistory, fetchTransactionHistorySearch } from \"../_actions/product.actions\";\nimport { transactionConstants } from \"../_constants\";\n\nlet userDetails = JSON.parse(localStorage.getItem('user'));\n\nconst initialState = {\n user: !!userDetails ? userDetails : {},\n loading: true,\n transactions: [],\n\n\n};\n\nexport const TranHistoryContext = createContext(initialState);\n\nexport const TranHistoryProvider = ({ children }) => {\n\n const [state, historyDispatch] = useReducer(transactionReducer, initialState);\n\n const getTransactionHistrory = () => {\n // try {\n fetchTransactionHistory({ type: transactionConstants.TRANSACTION_HISTORY_REQUEST })\n fetchTransactionHistory().then(resp => {\n historyDispatch({ type: transactionConstants.FETCH_TRANSACTION_HISTORY, payload: resp })\n }, error => {\n historyDispatch({ type: transactionConstants.FETCH_TRANSACTION_HISTORY, payload: [] })\n });\n };\n\n const getTransactionHistrorySearch = (req) => {\n historyDispatch({\n type: transactionConstants.TRANSACTION_HISTORY_SEARCH_REQUEST\n })\n fetchTransactionHistorySearch(req).then(resp => {\n historyDispatch({ type: transactionConstants.FETCH_TRANSACTION_HISTORY_SEARCH, payload: resp })\n }, error => {\n historyDispatch({\n type: transactionConstants.TRANSACTION_HISTORY_SEARCH_REQUEST\n })\n historyDispatch({ type: transactionConstants.FETCH_TRANSACTION_HISTORY_SEARCH, payload: [] })\n });\n };\n\n return (\n {\n children\n } \n )\n};","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst styles = {\n /* Styles applied to the root element. */\n background: \"rgba(0, 109, 1, 0.2)\",\n fontFamily: \"Montserrat\",\n fontWeight: \"900\",\n fontSize: \"14px\",\n padding: \"10px\",\n height: \"50px\", \n};\nconst styles2 = {\n fontFamily: \"Montserrat\",\n fontWeight: \"900\",\n height: \"40px\",\n fontSize: \"14px\",\n width: \"200px\",\n};\n\nclass EnhanceTableHead extends React.Component {\n createSortHandler = (property) => (event) => {\n this.props.onRequestSort(event, property);\n };\n // classes = useStyles();\n render() {\n const {\n onSelectAllClick,\n order,\n orderBy,\n numSelected,\n rowCount,\n columns,\n classes,\n showCheckbox,\n showAction,\n } = this.props;\n\n return (\n \n \n {!!showCheckbox && (\n \n 0 && numSelected < rowCount}\n checked={numSelected > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n \n )}\n {columns.map((column) => {\n return (\n \n \n \n {column.Label}\n \n \n \n );\n }, this)}\n {!!showAction && (\n \n Action\n \n )}\n \n \n );\n }\n}\n\nEnhanceTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n numSelected: PropTypes.number.isRequired,\n onRequestSort: PropTypes.func.isRequired,\n onSelectAllClick: PropTypes.func.isRequired,\n //order: PropTypes.string.isRequired,\n //orderBy: PropTypes.string.isRequired,\n rowCount: PropTypes.number.isRequired,\n};\nexport default EnhanceTableHead;\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport { lighten } from '@material-ui/core/styles/colorManipulator';\nimport Typography from '@material-ui/core/Typography';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport classNames from 'classnames';\nimport {FaPrint, FaFilePdf, FaFileExcel} from 'react-icons/fa';\n\nconst toolbarStyles = theme => ({\n root: {\n paddingRight: theme.spacing.unit,\n minHeight:'30px',\n },\n highlight:\n theme.palette.type === 'light'\n ? {\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n spacer: {\n flex: '1 1 100%',\n },\n actions: {\n color: theme.palette.text.secondary,\n },\n title: {\n flex: '0 0 auto',\n },\n\n });\n \n\nclass EnhancedTableToolbar extends React.Component {\n render() {\n const { numSelected, classes, onExportExcel, onExportPdf, onPrint } = this.props;\n \n return (\n 0,\n })}\n >\n
\n {numSelected > 0 &&\n \n {numSelected} selected\n \n }\n
\n
\n
\n {numSelected > 0 ? (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n ) : (\n \n \n \n \n \n )}\n
\n \n )\n }\n}\n \n EnhancedTableToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n numSelected: PropTypes.number.isRequired,\n };\nexport default withStyles(toolbarStyles)(EnhancedTableToolbar);","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport EnhancedTableHead from \"./EnhanceTableHead\"\nimport EnhancedTableToolbar from \"./EnhancedTableToolbar\"\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { ExcelExport, ExcelExportColumn } from '@progress/kendo-react-excel-export';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport { downloadPdf, print, formatDate, truncate} from '../../helpers'\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 1,\n height:'auto'\n },\n table: {\n //minWidth: 1020,\n },\n tableWrapper: {\n overflowX: 'auto',\n },\n tableCell : {\n whiteSpace: 'nowrap',\n padding: '0px 8px 0px 8px !important',\n fontSize: '0.75rem !important'\n },\n pdfTable:{ \n //maxHeight: '400px', \n margin: theme.spacing.unit * 3, \n },\n pdfTableHeader:{\n backgroundColor:'#eeeeee' ,\n fontWeight:700\n }\n });\n //const rowHeight = 35;\n function desc(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n \n function stableSort(array, cmp) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = cmp(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map(el => el[0]);\n }\n \n function getSorting(order, orderBy) {\n return order === 'desc' ? (a, b) => desc(a, b, orderBy) : (a, b) => -desc(a, b, orderBy);\n }\n \n\nclass EnhancedTable extends React.Component {\n constructor(props) {\n super(props);\n const { data } = props;\n this.state = {\n order: this.props.order,\n orderBy: this.props.orderBy,\n selected: [],\n selectedData:[],\n data: this.processData(data),\n page: 0,\n rowsPerPage: 5,\n mainData:data\n };\n }\n processData(data){ \n let _data = [];\n if(data && data.length > 0){\n _data = data.map((el, i) => {\n let item = {\n ...el, \n rowId:i\n };\n return item\n });\n }\n return _data;\n }\n formatCellValue(v, f){\n switch(f.type){\n case 'date':\n v = formatDate(v,'DD-MMM-YYYY');\n break;\n case 'currency':\n v = v.toLocaleString(navigator.language, { minimumFractionDigits: 0 });\n break;\n default:\n break;\n }\n return v;\n }\n componentWillReceiveProps(props) {\n const { mainData } = this.props;\n if (props.data !== mainData) {\n this.setState(\n {\n data:this.processData(props.data),\n mainData:props.data\n });\n }\n }\n handleRequestSort = (event, property) => {\n const orderBy = property;\n let order = 'desc';\n \n if (this.state.orderBy === property && this.state.order === 'desc') {\n order = 'asc';\n }\n \n this.setState({ order, orderBy });\n };\n \n handleSelectAllClick = event => {\n if (event.target.checked) {\n this.setState(state => ({ selected: state.data.map(n => n.rowId), selectedData:state.data }));\n return;\n }\n this.setState({ selected: [], selectedData:[] });\n };\n\n _exporter;\n\n handleDownloadExcel = evt => {\n this._exporter.save();\n }\n\n getPrintableContent = () => {\n const { selectedData } = this.state;\n const { columns, classes } = this.props;\n let content = (\n \n \n \n {columns.map(column => {\n return (\n \n {column.Label}\n \n );\n }, this)}\n \n \n \n {selectedData.map(row => {\n return (\n \n {columns.map(column => {\n return (\n \n {column.Format ? this.formatCellValue(row[column.Id], column.Format) : row[column.Id]}\n \n );}, this)}\n \n );\n })}\n \n
\n );\n return content;\n }\n\n handleDownloadPdf = () => {\n const { pdfFileName } = this.props;\n let content = this.getPrintableContent();\n downloadPdf(content, pdfFileName);\n }\n\n handlePrint = () => {\n let content = this.getPrintableContent();\n print(content);\n }\n \n handleClick = (event, id) => {\n const { selected } = this.state;\n const selectedIndex = selected.indexOf(id);\n let newSelected = [];\n \n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selected, id);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selected.slice(1));\n } else if (selectedIndex === selected.length - 1) {\n newSelected = newSelected.concat(selected.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(\n selected.slice(0, selectedIndex),\n selected.slice(selectedIndex + 1),\n );\n }\n let _selectedData = this.state.data.filter( f => newSelected.indexOf(f.rowId) > -1);\n this.setState({ \n selected: newSelected,\n selectedData:_selectedData\n });\n };\n \n handleChangePage = (event, page) => {\n this.setState({ page });\n };\n \n handleChangeRowsPerPage = event => {\n this.setState({ rowsPerPage: event.target.value });\n };\n isSelected = id => this.state.selected.indexOf(id) !== -1;\n\n render() {\n const { selectedData , order, orderBy, selected, rowsPerPage, page, data } = this.state;\n const { classes, columns, excelFileName, \n showToolbar, paging, showAction,\n actionOption, onCreateAction } = this.props;\n //const emptyRows = rowsPerPage - Math.min(rowsPerPage, data.length - page * rowsPerPage);\n\n return (\n \n { this._exporter = exporter; }}\n >\n {columns.map(column => {\n return (\n \n );\n }, this)}\n \n \n { !!showToolbar && }\n
\n \n \n \n {stableSort(data, getSorting(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(n => {\n const isSelected = this.isSelected(n.rowId);\n return (\n this.handleClick(event, n.rowId)}\n role=\"checkbox\"\n aria-checked={isSelected}\n tabIndex={-1}\n key={n.rowId}\n selected={isSelected}\n >\n {!!showToolbar && \n \n }\n {columns.map(column => {\n return (\n \n {column.Format ? truncate(this.formatCellValue(n[column.Id], column.Format), 35) : truncate(n[column.Id], 35)}\n \n );}, this)}\n {!!showAction && \n {onCreateAction(actionOption, n)}\n }\n \n );\n })}\n {data.length === 0 && (\n // \n \n \n No records\n \n \n )}\n \n
\n
\n {!!paging &&}\n
\n
\n )\n }\n}\n \n EnhancedTable.propTypes = {\n classes: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n data: PropTypes.array.isRequired,\n };\nexport default withStyles(styles)(EnhancedTable);","import React from \"react\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { getReceipt } from \"../_actions/product.actions\";\nimport { Grid } from \"@material-ui/core\";\n\nconst logo = \"/Resources/images/XPressPay_Logo.png\";\n\n// const imgRight: {\n// position: \"absolute\",\n// right: \"150px\",\n// width: \"200px\",\n// height: \"120px\",\n// border: \"3px solid green\",\n// };\n\nexport const getReceiptData = async (id, callback) => {\n //alert(id);\n let _receipt =
;\n let rowHeight = \"30px\";\n\n try {\n if (typeof id !== \"undefined\" && id !== \"\") {\n const transactionDetails = await getReceipt(id);\n if (transactionDetails) {\n _receipt = (\n
\n
\n \n \n \"\"\n \n
\n \n \n {transactionDetails.TransactionDescription}\n \n
\n \n \n \n \n Order Status\n \n \n {transactionDetails.OrderStatus}\n \n \n {transactionDetails.ReceiptItems.map((row) => {\n return (\n \n \n {row.Label}\n \n {row.Value}\n \n );\n })}\n \n \n Order Details\n \n \n {transactionDetails.OrderDetails}\n \n \n \n \n Order Number\n \n \n {transactionDetails.OrderNumber}\n \n \n \n \n Order Amount\n \n \n {transactionDetails.OrderAmount}\n \n \n \n \n Convenience Fee\n \n {transactionDetails.Fee}\n \n \n \n Order Date\n \n {transactionDetails.OrderDate}\n \n \n \n E-mail\n \n \n {transactionDetails.EmailAddress}\n \n \n \n
\n
\n );\n }\n } else {\n _receipt =
Invalid Order Number
;\n }\n } catch (e) {\n _receipt =
Invalid Order Number
;\n }\n callback(_receipt);\n};\n\nclass Receipt extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n completed: false,\n };\n }\n\n async componentDidMount() {\n const { id } = this.props;\n await getReceiptData(id, (_receipt) => {\n this.setState({\n receipt: _receipt,\n completed: true,\n });\n });\n }\n\n render() {\n const { receipt } = this.state;\n return (\n \n {receipt &&
(this.Receipt = comp)}>{receipt}
}\n
\n );\n }\n}\n\nexport default Receipt;\n","import React, { useContext, useState, useEffect } from \"react\";\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { withRouter, Link } from \"react-router-dom\";\nimport { TextField, Grid, ThemeProvider } from \"@material-ui/core\";\nimport { theme } from \"../../theme\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TableRow from \"@material-ui/core/TableRow\";\n// import { FaPlay, FaFastForward, FaPrint, FaSearch } from \"react-icons/fa\";\n// import { MdViewAgenda, MdPageview } from \"react-icons/md\";\nimport { FaPrint, FaPlay, FaFastForward } from \"react-icons/fa\"; //, FaRecycle\nimport { MdPageview } from \"react-icons/md\";\nimport CTA from \"../button/cta-button\";\nimport ViewTransactionModal from \"../modal/view-transaction-modal\";\nimport Print from \"../print-transaction/print\";\nimport PrintModal from \"../modal/print-modal\";\nimport { TranHistoryContext } from \"../../context/transaction-history-context\";\nimport Spinner from \"../../components/spinner\";\nimport moment from \"moment\";\nimport { useFormik, yupToFormErrors } from \"formik\";\nimport EnhancedTableHead from \"./transaction-table-head\";\nimport * as Yup from \"yup\";\nimport Typography from \"@material-ui/core/Typography\";\nimport EnhancedTable from \"../../components/table/EnhancedTable\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { getReceiptData } from \"../../components/receipt\";\nimport { print } from \"../../helpers\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport classNames from \"classnames\";\nimport Button from \"@material-ui/core/Button\";\nimport { getReceipt } from \"../../_actions/product.actions\";\nimport { useHistory } from \"react-router\";\n\nconst StyledTableCell = withStyles((theme) => ({\n head: {\n background: \"rgba(0, 109, 1, 0.2)\",\n fontFamily: \"Montserrat\",\n fontWeight: \"bolder\",\n },\n body: {\n fontSize: 14,\n borderRadius: \"5px\",\n },\n}))(TableCell);\n\nconst rowHeight = \"30px\";\n\nconst StyledTableRow = withStyles((theme) => ({\n root: {\n \"&:nth-of-type(even)\": {\n backgroundColor: \"rgba(196, 196, 196, 0.2)\",\n },\n },\n}))(TableRow);\n\nconst tranHistoryColumns = [\n {\n Id: \"Date\",\n Numeric: false,\n Format: { type: \"date\" },\n DisablePadding: true,\n Label: \"Date Generated\",\n },\n {\n Id: \"PaymentReference\",\n Numeric: false,\n DisablePadding: false,\n Label: \"Payment Ref.\",\n },\n {\n Id: \"ProductName\",\n Numeric: false,\n DisablePadding: false,\n Label: \"Product\",\n },\n {\n Id: \"Amount\",\n Numeric: true,\n Format: { type: \"currency\" },\n DisablePadding: false,\n Label: \"Amount\",\n },\n {\n Id: \"ApprovalStatus\",\n Numeric: false,\n DisablePadding: false,\n Label: \"Not. Status\",\n },\n {\n Id: \"PaymentStatus\",\n Numeric: false,\n DisablePadding: false,\n Label: \"Pymt. Status\",\n },\n];\n\nconst useStyles = makeStyles({\n root: {\n width: \"100%\",\n // maxWidth:'1000px'\n },\n overallContainer: {\n marginLeft: \"20px\",\n marginTop: 20,\n },\n\n container: {\n maxHeight: \"auto\",\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"rgba(0,0,0,.1)\",\n outline: \"1px solid slategrey\",\n },\n },\n play: {\n color: \"FF6C00\",\n },\n topForm: {\n borderRadius: \"5px 5px 0px 0px\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"40px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n dialogContent: {\n lineHeight: 0,\n color: \"red !important\",\n },\n});\n\nexport default function TransactionHistory(style, props) {\n const classes = useStyles();\n const [page, setPage] = React.useState(0);\n const [order, setOrder] = React.useState(\"asc\");\n const [openDetails, setOpenDetails] = React.useState(false);\n const [orderBy, setOrderBy] = React.useState(\"\");\n const [rowsPerPage, setRowsPerPage] = React.useState(3);\n const history = useHistory();\n\n const [transactionDetails, setTransactionDetails] = useState(\"\");\n const {\n loading,\n transactions,\n getTransactionHistrory,\n getTransactionHistrorySearch,\n } = useContext(TranHistoryContext);\n\n const validationSchema = Yup.object().shape({\n endDate: Yup.date().when(\"startDate\", {\n is: (val) => val !== undefined,\n then: Yup.date().required(\"Enter end date\"),\n }),\n });\n\n useEffect(() => {\n getTransactionHistrory();\n }, []);\n\n const handleForward = (row) => {\n history.push(\n `/${row.UrlPath}/${row.BillerCode}/${row.Id}?status=forwarded`\n );\n }\n\n const handlePlay = (row) => {\n history.push(`/${row.UrlPath}/${row.BillerCode}/${row.Id}`);\n }\n\n const handleActionCreation = (option, row) => {\n return (\n \n \n {\n getReceiptData(row.Id, (_receipt) => {\n print(_receipt);\n });\n }}\n aria-label=\"Print\"\n color=\"inherit\"\n >\n \n \n \n \n {\n e.preventDefault();\n showDetails(row.Id);\n }}\n aria-label=\"View Details\"\n color=\"inherit\"\n >\n \n \n \n \n {\n history.push(`/${row.UrlPath}/${row.BillerCode}/${row.Id}`);\n }}\n color=\"primary\"\n >\n \n \n \n \n {\n history.push(\n `/${row.UrlPath}/${row.BillerCode}/${row.Id}?status=forwarded`\n );\n }}\n // onClick={handleForward}\n color=\"secondary\"\n >\n \n \n \n \n );\n };\n\n const showDetails = async (id) => {\n if (typeof id !== \"undefined\" && id !== \"\") {\n const transactionDetails = await getReceipt(id);\n\n setTransactionDetails(transactionDetails);\n setOpenDetails(true);\n // if (transactionDetails) { \n // this.setState({\n // transactionDetails: transactionDetails,\n // openDetails: true\n // });\n // }\n }\n };\n const closeDetails = () => {\n setOpenDetails(false);\n setTransactionDetails(null);\n // this.setState({\n // openDetails: false,\n // //transactionId:''\n // transactionDetails: null\n // });\n };\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n const {\n handleSubmit,\n handleChange,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n } = useFormik({\n initialValues: {\n startDate: \"\",\n endDate: \"\",\n paymentRef: \"\",\n },\n validationSchema,\n onSubmit(values, { setSubmitting }) {\n getTransactionHistrorySearch(values);\n setSubmitting(false);\n resetForm({\n startDate: \"\",\n endDate: \"\",\n paymentRef: \"\",\n });\n },\n });\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n return (\n \n
\n
\n
\n Transaction History\n
\n \n \n
\n \n \n \n \n {errors.startDate && touched.startDate ? (\n
{errors.startDate}
\n ) : null}\n \n
\n \n \n {errors.endDate && touched.endDate ? (\n
{errors.endDate}
\n ) : null}\n \n \n \n \n \n \n \n \n \n
\n
\n {/*
*/}\n\n {/* */}\n {loading && }\n \n \n
\n \n \n Transaction Details\n \n \n {transactionDetails && (\n \n \n \n \n Order Status\n \n \n {transactionDetails.OrderStatus}\n \n \n {transactionDetails.ReceiptItems.map((row) => {\n return (\n \n \n {row.Label}\n \n {row.Value}\n \n );\n })}\n \n \n Order Details\n \n \n {transactionDetails.OrderDetails}\n \n \n \n \n Order Number\n \n \n {transactionDetails.OrderNumber}\n \n \n \n \n Order Amount\n \n \n {transactionDetails.OrderAmount}\n \n \n \n \n Convenience Fee\n \n {transactionDetails.Fee}\n \n \n \n Order Date\n \n \n {transactionDetails.OrderDate}\n \n \n \n \n E-mail\n \n \n {transactionDetails.EmailAddress}\n \n \n \n
\n )}\n
\n \n \n Close\n \n \n \n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport { TextField, Grid, ThemeProvider } from \"@material-ui/core\";\nimport { theme } from \"../../theme\";\nimport CTA from \"../button/cta-button\";\nimport { FaPlay,FaFastForward, FaPrint,FaSearch } from 'react-icons/fa'\nimport { MdViewAgenda, MdPageview } from \"react-icons/md\";\n// import StyledTableCell from '@material-ui/core/StyledTableCell'\n\nconst StyledTableCell = withStyles((theme) => ({\n head: {\n background: \"rgba(255, 108, 0, 0.2)\",\n fontFamily: \"Montserrat\",\n fontWeight: \"bolder\",\n },\n body: {\n fontSize: 14,\n borderRadius: \"5px\",\n },\n}))(TableCell);\n\nconst StyledTableRow = withStyles((theme) => ({\n root: {\n \"&:nth-of-type(even)\": {\n backgroundColor: \"rgba(196, 196, 196, 0.2)\",\n },\n },\n}))(TableRow);\n\n// Date, PR, Product, Amount,NS,PS,Actions\nconst columns = [\n { id: \"Date\", label: \"Date Generated\", maxWidth: 130 },\n { id: \"PR\", label: \"Payment Ref\", maxWidth: 130 },\n {\n id: \"Product\",\n label: \"Product\",\n maxWidth: 130,\n // align: 'right',\n // format: (value) => value.toLocaleString('en-US'),\n },\n {\n id: \"Amount\",\n label: \"Amount\",\n maxWidth: 130,\n // align: 'right',\n // format: (value) => value.toLocaleString('en-US'),\n },\n {\n id: \"NS\",\n label: \"Notification Status\",\n maxWidth: 130,\n // align: 'right',\n format: (value) => value.toFixed(2),\n },\n {\n id: \"PS\",\n label: \"Payment Status\",\n maxWidth: 130,\n // align: 'right',\n format: (value) => value.toFixed(2),\n },\n {\n id: \"Action\",\n label: \"Action\",\n maxWidth: 50,\n },\n \n];\n\nfunction createData(Date, PR, Product, Amount,NS,PS,Action,) {\n return { Date, PR, Product, Amount,NS,PS,Action, };\n}\n\nconst handlePlay=(e)=> {\n e.preventDefault();\n alert('welcome peter')\n};\nconst handlePrint=(e)=> {\n e.preventDefault();\n alert('Print Clicked')\n};\nconst handleSearch=(e)=> {\n e.preventDefault();\n alert('Search Clicked')\n};\nconst handleForward=(e)=> {\n e.preventDefault();\n alert('Forward Clicked')\n};\n\nconst rows = [\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',,),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n createData('20th-Aug-2020', 123323498474, 'Airtel', 2000000,'Successful','Declined',),\n \n];\n\nconst useStyles = makeStyles({\n root: {\n width: \"100%\",\n },\n overallContainer: {\n marginLeft: \"20px\",\n marginTop: 20,\n },\n container: {\n maxHeight: 'auto',\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"rgba(0,0,0,.1)\",\n outline: \"1px solid slategrey\",\n },\n },\n topForm: {\n borderRadius: \"5px 5px 0px 0px\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"40px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n bulkTransactionTitle:{\n background: \"#FF6C00\",\n borderRadius: \"5px\",\n // position: \"absolute\",\n width: \"400px\",\n height: \"60px\",\n marginTop: \"-20px\",\n marginLeft: \"20px\",\n color: \"#fff\",\n paddingLeft: \"15px\",\n paddingTop:'20px',\n paddingBottom:'15px',\n // fontWeight:'bolder',\n fontFamily:'Montserrat',\n }\n});\n\nexport default function BulkTransactionHistory(style) {\n const classes = useStyles();\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(3);\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n return (\n
\n \n
\n
Bulk Airtime Transaction History
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n {columns.map((column) => (\n \n {column.label}\n \n ))}\n \n \n \n {rows\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((row) => {\n return (\n \n {columns.map((column) => {\n const value = row[column.id];\n return (\n \n {column.format && typeof value === \"number\"\n ? column.format(value)\n : value}\n \n );\n })}\n \n );\n })}\n \n
\n
\n \n
\n
\n );\n}\n","import React from 'react';\nimport TransactionHistory from '../../components/transaction-history/transaction-history';\nimport BulkTransactionHistory from '../../components/transaction-history/bulk-transaction-history';\nimport { withStyles, makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\n// import classes from '*.module.css';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: \"100%\",\n \n },\n transactionContainer:{\n marginTop:'25px',\n maxHeight:'750px',\n overflowY:'scroll',\n backgroundColor:'#fff',\n \"&::-webkit-scrollbar\": {\n background: '#fff',\n width: '12px',\n },\n '&::-webkit-scrollbar-track': {\n boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)'\n },\n \"&::-webkit-scrollbar-thumb\":{\n backgroundColor: 'green',\n borderRadius: '5px',\n outline: '1px solid slategrey'\n }\n \n }\n\n });\n\nconst AllTransactionHistory = () => {\n const classes = useStyles();\n return(\n
\n \n
\n {/* */}\n
\n \n \n )\n}\n\nexport default AllTransactionHistory;","import React, { useContext, useEffect } from \"react\";\nimport { InputLabel, Input, Grid } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CTA from \"../button/cta-button\";\nimport styles from \"../../pages/login/login.module.css\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"@material-ui/core\";\nimport { TextField, ThemeProvider } from \"@material-ui/core\";\nimport OnboardingInput from \"../inputs/onboarding-input\";\nimport { MdRestore, MdEmail, MdSettingsBackupRestore } from \"react-icons/md\";\nimport { useHistory } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport Spinner from \"../../components/spinner\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: \"fixed\",\n width: 500,\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-70px\",\n top: \"10%\",\n },\n [theme.breakpoints.between(\"md\")]: {\n position: \"absolute\",\n width: 270,\n left: \"-100px\",\n top: \"10%\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n // backgroundColor: 'orange',\n },\n },\n modal: {\n // background: \"rgba(237, 219, 219, 0.9)\",\n // background:'rgba(240, 218, 213, 0.9)'\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n button: {\n marginLeft: \"90%\",\n marginBottom: \"40px\",\n background: \"none\",\n \"&:hover\": {\n background: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n background: \"none\",\n },\n },\n reset: {\n marginLeft: \"100px\",\n fontSize: \"40px\",\n color: \"#FF6C00\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"20px\",\n marginRight: \"10px\",\n },\n },\n backupEmail: {\n transition: \"all .3s ease-in\",\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:hover\": {\n color: \"green\",\n },\n },\n}));\n\nconst AddBackupEmail = (style) => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n const history = useHistory();\n\n const {\n user,\n submitBackEmail,\n clearMessage,\n updatingBackupEmail,\n updateBackupEmailMessage,\n } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n\n const validationSchema = Yup.object().shape({\n backupEmail: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n });\n\n const clearForm = () => {\n this.setState({\n backupEmail: user.BackupEmail,\n });\n };\n useEffect(() => {\n if (updateBackupEmailMessage) {\n history.push(\"/\");\n }\n });\n\n const {\n handleSubmit,\n handleChange,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n } = useFormik({\n initialValues: {\n email: user.ConsumerID,\n backupEmail: user.BackupEmail,\n },\n validationSchema,\n onSubmit(values) {\n submitBackEmail(values, dispatch);\n },\n });\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n \n <>\n
\n \n
Add Backup Email
\n \n \n
\n \n {updatingBackupEmail && (\n \n )}\n \n
\n
\n \n

\n Add Backup Email\n

\n \n \n }\n />\n {errors.backupEmail && touched.backupEmail ? (\n
{errors.backupEmail}
\n ) : null}\n
\n \n \n \n \n \n \n \n
\n
\n \n \n \n \n
\n );\n};\n\nexport default AddBackupEmail;\n","import React, { useContext } from \"react\";\nimport {\n BrowserRouter as Router,\n // Switch,\n // Route,\n Link,\n Route,\n} from \"react-router-dom\";\nimport UpdateProfile from \"../profiles/update-profile\";\nimport ChangePassword from \"../profiles/change-password\";\nimport AllTransactionHistory from \"../../pages/Transaction-History\";\nimport AddBackupEmail from \"../profiles/backup-email\";\nimport { UserContext } from \"../../context/user-context\";\nimport { Tooltip } from \"@material-ui/core\";\nimport { truncate } from \"../../helpers\";\n\nconst ProfileDropdown = (style) => {\n const { user } = useContext(UserContext);\n return (\n
\n \n \n {/* {user.Firstname} {user.Surname} */}\n {truncate(`${user.Firstname}`, 10, \"...\")}\n \n \n {/* */}\n
\n \n\n \n \n \n Transaction History{\" \"}\n \n
\n
\n );\n};\n\nexport default ProfileDropdown;\n","import React, { useState, modalDispatch, useEffect, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport \"../../index.css\";\nimport Login from \"../../pages/login/login\";\nimport { BrowserRouter as Router, Link } from \"react-router-dom\";\nimport Signup from \"../../pages/signup/signup\";\n// import logo from \"../../assets/images/logo.png\";\nimport { UserContext } from \"../../context/user-context\";\nimport CTA from \"../button/cta-button\";\n// import { AlertContext } from \"../../context/alert-context\";\nimport { useHistory } from \"react-router-dom\";\nimport { userActions } from \"../../_actions/user.actions\";\nimport { userConstants } from \"../../_constants\";\nimport XpressWalletBalance from \"../../pages/xpress-wallet/xpress-wallet-balance\";\nimport ProfileDropdown from \"../../components/profile-dropdown/profile-dropdown\";\nconst useStyles = makeStyles((theme) => ({}));\n\nconst Header = (open) => {\n const [showLogo, setShowLogo] = useState(false);\n const [showBalance, setShowBalance] = useState(false);\n const { loggedIn, logout, userDispatch } = useContext(UserContext);\n const history = useHistory();\n\n useEffect(() => {\n setShowLogo(open);\n }, [open]);\n\n const showWalletBaln = () => {\n setShowBalance(true);\n };\n\n const handleLogout = () => {\n logout(history);\n };\n\n return (\n
\n {/* {loggedIn && } */}\n\n {loggedIn ? (\n <>\n \n \n \n \n ) : (\n <>\n \n \n \n )}\n
\n );\n};\n\nexport default Header;\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Popover from \"@material-ui/core/Popover\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { Link } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme) => ({\n typography: {\n padding: theme.spacing(2),\n },\n button: {\n border: \"none\",\n background: \"none !important\",\n textTransform: \"capitalize\",\n position: \"absolute\",\n marginTop: \"-2px\",\n marginLeft: \"0px\",\n fontFamily: \"century gothic\",\n fontSize: \"13px\",\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:hover\": {\n color: \"orange\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"-4px\",\n marginLeft: \"0px\",\n },\n },\n}));\n\nexport default function Policy() {\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n const id = open ? \"simple-popover\" : undefined;\n\n return (\n
\n \n Policy\n \n \n \n \n Cookies Policy\n \n \n \n
\n );\n}\n","import React from \"react\";\nimport styles from \"./footer.module.css\";\nimport {\n FaFacebookSquare,\n FaInstagram,\n FaLinkedin,\n FaTwitter,\n} from \"react-icons/fa\";\nimport { Grid } from \"@material-ui/core\";\nimport { Link } from \"react-router-dom\";\nimport Policy from \"../policy-popover/policy-popover\";\n\nconst Footer = () => {\n return (\n
\n
\n {/*

© Xpress Payments Solutions Limited

*/}\n \n © Xpress Payments Solutions Limited\n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n About Us\n \n
\n
\n \n Overview\n \n
\n \n
\n
\n \n \"playstore\"\n \n \n \"appstore\"\n \n
\n
\n );\n};\n\nexport default Footer;\n","import {\n productConstants\n} from '../_constants';\n\n// const initialState = {\n// categories: [],\n// products:[],\n// items:[],\n// fields:[],\n// lookup:{},\n// transactionId:'',\n// currentCategory:''\n// }\n// = initialState\n// export function product(state, action){\n// switch(action.type){\n// case productConstants.FETCH_CATEGORIES:\n// return {\n// ...state,\n// categories: action.payload\n// }\n// case productConstants.FETCH_CATEGORY_PRODUCTS:\n// return {\n// ...state,\n// items: action.payload\n// }\n// case productConstants.FILTER_CATEGORY_PRODUCTS:\n// return {\n// ...state,\n// products: action.payload,\n// currentCategory:action.category\n// }\n// case productConstants.FETCH_PRODUCT_FIELDS:\n// return {\n// ...state,\n// fields: action.payload\n// }\n// case productConstants.CUSTOMER_LOOKUP_ACTION:\n// return {\n// ...state,\n// lookup: action.payload\n// }\n// case productConstants.TRANSACTION_INITIATION:\n// return {\n// ...state,\n// transactionId: action.payload\n// }\n// case productConstants.CLEAR_CATEGORY:\n// return {\n// ...state,\n// currentCategory: ''\n// }\n// default:\n// return state;\n// }\n// }\n\nexport default (state, action) => {\n switch (action.type) {\n case productConstants.FETCH_CATEGORIES:\n return {\n ...state,\n categories: action.payload\n }\n case productConstants.FETCH_CATEGORY_PRODUCTS:\n return {\n ...state,\n products: action.payload\n }\n case productConstants.SEARCH_FETCH_CATEGORY_PRODUCTS:\n return {\n ...state,\n filteredPproducts: action.payload\n }\n case productConstants.FETCH_CATEGORY_MAPPED_PRODUCTS:\n return {\n ...state,\n mappedCategoriesAndProducts: action.payload\n }\n case productConstants.FILTER_CATEGORY_PRODUCTS:\n return {\n ...state,\n // products: action.payload,\n // currentCategory: action.category\n }\n case productConstants.FETCH_PRODUCT_FIELDS:\n return {\n ...state,\n fetchProducts: true\n }\n case productConstants.FETCH_PRODUCT_FIELDS_COMPLETED:\n return {\n ...state,\n fetchProducts: false\n }\n case productConstants.CUSTOMER_LOOKUP_ACTION:\n return {\n ...state,\n lookup: action.payload\n }\n case productConstants.TRANSACTION_INITIATION:\n return {\n ...state,\n transactionId: action.payload\n }\n case productConstants.CLEAR_CATEGORY:\n return {\n ...state,\n currentCategory: ''\n }\n case productConstants.REQUEST_FINISH:\n return {\n ...state,\n loading: false\n }\n\n case productConstants.SENDING_REQUEST:\n return {\n ...state,\n loading: true\n }\n case productConstants.SENDING_NOTIFICATION_REQUEST:\n return {\n ...state,\n loadingNotification: true\n }\n case productConstants.REQUEST_NOTIFICATION_FINISH:\n return {\n ...state,\n loadingNotification: false\n }\n case productConstants.NOTIFY_BILLER_RESPONSE:\n return {\n ...state,\n notifyBillerResponse: action.payload\n }\n default:\n return state;\n }\n\n}","import React, { createContext, useReducer, useState, useEffect } from \"react\";\nimport { productConstants } from \"../_constants\";\nimport {\n fetchCategories,\n fetchProducts,\n logTransaction,\n notifyBiller,\n rateTransaction,\n} from \"../_actions/product.actions\";\nimport productReducer from \"../_reducers/product.reducer\";\n\nconst initialState = {\n categories: [],\n products: [],\n items: [],\n fields: [],\n lookup: {},\n transactionId: \"\",\n currentCategory: \"\",\n loading: true,\n fetchProducts: false,\n notifyBillerResponse: \"\",\n loadingNotification: true,\n filteredPproducts: [],\n};\n\nexport const ProductContext = createContext(initialState);\n\nexport const ProductProvider = (props) => {\n const [state, productDispatch] = useReducer(productReducer, initialState);\n\n const getProductCategories = () => {\n const categoriesAndProducts = [];\n try {\n productDispatch({ type: productConstants.SENDING_REQUEST });\n fetchCategories().then(\n (data) => {\n productDispatch({\n type: productConstants.FETCH_CATEGORIES,\n payload: data,\n });\n fetchProducts().then(\n (data1) => {\n data1 &&\n data1.forEach((product) => {\n data &&\n data.forEach((category) => {\n if (product.CategoryCode == category.CategoryCode) {\n categoriesAndProducts.push({\n ...product,\n ...category,\n });\n }\n });\n });\n productDispatch({\n type: productConstants.FETCH_CATEGORY_PRODUCTS,\n payload: categoriesAndProducts,\n });\n productDispatch({ type: productConstants.REQUEST_FINISH });\n },\n (error) => {\n productDispatch({\n type: productConstants.REQUEST_FINISH,\n });\n }\n );\n },\n (error) => {\n productDispatch({\n type: productConstants.REQUEST_FINISH,\n });\n }\n );\n } catch (error) {\n // dispatch({\n // type: alertConstants.ERROR,\n // message: error.toString(),\n // });\n productDispatch({ type: productConstants.REQUEST_FINISH });\n }\n };\n\n const rateTransactions = (req) => {\n rateTransaction(req).then(\n (data) => {},\n (error) => {}\n );\n };\n\n const notifyBillers = (req) => {\n productDispatch({ type: productConstants.SENDING_NOTIFICATION_REQUEST });\n\n notifyBiller(req).then(\n (data) => {\n productDispatch({\n type: productConstants.NOTIFY_BILLER_RESPONSE,\n payload: data,\n });\n productDispatch({ type: productConstants.REQUEST_NOTIFICATION_FINISH });\n },\n (error) => {\n productDispatch({ type: productConstants.REQUEST_NOTIFICATION_FINISH });\n }\n );\n };\n\n const searchBillers = (searchText) => {\n const lowerCaseSearchText = searchText.toLowerCase();\n const filterProducts = state.products.filter(({ ProductName }) => {\n const lowerCaseProductName = ProductName.toLowerCase();\n return lowerCaseProductName.includes(lowerCaseSearchText);\n });\n productDispatch({\n type: productConstants.SEARCH_FETCH_CATEGORY_PRODUCTS,\n payload: filterProducts,\n });\n };\n\n const clearSearchResult = () => {\n productDispatch({\n type: productConstants.SEARCH_FETCH_CATEGORY_PRODUCTS,\n payload: [],\n });\n };\n useEffect(() => {\n getProductCategories();\n }, []);\n\n return (\n \n {props.children}\n \n );\n};\n","import React, { Component } from \"react\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\n\nconst otherPagesSlider = [\n {\n id: 0,\n img: \"/resources/images/slider-img1.png\",\n },\n {\n id: 1,\n img: \"/resources/images/slider-img2.png\",\n },\n {\n id: 2,\n img: \"/resources/images/slider-img3.png\",\n },\n {\n id: 3,\n img: \"/resources/images/slider-img4.png\",\n },\n];\n\nexport default class OtherPagesSlider extends Component {\n render() {\n const settings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: true,\n autoplaySpeed: 7000,\n adaptiveHeight: true,\n };\n return (\n
\n \n {otherPagesSlider.map(({ id, img }) => {\n return (\n
\n {id}\n
\n );\n })}\n
\n
\n );\n }\n}\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n ButtonBase,\n Paper,\n Box,\n Container,\n CssBaseline,\n ThemeProvider,\n Toolbar,\n Typography,\n Link,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport OtherPagesSlider from \"../../components/carousel/other-pages-carousel\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n marginTop: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"15px\",\n // display:'none'\n },\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n categoryName: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"17px\",\n fontWeight: \"bold\",\n },\n },\n image: {\n width: 120,\n height: 120,\n borderRadius: 10,\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n}));\n\n// const categories = [\n// {\n// name: \"fund transfer\",\n// path: \"/fund-transfer\",\n// categoryName: \"Fund Transfer\",\n// },\n// {\n// name: \"Xpress Wallet\",\n// path: \"/xpress-wallet\",\n// categoryName: \"Xpress Wallet\",\n// },\n// {\n// name: \"Collections & Levies\",\n// path: \"/collections\",\n// categoryName: \"Collections & Levies\",\n// },\n// {\n// name: \"micropension\",\n// path: \"/micro-pension\",\n// categoryName: \"Micro Pension\",\n// },\n// ];\n\nconst OtherServices = () => {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n\n const classes = useStyles();\n\n const preventDefault = (path) => {\n history.push(path);\n };\n\n const handleChange = () => {};\n return (\n
\n \n {/* \n
\n \n \n
*/}\n\n \n
\n \n {/* {categoryName} */}\n \n
\n \"illustration\"\n
\n
\n

COMING SOON

\n

\n This service will be available soon. Thanks for using PayXpress\n

\n
\n
\n
\n \n
\n \"\"\n
\n
\n
\n
\n );\n};\n\nexport default OtherServices;\n","import React, { useState, useContext, useEffect } from \"react\";\nimport { ProductContext } from \"../../context/product-context\";\nimport {\n Grid,\n TextField,\n Typography,\n Paper,\n Link,\n Tooltip,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Spinner from \"../../components/spinner\";\n\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { alertConstants } from \"../../_constants\";\nimport OtherServices from \"../other-transactions/other-services\";\n\nconst useStyles = makeStyles((theme) => ({\n searchField: {\n width: \"400px\",\n marginTop: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"15px\",\n // display:'none'\n },\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n categoryName: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"17px\",\n fontWeight: \"bold\",\n },\n },\n image: {\n width: 120,\n height: 120,\n borderRadius: 10,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n tooltip: {\n textAlign: \"center\",\n },\n}));\n\nconst Purchase = () => {\n const {\n categories,\n products,\n searchBillers,\n filteredPproducts,\n loading,\n } = useContext(ProductContext);\n const { loggedIn, userDispatch } = useContext(UserContext);\n const [state, setState] = useState({\n showProduct: \"PRODUCT\",\n products: products,\n });\n const [searchText, setSearchText] = useState(\"\");\n const { dispatch } = useContext(AlertContext);\n let match = useRouteMatch();\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const pathName = decodeURI(pathUrl.split(\"/\")[1]);\n\n const handleProduct = (\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n product\n ) => {\n if (Accessibility === \"authenticated\" && loggedIn === false) {\n dispatch({\n type: alertConstants.ERROR,\n message: \"Please kindly login or register to continue\",\n });\n return history.push(`/`);\n } else if (\n product.ExternalLink &&\n product.ProductType === \"external-link\" &&\n product.LinkType === \"_blank\"\n ) {\n handleRedirect(\n `${product.BillerCode}`,\n `${product.ExternalLink}`,\n `${product.LinkType}`\n );\n } else if (pathUrl === `/bulk-upload`) {\n history.push(`/airtime/bulk-upload`);\n } else {\n history.push(`/${UrlPath}/${BillerCode}`);\n }\n };\n\n const handleRedirect = (product, url, _type) => {\n window.open(url, \"_blank\");\n };\n\n useEffect(() => {\n setState({\n ...state,\n products: products,\n });\n }, [products]);\n\n const product1 = state.products.filter((p) => p.UrlPath == pathName);\n const handleSearchChange = (event) => {\n const searchText1 = event.target.value;\n if (state.showProduct == \"PRODUCT\") {\n setState({\n ...state,\n showProduct: \"SEARCH\",\n });\n searchBillers(searchText1);\n }\n setSearchText(searchText1);\n searchBillers(searchText1);\n };\n\n return (\n
\n \n \n
\n \n \n
\n
\n\n \n \n {loading ? (\n \n ) : (\n categories &&\n categories.map(({ CategoryName, CategoryCode, UrlPath }) => {\n if (UrlPath === pathName) {\n return (\n \n {CategoryName}\n \n );\n }\n })\n )}\n \n \n
\n \n {loading && }\n\n {state.showProduct === \"PRODUCT\" &&\n product1 &&\n product1.length > 0 ? (\n product1.map(\n ({\n Id,\n BillerCode,\n UrlPath,\n CategoryCode,\n ProductName,\n ProductImage,\n Accessibility,\n ...product\n }) => {\n return (\n \n \n \n handleProduct(\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n product\n )\n }\n >\n \n {ProductImage ? (\n \n ) : (\n
\n )}\n \n \n
\n
\n );\n }\n )\n ) : (\n <>\n \n \n // \n // \n //

ddddddddddddddddddddddddd

\n //
\n //
\n )}\n\n {state.showProduct == \"SEARCH\" &&\n filteredPproducts &&\n filteredPproducts.length > 0 &&\n filteredPproducts.map(\n ({\n Id,\n BillerCode,\n UrlPath,\n CategoryCode,\n ProductName,\n ProductImage,\n Accessibility,\n ...product\n }) => {\n return (\n \n \n \n handleProduct(\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n product\n )\n }\n >\n \n \n \n \n \n \n );\n }\n )}\n
\n
\n
\n );\n};\n\nexport default Purchase;\n","import React, { useState } from \"react\";\nimport {\n Grid,\n Paper,\n Button,\n Container,\n CssBaseline,\n ThemeProvider,\n Typography,\n Link,\n Box,\n MenuItem,\n Select,\n InputLabel,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\n// import MtnAirtime from \"../../assets/images/billers/79bd69cc7328f8be6dd7afea13ce7816.jpg\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { productConstants } from \"../../_constants\";\nimport { splitResponse } from \"../../helpers\";\nimport { useEffect } from \"react\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n // width: '450px',\n width: \"700px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n}));\n\nconst categories = [\n {\n name: \"atitime\",\n path: \"c\",\n categoryName: \"Airtime Purchase\",\n },\n {\n name: \"data\",\n path: \"/data\",\n categoryName: \"Buy Data\",\n },\n {\n name: \"data\",\n path: \"/pay-bills\",\n categoryName: \"Pay Bills\",\n },\n {\n name: \"data\",\n path: \"/ticket\",\n categoryName: \"ticket\",\n },\n];\n\nconst FormReview = ({\n user,\n fields,\n handleBack,\n values,\n formValues,\n getFee,\n handleSubmit,\n}) => {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const [state, setState] = useState({\n items: [],\n reviewValues: [],\n });\n let reviewValues = [];\n\n const setReviewValue = (name, value) => {\n reviewValues = {\n ...reviewValues,\n [name]: value,\n };\n };\n\n useEffect(() => {\n let customerEmail = \"\";\n let items = [];\n let convFee = 0,\n totalAmount = 0;\n var toDisplay = fields.filter(\n (f) => !!f.ShowOnPaymentConfirmation || !!f.AmountField\n );\n try {\n if (user) {\n customerEmail = user.ConsumerID;\n } else {\n var emailField = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_EMAIL\n );\n customerEmail = values[emailField.Id];\n }\n } catch (e) {}\n if (toDisplay && toDisplay.length > 0) {\n toDisplay.forEach((l) => {\n var _value = values[l.Id];\n switch (l.ControlType) {\n case productConstants.CONTROL_TYPE_SELECT:\n var _option = l.ListItems.find((i) => i.ItemValue === _value);\n if (_option) _value = _option.ItemDesc;\n break;\n case productConstants.CONTROL_TYPE_TEXTBOX:\n var iValue = 0;\n if (!!l.AmountField) {\n iValue = parseFloat(_value);\n _value = iValue.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n });\n convFee = getFee(iValue);\n totalAmount = iValue + convFee;\n setReviewValue(\"Amount\", iValue.toString());\n setReviewValue(\"Fee\", convFee.toString());\n setReviewValue(\"TotalAmount\", totalAmount.toString());\n } else if (l.FieldType === productConstants.FIELD_TYPE_DECIMAL) {\n iValue = parseFloat(_value);\n _value = iValue.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n });\n } else if (l.FieldType === productConstants.FIELD_TYPE_NUMBER) {\n iValue = parseFloat(_value);\n _value = iValue.toLocaleString(navigator.language, {\n minimumFractionDigits: 0,\n });\n } else if (\n l.FieldType === productConstants.FIELD_TYPE_EMAIL &&\n (!customerEmail || customerEmail === \"\")\n ) {\n customerEmail = _value;\n }\n break;\n default:\n break;\n }\n\n var _item = {\n name: l.FieldName,\n value: _value,\n };\n items.push(_item);\n });\n //Convenience fee\n var _item = {\n name: \"Convenience fee\",\n value: convFee.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n //Total Amount\n _item = {\n name: \"Total Amount\",\n value: totalAmount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n //Set Email value\n setReviewValue(\"Email\", customerEmail);\n\n setState({\n ...state,\n items: items,\n reviewValues: reviewValues,\n });\n }\n }, []);\n\n const _handleSubmit = (evt) => {\n evt.preventDefault();\n handleSubmit(state.reviewValues);\n };\n\n const handleProceed = () => {};\n\n return (\n <>\n \n \n \n Order Summary\n \n \n
_handleSubmit(evt)} autoComplete=\"off\">\n \n {state.items.map((row) => {\n return (\n <>\n \n \n {row.name}\n \n \n {splitResponse(row.value)}\n \n \n \n \n );\n })}\n \n \n handleBack()}\n type=\"button\"\n icon={}\n />\n \n \n \n \n
\n \n );\n};\n\nexport default FormReview;\n","import React from \"react\";\nimport { theme } from \"../../theme\";\nimport Spinner from \"../../components/spinner\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport { ThemeProvider } from \"@material-ui/core\";\n\nimport XPay from \"npm_xpresspay\";\n\nconst styles = (theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n height: \"500px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n // width: '450px',\n width: \"700px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n});\n\nclass GateWay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n };\n }\n\n componentDidMount() {\n const { parameters } = this.props;\n const _this = this;\n try {\n XPay.InitialisePayment({\n amount: parameters.TotalAmount,\n transactionId: parameters.TransactionId,\n email: parameters.Email,\n publicKey: parameters.PublicKey,\n currency: \"NGN\",\n mode: \"Live\",\n callbackUrl: `${parameters.CallBackUrl}?transaction-id=${parameters.TransactionId}`,\n productId: parameters.ProductId,\n productDescription: parameters.ProductName,\n metadata: [\n {\n name: \"Product Category Code\",\n value: parameters.categoryCode,\n },\n ],\n }).then((response) => {\n if (response.success) {\n window.location.href = response.data?.authorizeUrl;\n } else {\n window.location.href = response.data?.authorizeUrl;\n _this.setState({\n loading: false,\n });\n }\n });\n } catch (error) {\n //handle error\n _this.setState({\n loading: false,\n });\n console.log(\"first\", error);\n }\n }\n render() {\n const { loading } = this.state;\n\n return (\n <>\n
\n \n
\n {loading && }\n \n );\n }\n}\n\nexport default withStyles(styles, { withTheme: true })(GateWay);\n","import React, { useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ProductContext } from \"../../context/product-context\";\nimport configuration from \"../../config\";\nimport { authHeader } from \"../../_helpers\";\nimport { handleResponse } from \"../../helpers\";\nimport {\n Grid,\n TextField,\n ButtonBase,\n Paper,\n Button,\n Container,\n CssBaseline,\n ThemeProvider,\n Typography,\n Link,\n FormControl,\n MenuItem,\n Select,\n InputLabel,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { useEffect } from \"react\";\nimport { productService } from \"../../_services/product.service\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { alertConstants, productConstants } from \"../../_constants\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport MoneyIcon from \"@material-ui/icons/Money\";\nimport NumberFormat from \"react-number-format\";\nimport { validatePhone } from \"../../helpers\";\nimport Spinner from \"../../components/spinner\";\nimport FormReview from \"./form-review\";\nimport GateWay from \"./gate-way\";\nimport { UserContext } from \"../../context/user-context\";\nimport queryString from \"query-string\";\nimport { MdReportProblem } from \"react-icons/md\";\nimport { fetchTransaction } from \"../../_actions/product.actions\";\nimport { AlertContext } from \"../../context/alert-context\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"40px\",\n padding: \"40px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"200px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"50px\",\n marginLeft: \"-40px\",\n fontFamily: \"Montserrat\",\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n}));\n\nconst PurchaseForm = () => {\n const pathUrl = decodeURI(window.location.pathname);\n const categoryName = decodeURI(pathUrl.split(\"/\")[1]);\n const billerCode = decodeURI(pathUrl.split(\"/\")[2]);\n const tranId = decodeURI(pathUrl.split(\"/\")[3]);\n const {\n categories,\n products,\n fetchProducts,\n logTransactions,\n productDispatch,\n } = useContext(ProductContext);\n const classes = useStyles();\n const [product, setProduct] = React.useState({});\n const [category, setCategory] = React.useState({});\n const [formFields, setFormFields] = React.useState([]);\n const { loggedIn, user } = useContext(UserContext);\n const { dispatch } = useContext(AlertContext);\n const [validationsSchema, setValidationsSchema] = React.useState([]);\n const [formValue, setFormValue] = React.useState({});\n let _formStatus = productConstants.FORM_STATUS_INPUTTING;\n let amountField = \"\";\n let caption = \"\";\n const [state, setState] = React.useState({\n active: null,\n loading: false,\n listId: null,\n values: [],\n formValues: {},\n formStatus: _formStatus,\n gateWay: \"PayXpress\",\n user: user,\n transactionDetail: {},\n tranId: tranId,\n approvalStatus: \"\",\n billerCode: billerCode,\n loggedIn: loggedIn,\n redirect: false,\n fields: [],\n parameters: {},\n });\n\n const handleClose = () => {\n //setOpen(false);\n };\n\n const handleOpen = () => {\n //setOpen(state);\n };\n\n const handleBack = () => {\n setState({\n ...state,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n });\n };\n\n const loadTransaction = (tranId, fields, product) => {\n let _values = state.values;\n fetchTransaction(tranId).then((response) => {\n if (response && response.length > 0) {\n response.forEach((c) => {\n _values = {\n ..._values,\n [c.ControlId]: c.ControlValue,\n };\n });\n }\n\n setFormValue(_values);\n\n const params = queryString.parse(window.location.search);\n let _status = params[\"status\"];\n let _formStatus = state.formStatus;\n if (typeof _status !== \"undefined\" && _status === \"forwarded\") {\n _formStatus = productConstants.FORM_STATUS_CONFIRMING;\n }\n setState({\n ...state,\n fields: fields,\n active: product,\n loading: false,\n formValues: _values,\n values: _values,\n formStatus: _formStatus,\n });\n });\n };\n\n useEffect(() => {\n const filterdCategory =\n !!categories &&\n categories.length > 0 &&\n categories.filter(function (obj) {\n return obj.UrlPath == categoryName;\n })[0];\n\n productDispatch({ type: productConstants.FETCH_PRODUCT_FIELDS });\n\n const fetchProduct = () => {\n !!products &&\n Object.entries(products).length !== 0 &&\n productService\n .fetchProduct(filterdCategory.CategoryCode, billerCode)\n .then(\n (data) => {\n productDispatch({\n type: productConstants.FETCH_PRODUCT_FIELDS_COMPLETED,\n });\n let _values = [];\n if (data) {\n const fields = data.Fields;\n fields.forEach((f) => {\n _values = {\n ..._values,\n [f.Id]: \"\",\n };\n });\n const product = data.Product;\n const validationSchema = getValidationSchema(fields);\n setValidationsSchema(validationSchema);\n setProduct(product);\n setFormFields(fields);\n setState({\n loading: true,\n productName: null,\n formStatus: null,\n customised: null,\n fields: [],\n user: user,\n });\n let _values = [];\n fields.forEach((f) => {\n _values = {\n ..._values,\n [f.Id]: \"\",\n };\n });\n // const { user, loggedIn } = this.props;\n if (!!state.loggedIn && state.user) {\n //Email\n var _email = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_EMAIL\n );\n if (_email) {\n _values = {\n ..._values,\n [_email.Id]: state.user.ConsumerID,\n };\n }\n var _phone = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_PHONE\n );\n if (_phone) {\n _values = {\n ..._values,\n [_phone.Id]: state.user.PhoneNumber,\n };\n }\n }\n setFormValue(_values);\n setState({\n ...state,\n loading: false,\n values: _values,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n active: product,\n fields: fields,\n });\n\n const transId = state.tranId;\n if (transId !== \"undefined\") {\n loadTransaction(transId, fields, product);\n }\n }\n },\n (error) => {\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n productDispatch({\n type: productConstants.FETCH_PRODUCT_FIELDS_COMPLETED,\n });\n }\n );\n };\n\n fetchProduct();\n }, [categories, products]);\n\n Yup.addMethod(Yup.string, \"phone\", function (msg) {\n return validatePhone(this, msg);\n });\n\n const getValidations = (flds) => {\n let _validations = {};\n flds.forEach((f) => {\n let _validation = null;\n let shouldValidate = false;\n if (f.InputSource === productConstants.CONTROL_INPUT_TYPE_USER) {\n switch (f.ControlType) {\n case productConstants.CONTROL_TYPE_SELECT:\n if (!!f.Required) {\n _validation = Yup.string(\"Enter \" + f.FieldName).required(\n f.FieldName + \" is required\"\n );\n shouldValidate = true;\n }\n break;\n default:\n if (f.AmountField && !!f.AmountField) {\n let _minAmount = f.MinAmount > 0 ? f.MinAmount : 1;\n if (!!f.Required) {\n _validation = Yup.number(\"Enter \" + f.FieldName).min(\n _minAmount,\n f.FieldName +\n \" should be greater than or equal to N\" +\n _minAmount\n );\n shouldValidate = true;\n }\n if (f.MaxAmount !== 0) {\n _validation = Yup.number(\"Enter \" + f.FieldName)\n .min(\n _minAmount,\n f.FieldName +\n \" should be greater than or equal to N\" +\n _minAmount\n )\n .max(\n f.MaxAmount,\n \"Only amount less than or equal to N\" +\n f.MaxAmount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }) +\n \" can be done\"\n );\n shouldValidate = true;\n }\n } else if (\n f.FieldType === productConstants.FIELD_TYPE_DECIMAL ||\n f.FieldType === productConstants.FIELD_TYPE_NUMBER\n ) {\n _validation = Yup.number(\"Enter a valid number\").typeError(\n f.FieldName + \" must be a number\"\n );\n if (!!f.Required) {\n _validation = Yup.number(\"Enter a valid number\")\n .typeError(f.FieldName + \" must be a number\")\n .min(1, f.FieldName + \" is required\");\n }\n shouldValidate = true;\n } else if (f.FieldType === productConstants.FIELD_TYPE_PHONE) {\n _validation = Yup.string(\"Enter \" + f.FieldName)\n .typeError(\"Enter \" + f.FieldName)\n .phone(\"Enter a valid telephone number\");\n if (!!f.Required) {\n _validation = Yup.string(\"Enter \" + f.FieldName)\n .typeError(\"Enter \" + f.FieldName)\n .phone(\"Enter a valid telephone number\")\n .required(f.FieldName + \" is required\");\n }\n shouldValidate = true;\n } else if (f.FieldType === productConstants.FIELD_TYPE_EMAIL) {\n _validation = Yup.string(\"Enter \" + f.FieldName)\n .typeError(\"Enter \" + f.FieldName)\n .email(\"Enter a valid email address\");\n if (!!f.Required) {\n _validation = Yup.string(\"Enter \" + f.FieldName)\n .typeError(\"Enter \" + f.FieldName)\n .email(\"Enter a valid email address\")\n .required(f.FieldName + \" is required\");\n }\n shouldValidate = true;\n } else {\n _validation = Yup.string(\"Enter \" + f.FieldName).max(\n f.Size,\n f.FieldName + \" can not be more than \" + f.Size + \" characters\"\n );\n if (!!f.Required) {\n _validation = Yup.string(\"Enter \" + f.FieldName)\n .required(f.FieldName + \" is required\")\n .max(\n f.Size,\n f.FieldName +\n \" can not be more than \" +\n f.Size +\n \" characters\"\n );\n }\n shouldValidate = true;\n }\n break;\n }\n }\n if (!!shouldValidate)\n _validations = {\n ..._validations,\n [f.Id]: _validation,\n };\n shouldValidate = false;\n });\n return _validations;\n };\n\n const getValidationSchema = (fields) => {\n if (fields) {\n const _validation = getValidations(fields);\n return Yup.object().shape(_validation);\n }\n };\n\n const {\n handleSubmit,\n handleChange,\n setFieldValue,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n amountRef,\n } = useFormik({\n initialValues: formValue,\n enableReinitialize: true,\n validationSchema: validationsSchema,\n onSubmit(values) {\n switch (state.formStatus) {\n case productConstants.FORM_STATUS_INPUTTING:\n if (!!state.active.DoCustomerLookup) {\n var lookupInputs = state.fields.filter(\n (f) => !!f.CustomerLookupInput\n );\n if (lookupInputs && lookupInputs.length > 0) {\n var _req = {\n billerCode: state.active.BillerCode,\n };\n lookupInputs.forEach((l) => {\n var prop = l.CustomerLookupInputKey;\n var _value = values[l.Id];\n if (l.ControlType === productConstants.CONTROL_TYPE_SELECT) {\n var _option = l.ListItems.find(\n (item) => item.ItemValue === _value\n );\n if (_option) _value = _option.ItemDataValue;\n }\n _req = {\n ..._req,\n [prop]: _value,\n };\n });\n setState({\n ...state,\n loading: true,\n });\n productService.customerLookup(_req).then(\n (resp) => {\n if (resp.ResponseCode === \"00\") {\n setState({\n ...state,\n loading: false,\n });\n lookupCallBack(resp, values);\n }\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n } else {\n setState({\n ...state,\n formValues: values,\n values: values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n }\n } else {\n setState({\n ...state,\n formValues: values,\n values: values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n }\n break;\n case productConstants.FORM_STATUS_LOOKEDUP:\n setState({\n ...state,\n formValues: values,\n values: values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n break;\n default:\n break;\n }\n },\n });\n\n const change = (name, e) => {\n e.target.name = name;\n setFieldTouched(name, true, false);\n handleChange(name, e.target.value);\n setFieldValue(name, e.target.value);\n };\n\n const lookupCallBack = (lookup, values) => {\n var _values = values;\n var toPopulate = state.fields.filter(\n (f) => f.InputSource === productConstants.CONTROL_INPUT_TYPE_LOOKUP\n );\n if (toPopulate && toPopulate.length > 0) {\n toPopulate.forEach((l) => {\n var prop = l.InputSourceKey.toLowerCase();\n _values = {\n ..._values,\n [l.Id]: lookup.Properties[prop],\n };\n });\n let _formStatus = productConstants.FORM_STATUS_CONFIRMING;\n let amountFld = state.fields.find((f) => !!f.AmountField);\n if (\n amountFld &&\n amountFld.AmountEditable &&\n amountFld.InputSource === productConstants.CONTROL_INPUT_TYPE_LOOKUP\n )\n _formStatus = productConstants.FORM_STATUS_LOOKEDUP;\n setState({\n ...state,\n loading: false,\n values: _values,\n formStatus: _formStatus,\n });\n }\n };\n\n const populateAmount = (name, e) => {\n const amount = e._targetInst.pendingProps[\"data-amount\"];\n setFieldValue(amountField, amount);\n change(name, e);\n };\n\n const getFee = (amount, billerCode) => {\n var fee = 0;\n let product = products.find((p) => p.BillerCode === billerCode);\n if (product) {\n switch (product.ChargeType) {\n case productConstants.CHARGE_TYPE_FIXED:\n fee = product.Charge;\n break;\n case productConstants.CHARGE_TYPE_PERCENTAGE:\n fee = (product.Charge * amount) / 100;\n break;\n default:\n break;\n }\n }\n return fee;\n };\n\n const isDisabled = (f) => {\n var _isDisabled = true;\n if (!!f.AmountField) {\n switch (state.formStatus) {\n case productConstants.FORM_STATUS_LOOKEDUP:\n if (\n f.InputSource === productConstants.CONTROL_INPUT_TYPE_LOOKUP &&\n !!f.AmountEditable\n ) {\n _isDisabled = false;\n }\n break;\n case productConstants.FORM_STATUS_INPUTTING:\n var populator = state.fields.filter(\n (f) => f.LookupListAmountFieldId > 0\n );\n if (populator.length === 0) {\n _isDisabled = false;\n } else if (!!f.AmountEditable && populator.length > 0) {\n _isDisabled = false;\n }\n break;\n default:\n break;\n }\n } else {\n _isDisabled =\n f.InputSource === productConstants.CONTROL_INPUT_TYPE_LOOKUP;\n }\n return _isDisabled;\n };\n\n const handleClear = () => {\n setFormValue({});\n resetForm({});\n };\n const logCallBack = (response) => {\n setState({\n formStatus: productConstants.FORM_STATUS_CONFIRMED,\n parameters: response,\n });\n };\n\n const pay = (reviewValues) => {\n const { fields, values, active, tranId, approvalStatus, gateWay } = state;\n var _controls = [];\n fields.forEach((f) => {\n var _value = values[f.Id];\n if (_value) {\n var _control = {\n ControlId: f.Id,\n ControlValue: _value,\n };\n _controls.push(_control);\n }\n });\n\n var _req = {\n WControls: _controls,\n BillCode: active.BillerCode,\n TranId: tranId,\n ApprovalStatus: approvalStatus,\n PaymentMode: gateWay,\n ProductName: active.ProductName,\n ...reviewValues,\n };\n setState({\n ...state,\n loading: true,\n });\n productService.logTransaction(_req).then(\n (resp) => {\n setState({\n ...state,\n loading: false,\n });\n logCallBack(resp);\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n }\n );\n };\n\n return (\n
\n {fetchProducts || state.loading ? (\n <>\n \n \n ) : (\n <>\n \n \n \n \n \n \n \n \n {product.ProductName}\n \n \n \n {state.formStatus == productConstants.FORM_STATUS_INPUTTING && (\n <>\n \n \n {formFields &&\n formFields.map((f) => {\n if (\n f.AmountField &&\n !!f.AmountField &&\n f.MaxAmount !== 0\n ) {\n return (\n \n Please note that only\n transactions worth less than or equal to N\n {f.MaxAmount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n })}{\" \"}\n can be done for {product.ProductName} on this\n platform at a time.\n

\n );\n }\n })}\n
\n \n {formFields &&\n formFields.map((f) => {\n if (f.AmountField && !!f.AmountField) {\n amountField = f.Id;\n }\n var _inputProps = {};\n if (f.AmountField !== null) {\n _inputProps = {\n ..._inputProps,\n editable: f.AmountEditable.toString().toUpperCase(),\n };\n }\n const controlId = f.Id;\n if (\n f.ListItems &&\n f.ListItems.length === 1 &&\n values[controlId] === \"\"\n ) {\n values[controlId] = f.ListItems[0].ItemValue;\n }\n switch (f.ControlType) {\n case \"LOOKUP\":\n if (\n (f.InputSource ===\n productConstants.CONTROL_INPUT_TYPE_USER &&\n (state.formStatus ===\n productConstants.FORM_STATUS_INPUTTING ||\n state.formStatus ===\n productConstants.FORM_STATUS_LOOKEDUP)) ||\n (f.InputSource ===\n productConstants.CONTROL_INPUT_TYPE_LOOKUP &&\n state.formStatus ===\n productConstants.FORM_STATUS_LOOKEDUP)\n ) {\n return (\n \n \n \n {/* {f.FieldName} */}\n {f.Required\n ? f.FieldName + \" *\"\n : f.FieldName}\n \n 0\n ? (e) =>\n populateAmount(controlId, e)\n : (e) => change(controlId, e)\n }\n selectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: {\n paper: classes.dropdownStyle,\n },\n },\n }}\n InputProps={{\n startAdornment: (\n \n {f.AmountField &&\n !!f.AmountField && (\n \n )}\n \n ),\n }}\n margin=\"normal\"\n disabled={isDisabled(f)}\n >\n {f.ListItems &&\n f.ListItems.length !== 1 && (\n \n -- Select --\n \n )}\n {f.ListItems &&\n f.ListItems.length > 0 &&\n f.ListItems.map(\n ({\n Id,\n ItemDesc,\n Amount,\n ItemValue,\n }) => {\n return (\n \n {ItemDesc}\n \n );\n }\n )}\n \n \n \n );\n }\n default:\n if (\n (f.InputSource ===\n productConstants.CONTROL_INPUT_TYPE_USER &&\n (state.formStatus ===\n productConstants.FORM_STATUS_INPUTTING ||\n state.formStatus ===\n productConstants.FORM_STATUS_LOOKEDUP)) ||\n (f.InputSource ===\n productConstants.CONTROL_INPUT_TYPE_LOOKUP &&\n state.formStatus ===\n productConstants.FORM_STATUS_LOOKEDUP)\n ) {\n return (\n \n {f.AmountField ? (\n \n {f.AmountField &&\n !!f.AmountField && (\n \n )}\n \n ),\n }}\n inputProps={_inputProps}\n disabled={isDisabled(f)}\n />\n ) : (\n \n )}\n \n );\n }\n }\n })}\n \n \n \n \n \n \n
\n
\n \n )}\n {state.formStatus === productConstants.FORM_STATUS_CONFIRMING && (\n <>\n getFee(amt, state.active.BillerCode)}\n handleSubmit={pay}\n />\n \n )}\n {state.formStatus === productConstants.FORM_STATUS_CONFIRMED && (\n \n )}\n \n )}\n
\n );\n};\n\nexport default PurchaseForm;\n\nfunction NumberFormatCustom(props) {\n const { inputRef, onChange, ...other } = props;\n return (\n {\n onChange({\n target: {\n value: values.value,\n },\n });\n }}\n thousandSeparator\n prefix=\"₦ \"\n />\n );\n}\n\nNumberFormatCustom.propTypes = {\n inputRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n ButtonBase,\n Paper,\n Button,\n Container,\n CssBaseline,\n ThemeProvider,\n Typography,\n Link,\n Box,\n MenuItem,\n Select,\n InputLabel,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n// import MtnAirtime from \"../../assets/images/billers/79bd69cc7328f8be6dd7afea13ce7816.jpg\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n width: \"700px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n}));\n\nconst PurchaseStatus = () => {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const handleProceed = () => {};\n\n return (\n
\n \n \n \n {/* \"mtn\" */}\n \n \n \n \n MTN VTU\n \n \n \n \n \n \n Order Summary\n \n \n {/* \n \n */}\n \n \n \n \n Product\n \n \n Airtimes\n \n \n \n \n \n Email\n \n \n \n text@email.com\n \n \n \n \n \n \n Phone Number\n \n \n 0801 2345 678\n \n \n \n \n \n Convinience fee\n \n \n 0.00\n \n \n \n \n \n Total Amount\n \n \n 100.00\n \n \n \n \n \n }\n />\n \n \n \n \n
\n );\n};\n\nexport default PurchaseStatus;\n","import React from 'react';\nimport styles from './styles.module.css';\n\nconst DesignBtn = ({style,small, big}) => {\n return(\n \n )\n}\n\n\nexport default DesignBtn;","import React from \"react\";\nimport styles from \"./about.module.css\";\nimport DesignBtn from \"../../components/design-btn/design-btn\";\nimport { Row, Col } from \"react-bootstrap\";\n\nconst About = () => {\n return (\n
\n

\n About\n

\n
\n \n \n
\n \n
\n
Our Vision
\n

To be the Preferred choice of e-payment in Africa.

\n
\n
\n \n \n
\n \n
\n
Who we are
\n

\n Xpress Payment Solutions Limited \n is a leading Financial Technology Solution Company that\n specializes in electronic payments, collections, bill payments\n and funds disbursement. Xpress Payment Solutions Limited is a\n proudly owned Nigerian Company and is licensed by the Central\n Bank of Nigeria as a Payment Solution Service Provider (PSSP)\n and as such able to drive financial and treasury management\n reforms which include the TSA (Treasury Single Account) as a\n major scheme and standalone collection services.\n

\n
\n
\n \n
\n \n \n
\n \n
\n
Our Mission
\n

Our mission is to simplify and enable smarter living.

\n
\n
\n \n \n
\n \n
\n
Our Core Values
\n

\n

    \n
  • \n Innovations We bring new ideas that will\n advance the organization’s competitive position.\n
  • \n
  • \n Integrity: At all times, what we say and\n what we do are in alignment.\n
  • \n
  • \n Excellence To be outstandingly good at\n what we do.\n
  • \n
  • \n Security: We think data and process. We\n think security.\n
  • \n
  • \n Customer Satisfaction: We meet and exceed\n customer’s expectation\n
  • \n
\n

\n
\n
\n \n
\n
\n
\n );\n};\n\nexport default About;\n","import React from \"react\";\nimport { FaWeight } from \"react-icons/fa\";\n\nconst Overview = () => {\n return (\n
\n

Overview

\n \n

\n PayXpress is another value innovation from Xpress Payment Solutions\n LTD, now offering a value-added service platform to avail to\n customers, services such as airtime purchase (virtual top up, prepaid\n PINs etc.), bill payments, collection services for government\n parastatals/corporate organizations/donations for religious\n institutions. Other services offered include funds transfer to self\n and 3rd Party beneficiaries, recurring payments setup instructions.\n The platform provides a convenient alternative payment channel to\n customers and merchants accepting multiple payment options such as\n cards (Visa card, MasterCard etc.), also accessible on various\n channels including web (www.payxpress.com).\n

\n

\n Our current services are the beginning of a journey. Through our\n innovation /service delivery team and in conjunction with our\n partners, we will continue to develop and deliver valuable offerings\n to our customers. Together with our partners, we will achieve our\n vision which is to be a world-class provider of financial technology\n services.\n

\n \n
\n );\n};\n\nexport default Overview;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport OwlCarousel from \"react-owl-carousel\";\nimport \"owl.carousel/dist/assets/owl.carousel.css\";\nimport \"owl.carousel/dist/assets/owl.theme.default.css\";\nimport { fade } from \"@material-ui/core\";\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\n\nconst Carousel = () => {\n const options = {\n items: 1,\n nav: true,\n rewind: true,\n autoplay: true,\n };\n return (\n //
\n // \"img1\"\n //
\n //
\n // \n //
\n \n
\n \"img1\"\n
\n
\n \"img1\"\n
\n
\n \"img1\"\n
\n
\n \"img1\"\n
\n \n );\n};\n\nexport default Carousel;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport styles from \"./home.module.css\";\nimport DesignBtn from \"../../components/design-btn/design-btn\";\nimport Carousel from \"../../components/carousel/carousel\";\nimport Input from \"../../components/inputs/input\";\nimport { FaSearch } from \"react-icons/fa\";\nimport BorderlessInput from \"../../components/inputs/input\";\nimport { ProductContext } from \"../../context/product-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { Link } from \"react-router-dom\";\nimport { UserContext } from \"../../context/user-context\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\nimport { alertConstants } from \"../../_constants\";\n\nconst Home = () => {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n const [searchResults, setSearchResults] = React.useState([]);\n const [showContent, setShowContent] = React.useState(false);\n const {\n filteredPproducts,\n searchBillers,\n clearSearchResult,\n productDispatch,\n } = useContext(ProductContext);\n const { dispatch } = useContext(AlertContext);\n const { loggedIn, userDispatch } = useContext(UserContext);\n const [index, setIndex] = useState(0);\n const history = useHistory();\n\n useEffect(() => {\n setSearchResults(filteredPproducts);\n }, [filteredPproducts]);\n\n const handleChange = (event) => {\n searchBillers(event.target.value);\n };\n\n const handleProduct = (\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n ...product\n ) => {\n clearSearchResult();\n if (Accessibility === \"authenticated\" && loggedIn === false) {\n dispatch({\n type: alertConstants.ERROR,\n message: \"Please kindly login or register to continue\",\n });\n return history.push(`/`);\n } else if (\n product.ExternalLink &&\n product.ProductType === \"external-link\" &&\n product.LinkType === \"_blank\"\n ) {\n handleRedirect(\n `${product.BillerCode}`,\n `${product.ExternalLink}`,\n `${product.LinkType}`\n );\n } else {\n history.push(`/${UrlPath}/${BillerCode}`);\n }\n };\n\n const handleRedirect = (product, url, _type) => {\n window.open(url, \"_blank\");\n };\n return (\n
\n
\n \n { !!searchResults &&\n searchResults.length > 0 && <>\n
    \n {\n searchResults.map(\n ({\n ProductName,\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n product,\n }) => (\n <>\n \n handleProduct(\n UrlPath,\n CategoryCode,\n BillerCode,\n Accessibility,\n product\n )\n }\n style={{ textDecoration: \"none\", color: \"#000\" }}\n >\n
  • {ProductName}
  • \n \n \n )\n )}\n
\n \n }\n
\n\n \n
\n );\n};\n\nexport default Home;\n","import React from \"react\";\nimport styles from \"./button.module.css\";\n\nconst Btn = ({\n text,\n action,\n style,\n rounded,\n Icon,\n menu,\n green,\n orange,\n img,\n id,\n}) => {\n return (\n \n {text}\n {/* \n {Icon}\n */}\n \n \n );\n};\n\nexport default Btn;\n","import React from \"react\";\nimport styles from \"./faq.module.css\";\nimport { Row, Col } from \"react-bootstrap\";\nimport OtherPagesSlider from \"../carousel/other-pages-carousel\";\n\nconst Faq = () => {\n return (\n
\n {/*
*/}\n

Frequently Asked Questions

\n \n \n
    \n
  • \n {/* {questions.map(({ id, question, answer }) => ( */}\n \n
    \n

    Q.

    \n

    What type of transactions can I carry out

    \n
    \n
    \n

    A.

    \n

    \n PayXpress is a Value-Added Services (VAS) platform designed\n to provide customers all but not limited to the following\n services:{\" \"}\n

      \n
    1. 1. Pay Bills e.g. IKEDC, DSTV, GOTV, EKEDC etc.
    2. \n
    3. 2. Purchase Movie and Events tickets.
    4. \n
    5. 3. Single and bulk Purchase of Airtime and Data.
    6. \n
    7. 4. Fund transfers.
    8. \n
    9. \n 5. Pay for collections and levies services e.g. Delta\n State IGR, Oyo State IGR, Oyo State Security Trust Fund\n Levies etc.\n
    10. \n
    \n

    \n
    \n
    \n

    Q.

    \n

    What are the payment options accepted on the website?

    \n
    \n
    \n

    A.

    \n

    \n The Payment Options available on PayXpress are:\n

      \n
    1. \n 1. Debit Cards; Visa Cards, Master Cards and Verve\n Cards.\n
    2. \n
    3. 2. Bank Account
    4. \n
    5. 3. Bank Transfer
    6. \n
    7. 4. QR Code
    8. \n
    9. 5. USSD (Coming Soon)
    10. \n
    11. 6. Wallet (Coming Soon)
    12. \n
    \n

    \n
    \n
    \n

    Q.

    \n

    How can I start using the services on PayXpress

    \n
    \n
    \n

    A.

    \n

    \n Unregistered users can only use the following\n functionalities:{\" \"}\n

      \n
    1. 1. Buy Airtime
    2. \n
    3. 2.Buy Data
    4. \n
    5. 3. Pay Bills
    6. \n
    \n To access the full functionalities of the platform, you\n should register (see how to register below). After\n registering, you can also:\n
      \n
    1. 1. View and download your transaction history
    2. \n
    3. Carry out Bulk Airtime and Data purchases
    4. \n
    5. Pay for Collections and Levies.
    6. \n
    \n

    \n
    \n
    \n

    Q.

    \n

    How do I register?

    \n
    \n
    \n

    A.

    \n

    \n The steps to register are as follows:\n

      \n
    1. \n 1. Click on “Sign Up” at the top right of the homepage\n and fill the registration form as indicated\n
    2. \n
    3. \n 2. Successful registration initiates a mail to supplied\n email address for profile verification.{\" \"}\n
    4. \n
    5. \n 3. Click on the activation link sent to the email\n address profiled to activate profile.\n
    6. \n
    7. \n 4. Return to www.payxpress.com and login with your\n userID (email address) and password.\n
    8. \n
    \n

    \n
    \n
    \n

    Q.

    \n

    Will I be charged for registering on PayXpress?

    \n
    \n
    \n

    A.

    \n

    \n

      \n
    1. \n 1. You can locate the services to pay for on the menu at\n the left-hand side of the Homepage. Clicking on “More\n Services” reveals services you can pay for once you are\n a registered user.\n
    2. \n
    3. \n 2. Click on the search icon at the middle of the\n homepage and enter desired service provider’s name in\n the search box and search.\n
    4. \n
    \n

    \n
    \n\n
    \n

    Q.

    \n

    \n Who do I contact for services paid for and no receipt of\n value?\n

    \n
    \n
    \n

    A.

    \n

    \n Contact customercare@xpresspayments.com or utilize the\n online support chat at the bottom right side of the platform\n to engage customer care personnel.\n

    \n
    \n
    \n

    Q.

    \n

    Is PayXpress safe and secure ?

    \n
    \n
    \n

    A.

    \n

    \n PayXpress is very safe and secure. The website runs on a\n Secure Socket Layer (SSL) and the platform is compliant with\n international security standards.\n

    \n
    \n
    \n

    Q.

    \n

    \n Can I get notifications when my transactions on web are\n successful?\n

    \n
    \n
    \n

    A.

    \n

    \n Yes, notification E-mails are sent to the profiled email\n address upon every transaction regardless of it was\n Successful or Failed.\n

    \n
    \n
    \n

    Q.

    \n

    How do I view transaction history?

    \n
    \n
    \n

    A.

    \n

    \n You can view your Transaction History following the steps\n below:\n

      \n
    1. \n 1. Log-in to the platform using your userID (email\n address) and password\n
    2. \n
    3. \n 2. Click on your username which will be the last item on\n the menu to the left of the Homepage.\n
    4. \n
    5. \n 3. Click on “View Transaction History” from the\n drop-down menu to have an overview of transactions done.\n
    6. \n
    7. \n 4. You can now filter and view transactions by date and\n reference number\n
    8. \n
    \n

    \n
    \n\n
    \n

    Q.

    \n

    What happens if I cannot remember my password?

    \n
    \n
    \n

    A.

    \n

    \n Click on “Forgot Password” at the bottom of the log-in page\n and a link will be sent to your e-mail address. Click on\n this link to profile a new password.\n

    \n
    \n\n
    \n

    Q.

    \n

    Can I update my profile ?

    \n
    \n
    \n

    A.

    \n

    \n Yes, as a registered user, you can update your profile by\n clicking on your username at the bottom of the menu,\n navigating the drop-down menu and clicking on update\n profile.\n

    \n
    \n\n
    \n

    Q.

    \n

    Can I change my password ?

    \n
    \n
    \n

    A.

    \n

    \n Yes, as a registered user, you can change your password by\n clicking on your username at the bottom of the menu,\n navigating the drop-down menu and clicking on change\n password.\n

    \n
    \n\n
    \n

    Q.

    \n

    \n Who do I contact for support or more information about\n PayXpress?\n

    \n
    \n
    \n

    A.

    \n

    \n {\" \"}\n Contact Customer Care Centre:\n

      \n
    1. \n 1. E-mail address: customercare@xpresspayments.com\n
    2. \n
    3. \n 2. Telephone numbers\n
        \n
      1. +23416312430
      2. \n
      3. +2348188866022
      4. \n
      \n
    4. \n
    5. \n 2. Click on support and feedback menu located at the\n right side of the platform and send us a message.\n
    6. \n
    \n

    \n
    \n
\n {/* ))} */}\n \n \n \n \n
\n {/* \"adverts\" */}\n \n
\n \n \n \n );\n};\n\nexport default Faq;\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Input from \"@material-ui/core/Input\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport FormControl from \"@material-ui/core/FormControl\";\n// import { createMuiTheme } from 'material-ui/styles';\n// import styles from \"./input.module.css\";\n\n\nconst useStyles = makeStyles((theme) => ({\n margin: {\n margin: theme.spacing(1),\n },\n }));\n\nconst FormInput = ({ icon, placeholder, label,type, style }) => {\n const classes = useStyles();\n\n return (\n \n {label}\n {icon}\n }\n />\n \n );\n};\n\nexport default FormInput;\n","import { supportConstants } from '../_constants';\n\n// const initialState = {\n// subjects: [],\n// } \n\nexport function supportReducer(state, action) {\n switch (action.type) {\n case supportConstants.FETCH_SUBJECTS_REQUEST:\n return {\n loading: true,\n }\n case supportConstants.FETCH_SUBJECTS:\n return {\n ...state,\n subjects: action.payload,\n loading: false,\n }\n case supportConstants.SUPPORT_SAVE:\n return {\n ...state,\n message: action.message,\n loading: false,\n }\n default:\n return state;\n }\n}","import React, { createContext, useReducer, useEffect } from \"react\";\nimport { supportConstants, alertConstants } from \"../_constants\";\nimport {supportReducer} from \"../_reducers/support.reducer\";\nimport { fetchSubjects, saveSupport } from \"../_actions\";\n\n\nconst initialState = {\n loading: true,\n subjects: [],\n message: \"\"\n}; \n\nexport const SupportContext = createContext(initialState);\n\nexport const SupportContextProvider = ({ children }) => {\n\n const [state, supportDispatch] = useReducer(supportReducer, initialState);\n\n const getSupportSubjects = (dispatch) => {\n supportDispatch({type: supportConstants.FETCH_SUBJECTS_REQUEST});\n fetchSubjects().then(resp => {\n supportDispatch({type: supportConstants.FETCH_SUBJECTS, payload: resp});\n }, error => {\n supportDispatch({type: supportConstants.FETCH_SUBJECTS, payload: []});\n dispatch({type: alertConstants.ERROR, message: error.toString()});\n })\n\n }\n\n\n const supportAction = (values, dispatch) => {\n supportDispatch({type: supportConstants.FETCH_SUBJECTS_REQUEST});\n saveSupport(values).then(resp => {\n const msg = 'Message sent successfully';\n supportDispatch({type: supportConstants.SUPPORT_SAVE, message: msg});\n dispatch({type: alertConstants.SUCCESS, message: msg});\n }, error => {\n supportDispatch({type: supportConstants.SUPPORT_SAVE, message: error.toString() });\n dispatch({type: alertConstants.ERROR, message: error.toString()});\n })\n }\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext, useEffect } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport \"../../index.css\";\nimport FormInput from \"../inputs/form-input\";\nimport { MdSend, MdPhoneAndroid } from \"react-icons/md\";\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\nimport {\n Grid,\n TextField,\n ThemeProvider,\n FormControl,\n MenuItem,\n Select,\n InputLabel,\n Input,\n} from \"@material-ui/core\";\nimport TextareaAutosize from \"@material-ui/core/TextareaAutosize\";\n\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport CTA from \"../button/cta-button\";\nimport { SupportContext } from \"../../context/support-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport Spinner from \"../../components/spinner\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { UserContext } from \"../../context/user-context\";\nimport OtherPagesSlider from \"../carousel/other-pages-carousel\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 100,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n commentBox: {\n margin: 8,\n width: \"100%\",\n fontSize: \"14px\",\n transition: \"all 0.35s ease-in\",\n border: \"none\",\n borderBottom: \"2px solid #000\",\n\n \"&:focus\": {\n outline: \"none\",\n borderBottom: \"2px solid #FF6C00 !important\",\n },\n },\n}));\n\nexport default function Support() {\n const classes = useStyles();\n const { loading, subjects, getSupportSubjects, supportAction } = useContext(\n SupportContext\n );\n const { dispatch } = useContext(AlertContext);\n const { user } = useContext(UserContext);\n\n useEffect(() => {\n getSupportSubjects(dispatch);\n }, []);\n\n const validationSchema = Yup.object().shape({\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Your Email is Required\"),\n displayName: Yup.string(\"Enter Your Name\")\n .typeError(\"Enter Your Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"Your Name is Required\"),\n subject: Yup.string(\"Enter Subject\")\n .typeError(\"Enter Subject\")\n .required(\"Subject is Required\"),\n comment: Yup.string(\"Enter Comment\")\n .typeError(\"Enter Comment\")\n .min(5, \"Comment must be at least 5 Characters long\")\n .required(\"Comment is Required\"),\n });\n const {\n handleSubmit,\n handleChange,\n values,\n setFieldValue,\n isValid,\n setFieldTouched,\n setSubmitting,\n touched,\n errors,\n dirty,\n resetForm,\n } = useFormik({\n initialValues: {\n displayName:\n !!user && Object.entries(user).length !== 0\n ? user.Firstname + \" \" + user.Surname\n : \"\",\n email: user ? user.ConsumerID : \"\",\n subject: \"\",\n comment: \"\",\n },\n validationSchema,\n onSubmit(values) {\n setSubmitting(true);\n supportAction(values, dispatch);\n setSubmitting(false);\n resetForm({\n displayName: \"\",\n email: \"\",\n subject: \"\",\n comment: \"\",\n });\n },\n });\n\n const change = (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n };\n\n return (\n \n
\n {loading && }\n \n \n \n \n
\n
\n \"support\"\n
\n

SUPPORT & FEEDBACK

\n

\n Reach out to us through any of the channels below if you\n require Support.\n

\n
\n \n

customercare@xpresspayments.com

\n
\n
\n \n

01-6312430

\n

+234-8188866022

\n
\n
\n
\n \n \n
\n
\n Support and Feedback\n
\n \n
\n \n {!!user &&\n typeof user.Firstname !== \"undefined\" &&\n user.Firstname !== \"\" ? (\n \n ) : (\n change(\"displayName\", e)}\n value={values.displayName}\n InputLabelProps={{\n shrink: true,\n }}\n />\n )}\n \n \n {!!user &&\n typeof user.ConsumerID !== \"undefined\" &&\n user.ConsumerID !== \"\" ? (\n \n ) : (\n change(\"email\", e)}\n value={values.email}\n InputLabelProps={{\n shrink: true,\n }}\n />\n )}\n \n \n \n {/* \n Subject\n */}\n change(\"subject\", e)}\n value={values.subject}\n SelectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: { paper: classes.dropdownStyle },\n },\n }}\n InputLabelProps={{\n shrink: true,\n }}\n >\n \n --select--\n \n {!!subjects &&\n subjects.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n \n {/* change(\"comment\", e)}\n value={values.comment}\n InputLabelProps={{\n shrink: true,\n }}\n /> */}\n change(\"comment\", e)}\n value={values.comment}\n InputLabelProps={{\n shrink: true,\n }}\n />\n \n\n \n \n
\n
\n \n
\n \n \n \n {/* \"advert\" */}\n \n
\n
\n
\n );\n}\n\n// export default Support;\n","import React, { Component } from \"react\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\n\nconst dashboardSliders = [\n {\n id: 0,\n img: \"/resources/images/lagos.jpg\",\n },\n {\n id: 1,\n img: \"/resources/images/lagos.jpg\",\n },\n {\n id: 2,\n img: \"/resources/images/lagos.jpg\",\n },\n {\n id: 3,\n img: \"/resources/images/lagos.jpg\",\n },\n];\n\nexport default class SimpleSlider extends Component {\n render() {\n const settings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: true,\n autoplaySpeed: 10000,\n adaptiveHeight: true,\n };\n return (\n
\n \n {dashboardSliders.map(({ id, img }) => {\n return (\n
\n {id}\n
\n );\n })}\n
\n
\n );\n }\n}\n","import React, { createContext, useReducer, useEffect } from \"react\";\nimport { transactionReducer } from \"../_reducers/transaction.reducer\";\nimport { fetchDashboardTransactionHistory } from \"../_actions/product.actions\";\nimport { transactionConstants } from \"../_constants\";\n\nconst initialState = {\n loading: false,\n transactions: [],\n};\n\nexport const TransactionContext = createContext(initialState);\n\nexport const TransactionProvider = ({ children }) => {\n const [state, transactionDispatch] = useReducer(\n transactionReducer,\n initialState\n );\n\n const getDashboardTransaction = () => {\n transactionDispatch({ type: transactionConstants.SENDING_REQUEST });\n fetchDashboardTransactionHistory().then(\n (resp) => {\n transactionDispatch({\n type: transactionConstants.FETCH_DASHBOARD_TRANSACTION,\n payload: resp,\n });\n },\n (error) => {\n transactionDispatch({\n type: transactionConstants.FETCH_DASHBOARD_TRANSACTION,\n payload: [],\n });\n }\n );\n };\n\n return (\n \n {children}\n \n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Grid from \"@material-ui/core/Grid\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\nimport Divider from \"@material-ui/core/Divider\";\n// import NineMobile from \"../../assets/images/billers/01bb8ce9ff3f1fec98ec7b51bc7672d3.jpg\";\n// import MtnAirtime from \"../../assets/images/billers/79bd69cc7328f8be6dd7afea13ce7816.jpg\";\n// import MtnAwuf from \"../../assets/images/billers/mtn-awuf.png\";\n// import Glo from \"../../assets/images/billers/glo.jpg\";\n// import Airtel from \"../../assets/images/billers/airtel.jpg\";\n// import Ntel from \"../../assets/images/billers/ntel-airtime.png\";\n// import AirtelSmart from \"../../assets/images/billers/airtel-10x.png\";\n// import BulkUpload from \"../../assets/images/billers/bulk-airtime.png\";\n// import AirtelData from \"../../assets/images/billers/airtel-10x.png\";\n// import GloData from \"../../assets/images/billers/glo data.png\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { Paper } from \"@material-ui/core\";\nimport { FaAngleDown, FaReplyAll } from \"react-icons/fa\";\nimport { TransactionContext } from \"../../context/transaction-context\";\nimport { getMonthName, truncate } from \"../../helpers\";\nimport { useHistory } from \"react-router\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n maxWidth: 460,\n backgroundColor: theme.palette.background.paper,\n borderRadius: \" 0px 0px 5px 5px\",\n // boxShadow:\n // \"0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n maxHeight: \"62vh\",\n overflowY: \"scroll\",\n marginRight: \"0 !important\",\n padding: \"0 !important\",\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#006D01\",\n borderRadius: \" 0px 0px 5px 5px\",\n },\n },\n listItem: {\n height: \"85px\",\n paddingLeft: \"5px\",\n\n borderLeft: \"5px solid green\",\n borderBottomLeftRadius: \"6px\",\n borderTopLeftRadius: \"3px\",\n },\n listItem2: {\n height: \"85px\",\n paddingLeft: \"5px\",\n borderLeft: \"5px solid red\",\n borderBottomLeftRadius: \"6px\",\n borderTopLeftRadius: \"3px\",\n },\n headerContainer: {\n marginBottom: \"-18px\",\n background: \" #C4C4C4\",\n borderRadius: \"none !important\",\n padding: \"2px\",\n },\n header: {\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontSize: \"12px\",\n letterSpacing: \"0.2em\",\n },\n}));\n\nexport default function ActivityLog(props) {\n const classes = useStyles();\n const history = useHistory();\n const { transactions, loading } = props;\n\n const [phoneNumberLebels, setPhoneNumberLebel] = useState([]);\n const getData = () => {\n fetch(\"../resources/activtity_log.json\", {\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (data) {\n setPhoneNumberLebel(data);\n });\n };\n\n useEffect(() => {\n getData();\n }, []);\n\n const getPhoneNumber = (receiptItems) => {\n let b = receiptItems.filter(function (item) {\n if (phoneNumberLebels.includes(item.Label.toLowerCase())) return item;\n })[0];\n if (!!b) {\n return b.Value;\n }\n };\n\n return (\n
\n \n

{getMonthName()}

\n
\n \n {/* {loading &&
... loading
} */}\n {!!transactions &&\n transactions.length > 0 &&\n transactions.map(\n ({\n ProductImage,\n ProductName,\n Date,\n Amount,\n Id,\n ApprovalStatus,\n UrlPath,\n BillerCode,\n ReceiptItems,\n }) => {\n return (\n
\n {ApprovalStatus !== \"Failed\" ? (\n \n \n \n \n {/* */}\n \n \n
\n

{truncate(`${ProductName}`, 20, \"...\")}

\n
\n
\n {getPhoneNumber(ReceiptItems)}\n
\n
\n {Date}\n
\n
\n \n
\n

\n N\n {Amount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n })}\n

\n {\n history.push(\n `/${UrlPath}/${BillerCode}/${Id}?status=forwarded`\n );\n }}\n >\n Replay \n \n
\n
\n
\n {/*
*/}\n
\n ) : (\n \n \n \n \n {/* */}\n \n \n
\n

{truncate(`${ProductName}`, 20, \"...\")}

\n
\n
\n {getPhoneNumber(ReceiptItems)}\n
\n
\n {Date}\n
\n
\n \n
\n

\n N\n {Amount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n })}\n

\n {\n history.push(\n `/${UrlPath}/${BillerCode}/${Id}?status=forwarded`\n );\n }}\n >\n Replay \n \n
\n
\n
\n {/*
*/}\n
\n )}\n \n
\n );\n }\n )}\n {loading &&
Loading...
}\n {!loading && !!transactions && transactions.length == 0 && (\n
No record found for this month
\n )}\n
\n
\n );\n}\n","import React, { useRef, useContext, useEffect, useState } from \"react\";\nimport { Grid, Card } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport styles from \"./dashboard.module.css\";\nimport { FaUser, FaAngleRight, FaAngleLeft } from \"react-icons/fa\";\nimport SimpleSlider from \"../../components/carousel/dashboard-carousel\";\n// import Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport ActivityLog from \"../../components/activity-log/activity-log\";\nimport { Link } from \"react-router-dom\";\nimport { UserContext } from \"../../context/user-context\";\nimport { TransactionContext } from \"../../context/transaction-context\";\nimport { getMonthName } from \"../../helpers\";\nimport Spinner from \"../../components/spinner\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n}));\n\n// const billers = [\n// {\n// id: 0,\n// url: \"/airtel\",\n// image: \"/resources/images/airtel.jpg\",\n// },\n// {\n// id: 1,\n// url: \"/DSTV2\",\n// image: \"/resources/images/dstv.png\",\n// },\n// {\n// id: 2,\n// url: \"airtime/glo\",\n// image: \"/resources/images/glo.jpg\",\n// },\n// {\n// id: 3,\n// url: \"Bills/GOTV2\",\n// image: \"/resources/images/gotv.png\",\n// },\n// {\n// id: 4,\n// url: \"airtime/mtn\",\n// image: \"/resources/images/mtn.jpg\",\n// },\n// {\n// id: 5,\n// url: \"Bills/phedc\",\n// image: \"/resources/images/phed.png\",\n// },\n// ];\n\n// const handleChange = (event) => {\n// setAge(event.target.value);\n// };\n\n// const handleClose = () => {\n// setOpen(false);\n// };\n\n// const handleOpen = () => {\n// setOpen(true);\n// };\n\nconst Dashboard = () => {\n let slideRef = useRef(null);\n\n const prev = () => {\n slideRef &&\n slideRef.current &&\n slideRef.current.scrollTo({\n behavior: \"smooth\",\n top: 0,\n left: slideRef.current.scrollLeft - slideRef.current.clientWidth * 0.65,\n });\n };\n\n const next = () => {\n slideRef &&\n slideRef.current &&\n slideRef.current.scrollTo({\n behavior: \"smooth\",\n top: 0,\n left: slideRef.current.scrollLeft + slideRef.current.clientWidth * 0.65,\n });\n };\n\n const classes = useStyles();\n const { user } = useContext(UserContext);\n const { loadingActivity, transactions, getDashboardTransaction } = useContext(\n TransactionContext\n );\n\n const settings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 4,\n slidesToScroll: 1,\n adaptiveHeight: true,\n autoplay: true,\n arrows: true,\n };\n\n const getSuccssCount = (transactions) => {\n const count =\n !!transactions &&\n transactions.filter(\n (transaction) =>\n transaction.ApprovalStatus == \"Approved\" &&\n transaction.PaymentStatus == \"Approved\"\n );\n return count.length;\n };\n\n const getFailedCount = (transactions) => {\n const count =\n !!transactions &&\n transactions.filter(\n (transaction) =>\n transaction.ApprovalStatus != \"Approved\" ||\n transaction.PaymentStatus != \"Approved\"\n );\n return count.length;\n };\n\n const [data, setData] = useState([]);\n const [billers, setBillers] = useState([]);\n const getData = () => {\n fetch(\"../resources/biller.json\", {\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (data) {\n setBillers(data);\n });\n };\n\n useEffect(() => {\n getDashboardTransaction();\n getData();\n }, []);\n\n return (\n
\n {/* {loading ? (\n \n ) : ( */}\n <>\n \n \n
\n
\n \n
\n
\n

Hi {user.Firstname}!

\n

Welcome to your dashboard

\n
\n
\n
\n
\n \n \n
\n

Top Billers

\n
\n {billers.map(({ image, url, id }) => {\n return (\n //
\n \n
\n \n \"\"\n \n
\n \n //
\n );\n })}\n
\n
\n \n \n
\n
\n
\n \n
\n
\n\n {/* activity log */}\n \n \n ACTIVITY LOG\n \n \n \n
\n \n {/* )} */}\n
\n );\n};\n\nexport default Dashboard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport InfoIcon from '@material-ui/icons/Info';\nimport CloseIcon from '@material-ui/icons/Close';\nimport green from '@material-ui/core/colors/green';\nimport amber from '@material-ui/core/colors/amber';\nimport IconButton from '@material-ui/core/IconButton';\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst variantIcon = {\n success: CheckCircleIcon,\n warning: WarningIcon,\n error: ErrorIcon,\n info: InfoIcon,\n};\n \n const styles1 = theme => ({\n success: {\n backgroundColor: green[600],\n },\n error: {\n backgroundColor: theme.palette.error.dark,\n },\n info: {\n backgroundColor: theme.palette.primary.dark,\n },\n warning: {\n backgroundColor: amber[700],\n },\n icon: {\n fontSize: 20,\n },\n iconVariant: {\n opacity: 0.9,\n marginRight: theme.spacing.unit,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n });\n \n const MySnackbarContent = props => {\n const { classes, className, message, onClose, variant, ...other } = props;\n const Icon = variantIcon[variant];\n //alert(props.showAction);\n let _showAction = true;\n if(typeof props.showAction !== 'undefined')\n _showAction = props.showAction;\n return (\n \n \n {message}\n \n }\n action={!!_showAction && [\n \n \n ,\n ]}\n {...other}\n />\n );\n }\n \n MySnackbarContent.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n message: PropTypes.node,\n onClose: PropTypes.func,\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired,\n };\n \n export default withStyles(styles1)(MySnackbarContent);\n ","import { tellAFriendConstant } from '../_constants';\n\nexport function tellAFriendreducer(state = {}, action) {\n switch (action.type) {\n case tellAFriendConstant.REQUEST:\n return {\n loading: true,\n };\n case tellAFriendConstant.RESPONSE:\n return {\n // type: 'error',\n loading: false,\n message: action.message.toString()\n };\n default:\n return state\n }\n}","import React, { createContext, useReducer } from \"react\";\nimport { alertConstants, tellAFriendConstant } from \"../_constants\";\nimport { tellAFriendreducer } from \"../_reducers/tell-a-friend.reducer\";\nimport { tellAFriendAction } from \"../_actions/tell-a-friend.actions\";\n\n\nconst initialState = {\n loading: false,\n};\n\nexport const TellAFriendContext = createContext(initialState);\n\nexport const TellAFriendContextProvider = ({ children }) => {\n\n const [state, tellAFriendDispatch] = useReducer(tellAFriendreducer, initialState);\n\n const tellAFriend = (values, dispatch) => {\n tellAFriendDispatch({type: tellAFriendConstant.REQUEST});\n tellAFriendAction(values).then(data => {\n var msg = 'Your friend has been notified';\n tellAFriendDispatch({type: tellAFriendConstant.RESPONSE, message: msg});\n dispatch({type: alertConstants.SUCCESS, message: msg});\n },error => {\n tellAFriendDispatch({type: tellAFriendConstant.RESPONSE, message: error});\n dispatch({type: alertConstants.ERROR, message: error.toString()});\n });\n }\n return (\n \n {children}\n \n );\n};\n","import { userService } from '../_services';\nexport const tellAFriendAction = (req) => {\n return userService.tellAFriend(req);\n}","import React, { useContext } from \"react\";\nimport { Grid, TextField, ThemeProvider, Input } from \"@material-ui/core\";\nimport CTA from \"../../components/button/cta-button\";\nimport { theme } from \"../../theme\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { TellAFriendContext } from \"../../context/tell-a-friend-context\";\nimport Spinner from \"../../components/spinner\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { UserContext } from \"../../context/user-context\";\nimport { green, amber } from \"@material-ui/core/colors\";\n// import { green } from \"@material-ui/core/colors\";\n\nexport default function TAF() {\n const disabled = \"grey\";\n\n const { loading, tellAFriend } = useContext(TellAFriendContext);\n const { dispatch } = useContext(AlertContext);\n const { user } = useContext(UserContext);\n const validationSchema = Yup.object().shape({\n telle: Yup.string(\"Enter Friend's Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Friend's Email\")\n .required(\"Friend's Email is Required\"),\n teller: Yup.string(\"Enter Your Name\")\n .typeError(\"Enter Your Name\")\n .min(2, \"Your Name must be at least 2 Characters long\")\n .required(\"Your Name is Required\"),\n telleeName: Yup.string(\"Enter Your Friend's Name\")\n .typeError(\"Enter Your Friend's Name\")\n .min(2, \"Your Friend's Name must be at least 2 Characters long\")\n .required(\"Friend's Name is Required\"),\n });\n\n const handleReset = () => {\n resetForm({\n teller: \"\",\n telle: \"\",\n telleeName: \"\",\n });\n };\n\n const {\n handleSubmit,\n handleChange,\n values,\n setFieldValue,\n isValid,\n setFieldTouched,\n touched,\n dirty,\n errors,\n setSubmitting,\n resetForm,\n } = useFormik({\n initialValues: {\n teller:\n !!user && Object.entries(user).length !== 0\n ? `${user.Firstname} ${user.Surname}`\n : \"\",\n telle: \"\",\n telleeName: \"\",\n },\n validationSchema,\n onSubmit(values) {\n setSubmitting(true);\n tellAFriend(values, dispatch);\n setSubmitting(false);\n resetForm({\n teller: \"\",\n telle: \"\",\n telleeName: \"\",\n });\n },\n });\n\n const change = (name, e) => {\n //e.persist()\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n };\n\n return (\n \n
\n {loading && }\n\n \n \n
\n
\n

TELL A FRIEND

\n

\n Have you enjoyed using the payxpress platform? You can do well\n to refer a friend to also enjoy, the ease, speed and security\n you experienced using our platform; please fill the form below\n to do so..\n

\n
\n
\n
\n \n {user &&\n typeof user.Firstname !== \"undefined\" &&\n user.Firstname !== \"\" ? (\n \n ) : (\n change(\"teller\", e)}\n />\n )}\n \n \n change(\"telleeName\", e)}\n />\n \n \n change(\"telle\", e)}\n />\n \n
\n \n \n
\n
\n
\n
\n
\n\n \n
\n \n
\n
\n
\n
\n
\n );\n}\n","import React, { useContext } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { AlertContext } from '../../context/alert-context';\nimport { useHistory } from \"react-router-dom\";\nimport { alertConstants } from '../../_constants';\n\nexport const PrivateRoute = ({ component: Component, loggedIn: LoggedIn, ...rest }) => {\n const { dispatch } = useContext(AlertContext);\n const history = useHistory();\n\n const handleRedirect = (UrlPath, CategoryCode, BillerCode, Accessibility) => {\n dispatch({\n type: alertConstants.ERROR,\n message: \"Please kindly login or register to continue\",\n });\n history.push(`/`);\n };\n return (\n (\n !!LoggedIn\n ? \n : handleRedirect()\n // \n )}\n />\n );\n}","import React from \"react\";\nimport { Grid } from \"@material-ui/core\";\nimport { Link } from \"react-router-dom\";\n\nexport default function CookiesPolicy() {\n return (\n
\n \n

Cookies Policy

\n
\n \n

\n At Xpress Payment Solution Limited (hereinafter called “Xpress\n Payments”), we treat your personal information as private and\n confidential. We are dedicated to protecting your privacy and\n providing you with the highest level of security at any point of\n interaction with us.
\n This Cookies Policy (Policy) explains how we use cookies and the\n choices you have. Except as otherwise stated in this Policy, our\n Privacy Policy will apply to our processing of data that we\n collect via cookies. You can access our Privacy Policy via this\n \n {\" \"}\n link.\n {\" \"}\n
\n By using our website (by clicking, navigating or scrolling), you\n are consenting to our use of cookies in accordance with this\n Policy. If you do not agree to our use of cookies, you can prevent\n the installation of cookies through the settings of your browser\n or not use our website at all. However, if you disable the use of\n cookies, this might cause some parts of this website not to\n function properly for you and it may impact your user experience\n on this site.\n

\n
\n \n \n \n
\n
What are cookies?
\n
\n

\n Cookies are messages or small files that are placed on your\n web browser when you visit an internet site. Cookies are\n useful and do a lot of different things, including allowing\n a website to recognize a user’s device, improving online\n experience etc.\n

\n
\n
\n \n
\n
Why do we use cookies?
\n

\n We use cookies when you access our websites and our\n touchpoints to make the site work better and to help us\n understand how you use our site. Cookies enable us to offer\n tailored products and to understand the information we\n receive about you, including information about your use of\n other websites and apps. Cookies help us provide, protect\n and improve our products and services, by personalizing,\n tailoring and measuring the services and products we provide\n for satisfactory and safe experience. We also use them to\n help authentication of user, assess performance and\n functionality of our online products and services, and\n analytical research.\n

\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import { Grid } from \"@material-ui/core\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport default function PrivacyPolicy() {\n return (\n //
\n \n {/* */}\n

Privacy Policy

\n {/*
*/}\n
\n \n
\n

Information we collect

\n

\n We may collect information about you from a variety of sources,\n including information we collect from you directly; information we\n collect about you when you visit our sites, perform business\n transactions with us and information we collect about you from\n other sources (as permitted by law).\n

\n
\n
\n \n
\n

Information we collect directly from you

\n

\n We collect information directly from you when you choose to\n participate in our offers and programs or otherwise provide\n information directly to us. The following are examples of\n information we may collect directly from you:\n

\n
    \n
  • Customer Care
  • \n
  • Card Details
  • \n
  • Account Details
  • \n
  • Phone Number
  • \n
  • E-mail
  • \n
\n
\n
\n \n
\n

Information We Collect From Other Sources

\n

\n We may obtain information about you from other sources, including\n commercially available sources, such as data aggregators and\n public databases. The following are examples of information we may\n collect from other sources:\n

\n
    \n
  • Business Information
  • \n
  • Directors Information
  • \n
\n
\n
\n \n
\n

How we use these Information

\n

\n We use the information we collect to manage agreements, process\n payments, to fulfil our obligations under applicable regulations,\n and to manage our sites and services. The following are ways we\n may use the information we collect about you:\n

\n
    \n
  • Business guide purpose
  • \n
  • Know your customer (KYC) purposes
  • \n
\n
\n
\n \n
\n

Your Choices And Access To Your Information

\n

\n Choices:
We give you choices about how we communicate with\n you.\n

\n
    \n
  • E-mail
  • \n
  • SMS
  • \n
  • Phone call
  • \n
  • Hard copy letter
  • \n
\n

\n We will continue to use the above channels for business\n communication for the duration of our business relationship. We\n may need to retain the contact information and email\n communicationsfor record keeping, analysis or other reasons, to\n the extent permitted by law.\n

\n
\n
\n \n
\n

Access

\n

\n We take steps to keep your personal information accurate. You can\n view, correct, or update the personal contact information you\n provide to Xpress Payments.\n
Contact our Data Privacy Officer to access and update the\n personal information youprovided to Xpress Payments. We will\n respond to valid requests in an appropriate timeframe.\n

\n
\n
\n \n
\n

Information Sharing

\n

\n We share your personal information only as described below and\n within Xpress Payments\n

\n
\n
\n \n
\n

Third-Party Service Providers

\n

\n We rely on third-party service providers to perform various\n services on our behalf. To perform these services, we may need to\n share your personal information with them. For example, we may\n rely on a service provider to:\n

\n
    \n
  • Deliver our email and mobile messages.
  • \n
  • Manage payments or take other actions on our behalf.
  • \n
  • \n Conduct research and analyze data, sometimes combined with other\n sources, to improve our products,services, and sites.\n
  • \n
\n

\n We provide these companies with the minimum personal information\n they need to provide these services on our behalf. We require\n these companies to protect this personal information and tonot use\n the information for any other purpose.\n

\n
    \n
  • \n Sale of our brands or business - In connection with the sale of\n one or more of our brands or a part of our business to a\n different company, we reserve the right to transfer your\n personal information to a new owner that agrees to offer\n equivalent safeguards for the use and disclosure of your\n personal information.\n
  • \n
  • \n Legal action and obligations - We may disclose your personal\n information:\n
      \n
    • \n Where permitted by law, to protect and defend the rights and\n property of Xpress Payments (including enforcement of valid\n agreements).\n
    • \n
    • When required by law or public authorities.
    • \n
    \n
  • \n
\n
\n
\n \n
\n

Information Security

\n

\n We are committed to keeping personal information secure. We have\n appropriate technical, administrative, and physical procedures in\n place to protect personal information from loss, misuse, or\n alteration.\n
\n We limit access to personal information to those who have a\n business need. We keep personal information only for a reasonably\n needed amount of time.\n
\n When we provide your personal information to our third-party\n service providers, we require those companies to protect the\n information and to not use the information for any other purpose.\n
\n When we collect or transmit sensitive information such as a credit\n card number or internet banking password, we use industry standard\n methods to protect that information.\n

\n
\n
\n \n
\n

Information Transfer

\n

\n Your personal information may be transferred to, stored, and\n processed in a country other than the one in which it was\n provided. When we do so, we take into consideration the applicable\n data protection laws for the transfer of personal information.\n
\n We take steps to protect personal information no matter what\n country it is stored in or transferred to.\n

\n
\n
\n \n
\n

Changes To Our Privacy Notice

\n

\n We will post changes to this privacy notice and update the\n effective date when this privacy notice is updated. We may modify\n this policy at any time, in our sole discretion and all\n modifications will be effective immediately upon our posting of\n the modifications.\n

\n
\n
\n \n
\n

Data Minimalization

\n

\n Xpress Payments limits Personal Information collection and usage\n to data that is relevant, adequate, and necessary for carrying out\n the purpose for which the data is processed.\n
\n Xpress Payments will evaluate whether and to what extent the\n processing of Personal Information is necessary and where the\n purpose allows, anonymized data will be used.\n

\n
\n
\n \n
\n

Age Restriction

\n

\n Our website and services are not directed to children under 18. We\n do not knowingly transact or provide any services to children\n under 18.\n

\n
\n
\n \n
\n

Contact Us

\n

\n If you have questions or concerns regarding Xpress Payments’\n privacy practices, please register them with us by sending an\n email to our Data Privacy Officer [dpo@Xpresspayments.com].\n

\n
\n
\n \n
\n

\n Thanks for taking your time to read through, please{\" \"}\n \n click this link to return to homepage\n \n

\n
\n
\n
\n
\n //
\n );\n}\n","import React, {\n createContext,\n useReducer,\n useContext\n} from \"react\";\nimport {\n userActions\n} from \"../_actions/user.actions\";\nimport {\n alertActions\n} from \"../_actions/alert.actions\";\nimport {\n registration\n} from \"../_reducers/registration.reducer\";\nimport {\n userConstants,\n alertConstants\n} from \"../_constants\";\nimport {\n alert\n} from \"../_reducers/alert.reducer\";\nimport {\n users\n} from \"../_reducers/users.reducer\";\n\n\nconst initialState = {\n activationMessage: \"\",\n errorMessage: \"\",\n activating: false\n};\n\nexport const ActivationContext = createContext(initialState);\n\nexport const ActivationContextProvider = ({\n children\n}) => {\n\n const [state, activationDispatch] = useReducer(registration, initialState);\n\n\n function activate(token) {\n activationDispatch({\n type: userConstants.ACTIVATE_REQUEST\n })\n userActions.activate(token).then(resp => {\n activationDispatch({\n type: userConstants.ACTIVATE_SUCCESS,\n payload: \"Your account has been activated successfully\",\n });\n }, error => {\n activationDispatch({\n type: userConstants.ACTIVATE_FAILURE,\n payload: error.toString(),\n });\n });\n }\n\n return (\n {\n children\n } \n );\n};","import { Grid } from \"@material-ui/core\";\nimport React, { useContext, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useHistory } from \"react-router\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { ActivationContext } from \"../../context/activation-context\";\nimport Spinner from \"../../components/spinner\";\n\nexport default function ConfirmAccount() {\n const history = useHistory();\n const {\n activate,\n activationMessage,\n errorMessage,\n resetMessage,\n activating,\n } = useContext(ActivationContext);\n const { dispatch } = useContext(AlertContext);\n\n const param = window.location.search;\n const _token = param.split(\"?\")[1]\n useEffect(() => {\n activate(_token);\n }, []);\n\n return (\n
\n \n \n
\n

Account Activation

\n {activating && }\n {activationMessage ? (\n <>\n \n {activationMessage}\n

\n \n You can start making payments. Online transaction is easy with\n payxpress.\n \n \n Click here to continue\n \n \n ) : (\n <>\n \n {errorMessage}\n

\n \n Click here to continue\n \n \n )}\n
\n
\n \n
\n \n
\n
\n
\n
\n );\n}\n","import React, {\n createContext,\n useReducer,\n useContext\n} from \"react\";\nimport {\n userActions\n} from \"../_actions/user.actions\";\nimport {\n registration\n} from \"../_reducers/registration.reducer\";\nimport {\n userConstants,\n alertConstants\n} from \"../_constants\";\n\n\nconst initialState = {\n backupUpdateMessage: \"\",\n errorMessage: \"\",\n updating: false\n};\n\nexport const BackupEmailUpdateContext = createContext(initialState);\n\nexport const BackupEmailUpdateContextProvider = ({\n children\n}) => {\n\n const [state, profileUpdateDispatch] = useReducer(registration, initialState);\n\n\n function updateRegWithBackupEmail(user) {\n profileUpdateDispatch({\n type: userConstants.UPDATE_BACKUP_REQUEST\n })\n userActions.updateRegWithBackupEmail(user).then(resp => {\n profileUpdateDispatch({\n type: userConstants.UPDATE_BACKUP_SUCCESS,\n payload: \"Backup email updated successfully!!!\",\n });\n }, error => {\n profileUpdateDispatch({\n type: userConstants.UPDATE_BACKUP_FAILURE,\n payload: error.toString(),\n });\n\n });\n }\n\n return (\n {\n children\n } \n );\n};","import { Grid } from \"@material-ui/core\";\nimport React, { useContext, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useHistory } from \"react-router\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { BackupEmailUpdateContext } from \"../../context/backupEmail-update-context\";\nimport Spinner from \"../../components/spinner\";\nimport queryString from \"query-string\";\nimport { TextField, ThemeProvider } from \"@material-ui/core\";\nimport { theme } from \"../../theme\";\n\nexport default function BackUpEmailConfirmation() {\n const history = useHistory();\n const {\n updateRegWithBackupEmail,\n backupUpdateMessage,\n errorMessage,\n resetMessage,\n updating,\n } = useContext(BackupEmailUpdateContext);\n const { dispatch } = useContext(AlertContext);\n\n const params = queryString.parse(window.location.search);\n\n useEffect(() => {\n if (params.backupemail && params.token) {\n updateRegWithBackupEmail(params);\n }\n }, []);\n\n return (\n \n
\n \n \n
\n

Backup Email Update

\n {updating && }\n {backupUpdateMessage ? (\n <>\n \n {backupUpdateMessage}\n

\n {/* \n You can start making payments. Online transaction is easy with\n payxpress.\n */}\n \n Click here to continue\n \n \n ) : (\n <>\n \n {errorMessage}\n

\n \n Click here to continue\n \n \n )}\n
\n
\n \n
\n \n
\n
\n
\n
\n
);\n}\n","import React, {\n createContext,\n useReducer,\n} from \"react\";\nimport {\n userActions\n} from \"../_actions/user.actions\";\nimport {\n registration\n} from \"../_reducers/registration.reducer\";\nimport {\n userConstants,\n alertConstants\n} from \"../_constants\";\n\n\nconst initialState = {\n user: {},\n errorMessage: \"\",\n changeErrorMessage: \"\",\n ressetting: false\n};\n\nexport const AccountResetContext = createContext(initialState);\n\nexport const AccountResetContextProvider = ({\n children\n}) => {\n\n const [state, verifyDispatch] = useReducer(registration, initialState);\n\n\n function verifyResetToken(token, dispatch) {\n verifyDispatch({\n type: userConstants.VERIFY_REQUEST\n })\n userActions.verifyResetToken(token).then(resp => {\n verifyDispatch({\n type: userConstants.VERIFY_SUCCESS,\n payload: resp,\n });\n }, error => {\n verifyDispatch({\n type: userConstants.VERIFY_FAILURE,\n errorMessage: error.toString(),\n });\n // dispatch({type: alertConstants.error, message: error.toString()})\n dispatch({ type: alertConstants.ERROR, message: error.toString() });\n });\n }\n\n function resetPassword(user, dispatch) {\n verifyDispatch({\n type: userConstants.CHANGE_REQUEST\n })\n userActions.resetPassword(user).then(resp => {\n var msg = \"Password reset successfully\";\n verifyDispatch({\n type: userConstants.CHANGE_SUCCESS,\n payload: resp,\n });\n dispatch({ type: alertConstants.SUCCESS, message: msg });\n }, error => {\n verifyDispatch({\n type: userConstants.CHANGE_FAILURE,\n changeErrorMessage: error.toString(),\n });\n dispatch({ type: alertConstants.ERROR, message: error.toString() });\n });\n }\n return (\n {\n children\n } \n );\n};","import React, { useContext, useEffect } from \"react\";\nimport { useHistory } from \"react-router\";\nimport { Grid, TextField, ThemeProvider } from \"@material-ui/core\";\nimport CTA from \"../../components/button/cta-button\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { AccountResetContext } from \"../../context/account-reset-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport Spinner from \"../../components/spinner\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n inputPadding: {\n paddingLeft: \"5px\",\n marginTop: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n}));\nexport default function ResetPassword() {\n const history = useHistory();\n const {\n ressetting,\n errorMessage,\n user,\n verifyResetToken,\n resetPassword,\n } = useContext(AccountResetContext);\n const { dispatch } = useContext(AlertContext);\n\n const param = window.location.search;\n const _token = param.substring(1, param.length);\n\n const validationSchema = Yup.object().shape({\n password: Yup.string(\"Enter Your New Password\")\n .typeError(\"Enter Your New Password\")\n .matches(\n /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,}$/,\n \"Please choose a strong password. Password must meet the following criteria; 1. At least one block letter. 2. At least one small letter. 3. At least one number. 4. At least one special character\"\n )\n .required(\"Password is Required\"),\n confirmpwd: Yup.string(\"Confirm Your Password\")\n .typeError(\"Confirm Your Password\")\n .oneOf([Yup.ref(\"password\")], \"Passwords do not match\")\n .required(\"Confirm Password is Required\"),\n });\n\n useEffect(() => {\n verifyResetToken(_token, dispatch);\n }, []);\n\n const {\n handleSubmit,\n handleChange,\n setFieldTouched,\n touched,\n errors,\n resetForm,\n } = useFormik({\n initialValues: {\n password: \"\",\n confirmpwd: \"\",\n },\n validationSchema,\n onSubmit(values) {\n let req = {\n ...values,\n email: user.ConsumerID,\n token: _token,\n };\n resetPassword(req, dispatch);\n resetForm({\n password: \"\",\n confirmpwd: \"\",\n });\n },\n });\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n const classes = useStyles();\n console.log(\"first\")\n return (\n
\n {ressetting && }\n {!errorMessage ? (\n \n \n
\n

Password Reset

\n

\n We've made reseting your password easy for you, just fill the\n form below\n

\n
\n {/* {changeErrorMessage && (
{changeErrorMessage}
)} */}\n \n
\n
\n \n \n \n \n \n \n \n \n\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n ) : (\n

{errorMessage}

\n )}\n
\n );\n}\n","import React from \"react\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport { MdPageview } from \"react-icons/md\";\nimport { Grid, Paper, Typography, Divider } from \"@material-ui/core\";\nimport { FaPlay, FaFastForward, FaPrint } from \"react-icons/fa\";\nimport CTA from \"../../components/button/cta-button\";\nimport Print from \"../../components/print-transaction/print\";\nimport ContentToPrint from \"../../components/print-transaction/print\";\n\nfunction rand() {\n return Math.round(Math.random() * 20) - 10;\n}\n\nfunction getModalStyle() {\n const top = 50;\n const left = 50;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`,\n };\n}\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n paper: {\n position: \"absolute\",\n width: 500,\n outline: \"none\",\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n // padding: theme.spacing(2, 4, 3),\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: 500,\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"0px\",\n },\n },\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"11px\",\n fontWeight: \"bold\",\n },\n },\n formButton: {\n marginTop: \"15px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n marginBottom: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"11px\",\n },\n })\n);\n\nexport default function PrintReceiptModal() {\n const classes = useStyles();\n // getModalStyle is not a pure function, we roll the style only on the first render\n const [modalStyle] = React.useState(getModalStyle);\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n const handleProceed = () => {};\n\n const body = (\n
\n \n \n \n \n
\n );\n\n return (\n
\n \n \n {body}\n \n
\n );\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Modal from \"@material-ui/core/Modal\";\nimport Rating from \"@material-ui/lab/Rating\";\nimport Box from \"@material-ui/core/Box\";\nimport { Button } from \"@material-ui/core\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\n\nfunction getModalStyle() {\n const top = 40;\n const left = 45;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`,\n };\n}\n\nconst useStyles = makeStyles((theme) => ({\n stars: {\n width: 300,\n display: \"flex\",\n alignItems: \"center\",\n marginLeft: \"30%\",\n },\n paper: {\n position: \"absolute\",\n width: 600,\n height: 350,\n background: \"#fff\",\n outline: \"none\",\n // border: \"2px solid #000\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n [theme.breakpoints.down(\"sm\")]: {\n width: 320,\n },\n },\n modal: {\n background: \"rgba(32, 28, 27, 0.8)\",\n },\n ratingImg: {\n width: 300,\n height: 200,\n marginLeft: \"100px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-15px\",\n width: 300,\n },\n },\n paragraph: {\n fontSize: \"15px\",\n fontFamily: \"century gothic\",\n marginLeft: \"60px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n label: {\n display: \"block\",\n fontSize: \"30px\",\n },\n icon: {\n fontSize: \"50px\",\n },\n}));\n\nconst labels = {\n 1: \"Very poor\",\n 2: \"Poor\",\n 3: \"Good\",\n 4: \"Very good\",\n 5: \"Excellent\",\n};\n\nexport default function RatingModal({ openModal, onChange, handleClose }) {\n const classes = useStyles();\n const [modalStyle] = React.useState(getModalStyle);\n const [open, setOpen] = React.useState(false);\n const [value, setValue] = React.useState(0);\n const [hover, setHover] = React.useState(-1);\n\n const body = (\n
\n
\n \n

\n Please rate the satisfaction derived using our platform\n

\n
\n {\n // handleClose(newValue);\n }}\n onChangeActive={(event, newHover) => {\n setHover(newHover);\n }}\n />\n {value !== null && (\n {labels[hover !== -1 ? hover : value]}\n )}\n
\n
\n
\n \n
\n
\n );\n\n return (\n
\n \n {body}\n \n
\n );\n}\n","import React, { useContext } from \"react\";\nimport {\n Grid,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport { useHistory } from \"react-router\";\nimport configuration from \"../../config\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { Link } from \"react-router-dom\";\nimport queryString from \"query-string\";\n// import PrintModal from \"../../components/modal/print-modal\";\nimport PrintReceiptModal from \"./print-receipt-modal\";\n// import Rating from \"./rating\";\nimport { useEffect } from \"react\";\nimport { ProductContext } from \"../../context/product-context\";\nimport Spinner from \"../../components/spinner\";\nimport { convertUrl, splitResponse } from \"../../helpers\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport RatingModal from \"./rating\";\nimport { alertConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paperForm: {\n boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n borderRadius: \"5px\",\n marginTop: \"-50px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n height: \"430px\",\n overflowY: \"scroll\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n // fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"century gothic\",\n color: \"#006D01\",\n fontSize: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n // previewMain: {\n // maxHeight: \"270px\",\n // overflowY: \"scroll\",\n // \"&::-webkit-scrollbar\": {\n // width: \"10px\",\n // background: \"#fff\",\n // width: \"10px\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-track\": {\n // boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-thumb\": {\n // borderRadius: \"5px\",\n // background: \"green\",\n // },\n // },\n typographyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n yourInfo: {\n fontSize: \"14px\",\n textAlign: \"left\",\n marginTop: \"0px\",\n // marginLeft: \"50px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"0px\",\n },\n },\n paper2: {\n boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n borderRadius: \"5px\",\n marginTop: \"5px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"10px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n paragraph: {\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n}));\n\nexport default function Notification() {\n const classes = useStyles();\n const { dispatch } = useContext(AlertContext);\n const history = useHistory();\n const {\n loadingNotification,\n notifyBillers,\n notifyBillerResponse,\n rateTransactions,\n } = useContext(ProductContext);\n\n const [open, setOpen] = React.useState(true);\n\n\n const onChange = (props) => {\n rating(props.target.value);\n setOpen(false);\n };\n\n const handleClose = (props) => {\n setOpen(false);\n };\n\n const rating = (rate) => {\n let _req = {\n UserId: notifyBillerResponse.EmailAddress,\n Rating: rate,\n Comment: \"\",\n TransactionId: notifyBillerResponse.Id,\n BillerCode: notifyBillerResponse.BillerCode,\n Channel: \"Web\",\n };\n dispatch({\n type: alertConstants.SUCCESS,\n message: \"Thank you for your feedback\",\n });\n rateTransactions(_req);\n };\n\n useEffect(() => {\n const params = queryString.parse(window.location.search);\n let tranId = params[\"transaction-id\"];\n if (typeof tranId !== \"undefined\" && tranId !== \"\") {\n const arr = tranId.split(\"-\");\n const _req = {\n PaymentMethodString: configuration.paymentMethod,\n TranId: arr.length === 1 ? arr[0] : arr[1],\n };\n notifyBillers(_req);\n }\n }, []);\n\n return (\n
\n {!!loadingNotification && loadingNotification ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n {notifyBillerResponse.TransactionStatus}\n \n \n \n {notifyBillerResponse.TransactionDescription}\n \n \n \n \n \n Order Status\n \n \n {notifyBillerResponse.OrderStatus}\n \n \n \n \n \n Status Description\n \n \n \n {splitResponse(notifyBillerResponse.OrderDetails)}\n \n \n \n \n \n \n Order Number\n \n \n {notifyBillerResponse.OrderNumber}\n \n \n \n \n \n Order Amount\n \n \n {notifyBillerResponse.OrderAmount}\n \n \n \n \n \n Convenience Fee\n \n \n {notifyBillerResponse.Fee}\n \n \n \n \n \n Order Date\n \n \n {notifyBillerResponse.OrderDate}\n \n \n \n {!!notifyBillerResponse.ReceiptItems &&\n notifyBillerResponse.ReceiptItems.map((row) => {\n return (\n <>\n \n \n {row.Label}\n \n \n \n {splitResponse(row.Value)}\n \n \n \n \n \n );\n })}\n \n\n \n {/* */}\n \n \n \n \n \n \n \n
\n

\n Carry out{\" \"}\n \n {\" \"}\n another transaction\n {\" \"}\n or go{\" \"}\n \n Back to home\n \n

\n
\n
\n \n \n For any enquiries please contact: info@xpresspayments.com\n \n \n
\n
\n \n )}\n
\n );\n}\n","import React, { useContext, useEffect } from \"react\";\nimport { UserContext } from \"../../context/user-context\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Redirect, useHistory } from \"react-router-dom\";\nconst LogOut = () => {\n const history = useHistory();\n const { logout } = useContext(UserContext);\n\n const logoutUser = () => {\n logout(history);\n };\n\n return
;\n};\n\nexport default LogOut;\n","import React from \"react\";\nimport { theme } from \"../theme\";\nimport Spinner from \"../components/spinner\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport { ThemeProvider } from \"@material-ui/core\";\n\nimport XPay from \"npm_xpresspay\";\n\nconst styles = (theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n height: \"500px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n // width: '450px',\n width: \"700px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n});\n\nclass GateWay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n };\n }\n\n componentDidMount() {\n const { parameters } = this.props;\n const _this = this;\n try {\n XPay.InitialisePayment({\n amount: parameters.TotalAmount,\n transactionId: parameters.TransactionId,\n email: parameters.Email,\n publicKey: parameters.PublicKey,\n currency: \"NGN\",\n mode: \"Live\",\n callbackUrl: `${parameters.CallBackUrl}?transaction-id=${parameters.TransactionId}`,\n productId: parameters.ProductId,\n productDescription: parameters.ProductName,\n metadata: [\n {\n name: \"Product Category Code\",\n value: parameters.categoryCode,\n },\n ],\n }).then((response) => {\n if (response.success) {\n window.location.href = response.data?.authorizeUrl;\n } else {\n window.location.href = response.data?.authorizeUrl;\n _this.setState({\n loading: false,\n });\n }\n });\n } catch (error) {\n //handle error\n _this.setState({\n loading: false,\n });\n console.log(\"first\", error);\n }\n }\n render() {\n const { loading } = this.state;\n\n return (\n <>\n
\n \n
\n {loading && }\n \n );\n }\n}\nexport default withStyles(styles, {\n withTheme: true,\n})(GateWay);\n","import React, { useState, useContext,useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { Link } from \"react-router-dom\";\nimport {\n Grid,\n TextField,\n Paper,\n Typography,\n ThemeProvider,\n} from \"@material-ui/core\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { MdReportProblem } from \"react-icons/md\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { productConstants } from \"../../_constants\";\nimport { MdArrowBack } from \"react-icons/md\";\nimport { alertConstants } from \"../../_constants\";\nimport { uploadFile, logTransaction,fetchProviders } from \"../../_actions/bulk-upload.actions\";\nimport { UserContext } from \"../../context/user-context\";\nimport GateWay from \"../../components/gate-way\";\nimport Spinner from \"../../components/spinner\";\nimport { AlertContext } from \"../../context/alert-context\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"10px\",\n padding: \"40px\",\n maxHeight: \"450px\",\n overflow: \"scroll\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n borderRadius: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"green\",\n borderRadius: \"10px\",\n },\n },\n paperForm1: {\n marginTop: \"0px\",\n padding: \"10px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"0px\",\n marginTop: \"5px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n marginLeft: \"-30px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n tableContent: {\n \"&:nth-of-type(even)\": {\n backgroundColor: \"rgba(196, 196, 196, 0.2)\",\n },\n },\n downloadLink: {\n fontFamily: \"Montserrat\",\n color: \"#FF6C00\",\n fontWeight: 700,\n textDecoration: \"underline\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n caveat: {\n background: \"#ffa000\",\n padding: \"10px\",\n color: \"white\",\n borderRadius: \"3px\",\n boxShadow: \"0 0px 8px rgba(0,0,0,0.1), 0 1px 10px rgba(0,0,0,0.1)\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"11px\",\n },\n },\n textField: {\n width: \"90%\",\n },\n button: {\n display: \"flex\",\n marginTop: \"20px\",\n marginRight: \"0px\",\n marginBottom: \"15px\",\n float: \"right\",\n },\n total: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"86%\",\n marginTop: \"10px\",\n paddingLeft: \"20px\",\n fontFamily: \"Montserrat\",\n },\n}));\n\nconst template = \"/resources/BulkUploadTemplate.xlsx\";\n\nconst BulkUploadForm = ({ ...props }) => {\n const { loggedIn, user } = useContext(UserContext);\n const pathUrl = decodeURI(window.location.pathname);\n const billerCode = decodeURI(pathUrl.split(\"/\")[2]);\n const { dispatch } = useContext(AlertContext);\n const classes = useStyles();\n\n let _values = {};\n if (!!loggedIn && user) {\n _values = {\n ..._values,\n email: user.ConsumerID,\n };\n }\n const [state, setState] = useState({\n loading: false,\n tranId: null,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n values: _values,\n providers: [],\n billerCode: billerCode,\n parameters: null,\n });\n\n useEffect(() => {\n handleFetchProviders()\n }, []);\n\n const [fileUpload, setFileUpload] = useState(null);\n\n const validationsSchema = Yup.object().shape({\n narration: Yup.string(\"Enter your narration\")\n .typeError(\"Enter your narration\")\n .required(\"Narration is Required\"),\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n file: Yup.string(\"Select file\")\n .typeError(\"Select file\")\n .required(\"File is Required\"),\n });\n\n const change = (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n };\n\n const handleFileChange = async (e) => {\n if (!e.target.files) {\n return;\n }\n let file = e.target.files[0];\n setFileUpload(file);\n };\n\n const fileChange = async (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n await handleFileChange(e);\n setFieldTouched(name, true, false);\n };\n\n const handleFetchProviders = () => {\n setState({ ...state, loading: true });\n fetchProviders().then(response => {\n setState({\n ...state,\n loading: false,\n providers: response\n });\n }, error => {\n setState({\n ...state,\n loading: false,\n providers: []\n });\n })\n }\n\n const handleBack = () => {\n setState({\n ...state,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n });\n };\n const handleProceed = () => {\n setState({\n ...state,\n loading: true,\n });\n const { billerCode, values } = state;\n var _req = {\n BillerCode: billerCode,\n narration: values.narration,\n email: values.email,\n fileName: values.fileName,\n TotalAmount: values.totalAmount,\n TranId: values.TranId,\n };\n logTransaction(_req).then(\n (data) => {\n setState({\n ...state,\n loading: false,\n formStatus: productConstants.FORM_STATUS_CONFIRMED,\n parameters: data,\n });\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n };\n\n const {\n handleSubmit,\n handleChange,\n values,\n setFieldValue,\n isValid,\n setFieldTouched,\n setSubmitting,\n touched,\n errors,\n dirty,\n resetForm,\n } = useFormik({\n initialValues: {\n narration: \"\",\n email: state.values.email,\n file: \"\",\n },\n enableReinitialize: true,\n validationSchema: validationsSchema,\n onSubmit(values, { setSubmitting }) {\n if (values.narration && values.email) {\n let data = new FormData();\n // from state\n data.append(\"file\", fileUpload);\n data.append(\"email\", values.email);\n data.append(\"narration\", values.narration);\n data.append(\"billerCode\", billerCode);\n setState({\n ...state,\n loading: true,\n });\n uploadFile(data).then(\n (response) => {\n setState({\n ...state,\n loading: false,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n values: {\n ...values,\n bulkDetails: response.BulkDetails,\n message: response.Message,\n totalAmount: response.TotalAmount,\n fileName: response.fileName,\n TranId: response.TranId,\n },\n });\n resetForm({});\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n }\n },\n });\n\n return (\n
\n \n \n \n \n \n \n \n \n \n Bulk upload\n \n \n \n {state.loading && (\n <>\n {\" \"}\n {\" \"}\n \n )}\n {state.formStatus == productConstants.FORM_STATUS_INPUTTING && (\n <>\n \n \n

\n \n Before uploading with the downloadable template below, always\n refer to the list below for updated Provider Code, Product\n Code and Amount for Bulk Upload.\n

\n \n \n {\n e.preventDefault();\n window.open(`${template}`);\n }}\n className={classes.downloadLink}\n >\n

Click here to download Excel template

\n \n
\n
\n\n
\n \n \n change(\"narration\", e)}\n error={\n touched.narration ||\n (dirty.narration && Boolean(errors.narration))\n }\n helperText={touched.narration ? errors.narration : \"\"}\n />\n \n \n change(\"email\", e)}\n error={touched.email && Boolean(errors.email)}\n helperText={touched.email ? errors.email : \"\"}\n />\n \n \n fileChange(\"file\", e)}\n helperText={touched.file ? errors.file : \"\"}\n />\n \n \n \n \n \n \n \n \n \n \n \n ProviderName\n \n \n ProviderCode\n \n \n Product\n \n \n Amount\n \n \n \n {!!state.providers && state.providers.length > 0 && state.providers.map(\n (\n { ProviderName, ProviderCode, Product, Amount },\n index\n ) => {\n return (\n \n \n \n {ProviderName}\n \n \n {ProviderCode}\n \n \n {Product}\n \n \n {Amount}\n \n \n \n );\n }\n )}\n\n
\n
\n
\n
\n \n )}\n\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMING && (\n <>\n \n
\n UPLOAD PREVIEW\n
\n \n \n \n \n \n S/N\n \n \n Subscriber Number\n \n \n Provider\n \n \n Product\n \n \n Amount\n \n \n \n {state.values.bulkDetails.map(\n (\n { Id, SubscriberNo, Provider, Product, Amount },\n index\n ) => {\n return (\n \n \n \n {index + 1}\n \n \n {SubscriberNo}\n \n \n {Provider}\n \n \n {Product}\n \n \n {Amount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n })}\n \n \n \n );\n }\n )}\n
\n
\n
Total
\n

\n {state.values.totalAmount.toLocaleString(\n navigator.language,\n {\n minimumFractionDigits: 2,\n }\n )}\n

\n
\n
\n
\n }\n action={handleBack}\n />\n \n
\n
{\" \"}\n \n )}\n\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMED && (\n <>\n \n \n )}\n
\n
\n );\n};\n\nexport default BulkUploadForm;\n","import configuration from \"../config\";\n\nimport {\n alertActions\n} from \".\";\nimport {\n handleResponse\n} from \"../helpers\";\nimport {\n authHeader\n} from \"../_helpers\";\n\nexport const fetchProviders = () => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n };\n var _url = `${configuration.apiUrl}/BulkUpload/Providers`;\n return fetch(_url, requestOptions)\n .then(handleResponse)\n};\nexport const notifyBiller = (_req) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/BulkUpload/NotifyBiller`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n};\nexport const fetchTransaction = (id, success, failure) => (dispatch) => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n };\n fetch(\n `${configuration.apiUrl}/Events/FetchTransactionValues?TranId=${id}`,\n requestOptions\n )\n .then(handleResponse)\n .then(\n (resp) => {\n if (!!success) {\n success(resp);\n }\n },\n (error) => {\n dispatch(alertActions.error(error.toString()));\n if (!!failure) {\n failure();\n }\n }\n );\n};\n\nexport const uploadFile = (data) => {\n const requestOptions = {\n method: \"POST\",\n body: data,\n };\n var _url = `${configuration.apiUrl}/BulkUpload/Upload`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n\nexport const logTransaction = (_req) => {\n const requestOptions = {\n method: \"POST\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(_req),\n };\n var _url = `${configuration.apiUrl}/BulkUpload/LogTransaction`;\n return fetch(_url, requestOptions)\n .then(handleResponse)\n};\nexport const fetchTransactions = (paymentReference, _success, _failure) => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n };\n let _url = `${configuration.apiUrl}/BulkUpload/GetBulkUploadTransactions?PaymentReference=${paymentReference}`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n};\nexport const repostTransaction = (transactionId) => {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...authHeader(),\n \"Content-Type\": \"application/json\"\n },\n };\n let _url = `${configuration.apiUrl}/BulkUpload/RepostTransaction?transactionId=${transactionId}`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n};","import configuration from \"../config\";\nimport { alertActions } from \".\";\nimport { handleResponse } from \"../helpers\";\nimport { authHeader } from \"../_helpers\";\n\nexport const fetchEvents = () => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n var _url = `${configuration.apiUrl}/Events`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\nexport const logTransaction = (_req) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/Events/LogTransaction`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\nexport const notifyBiller = (_req) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/Events/NotifyBiller`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\nexport const fetchTransaction = (id, success, failure) => (dispatch) => {\n const requestOptions = {\n method: \"GET\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n };\n return fetch(\n `${configuration.apiUrl}/Events/FetchTransactionValues?TranId=${id}`,\n requestOptions\n ).then(handleResponse);\n};\nexport const getTotalAmount = (_req) => {\n const req = {\n requestData: _req,\n };\n const requestOptions = {\n method: \"POST\",\n headers: { ...authHeader(), \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req),\n };\n var _url = `${configuration.apiUrl}/Events/GetTotalAmount`;\n return fetch(_url, requestOptions).then(handleResponse);\n};\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { useEffect } from \"react\";\nimport { formatDate } from \"../../helpers\";\nimport { productConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"750px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n textTransform: \"uppercase\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n summary: {\n height: \"235px\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n paddingRight: \"5px\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.2)\",\n marginLeft: \"5px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n borderRadius: \"3px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n}));\n\nconst TicketSummary = (props) => {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n\n const { event, values, handleProdceed, products, billerCode } = props;\n const [state, setState] = useState({\n items: [],\n reviewValues: [],\n });\n var items = [];\n var reviewValues = [];\n const setReviewValue = (name, value) => {\n reviewValues = {\n ...reviewValues,\n [name]: value,\n };\n };\n\n const getFee = (amount, billerCode) => {\n var fee = 0;\n let product = products.find((p) => p.BillerCode === billerCode);\n if (product) {\n switch (product.ChargeType) {\n case productConstants.CHARGE_TYPE_FIXED:\n fee = product.Charge;\n break;\n case productConstants.CHARGE_TYPE_PERCENTAGE:\n fee = (product.Charge * amount) / 100;\n break;\n default:\n break;\n }\n }\n return fee;\n };\n useEffect(() => {\n var convFee = 0,\n totalAmount = 0,\n _item = {};\n //Title\n _item = {\n name: \"Title\",\n value: event.title,\n };\n items.push(_item);\n setReviewValue(\"title\", event.title);\n\n //Name\n _item = {\n name: \"Name\",\n value: values.fullName,\n };\n items.push(_item);\n setReviewValue(\"name\", values.fullName);\n\n //Email\n _item = {\n name: \"Email\",\n value: values.email,\n };\n items.push(_item);\n setReviewValue(\"email\", values.email);\n\n //Phone Number\n _item = {\n name: \"Phone Number\",\n value: values.phone,\n };\n items.push(_item);\n setReviewValue(\"phone\", values.phone);\n\n //Venue\n let _class = event.ticketClassses.find((t) => t.classid === values.ticket);\n _item = {\n name: \"Venue\",\n value: _class.venue,\n };\n items.push(_item);\n setReviewValue(\"Venue\", _class.venue);\n\n //Date/Time\n _item = {\n name: \"Date/Time\",\n value: formatDate(event.date, \"LLLL\"),\n };\n items.push(_item);\n setReviewValue(\"date\", event.date);\n\n //Class\n _item = {\n name: \"Class\",\n value: _class.title,\n };\n items.push(_item);\n setReviewValue(\"classid\", values.ticket);\n\n //Quantity\n _item = {\n name: \"Quantity\",\n value: values.quantity,\n };\n items.push(_item);\n setReviewValue(\"qty\", values.quantity);\n\n //Amount\n let _amt = parseFloat(values.amount);\n convFee = getFee(_amt, billerCode);\n totalAmount = _amt + convFee;\n _item = {\n name: \"Amount\",\n value: _amt.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"amount\", _amt);\n\n //Convenience fee\n _item = {\n name: \"Convenience fee\",\n value: convFee.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"fee\", convFee);\n\n //Total Amount\n // _item = {\n // name: 'Total Amount',\n // value: totalAmount.toLocaleString(navigator.language, { minimumFractionDigits: 2 })\n // }\n // items.push(_item);\n setReviewValue(\"totalAmount\", totalAmount);\n\n setState({\n ...state,\n items: items,\n reviewValues: reviewValues,\n });\n }, []);\n\n const handleBack = () => {\n history.goBack();\n };\n const handleProceed = () => {\n const reviewValueObject = {\n reviewValues: state.reviewValues,\n };\n handleProdceed(reviewValueObject);\n };\n return (\n
\n \n \n \n \n \n \n \n \n \n {event.title}\n \n \n \n \n \n \n Order Summary\n \n
\n {state.items.map((row) => {\n return (\n <>\n \n \n {row.name}\n \n \n {row.value}\n \n \n \n \n );\n })}\n
\n {/*
\n \n \n Title\n \n \n Sinach Live Concert\n \n \n \n \n \n Name\n \n \n \n Sandra More\n \n \n \n \n \n \n Email\n \n \n \n text@email.com\n \n \n \n \n \n \n Phone Number\n \n \n 0801 2345 678\n \n \n \n \n \n Venue\n \n \n Eko Convention Centre\n \n \n \n \n \n Date/Time\n \n \n Sunday, October 18, 2020 5:00 PM\n \n \n \n \n \n Class\n \n \n Diamond Table\n \n \n \n \n \n Quantity\n \n \n 1\n \n \n \n \n \n Amount\n \n \n 3,022,000\n \n \n \n \n \n Convenience Fee\n \n \n 100.00\n \n \n \n
*/}\n\n \n }\n />\n \n \n \n
\n
\n
\n );\n};\n\nexport default TicketSummary;\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n Paper,\n ThemeProvider,\n Typography,\n MenuItem,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { validatePhone } from \"../../helpers\";\nimport { useEffect } from \"react\";\nimport { productConstants } from \"../../_constants\";\nimport { getTotalAmount } from \"../../_actions/event.actions\";\nimport TicketSummary from \"./event-ticket-summary\";\nimport Spinner from \"../../components/spinner\";\nimport { logTransaction } from \"../../_actions/event.actions\";\nimport GateWay from \"../../components/gate-way\";\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"20px\",\n padding: \"40px\",\n boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"10px\",\n width: \"90%\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"200px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-50px\",\n fontSize: \"15px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n buttonDiv: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n marginTop: \"20px\",\n width: \"250px\",\n },\n}));\n\nYup.addMethod(Yup.string, \"phone\", function (msg) {\n return validatePhone(this, msg);\n});\nconst validationSchema = Yup.object().shape({\n phone: Yup.string(\"Enter Your Phone Number\")\n .phone(\"Enter a Valid Number\")\n .typeError(\"Enter Your Phone Number\")\n .required(\"Phone Number is Required\"),\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n fullName: Yup.string(\"Enter Your Full Name\")\n .typeError(\"Enter Your Full Name\")\n .min(5, \"Your Full Name must be at least 5 Characters long\")\n .required(\"Full Name is Required\"),\n ticket: Yup.string(\"Select ticket type\")\n .typeError(\"Select ticket type\")\n .required(\"Select ticket type\"),\n amount: Yup.number(\"Enter valid amount\")\n .typeError(\"Enter valid amount\")\n .required(\"Amount is Required\"),\n quantity: Yup.number(\"Enter valid quantity\")\n .min(1, \"Quantity must be at least 1\")\n .typeError(\"Enter valid quantity\")\n .required(\"Quantity is Required\"),\n});\nconst EventTicketForm = (props) => {\n const {\n user,\n loggedIn,\n event,\n handleGoBack,\n handleStatus,\n formStatus,\n products,\n } = props;\n\n const history = useHistory();\n const classes = useStyles();\n\n const [state, setState] = useState({\n amount: \"\",\n TranId: \"\",\n gateWay: \"PayXpress\",\n event: event,\n values: \"\",\n billerCode: \"\",\n formStatus: formStatus,\n parameters: {},\n products: products,\n });\n\n const handleProceed = () => {\n history.push(\"/tickets/events/order-summary\");\n };\n useEffect(() => {\n const pathUrl = decodeURI(window.location.pathname);\n const billerCode = decodeURI(pathUrl.split(\"/\")[2]);\n const tranId = decodeURI(pathUrl.split(\"/\")[3]);\n let _values = {};\n // if (event) {\n // if (typeof tranId !== \"undefined\" && tranId !== \"\" && values) {\n // //alert(tranId);\n // setState({\n // ...state,\n // TranId: tranId,\n // });\n // _values = values;\n // } else \n \n if (event.ticketClassses && event.ticketClassses.length > 0) {\n let _class = event.ticketClassses[0];\n _values = {\n quantity: 1,\n ticket: _class.classid,\n venue: _class.venue,\n amount: _class.price,\n price: _class.price,\n };\n }\n // }\n if (!!loggedIn && user) {\n _values = {\n ..._values,\n email: user.ConsumerID,\n phone: user.PhoneNumber,\n fullName: `${user.Firstname} ${user.Surname}`,\n };\n }\n\n setState({\n ...state,\n loading: false,\n values: _values,\n billerCode: billerCode,\n });\n }, [event]);\n const {\n handleSubmit,\n handleChange,\n setFieldValue,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n amountRef,\n } = useFormik({\n initialValues: {\n ...state.values,\n },\n enableReinitialize: true,\n validationSchema: validationSchema,\n onSubmit(values) {\n setState({\n ...state,\n values: values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n },\n });\n\n const getAmt = (_values) => {\n const { values, billerCode } = state;\n let _amount = \"\";\n const _val = _values ? _values : values;\n if (_val.price && _val.quantity) {\n _amount = parseFloat(_val.price) * parseFloat(_val.quantity);\n }\n if (_amount > 0) {\n setState({\n ...state,\n loading: true,\n });\n let ProductId = 0;\n const product = products.find((p) => p.BillerCode === billerCode);\n if (product) ProductId = product.Id;\n let _req = {\n TotalAmount: _amount,\n ProductId: ProductId,\n };\n getTotalAmount(_req).then(\n (response) => {\n if (response && !isNaN(response)) {\n _amount = response;\n }\n setState({\n ...state,\n values: {\n ...values,\n ..._val,\n amount: _amount,\n },\n });\n },\n (error) => {\n setState({\n // loading: false,\n });\n }\n );\n }\n };\n\n const handleProdceed = (reviewValueObject) => {\n const { tranId, gateWay, billerCode, values } = state;\n\n var _req = {\n TranId: tranId,\n PaymentMode: gateWay,\n BillerCode: billerCode,\n ...reviewValueObject.reviewValues,\n };\n logTransaction(_req).then(\n (response) => {\n setState({\n ...state,\n parameters: response,\n formStatus: productConstants.FORM_STATUS_CONFIRMED,\n });\n },\n (error) => {}\n );\n };\n\n const change = async (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n await handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n };\n\n // const onTicketChange = async (name, e) => {\n // e.target.name = name;\n // setFieldValue(name, e.target.value);\n // await handleChange(name, e.target.value);\n // setFieldTouched(name, true, false);\n\n // const price = e._targetInst.pendingProps[\"data-price\"];\n // const venue = e._targetInst.pendingProps[\"data-venue\"];\n // setFieldValue(\"price\", price);\n // setFieldValue(\"venue\", venue);\n // await handleChange(\"price\", price);\n // await handleChange(\"venue\", venue);\n // getAmt();\n // };\n\n const onTicketChange = async (name, e) => {\n e.target.name = name;\n let _values = state.values;\n setFieldValue(name, e.target.value);\n await handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n\n const price = e._targetInst.pendingProps[\"data-price\"];\n const venue = e._targetInst.pendingProps[\"data-venue\"];\n setFieldValue(\"price\", price);\n setFieldValue(\"venue\", venue);\n await handleChange(\"price\", price);\n await handleChange(\"venue\", venue);\n _values = {\n ..._values,\n [name]: e.target.value,\n price: price,\n };\n setState(\n {\n ...state,\n values: _values,\n price: price,\n },\n getAmt(_values)\n );\n };\n\n const onQtyChange = async (name, e) => {\n e.target.name = name;\n let _values = state.values;\n _values = {\n ..._values,\n [name]: e.target.value,\n };\n\n setFieldValue(name, e.target.value);\n await handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n setState(\n {\n ...state,\n values: _values,\n },\n getAmt(_values)\n );\n };\n return (\n <>\n {state.loading && (\n \n \n \n )}\n {event && state.formStatus === productConstants.FORM_STATUS_INPUTTING && (\n
\n \n \n \n \n \n \n \n \n \n {event.title}\n \n \n \n \n \n
\n \n \n change(\"fullName\", e)}\n margin=\"normal\"\n value={values.fullName}\n />\n \n \n change(\"email\", e)}\n margin=\"normal\"\n value={values.email}\n />\n \n \n change(\"phone\", e)}\n margin=\"normal\"\n />\n \n \n onTicketChange(\"ticket\", e)}\n SelectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: { paper: classes.dropdownStyle },\n },\n }}\n margin=\"normal\"\n >\n {event.ticketClassses.map((option) => (\n \n {option.title}\n \n ))}\n \n \n \n onQtyChange(\"quantity\", e)}\n margin=\"normal\"\n />\n \n \n change(\"amount\", e)}\n margin=\"normal\"\n autoComplete=\"off\"\n />\n \n \n
\n }\n action={(e) => {\n e.preventDefault();\n handleGoBack();\n }}\n />\n \n
\n
\n \n \n
\n
\n
\n
\n )}\n {event &&\n state.formStatus === productConstants.FORM_STATUS_CONFIRMING && (\n \n )}\n\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMED && (\n <>\n \n \n )}\n \n );\n};\n\nexport default EventTicketForm;\n","import React, { useEffect, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { MdMap, MdInfo } from \"react-icons/md\";\nimport { alertConstants } from '../../_constants';\nimport {\n Grid,\n Paper,\n Typography,\n Link,\n Card,\n CardContent,\n CardActionArea,\n ThemeProvider,\n TextField,\n CardActions,\n Button,\n CardMedia,\n} from \"@material-ui/core\";\nimport CTA from \"../../components/button/cta-button\";\n// import EventDetails from \"./event-details\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router\";\nimport Modal from \"@material-ui/core/Modal\";\nimport { fetchEvents } from \"../../_actions/event.actions\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { UserContext } from \"../../context/user-context\";\nimport Spinner from \"../../components/spinner\";\nimport EventTicketForm from \"./event-ticket-form\";\nimport { ProductContext } from \"../../context/product-context\";\nimport { productConstants } from \"../../_constants\";\nimport { getMonthName, truncate } from \"../../helpers\";\n\nconst useStyles = makeStyles((theme) => ({\n containerDiv: {\n marginTop: \"-20px\",\n },\n paper: {\n position: \"fixed\",\n transform: \"translate(50%,10%)\",\n width: 700,\n height: \"80vh\",\n overflowY: \"auto\",\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"#fff\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 380,\n left: \"-48%\",\n top: \"2%\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n width: 310,\n left: \"-51%\",\n top: \"2%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n [theme.breakpoints.up(\"lg\")]: {\n // marginTop:'100%'\n },\n // marginTop:'-5%'\n },\n\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n },\n card: {\n borderRadius: \"5px 5px 0px 0px\",\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n height: \"380px\",\n maxHeight: \"400px\",\n },\n cardImg: {\n height: \"230px\",\n borderRadius: \"5px 5px 0px 0px\",\n },\n title: {\n fontFamily: \"Montserrat\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"12px\",\n lineHeight: \"15px\",\n color: \"#FF6C00\",\n textTransform: \"uppercase\",\n },\n typography: {\n fontSize: \"11px\",\n fontFamily: \"Montserrat\",\n\n // color: \"rgba(0,0,0,0.6)\",\n },\n bookTicketBtn: {\n width: \"100%\",\n background: \"#FF6C00\",\n margin: \"0px\",\n color: \"#fff\",\n height: \"20px\",\n fontFamily: \"Montserrat\",\n borderRadius: \"0px\",\n textTransform: \"uppercase\",\n transition: \"all 0.35s ease-in-out\",\n \"&:hover\": {\n background: \"#fff\",\n color: \"#000\",\n },\n \"&:focus\": {\n outline: \"none\",\n },\n },\n Img: {\n height: \"400px\",\n borderRadius: \"5px 5px 0px 0px\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n height: \"250px\",\n },\n },\n modal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: \"red !important\",\n },\n paper2: {\n backgroundColor: theme.palette.background.paper,\n border: \"2px solid #000\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n paper3: {\n width: 700,\n },\n eventModal: {\n width: \"700px\",\n background: \"none\",\n\n position: \"absolute\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: \"290px\",\n left: \"20%\",\n top: \"20%\",\n zIndex: 100,\n },\n },\n eventTitle: {\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontFamily: \"Montserrat\",\n\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"13px\",\n },\n },\n events: {\n marginTop: \"10px\",\n maxHeight: \"430px\",\n width: \"100%\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.6)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n eventDescription: {\n height: \"350px\",\n overflowY: \"auto\",\n fontFamily: \"century gothic\",\n fontSize: \"12px\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.2)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n borderRadius: \"3px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n}));\n\nexport default function Events() {\n const classes = useStyles();\n const history = useHistory();\n const [open, setOpen] = React.useState(false);\n const { dispatch } = useContext(AlertContext);\n const { loggedIn, user } = useContext(UserContext);\n const { products } = useContext(ProductContext);\n const [state, setState] = React.useState({\n events: [],\n event: {},\n showView: \"EVENT_LIST\",\n loading: true,\n products: products,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n });\n const handleProceed = () => {\n history.push(`/tickets/events/book-ticket`);\n };\n const handleOpen = (event) => {\n setState({\n ...state,\n event: event,\n });\n setOpen(true);\n };\n\n const hanadleEventForm = (event) => {\n setState({\n ...state,\n event: event,\n user: user,\n loggedIn: loggedIn,\n showView: \"EVENT_FORM\",\n });\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleGoBack = () => {\n setState({\n ...state,\n showView: \"EVENT_LIST\",\n loading: false,\n });\n };\n const handleStatus = (formvalues) => {};\n\n useEffect(() => {\n setState({\n ...state,\n products: products,\n });\n }, [products]);\n\n useEffect(() => {\n fetchEvents().then((data) => {\n setState(\n {\n ...state,\n events: data,\n loading: false,\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n });\n }, [fetchEvents]);\n\n return (\n <>\n
\n \n {state.loading ||\n (products.length === 0 && (\n \n ))}\n {state.showView == \"EVENT_LIST\" && (\n <>\n \n \n \n \n \n \n \n \n Events\n \n \n \n {/* { id, title, image, url, description, location, date, venue } */}\n
\n \n {state.events.map((props) => {\n return (\n <>\n \n \n \n \n
\n {truncate(`${props.title}`, 27, \"...\")}\n
\n \n {\" \"}\n {truncate(\n `${props.ticketClassses[0].venue}`,\n 62,\n \"...\"\n )}\n \n \n {\" \"}\n handleOpen(props)}\n style={{\n fontSize: \"11px\",\n textTransform: \"capitalize\",\n fontWeight: \"normal\",\n textDecoration: \"underline\",\n marginLeft: \"-10px\",\n marginBottom: \"0px\",\n }}\n />\n \n
\n \n hanadleEventForm(props)}\n >\n Book Ticket\n \n \n
\n
\n \n );\n })}\n {open && (\n \n
\n

\n {state.event.title}\n

\n \n \n \n
\n hanadleEventForm(state.event)}\n text=\"Buy Ticket\"\n style={{\n fontSize: \"12px\",\n marginTop: \"10px\",\n }}\n />{\" \"}\n \n
\n
\n \n
\n

\n Date: {state.event.date}\n

\n

\n Venue: \n {state.event.ticketClassses[0].venue}\n

\n

\n {\" \"}\n {state.event.title} \n {state.event.description}\n

\n
\n
\n
\n
\n \n )}\n
\n
\n \n )}\n
\n
\n {state.showView == \"EVENT_FORM\" && (\n \n )}\n \n );\n}\n","import configuration from '../config';\n\nimport { alertActions } from '.';\nimport { handleResponse } from '../helpers';\nimport { authHeader } from '../_helpers';\n\nexport const fetchMovies = () => {\n const requestOptions = {\n method: 'GET',\n headers: { ...authHeader(), 'Content-Type': 'application/json' }\n };\n var _url = `${configuration.apiUrl}/Movies`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n}\nexport const logTransaction = (_req) => {\n const req = {\n requestData: _req\n }\n const requestOptions = {\n method: 'POST',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify(req)\n };\n var _url = `${configuration.apiUrl}/Movies/LogTransaction`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n}\nexport const notifyBiller = (_req) => {\n const req = {\n requestData: _req\n }\n const requestOptions = {\n method: 'POST',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify(req)\n };\n var _url = `${configuration.apiUrl}/Movies/NotifyBiller`;\n return fetch(_url, requestOptions)\n .then(handleResponse);\n}\nexport const fetchTransaction = (id, success, failure) => dispatch => {\n const requestOptions = {\n method: 'GET',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n };\n fetch(`${configuration.apiUrl}/Movies/FetchTransactionValues?TranId=${id}`, requestOptions)\n .then(handleResponse)\n .then(\n resp => {\n if (!!success) {\n success(resp);\n }\n },\n error => {\n dispatch(alertActions.error(error.toString()));\n if (!!failure) {\n failure();\n }\n }\n );\n}\nexport const fetchShowtimes = (movieId, cinemaId) => {\n const requestOptions = {\n method: 'GET',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n };\n return fetch(`${configuration.apiUrl}/Movies/GetShowtimes?movieid=${movieId}&cinemaid=${cinemaId}`, requestOptions)\n .then(handleResponse);\n}","import React, { useState, useEffect } from \"react\";\nimport {\n Grid,\n TextField,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { productConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"750px\",\n height: \"450px\",\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n textTransform: \"uppercase\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n summary: {\n height: \"235px\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n paddingRight: \"5px\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.2)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n borderRadius: \"3px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n}));\n\nconst MovieTicketSummary = (props) => {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const {\n movie,\n values,\n allShowTimes,\n handleProdceed,\n products,\n billerCode,\n } = props;\n\n const [state, setState] = useState({\n items: [],\n reviewValues: [],\n });\n // let _cinema;\n // let showtime;\n let items = [];\n let reviewValues = [];\n useEffect(() => {\n let convFee = 0,\n totalAmount = 0,\n _item = {};\n //Title\n _item = {\n name: \"Title\",\n value: movie.title,\n };\n items.push(_item);\n setReviewValue(\"title\", movie.title);\n\n //Name\n _item = {\n name: \"Name\",\n value: values.fullName,\n };\n items.push(_item);\n setReviewValue(\"name\", values.fullName);\n\n //Email\n _item = {\n name: \"Email\",\n value: values.email,\n };\n items.push(_item);\n setReviewValue(\"email\", values.email);\n\n //Phone Number\n _item = {\n name: \"Phone Number\",\n value: values.phone,\n };\n items.push(_item);\n setReviewValue(\"phone\", values.phone);\n\n //Cinema\n let _cinema = movie.cinemas.find((t) => t.uid === values.cinema);\n _item = {\n name: \"Cinema\",\n value: _cinema.name,\n };\n items.push(_item);\n setReviewValue(\"cinema\", _cinema.name);\n\n //Day\n _item = {\n name: \"Day\",\n value: values.day,\n };\n items.push(_item);\n setReviewValue(\"day\", values.day);\n\n //Date and Time\n let showtime = allShowTimes.find((a) => a.id === values.showtimeid);\n _item = {\n name: \"Date and Time\",\n value: showtime.date,\n };\n items.push(_item);\n setReviewValue(\"showtimeid\", values.showtimeid);\n\n //Number of Adults\n _item = {\n name: \"Number of Adults\",\n value: values.adult,\n };\n items.push(_item);\n setReviewValue(\"adult\", values.adult);\n\n //Number of Children\n let _value =\n values.children === null || values.children === \"\"\n ? \"0\"\n : values.children;\n _item = {\n name: \"Number of Children\",\n value: _value,\n };\n items.push(_item);\n setReviewValue(\"children\", _value);\n\n //Number of Students\n _value =\n values.student === null || values.student === \"\" ? \"0\" : values.student;\n _item = {\n name: \"Number of Students\",\n value: _value,\n };\n items.push(_item);\n setReviewValue(\"student\", _value);\n\n //Amount\n let _amt = parseFloat(values.amount);\n convFee = getFee(_amt, billerCode);\n totalAmount = _amt + convFee;\n _item = {\n name: \"Amount\",\n value: _amt.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"amount\", _amt);\n\n //Convenience fee\n _item = {\n name: \"Convenience fee\",\n value: convFee.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"fee\", convFee);\n\n setReviewValue(\"totalAmount\", totalAmount);\n\n setState({\n items: items,\n reviewValues: reviewValues,\n });\n }, []);\n\n const handleBack = () => {\n history.goBack();\n };\n const handleProceed = () => {\n handleProdceed();\n };\n const getFee = (amount, billerCode) => {\n var fee = 0;\n let product = products.find((p) => p.BillerCode === billerCode);\n if (product) {\n switch (product.ChargeType) {\n case productConstants.CHARGE_TYPE_FIXED:\n fee = product.Charge;\n break;\n case productConstants.CHARGE_TYPE_PERCENTAGE:\n fee = (product.Charge * amount) / 100;\n break;\n default:\n break;\n }\n }\n return fee;\n };\n const setReviewValue = (name, value) => {\n reviewValues = {\n ...reviewValues,\n [name]: value,\n };\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n {movie.title}\n \n \n \n \n \n \n Order Summary\n \n
\n {state.items.map((row) => {\n return (\n <>\n \n \n {row.name}\n \n \n {row.value}\n \n \n \n \n );\n })}\n {/* \n \n Name\n \n \n \n {values.fullName}\n \n \n \n \n \n \n Email\n \n \n \n {values.email}\n \n \n \n \n \n \n Phone Number\n \n \n {values.phone}\n \n \n \n \n \n Cinema\n \n \n {_cinema}\n \n \n \n \n \n Date/Time\n \n \n {showtime}\n \n \n \n \n \n Number of Adults\n \n \n {values.adult}\n \n \n \n \n \n Number of Children\n \n \n {values.children}\n \n \n \n \n \n Number of Students\n \n \n {values.student}\n \n \n \n \n \n Amount\n \n \n {values.amount}\n \n \n \n \n \n Convenience Fee\n \n \n {values.amount}\n \n \n */}\n
\n\n \n }\n />\n \n \n \n
\n
\n
\n );\n};\n\nexport default MovieTicketSummary;\n","import React, { useState, useContext } from \"react\";\nimport {\n Grid,\n TextField,\n Paper,\n ThemeProvider,\n Typography,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport { AccountBox, Money, Email, Phone, ListAlt } from \"@material-ui/icons\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport * as Yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport { logTransaction, fetchShowtimes } from \"../../_actions/movie.actions\";\nimport { getTotalAmount } from \"../../_actions/event.actions\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { alertConstants, productConstants } from \"../../_constants\";\nimport { ProductContext } from \"../../context/product-context\";\nimport { useEffect } from \"react\";\nimport { validatePhone } from \"../../helpers\";\nimport MovieTicketSummary from \"./movie-ticket-summary\";\nimport GateWay from \"../../components/gate-way\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"20px\",\n padding: \"40px\",\n height: \"410px\",\n overflowY: \"auto\",\n boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n borderRadius: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"green\",\n borderRadius: \"10px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"0px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"200px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-50px\",\n fontSize: \"15px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n buttonDiv: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n marginTop: \"5px\",\n width: \"250px\",\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n}));\n\nYup.addMethod(Yup.string, \"phone\", function (msg) {\n return validatePhone(this, msg);\n});\nconst validationSchema = Yup.object().shape({\n phone: Yup.string(\"Enter Your Phone Number\")\n .phone(\"Enter a Valid Number\")\n .typeError(\"Enter Your Phone Number\")\n .required(\"Phone Number is Required\"),\n email: Yup.string(\"Enter Your Email\")\n .email(\"Enter a Valid Email\")\n .typeError(\"Enter Your Email\")\n .required(\"Email is Required\"),\n fullName: Yup.string(\"Enter Your Full Name\")\n .typeError(\"Enter Your Full Name\")\n .min(5, \"Your Full Name must be at least 5 Characters long\")\n .required(\"Full Name is Required\"),\n cinema: Yup.string(\"Select cinema\")\n .typeError(\"Select cinema\")\n .required(\"Select cinema\"),\n day: Yup.string(\"Select day\").typeError(\"Select day\").required(\"Select day\"),\n showtimeid: Yup.string(\"Select date and time\")\n .typeError(\"Select date and time\")\n .required(\"Select date and time\"),\n amount: Yup.number(\"Enter valid amount\")\n .typeError(\"Enter valid amount\")\n .required(\"Amount is Required\"),\n adult: Yup.number(\"Enter valid number\")\n .min(1, \"value must be at least 1\")\n .required(\"Numbr of adult is required\"),\n});\nconst MovieTicketForm = (props) => {\n const { dispatch } = useContext(AlertContext);\n const { products } = useContext(ProductContext);\n const {\n user,\n loggedIn,\n movie,\n handleGoBack,\n handleStatus,\n formStatus,\n } = props;\n const [cinemas, setCinemas] = React.useState(\"--Select--\");\n\n const [state, setState] = useState({\n amount: \"\",\n TranId: \"\",\n showTimes: [],\n gateWay: \"PayXpress\",\n days: [],\n allShowTimes: [],\n movie: movie,\n values: \"\",\n billerCode: \"\",\n formStatus: formStatus,\n parameters: {},\n products: products,\n });\n\n useEffect(() => {\n const pathUrl = decodeURI(window.location.pathname);\n const billerCode = decodeURI(pathUrl.split(\"/\")[2]);\n if (movie) {\n _values = {\n cinema: \"\",\n adult: 1,\n children: 0,\n student: 0,\n fullName: loggedIn ? user.Firstname + \" \" + user.Surname : \"\",\n email: loggedIn ? user.ConsumerID : \"\",\n phone: loggedIn ? user.PhoneNumber : \"\",\n };\n\n setState({\n ...state,\n values: _values,\n billerCode: billerCode,\n });\n }\n }, [movie]);\n\n const history = useHistory();\n\n const classes = useStyles();\n\n const handleProceed = () => {\n history.push(\"/tickets/movie/order-summary\");\n };\n\n let _values = {};\n\n const getShowDays = async (cinemaId) => {\n fetchShowtimes(movie.id, cinemaId).then(\n (response) => {\n let _days = response.days ? response.days : [];\n let _showTimes = response.showtimes ? response.showtimes : [];\n const _values = {\n ...state.values,\n cinema: cinemaId,\n };\n setState({\n ...state,\n values: _values,\n days: _days,\n allShowTimes: _showTimes,\n });\n },\n (error) => {\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n };\n\n const getShowTimes = async (_day) => {\n const { allShowTimes } = state;\n\n if (allShowTimes && allShowTimes.length > 0) {\n let _showTimes = allShowTimes.filter((s) => s.day === _day);\n const showTime = allShowTimes.filter((s) => s.day === _day)[0];\n if (showTime && _showTimes) {\n setState({\n ...state,\n showTimes: _showTimes,\n showtimeid: \"\",\n values: {\n ...state.values,\n day: _day,\n showtimeid: showTime.id,\n adultPrice: showTime.adult,\n studentPrice: showTime.student,\n childrenPrice: showTime.children,\n },\n });\n }\n }\n };\n\n const onCinemaChange = async (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n getShowDays(e.target.value);\n };\n\n const onDayChange = async (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n getShowTimes(e.target.value);\n };\n\n const onQtyChange = async (name, e) => {\n e.target.name = name;\n let _values = state.values;\n _values = {\n ..._values,\n [name]: e.target.value,\n };\n\n setState(\n {\n ...state,\n values: _values,\n },\n getAmt(_values)\n );\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n };\n\n const handleChange1 = (name, value) => {\n let _values = state.values;\n _values = {\n ..._values,\n [name]: value,\n };\n setState({\n ...state,\n values: _values,\n });\n getAmt();\n };\n\n const onShowTimeChange = (name, e) => {\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n\n const adult = e._targetInst.pendingProps[\"data-adult\"];\n const student = e._targetInst.pendingProps[\"data-student\"];\n const children = e._targetInst.pendingProps[\"data-children\"];\n setFieldValue(\"adultPrice\", adult);\n setFieldValue(\"studentPrice\", student);\n setFieldValue(\"childrenPrice\", children);\n\n handleChange(\"adultPrice\", adult);\n handleChange(\"studentPrice\", student);\n handleChange(\"childrenPrice\", children);\n\n getAmt();\n };\n\n const getAmt = (_values = null) => {\n const { values, billerCode } = state;\n\n const _val = _values ? _values : values;\n\n let _amount = 0;\n if (_val.adultPrice && _val.adult) {\n _amount += parseFloat(values.adultPrice) * parseFloat(_val.adult);\n }\n if (_val.studentPrice && _val.student) {\n _amount += parseFloat(_val.studentPrice) * parseFloat(_val.student);\n }\n if (_val.childrenPrice && _val.children) {\n _amount += parseFloat(_val.childrenPrice) * parseFloat(_val.children);\n }\n setState({\n ...state,\n values: {\n ...values,\n ..._val,\n amount: \"\",\n },\n });\n //Get Amount\n if (_amount > 0) {\n setState({\n ...state,\n loading: true,\n });\n\n let ProductId = 0;\n const product = products.find((p) => p.BillerCode === billerCode);\n if (product) ProductId = product.Id;\n let _req = {\n TotalAmount: _amount,\n ProductId: ProductId,\n };\n\n getTotalAmount(_req).then(\n (response) => {\n if (response && !isNaN(response)) {\n _amount = response;\n }\n setState({\n loading: false,\n ...state,\n values: {\n ..._val,\n amount: _amount,\n },\n });\n },\n (error) => {}\n );\n }\n };\n\n const change = (name, e) => {\n e.persist();\n handleChange(e);\n setFieldTouched(name, true, false);\n };\n\n const handleProdceed = () => {\n const { tranId, gateWay, billerCode, values } = state;\n\n var _req = {\n TranId: tranId,\n PaymentMode: gateWay,\n BillerCode: billerCode,\n ...values,\n };\n logTransaction(_req).then(\n (response) => {\n setState({\n ...state,\n parameters: response,\n formStatus: productConstants.FORM_STATUS_CONFIRMED,\n });\n },\n (error) => {}\n );\n };\n\n const {\n handleSubmit,\n handleChange,\n setFieldValue,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n amountRef,\n } = useFormik({\n initialValues: {\n ...state.values,\n },\n enableReinitialize: true,\n // validationSchema: validationSchema,\n onSubmit(values) {\n setState({\n ...state,\n values: values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n // handleStatus(values);\n },\n });\n\n return (\n <>\n {movie && state.formStatus === productConstants.FORM_STATUS_INPUTTING && (\n
\n \n \n \n \n \n \n \n \n \n {movie.title}\n \n \n \n \n \n
\n \n \n change(\"fullName\", e)}\n // onChange={change.bind(null, \"fullName\")}\n value={values.fullName}\n helperText={touched.fullName ? errors.fullName : \"\"}\n error={touched.fullName && Boolean(errors.fullName)}\n />\n \n \n \n \n \n \n \n \n onCinemaChange(\"cinema\", e)}\n SelectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: { paper: classes.dropdownStyle },\n },\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n margin=\"normal\"\n >\n --select--\n {movie.cinemas.map((option) => (\n \n {option.name}\n \n ))}\n \n \n \n onDayChange(\"day\", e)}\n SelectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: { paper: classes.dropdownStyle },\n },\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n margin=\"normal\"\n >\n \n {state.days.map((option) => (\n \n {option}\n \n ))}\n \n \n \n onShowTimeChange(\"showtimeid\", e)}\n SelectProps={{\n displayEmpty: true,\n MenuProps: {\n classes: { paper: classes.dropdownStyle },\n },\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n margin=\"normal\"\n >\n --select--\n {state.showTimes.map((option) => (\n \n {option.date}\n \n ))}\n \n \n \n {/* */}\n onQtyChange(\"adult\", e)}\n margin=\"normal\"\n />\n \n \n onQtyChange(\"children\", e)}\n margin=\"normal\"\n />\n \n \n onQtyChange(\"student\", e)}\n margin=\"normal\"\n />\n \n \n change(\"amount\", e)}\n margin=\"normal\"\n autoComplete=\"off\"\n InputProps={{\n // inputComponent: NumberFormatCustom,\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n
\n }\n action={(e) => {\n e.preventDefault();\n handleGoBack();\n }}\n />\n \n
\n
\n \n \n
\n
\n
\n
\n )}\n {movie &&\n state.formStatus === productConstants.FORM_STATUS_CONFIRMING && (\n \n )}\n\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMED && (\n <>\n \n \n )}\n \n );\n};\n\nexport default MovieTicketForm;\n","import React, { useEffect, useContext } from \"react\";\nimport {\n Grid,\n Paper,\n Typography,\n Link,\n Card,\n CardContent,\n CardActionArea,\n ThemeProvider,\n TextField,\n CardActions,\n Button,\n CardMedia,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {alertConstants} from '../../_constants'\nimport { theme } from \"../../theme\";\nimport { MdMap, MdInfo } from \"react-icons/md\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\nimport { FaEye } from \"react-icons/fa\";\nimport Modal from \"@material-ui/core/Modal\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport CTA from \"../../components/button/cta-button\";\nimport { fetchMovies, fetchTransaction } from \"../../_actions/movie.actions\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport MovieTicketForm from \"./movie-ticket-form\";\nimport { UserContext } from \"../../context/user-context\";\nimport { productConstants } from \"../../_constants\";\nimport Spinner from \"../../components/spinner\";\n\nconst useStyles = makeStyles((theme) => ({\n searchField: {\n width: \"400px\",\n },\n containerDiv: {\n marginTop: \"-20px\",\n },\n paper: {\n position: \"fixed\",\n transform: \"translate(50%,10%)\",\n width: 700,\n height: \"80vh\",\n overflowY: \"auto\",\n border: \"none\",\n outline: \"none\",\n padding: theme.spacing(2, 4, 3),\n background: \"#fff\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: 380,\n left: \"-48%\",\n top: \"2%\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n width: 310,\n left: \"-51%\",\n top: \"2%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n // backgroundColor: 'blue',\n },\n [theme.breakpoints.up(\"lg\")]: {\n // marginTop:'100%'\n },\n // marginTop:'-5%'\n },\n\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"5px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n [theme.breakpoints.only(\"xs\")]: {\n marginLeft: \"-45px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n },\n card: {\n borderRadius: \"5px 5px 0px 0px\",\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n // height: \"400px\",\n // maxHeight: \"400px\",\n },\n cardImg: {\n height: \"270px\",\n borderRadius: \"5px 5px 0px 0px\",\n },\n title: {\n fontFamily: \"Montserrat\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"12px\",\n lineHeight: \"15px\",\n color: \"#FF6C00\",\n textTransform: \"uppercase\",\n },\n typography: {\n fontSize: \"11px\",\n fontFamily: \"Montserrat\",\n },\n bookTicketBtn: {\n width: \"100%\",\n background: \"#FF6C00\",\n margin: \"0px\",\n color: \"#fff\",\n height: \"20px\",\n fontFamily: \"Montserrat\",\n borderRadius: \"0px\",\n transition: \"all 0.35s ease-in-out\",\n \"&:hover\": {\n background: \"#fff\",\n color: \"#000\",\n },\n \"&:focus\": {\n outline: \"none\",\n },\n },\n movies: {\n marginTop: \"10px\",\n maxHeight: \"465px\",\n height: \"460px\",\n width: \"100%\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.6)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n seeMore: {\n display: \"flex\",\n },\n movieDescription: {\n height: \"350px\",\n overflowY: \"auto\",\n fontFamily: \"century gothic\",\n fontSize: \"12px\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.2)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n borderRadius: \"3px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n Img: {\n height: \"400px\",\n borderRadius: \"5px 5px 0px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n height: \"250px\",\n },\n },\n movieModal: {\n width: \"700px\",\n\n position: \"absolute\",\n [theme.breakpoints.down(\"sm\")]: {\n // background:'green',\n position: \"absolute\",\n width: \"290px\",\n height: \"300px\",\n left: \"20%\",\n top: \"20%\",\n zIndex: 100,\n },\n },\n movieTitle: {\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"13px\",\n },\n },\n}));\n\nconst myMovies = [\n {\n id: 1,\n title: \"Girls Trip\",\n genre: \"Drama | Action\",\n url: \"/tickets/movies/book-ticket\",\n path: \"/tickets\",\n image: \"/resources/images/girls-trip.jpg\",\n synopsis:\n \"Becoming a chef is Aiye's greatest desire. But. She is a young, struggling, single mother who has been abandoned by her family. To settle for defeat, or to fight against all odds to become the chef of her dreams? That is the question.\",\n duration: \"1hr 30min\",\n youtubeid: \"xDMP3i36naA\",\n },\n {\n id: 2,\n title: \"Body Language\",\n genre: \"Drama | Sci-Fi\",\n url: \"/tickets/movies/book-ticket\",\n path: \"/tickets\",\n image: \"/resources/images/body-language.jpg\",\n synopsis:\n \"Matured ladies decided to have a time out and they begandiscussing their individual sexual life\",\n duration: \"1hr 30min\",\n youtubeid: \"t2ypzz6gJm0\",\n },\n];\n\nexport default function Movies() {\n // const { onClose, open } = props;\n const { dispatch } = useContext(AlertContext);\n const { loggedIn, user } = useContext(UserContext);\n const [openTrailer, setOpenTrailer] = React.useState(false);\n const [state, setState] = React.useState({\n movies: [],\n movie: {},\n showView: \"MOVIE_LIST\",\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n loading: true,\n });\n const [openMovieInfo, setOpenMovieInfo] = React.useState(false);\n const classes = useStyles();\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const handleSearchChange = (event) => {\n const searchText = event.target.value;\n // searchBillers(searchText);\n };\n\n const handleProceed = () => {\n history.push(`/tickets/movies/book-ticket`);\n };\n\n const handleTrailerClickOpen = (movie) => {\n setState({\n ...state,\n movie: movie,\n });\n setOpenTrailer(true);\n };\n\n const handleTrailerClose = () => {\n setOpenTrailer(false);\n };\n\n const hanadleMovieForm = (movie) => {\n setState({\n ...state,\n movie: movie,\n user: user,\n loggedIn: loggedIn,\n showView: \"MOVIE_FORM\",\n });\n };\n\n const handleMovieInfoClickOpen = (movie) => {\n setState({\n ...state,\n movie: movie,\n });\n setOpenMovieInfo(true);\n };\n\n const handleMovieInfoClose = () => {\n setOpenMovieInfo(false);\n };\n\n const handleGoBack = () => {\n setState({\n ...state,\n showView: \"MOVIE_LIST\",\n loading: false,\n });\n };\n const handleStatus = (formvalues) => {};\n useEffect(() => {\n setState({\n ...state,\n loading: true,\n });\n fetchMovies().then((data) => {\n setState(\n {\n ...state,\n movies: data,\n loading: false,\n },\n (error) => {\n setState({\n ...state,\n loading: false,\n });\n dispatch({\n type: alertConstants.ERROR,\n message: error.toString(),\n });\n }\n );\n });\n }, [fetchMovies]);\n\n return (\n <>\n
\n \n {state.loading && }\n {state.showView == \"MOVIE_LIST\" && (\n <>\n \n \n \n \n \n \n \n \n Movies\n \n \n \n
\n \n {state.movies.length > 0 &&\n state.movies.map((props) => {\n return (\n \n \n \n \n
{props.title}
\n \n {props.genre}\n \n
\n \n \n handleTrailerClickOpen(props)}\n style={{\n fontSize: \"11px\",\n textTransform: \"capitalize\",\n fontWeight: \"normal\",\n textDecoration: \"underline\",\n marginLeft: \"-25px\",\n }}\n />\n \n \n \n \n handleMovieInfoClickOpen(props)\n }\n style={{\n fontSize: \"11px\",\n textTransform: \"capitalize\",\n fontWeight: \"normal\",\n textDecoration: \"underline\",\n marginLeft: \"-10px\",\n }}\n />\n \n
\n
\n \n hanadleMovieForm(props)}\n >\n Book Tickets\n \n \n
\n
\n );\n })}\n\n \n \n Watch Trailer\n \n \n \n \n \n \n Close\n \n \n \n\n \n
\n

\n {state.movie.title}\n

\n \n \n \n
\n hanadleMovieForm(state.movie)}\n text=\"Buy Ticket\"\n style={{\n fontSize: \"12px\",\n marginTop: \"10px\",\n }}\n />{\" \"}\n \n
\n
\n \n
\n

\n {\" \"}\n Duration:\n {state.movie.duration}\n

\n

\n Genre: \n {state.movie.genre}\n

\n

\n Synopsis: \n {state.movie.description}\n

\n
\n
\n
\n
\n \n
\n
\n \n )}\n
\n
\n {state.showView == \"MOVIE_FORM\" && (\n \n )}\n \n );\n}\n","import React from \"react\";\nimport {\n Grid,\n TextField,\n ThemeProvider,\n Typography,\n Paper,\n Link,\n Tooltip,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport Spinner from \"../../components/spinner\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\nimport { UserContext } from \"../../context/user-context\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { alertConstants } from \"../../_constants\";\nimport Events from \"./events\";\nimport Movies from \"./movies\";\n\nconst useStyles = makeStyles((theme) => ({\n searchField: {\n width: \"400px\",\n marginTop: \"10px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"15px\",\n // display:'none'\n },\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n // boxShadow: \"2px 2px 2px rgba(0, 0, 0, 0.25)\",\n },\n categoryName: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"17px\",\n fontWeight: \"bold\",\n },\n },\n image: {\n width: 120,\n height: 120,\n borderRadius: 10,\n // boxShadow: \"2px 2px 20px rgba(0, 0, 0, 0.25)\",\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.3)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n tooltip: {\n textAlign: \"center\",\n },\n}));\n\nconst categories = [\n {\n id: 0,\n productName: \"events\",\n url: \"/tickets/event\",\n path: \"/tickets\",\n image: \"/resources/images/events.png\",\n },\n {\n id: 1,\n productName: \"movies\",\n url: \"/tickets/movie\",\n path: \"/tickets\",\n image: \"/resources/images/movies.png\",\n },\n];\n\n// const handleProduct = () => {\n// history.push(`/buy-tickets/events`);\n// };\nconst preventDefault = (url) => {\n window.history.push(url);\n};\nexport default function Tickets() {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const pathName = decodeURI(pathUrl.split(\"/\")[1]);\n return (\n
\n \n \n
\n \n \n
\n
\n \n \n \n Tickets\n \n \n\n {categories.map(({ id, image, url, productName, path }) => {\n return (\n \n \n {\n history.push(`${url}`);\n }}\n >\n \n {\"\"}\n \n \n \n \n );\n })}\n \n
\n );\n}\n","import React from \"react\";\nimport { Grid, Paper, Typography, ThemeProvider } from \"@material-ui/core\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { MdArrowBack } from \"react-icons/md\";\nimport { theme } from \"../../theme\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"5px\",\n padding: \"20px\",\n maxHeight: \"450px\",\n overflow: \"scroll\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n \"&::-webkit-scrollbar\": {\n width: \"10px\",\n borderRadius: \"10px\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.00)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"green\",\n borderRadius: \"10px\",\n },\n },\n paperForm1: {\n marginTop: \"0px\",\n padding: \"10px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n marginLeft: \"-10px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"5px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n tableContent: {\n \"&:nth-of-type(even)\": {\n backgroundColor: \"rgba(196, 196, 196, 0.2)\",\n },\n },\n button: {\n display: \"flex\",\n marginTop: \"20px\",\n marginRight: \"0px\",\n marginBottom: \"15px\",\n float: \"right\",\n },\n total: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"86%\",\n marginTop: \"10px\",\n paddingLeft: \"20px\",\n fontFamily: \"Montserrat\",\n },\n}));\n\nconst providers = [\n {\n id: 0,\n providerName: \"MTN\",\n providerCode: \"mtn\",\n productCode: \"AIRTIME\",\n amount: 1000,\n },\n {\n id: 1,\n providerName: \"MTN\",\n providerCode: \"mtn\",\n productCode: \"AIRTIME\",\n amount: 1000,\n },\n {\n id: 2,\n providerName: \"MTN\",\n providerCode: \"mtn\",\n productCode: \"AIRTIME\",\n amount: 1000,\n },\n {\n id: 3,\n providerName: \"MTN\",\n providerCode: \"mtn\",\n productCode: \"AIRTIME\",\n amount: 1000,\n },\n {\n id: 4,\n providerName: \"MTN\",\n providerCode: \"mtn\",\n productCode: \"AIRTIME\",\n amount: 1000,\n },\n];\n\nexport default function BulkUploadPreview() {\n const history = useHistory();\n const classes = useStyles();\n\n const handleBack = () => {\n window.history.goBack();\n };\n const handleProceed = () => {\n window.history.push(`/bulkupload/notification`);\n };\n return (\n
\n \n \n \n \n \n \n \n \n \n Bulk Airtime Purchase\n \n \n \n \n
\n UPLOAD PREVIEW\n
\n \n \n \n \n \n S/N\n \n \n SubscriberNumber\n \n \n Provider\n \n \n Product\n \n \n Amount\n \n \n \n {providers.map(\n ({ id, providerName, providerCode, productCode, amount }) => {\n return (\n \n \n \n {id}\n \n \n {providerName}\n \n \n {providerCode}\n \n \n {productCode}\n \n \n {amount}\n \n \n \n );\n }\n )}\n
\n
\n
Total
\n

5000

\n
\n
\n
\n }\n action={handleBack}\n />\n \n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport {\n Grid,\n TextField,\n ThemeProvider,\n Typography,\n Paper,\n Link,\n Tooltip,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport Spinner from \"../../components/spinner\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme) => ({\n searchField: {\n width: \"400px\",\n marginTop: \"10px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"15px\",\n // display:'none'\n },\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n categoryName: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"17px\",\n fontWeight: \"bold\",\n },\n },\n image: {\n width: 120,\n height: 120,\n borderRadius: 10,\n // boxShadow: \"2px 2px 20px rgba(0, 0, 0, 0.25)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n // display:'none'\n },\n },\n tooltip: {\n textAlign: \"center\",\n },\n}));\n\n// const handleProduct = () => {\n// history.push(`/buy-tickets/events`);\n// };\nconst url = \"wallet/ewallet\";\nconst preventDefault = (url) => {\n window.history.push(url);\n};\n\nexport default function XpressWallet() {\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n const pathName = decodeURI(pathUrl.split(\"/\")[1]);\n return (\n
\n \n \n
\n \n \n
\n
\n \n \n \n Xpress Wallet\n \n \n \n \n {\n history.push(`${url}`);\n }}\n >\n \n \n \n \n \n \n \n
\n );\n}\n","import React, { useState } from \"react\";\nimport {\n Grid,\n TextField,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { useEffect } from \"react\";\nimport { productConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n margin: \"20px auto 0px auto\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"700px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"Montserrat\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n textTransform: \"uppercase\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typegraphyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n },\n summary: {\n height: \"200px\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.2)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n borderRadius: \"3px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n },\n}));\n\nconst WalletTopupSummary = (props) => {\n const { values, billerCode, products, handleGoBack, handleStatus } = props;\n const [state, setState] = useState({\n items: [],\n reviewValues: [],\n });\n const pathUrl = window.location.pathname;\n const history = useHistory();\n const classes = useStyles();\n // const handleBack = () => {\n // history.goBack();\n // };\n // const handleProceed = () => {};\n\n const handleProceed = () => {\n const reviewValueObject = {\n reviewValues: state.reviewValues,\n };\n handleStatus(reviewValueObject);\n };\n\n var items = [];\n var reviewValues = [];\n const setReviewValue = (name, value) => {\n reviewValues = {\n ...reviewValues,\n [name]: value,\n };\n };\n\n useEffect(() => {\n var convFee = 0,\n totalAmount = 0,\n _item = {};\n\n //Name\n _item = {\n name: \"Acount Name\",\n value: values.customerName,\n };\n items.push(_item);\n setReviewValue(\"name\", values.customerName);\n //Name\n _item = {\n name: \"Wallet ID\",\n value: values.customerAccountNumber,\n };\n items.push(_item);\n setReviewValue(\"name\", values.customerAccountNumber);\n //Email\n _item = {\n name: \"Email\",\n value: values.email,\n };\n items.push(_item);\n setReviewValue(\"email\", values.email);\n\n //Phone Number\n _item = {\n name: \"Phone Number\",\n value: values.phone,\n };\n items.push(_item);\n setReviewValue(\"phone\", values.phone);\n\n //Amount\n let _amt = parseFloat(values.amount);\n convFee = getFee(_amt, billerCode);\n totalAmount = _amt + convFee;\n _item = {\n name: \"Amount\",\n value: _amt.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"amount\", _amt);\n\n //Convenience fee\n _item = {\n name: \"Convenience fee\",\n value: convFee.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"fee\", convFee);\n\n //Total Amount\n _item = {\n name: \"Total Amount\",\n value: totalAmount.toLocaleString(navigator.language, {\n minimumFractionDigits: 2,\n }),\n };\n items.push(_item);\n setReviewValue(\"totalAmount\", totalAmount);\n setState({\n ...state,\n items: items,\n reviewValues: reviewValues,\n });\n }, []);\n\n const getFee = (amount, billerCode) => {\n var fee = 0;\n let product = products.find((p) => p.BillerCode === billerCode);\n if (product) {\n switch (product.ChargeType) {\n case productConstants.CHARGE_TYPE_FIXED:\n fee = product.Charge;\n break;\n case productConstants.CHARGE_TYPE_PERCENTAGE:\n fee = (product.Charge * amount) / 100;\n break;\n default:\n break;\n }\n }\n return fee;\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n Topup Wallet\n \n \n \n \n \n \n Order Summary\n \n
\n {state.items.map((row) => {\n return (\n <>\n \n \n {row.name}\n \n \n {row.value}\n \n \n \n \n );\n })}\n
\n \n }\n />\n \n \n \n
\n
\n
\n );\n};\n\nexport default WalletTopupSummary;\n","import React, { useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ProductContext } from \"../../context/product-context\";\nimport configuration from \"../../config\";\nimport { authHeader } from \"../../_helpers\";\nimport { handleResponse } from \"../../helpers\";\nimport {\n Grid,\n TextField,\n ButtonBase,\n Paper,\n Button,\n Container,\n CssBaseline,\n ThemeProvider,\n Typography,\n Link,\n FormControl,\n MenuItem,\n Select,\n InputLabel,\n Divider,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { useHistory } from \"react-router-dom\";\nimport CTA from \"../../components/button/cta-button\";\nimport { MdAccountBalanceWallet } from \"react-icons/md\";\nimport { useEffect } from \"react\";\nimport { UserContext } from \"../../context/user-context\";\nimport {\n fetchWalletBalance,\n logTransaction,\n} from \"../../_actions/product.actions\";\nimport { fetchFieldsForTopUp } from \"../../_actions/product.actions\";\nimport { productConstants } from \"../../_constants\";\nimport { useFormik } from \"formik\";\nimport Spinner from \"../../components/spinner\";\nimport * as Yup from \"yup\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport MoneyIcon from \"@material-ui/icons/Money\";\nimport NumberFormat from \"react-number-format\";\nimport { saveAs } from \"@progress/kendo-drawing/pdf\";\nimport WalletTopupSummary from \"./wallet-topup-summary\";\nimport GateWay from \"../purchase/gate-way\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n searchField: {\n width: \"400px\",\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n paperForm: {\n marginTop: \"20px\",\n padding: \"40px\",\n height: \"280px\",\n width: \"80%\",\n fontFamily: \"Montserrat\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"5px\",\n },\n\n [theme.breakpoints.only(\"xs\")]: {\n padding: \"5px\",\n marginLeft: \"-10px\",\n // height: \"auto\",\n height: \"370px\",\n width: \"100%\",\n marginRight: \"0px\",\n },\n },\n image: {\n width: 90,\n height: 90,\n marginTop: \"5px\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: 90,\n height: 90,\n },\n },\n formTitle: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-30px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-20px\",\n fontSize: \"20px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n inputPadding: {\n paddingLeft: \"40px\",\n marginTop: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"0px\",\n },\n },\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"200px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n },\n productName: {\n fontSize: \"25px\",\n fontWeight: \"bold\",\n marginTop: \"40px\",\n marginLeft: \"-80px\",\n fontFamily: \"Montserrat\",\n textTransform: \"uppercase\",\n\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"13px\",\n marginLeft: \"-15px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n buttonDiv: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n marginTop: \"50px\",\n width: \"250px\",\n\n [theme.breakpoints.down(\"sm\")]: {\n width: \"200px\",\n marginTop: \"10px\",\n },\n },\n accountInfo: {\n fontFamily: \"Montserrat\",\n fontSize: \"13px\",\n marginLeft: \"50px\",\n\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"5px\",\n },\n },\n walletForm: {\n marginTop: \"10px\",\n\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"15px\",\n },\n },\n}));\n\nconst NumberFormatCustom = (props) => {\n const { inputRef, onChange, ...other } = props;\n\n return (\n {\n onChange({\n target: {\n value: values.value,\n },\n });\n }}\n thousandSeparator\n prefix=\"₦ \"\n />\n );\n};\n\nconst TopUpWallet = () => {\n const { loggedIn, user } = useContext(UserContext);\n const { products, getProductCategories } = useContext(ProductContext);\n const [state, setState] = useState({\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n values: {},\n products: products,\n loading: true,\n field: {},\n });\n const [walltetBalance, setWalletBalance] = useState(\"0.00\");\n const pathUrl = decodeURI(window.location.pathname);\n const billerCode = pathUrl.split(\"/\")[1];\n const history = useHistory();\n const classes = useStyles();\n\n useEffect(() => {\n if (loggedIn) {\n fetchFieldsForTopUp().then((response) => {\n let _values = [];\n let fields = response.Fields;\n if (fields.length > 0) {\n fields.forEach((f) => {\n _values = {\n ..._values,\n [f.Id]: \"\",\n };\n });\n const { user, loggedIn } = state;\n if (!!loggedIn && user) {\n //Email\n var _email = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_EMAIL\n );\n if (_email) {\n _values = {\n ..._values,\n [_email.Id]: user.ConsumerID,\n };\n }\n //Phone\n var _phone = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_PHONE\n );\n if (_phone) {\n _values = {\n ..._values,\n [_phone.Id]: user.PhoneNumber,\n };\n }\n _values = {\n ..._values,\n amount: \"\",\n };\n }\n let field = {};\n field = fields.filter(\n (f) => f.FieldName === \"Amount\" && f.FieldType === \"Number\"\n )[0];\n getValidations(field);\n const { MaxAmount, MinAmount } = field;\n\n const { BillerCode, Charge, ProductName } = response.Product;\n setState({\n ...state,\n loading: false,\n fields: fields,\n field: field,\n values: _values,\n active: response.Product,\n max: MaxAmount,\n min: MinAmount,\n billerCode: BillerCode,\n PaymentMode: \"PayXpress\",\n productName: ProductName,\n products: products,\n Charge,\n });\n }\n });\n\n const req = {\n Parameter: user.WalletID,\n Pin: \"\",\n };\n fetchWalletBalance(req).then((response) => {\n if (response.ResponseCode === \"00\") {\n setWalletBalance(response.Balance);\n }\n });\n }\n // getWalletBalance();\n }, [products]);\n\n const getWalletBalance = () => {\n const req = {\n Parameter: user.WalletID,\n Pin: \"\",\n };\n fetchWalletBalance(req).then((response) => {\n if (response.ResponseCode === \"00\") {\n setState({\n ...state,\n walletBallance: response.Balance,\n products: products,\n });\n }\n });\n };\n\n const getFields = () => {\n fetchFieldsForTopUp().then((response) => {\n let _values = [];\n let fields = response.Fields;\n if (fields.length > 0) {\n fields.forEach((f) => {\n _values = {\n ..._values,\n [f.Id]: \"\",\n };\n });\n const { user, loggedIn } = state;\n if (!!loggedIn && user) {\n //Email\n var _email = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_EMAIL\n );\n if (_email) {\n _values = {\n ..._values,\n [_email.Id]: user.ConsumerID,\n };\n }\n //Phone\n var _phone = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_PHONE\n );\n if (_phone) {\n _values = {\n ..._values,\n [_phone.Id]: user.PhoneNumber,\n };\n }\n _values = {\n ..._values,\n amount: \"\",\n };\n }\n let field = {};\n field = fields.filter(\n (f) => f.FieldName === \"Amount\" && f.FieldType === \"Number\"\n )[0];\n getValidations(field);\n const { MaxAmount, MinAmount } = field;\n\n const { BillerCode, Charge, ProductName } = response.Product;\n setState({\n ...state,\n loading: false,\n fields: fields,\n field: field,\n values: _values,\n active: response.Product,\n max: MaxAmount,\n min: MinAmount,\n billerCode: BillerCode,\n PaymentMode: \"PayXpress\",\n productName: ProductName,\n products: products,\n Charge,\n });\n }\n });\n };\n\n const getValidations = async () => {\n // if (\n // Object.keys(state.field).length === 0 &&\n // state.field.constructor === Object\n // ) {\n return Yup.object().shape({\n amount: Yup.number(\"Enter valid amount\")\n .typeError(\"Enter valid amount\")\n .required(\"Amount is Required\"),\n // .min(1000, \"Amount should be greater than or equal to N\" + 1000)\n // .max(\n // 1000000,\n // \"Only amount less than or equal to N\" + 1000000 + \" can be done\"\n // ),\n });\n // }\n };\n\n const {\n handleSubmit,\n handleChange,\n setFieldValue,\n setFieldTouched,\n dirty,\n touched,\n isValid,\n isSubmitting,\n resetForm,\n setSubmitting,\n values,\n errors,\n amountRef,\n } = useFormik({\n initialValues: state.values,\n enableReinitialize: true,\n // validationSchema: getValidations,\n onSubmit(values) {\n // const { billerCode } = state;\n let _values = {};\n if (values.amount) {\n _values = {\n ..._values,\n customerAccountNumber: user.WalletID,\n billerCode: state.billerCode,\n customerAccountType: \"xpslwallet\",\n email: user.ConsumerID,\n phone: user.PhoneNumber,\n customerName: `${user.Firstname} ${user.Surname}`,\n amount: values.amount,\n };\n setState({\n ...state,\n verified: true,\n values: _values,\n formStatus: productConstants.FORM_STATUS_CONFIRMING,\n });\n }\n },\n });\n\n const handleProdceed = (reviewValueObject) => {\n const { tranId, PaymentMode, billerCode, fields, values } = state;\n\n let _controls = [];\n var _email = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_EMAIL\n );\n if (_email) {\n let _control = {\n ControlId: _email.Id,\n ControlValue: user.ConsumerID,\n };\n _controls.push(_control);\n }\n //Phone\n var _phone = fields.find(\n (f) => f.FieldType === productConstants.FIELD_TYPE_PHONE\n );\n if (_phone) {\n let _control = {\n ControlId: _phone.Id,\n ControlValue: user.PhoneNumber,\n };\n _controls.push(_control);\n }\n //walletId\n var wId = fields.find((f) => f.FieldName === \"Wallet ID\");\n if (wId) {\n let _control = {\n ControlId: wId.Id,\n ControlValue: user.WalletID,\n };\n _controls.push(_control);\n }\n //amount\n let amount = fields.find((f) => f.FieldName === \"Amount\");\n if (amount) {\n let _control = {\n ControlId: amount.Id,\n ControlValue: values.amount,\n };\n _controls.push(_control);\n }\n let person = fields.find((f) => f.FieldName === \"Account Name\");\n if (person) {\n let _control = {\n ControlId: person.Id,\n ControlValue: `${user.Firstname} ${user.Surname}`,\n };\n _controls.push(_control);\n }\n let ws = fields.find((f) => f.FieldName === \"Wallet Service\");\n if (ws) {\n const getitemValue = ws.ListItems.find(\n (i) =>\n i.ItemDataValue === \"xpslwallet\" && i.ItemDesc === \"Xpress Wallet\"\n );\n let _control = {\n ControlId: ws.Id,\n ControlValue: getitemValue.ItemValue,\n };\n _controls.push(_control);\n }\n\n var _req = {\n WControls: _controls,\n ApprovalStatus: \"\",\n TranId: tranId,\n PaymentMode: PaymentMode,\n BillCode: billerCode,\n ...reviewValueObject.reviewValues,\n ProductName: state.productName,\n };\n logTransaction(_req).then(\n (response) => {\n setState({\n ...state,\n parameters: response,\n formStatus: productConstants.FORM_STATUS_CONFIRMED,\n });\n },\n (error) => {}\n );\n };\n\n const change = (name, e) => {\n //e.persist()\n e.target.name = name;\n setFieldValue(name, e.target.value);\n handleChange(name, e.target.value);\n setFieldTouched(name, true, false);\n let _values = state.values;\n _values = {\n ..._values,\n [name]: e.target.value,\n };\n setState({\n ...state,\n values: _values,\n });\n };\n\n const handleGoBack = () => {\n setState({\n ...state,\n formStatus: productConstants.FORM_STATUS_INPUTTING,\n loading: false,\n });\n };\n\n return (\n <>\n {state.formStatus == productConstants.FORM_STATUS_INPUTTING && (\n
\n \n {state.loading ||\n (products.length === 0 && (\n \n ))}\n \n \n \n \n \n \n \n \n Top Up Wallet\n \n \n \n \n \n \n \n
\n

\n My Wallet Account Number\n

\n

\n {user.WalletID}\n

\n

\n My Wallet Balance\n

\n

\n \n {walltetBalance}\n

\n
\n
\n
\n \n
Top up my Wallet
\n change(\"amount\", e)}\n margin=\"normal\"\n autoComplete=\"off\"\n InputProps={{\n inputComponent: NumberFormatCustom,\n startAdornment: (\n \n \n \n ),\n }}\n />\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n )}\n <>\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMING && (\n \n )}\n \n <>\n {state.formStatus == productConstants.FORM_STATUS_CONFIRMED && (\n <>\n \n \n )}\n \n \n );\n};\n\nexport default TopUpWallet;\n","import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { lighten, makeStyles } from \"@material-ui/core/styles\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport { ThemeProvider } from \"@material-ui/core\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { FaReplyAll } from \"react-icons/fa\";\nimport { formatDate } from \"../../helpers\";\nimport { repostTransaction } from \"../../_actions/bulk-upload.actions\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { alertConstants } from \"../../_constants\";\nimport Spinner from \"../../components/spinner\";\nimport { theme } from \"../../theme\";\n\nfunction createData(pymt, details, provider, TS, PS, Amount, Action) {\n return { pymt, details, provider, TS, PS, Amount, Action };\n}\n\nfunction descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nfunction getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nfunction stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map((el) => el[0]);\n}\n\nconst headCells = [\n {\n id: \"date\",\n numeric: true,\n disablePadding: true,\n label: \"Tran. Date\",\n },\n {\n id: \"Pymt\",\n numeric: true,\n disablePadding: true,\n label: \"Payt. Ref.\",\n },\n { id: \"Details\", numeric: true, disablePadding: false, label: \"Details\" },\n { id: \"Provider\", numeric: true, disablePadding: false, label: \"Provider\" },\n {\n id: \"Trans. Status\",\n numeric: true,\n disablePadding: false,\n label: \"Trans. Status\",\n },\n {\n id: \"Payment Status\",\n numeric: true,\n disablePadding: false,\n label: \"Payment Status\",\n },\n {\n id: \"Amount\",\n numeric: true,\n disablePadding: false,\n label: \"Amount\",\n },\n {\n id: \"Action\",\n numeric: true,\n disablePadding: false,\n label: \"Action\",\n },\n];\n\nfunction EnhancedTableHead(props) {\n const {\n classes,\n onSelectAllClick,\n order,\n orderBy,\n numSelected,\n rowCount,\n onRequestSort,\n } = props;\n const createSortHandler = (property) => (event) => {\n onRequestSort(event, property);\n };\n\n return (\n \n \n {headCells.map((headCell) => (\n \n \n {headCell.label}\n {orderBy === headCell.id ? (\n \n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n \n ) : null}\n \n \n ))}\n \n \n );\n}\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n numSelected: PropTypes.number.isRequired,\n onRequestSort: PropTypes.func.isRequired,\n onSelectAllClick: PropTypes.func.isRequired,\n order: PropTypes.oneOf([\"asc\", \"desc\"]).isRequired,\n orderBy: PropTypes.string.isRequired,\n rowCount: PropTypes.number.isRequired,\n};\n\nconst useToolbarStyles = makeStyles((theme) => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n highlight:\n theme.palette.type === \"light\"\n ? {\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: \"1 1 100%\",\n },\n}));\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(1),\n padding: \"10px\",\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: 1,\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n top: 20,\n width: 1,\n },\n}));\n\nexport default function EnhancedTable(props) {\n const { bulkDetails } = props;\n const classes = useStyles();\n const [order, setOrder] = React.useState(\"asc\");\n const [orderBy, setOrderBy] = React.useState(\"calories\");\n const [selected, setSelected] = React.useState([]);\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\n const [loading, setLoading] = React.useState(false);\n const { dispatch } = useContext(AlertContext);\n\n const handleRequestSort = (event, property) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n };\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const repost = (transaction) => {\n setLoading(true);\n repostTransaction(transaction.Id).then(\n (data) => {\n setLoading(false);\n if (data) {\n dispatch({ type: alertConstants.SUCCESS, message: data.toString() });\n }\n },\n (error) => {\n setLoading(false);\n dispatch({ type: alertConstants.ERROR, message: error.toString() });\n }\n );\n };\n\n const formatCellValue = (v, f) => {\n switch (f.type) {\n case \"date\":\n v = formatDate(v, \"DD-MMM-YYYY\");\n break;\n case \"currency\":\n v = v.toLocaleString(navigator.language, { minimumFractionDigits: 0 });\n break;\n default:\n break;\n }\n return v;\n };\n\n // const emptyRows =\n // rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\n\n return (\n
\n \n <>{loading && }\n {!!bulkDetails && (\n \n {/* */}\n \n \n \n \n {stableSort(bulkDetails, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((row, index) => {\n return (\n handleClick(event, row.name)}\n tabIndex={-1}\n key={row.name}\n >\n \n {row.Date}\n \n \n {row.PaymentReference}\n \n \n {formatCellValue(\"date\", row.RequestData)}\n \n {row.ProductName}\n \n {row.ApprovalStatus}\n \n \n {row.PaymentStatus}\n \n \n {formatCellValue(\"currency\", row.Amount)}\n \n \n {\" \"}\n repost(row)}\n fontSize=\"small\"\n />\n \n \n );\n })}\n {/* {emptyRows > 0 && (\n \n \n \n )} */}\n \n \n \n \n \n )}\n \n
\n );\n}\n","import React, { useContext, useState, useEffect } from \"react\";\nimport {\n Grid,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport configuration from \"../../config\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport queryString from \"query-string\";\nimport Spinner from \"../../components/spinner\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport RatingModal from \"../Notification/rating\";\nimport CTA from \"../../components/button/cta-button\";\nimport BulkTransactionDetails from \"./bulk-transaction-details\";\nimport {\n notifyBiller,\n fetchTransactions,\n} from \"../../_actions/bulk-upload.actions\";\nimport { alertConstants } from \"../../_constants\";\nimport { ProductContext } from \"../../context/product-context\";\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paperForm: {\n // boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n borderRadius: \"5px\",\n marginTop: \"-10px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n height: \"380px\",\n overflowY: \"scroll\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n // fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"30px\",\n fontFamily: \"century gothic\",\n color: \"#006D01\",\n fontSize: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n marginLeft: \"-15px\",\n },\n },\n previewMain: {\n marginTop: \"10px\",\n height: \"170px\",\n overflowY: \"auto\",\n \"&::-webkit-scrollbar\": {\n width: \"0.5em\",\n borderRadius: \"3px\",\n background: \"rgba(255,255,255,0.6)\",\n },\n \"&::-webkit-scrollbar-track\": {\n boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n webkitBoxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n background: \"green\",\n borderRadius: \"5px\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"-15px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n typographyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n yourInfo: {\n fontSize: \"14px\",\n textAlign: \"left\",\n marginTop: \"0px\",\n // marginLeft: \"50px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"0px\",\n },\n },\n paper2: {\n // boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n borderRadius: \"5px\",\n marginTop: \"5px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"10px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n paragraph: {\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n dialog: {},\n compliment: {\n fontSize: \"13px\",\n\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"11px\",\n marginLeft: \"-15px\",\n },\n },\n}));\n\nexport default function BulkUploadNotification() {\n const params = queryString.parse(window.location.search);\n let tranId = params[\"transaction-id\"];\n const [state, setState] = useState({\n loading: false,\n response: null,\n bulkDetails: null,\n });\n const classes = useStyles();\n const { dispatch } = useContext(AlertContext);\n const history = useHistory();\n const { rateTransactions } = useContext(ProductContext);\n\n const [open, setOpen] = React.useState(true);\n const [openTransactionDetail, setOpenTransactionDetail] = React.useState(\n false\n );\n const handleTransactionDetailsOpen = () => {\n fecthBulkDetail(tranId);\n };\n\n const handleTransactionDetailsClose = () => {\n setOpenTransactionDetail(false);\n };\n\n const handleClose = (props) => {\n setOpen(false);\n };\n\n const fecthBulkDetail = (tranId) => {\n setState({\n ...state,\n loading: true,\n });\n fetchTransactions(tranId).then(\n (data) => {\n setState({\n ...state,\n loading: false,\n bulkDetails: data,\n });\n setOpenTransactionDetail(true);\n },\n (error) => {}\n );\n };\n\n const onChange = (props) => {\n rating(props.target.value);\n setOpen(false);\n };\n\n const rating = (rate) => {\n let _req = {\n UserId: state.response.EmailAddress,\n Rating: rate,\n Comment: \"\",\n TransactionId: state.response.Id,\n BillerCode: state.response.BillerCode,\n Channel: \"Web\",\n };\n rateTransactions(_req);\n\n dispatch({\n type: alertConstants.SUCCESS,\n message: \"Thank you for your feedback\",\n });\n };\n\n useEffect(() => {\n const params = queryString.parse(window.location.search);\n let tranId = params[\"transaction-id\"];\n if (typeof tranId !== \"undefined\" && tranId !== \"\") {\n const arr = tranId.split(\"-\");\n const _req = {\n PaymentMethodString: configuration.paymentMethod,\n PaymentReference: arr.length === 1 ? arr[0] : arr[1],\n };\n setState({\n ...state,\n loading: true,\n });\n notifyBiller(_req).then(\n (data) => {\n setState({\n ...state,\n response: data,\n loading: false\n });\n },\n (error) => {}\n );\n }\n }, []);\n return (\n
\n \n {/* {loadingNotification ? (\n \n ) : ( */}\n\n {state.loading && (\n <>\n {\" \"}\n {\" \"}\n \n )}\n {state.response && (\n <>\n \n \n \n \n \n {state.response.TransactionStatus}\n \n \n \n \n {state.response.TransactionDescription}\n \n \n \n \n \n \n Payment Status\n \n \n {state.response.TransactionStatus}\n \n \n \n \n \n Transaction Narration\n \n \n \n {state.response.Narration}\n \n \n \n \n \n \n Payment Reference\n \n \n {state.response.TransactionId}\n \n \n \n \n \n Total Amount\n \n \n {state.response.OrderAmount}\n \n \n \n \n \n Count\n \n \n {state.response.TransactionCount}\n \n \n \n \n \n Order Date\n \n \n {state.response.OrderDate}\n \n \n \n \n\n \n \n {/* */}\n \n \n \n \n \n Transaction Details\n \n \n \n \n \n \n \n \n \n \n \n \n
\n

\n Carry out another transaction\n {/* */}\n {/* {\" \"}\n another transaction\n {\" \"} */}\n or go{\" \"}\n \n Back to home\n \n

\n
\n
\n \n \n For any enquiries please contact: info@xpresspayments.com\n \n \n
\n
\n \n )}\n {/* )} */}\n
\n
\n );\n}\n\n","import React, { useContext } from \"react\";\nimport {\n Grid,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport configuration from \"../../config\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { Link } from \"react-router-dom\";\nimport queryString from \"query-string\";\n// import PrintModal from \"../../components/modal/print-modal\";\n// import PrintReceiptModal from \"./print-receipt-modal\";\n// import Rating from \"./rating\";\nimport { useEffect } from \"react\";\nimport { ProductContext } from \"../../context/product-context\";\nimport Spinner from \"../../components/spinner\";\nimport { convertUrl, splitResponse } from \"../../helpers\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport RatingModal from \"../Notification/rating\";\nimport { alertConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paperForm: {\n boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n borderRadius: \"5px\",\n marginTop: \"-50px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n height: \"430px\",\n overflowY: \"scroll\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n // fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"century gothic\",\n color: \"#006D01\",\n fontSize: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n // previewMain: {\n // maxHeight: \"270px\",\n // overflowY: \"scroll\",\n // \"&::-webkit-scrollbar\": {\n // width: \"10px\",\n // background: \"#fff\",\n // width: \"10px\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-track\": {\n // boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-thumb\": {\n // borderRadius: \"5px\",\n // background: \"green\",\n // },\n // },\n typographyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n yourInfo: {\n fontSize: \"14px\",\n textAlign: \"left\",\n marginTop: \"0px\",\n // marginLeft: \"50px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"0px\",\n },\n },\n paper2: {\n boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n borderRadius: \"5px\",\n marginTop: \"5px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"10px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n paragraph: {\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n}));\n\nexport default function MovieNotification() {\n const classes = useStyles();\n const { dispatch } = useContext(AlertContext);\n const {\n loadingNotification,\n notifyBillers,\n notifyBillerResponse,\n rateTransactions,\n } = useContext(ProductContext);\n\n const [open, setOpen] = React.useState(true);\n\n const onChange = (props) => {\n rating(props.target.value);\n setOpen(false);\n };\n\n const rating = (rate) => {\n let _req = {\n UserId: notifyBillerResponse.EmailAddress,\n Rating: rate,\n Comment: \"\",\n TransactionId: notifyBillerResponse.Id,\n BillerCode: notifyBillerResponse.BillerCode,\n Channel: \"Web\",\n };\n dispatch({\n type: alertConstants.SUCCESS,\n message: \"Thank you for your feedback\",\n });\n rateTransactions(_req);\n };\n\n const handleClose = (props) => {\n setOpen(false);\n };\n useEffect(() => {\n const params = queryString.parse(window.location.search);\n let tranId = params[\"transaction-id\"];\n if (typeof tranId !== \"undefined\" && tranId !== \"\") {\n const arr = tranId.split(\"-\");\n const _req = {\n PaymentMethodString: configuration.paymentMethod,\n TranId: arr.length === 1 ? arr[0] : arr[1],\n };\n notifyBillers(_req);\n }\n }, []);\n\n return (\n
\n \n {!!loadingNotification && loadingNotification ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n {notifyBillerResponse.TransactionStatus}\n \n \n \n {notifyBillerResponse.TransactionDescription}\n \n \n \n \n \n Order Status\n \n \n {notifyBillerResponse.OrderStatus}\n \n \n \n \n \n Status Description\n \n \n \n {splitResponse(notifyBillerResponse.OrderDetails)}\n \n \n \n \n \n \n Order Number\n \n \n {notifyBillerResponse.OrderNumber}\n \n \n \n \n \n Order Amount\n \n \n {notifyBillerResponse.OrderAmount}\n \n \n \n \n \n Convenience Fee\n \n \n {notifyBillerResponse.Fee}\n \n \n \n \n \n Order Date\n \n \n {notifyBillerResponse.OrderDate}\n \n \n \n {!!notifyBillerResponse.ReceiptItems &&\n notifyBillerResponse.ReceiptItems.map((row) => {\n return (\n <>\n \n \n {row.Label}\n \n \n \n {splitResponse(row.Value)}\n \n \n \n \n \n );\n })}\n \n\n \n {/* */}\n \n \n \n \n \n \n \n
\n

\n Carry out{\" \"}\n \n {\" \"}\n another transaction\n {\" \"}\n or go{\" \"}\n \n Back to home\n \n

\n
\n
\n \n \n For any enquiries please contact: info@xpresspayments.com\n \n \n
\n
\n \n )}\n
\n
\n );\n}\n","import React, { useContext } from \"react\";\nimport {\n Grid,\n Paper,\n ThemeProvider,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport configuration from \"../../config\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { theme } from \"../../theme\";\nimport { FaArrowLeft } from \"react-icons/fa\";\nimport { Link } from \"react-router-dom\";\nimport queryString from \"query-string\";\n// import PrintModal from \"../../components/modal/print-modal\";\n// import PrintReceiptModal from \"./print-receipt-modal\";\n// import Rating from \"./rating\";\nimport { useEffect } from \"react\";\nimport { ProductContext } from \"../../context/product-context\";\nimport Spinner from \"../../components/spinner\";\nimport { convertUrl, splitResponse } from \"../../helpers\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport RatingModal from \"../Notification/rating\";\nimport { alertConstants } from \"../../_constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderBottom: \"1px solid red\",\n borderRadius: 3,\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n flexGrow: 1,\n },\n\n searchField: {\n width: \"400px\",\n },\n paperForm: {\n // boxShadow: \"4px 4px 10px rgba(0, 0, 0, 0.15)\",\n boxShadow:\n \"0 5px 10px rgba(154,160,185,.05), 0 15px 40px rgba(166,173,201,.2)\",\n borderRadius: \"5px\",\n marginTop: \"-50px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n height: \"430px\",\n overflowY: \"scroll\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"20px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n image: {\n width: 120,\n height: 120,\n marginTop: 5,\n [theme.breakpoints.down(\"sm\")]: {\n width: 80,\n height: 80,\n },\n },\n img: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n\n button: {\n display: \"block\",\n marginTop: theme.spacing(2),\n },\n\n previewTitle: {\n // fontWeight: \"600\",\n marginBottom: \"10px\",\n marginTop: \"20px\",\n fontFamily: \"century gothic\",\n color: \"#006D01\",\n fontSize: \"20px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"0px\",\n },\n },\n summaryFontBold: {\n fontWeight: \"600\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n },\n formButtons: {\n marginTop: \"20px\",\n paddingLeft: \"20px\",\n marginLeft: \"150px\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"flex\",\n marginLeft: \"0px\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginLeft: \"-18px\",\n },\n },\n titleProduct: {\n fontFamily: \"Montserrat\",\n fontWeight: \"bold\",\n fontSize: \"25px\",\n marginTop: \"50px\",\n marginLeft: \"-30px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"18px\",\n fontWeight: \"600px\",\n marginLeft: \"-20px\",\n marginTop: \"30px\",\n },\n },\n // previewMain: {\n // maxHeight: \"270px\",\n // overflowY: \"scroll\",\n // \"&::-webkit-scrollbar\": {\n // width: \"10px\",\n // background: \"#fff\",\n // width: \"10px\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-track\": {\n // boxShadow: \"inset 0 0 6px rgba(0,0,0,0.3)\",\n // borderRadius: \"5px\",\n // },\n // \"&::-webkit-scrollbar-thumb\": {\n // borderRadius: \"5px\",\n // background: \"green\",\n // },\n // },\n typographyStyles: {\n textAlign: \"right\",\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n yourInfo: {\n fontSize: \"14px\",\n textAlign: \"left\",\n marginTop: \"0px\",\n // marginLeft: \"50px\",\n marginBottom: \"10px\",\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"0px\",\n },\n },\n paper2: {\n // boxShadow: \"2px 2px 10px rgba(0, 0, 0, 0.15)\",\n boxShadow: \"0 7px 30px -10px rgba(150,170,180,0.5)\",\n borderRadius: \"5px\",\n marginTop: \"5px\",\n padding: \"3px 40px 10px 40px\",\n // width: '450px',\n width: \"900px\",\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"10px\",\n width: \"310px\",\n marginLeft: \"-8px\",\n },\n },\n paragraph: {\n fontSize: \"14px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"12px\",\n },\n },\n}));\n\nexport default function EventNotification() {\n const classes = useStyles();\n const { dispatch } = useContext(AlertContext);\n const {\n loadingNotification,\n notifyBillers,\n notifyBillerResponse,\n rateTransactions,\n } = useContext(ProductContext);\n\n const [open, setOpen] = React.useState(true);\n\n const onChange = (props) => {\n rating(props.target.value);\n setOpen(false);\n };\n\n const rating = (rate) => {\n let _req = {\n UserId: notifyBillerResponse.EmailAddress,\n Rating: rate,\n Comment: \"\",\n TransactionId: notifyBillerResponse.Id,\n BillerCode: notifyBillerResponse.BillerCode,\n Channel: \"Web\",\n };\n rateTransactions(_req);\n dispatch({\n type: alertConstants.SUCCESS,\n message: \"Thank you for your feedback\",\n });\n };\n const handleClose = (props) => {\n setOpen(false);\n };\n useEffect(() => {\n const params = queryString.parse(window.location.search);\n let tranId = params[\"transaction-id\"];\n if (typeof tranId !== \"undefined\" && tranId !== \"\") {\n const arr = tranId.split(\"-\");\n const _req = {\n PaymentMethodString: configuration.paymentMethod,\n TranId: arr.length === 1 ? arr[0] : arr[1],\n };\n notifyBillers(_req);\n }\n }, []);\n\n return (\n
\n \n {!!loadingNotification && loadingNotification ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n {notifyBillerResponse.TransactionStatus}\n \n \n \n {notifyBillerResponse.TransactionDescription}\n \n \n \n \n \n Order Status\n \n \n {notifyBillerResponse.OrderStatus}\n \n \n \n \n \n Status Description\n \n \n \n {splitResponse(notifyBillerResponse.OrderDetails)}\n \n \n \n \n \n \n Order Number\n \n \n {notifyBillerResponse.OrderNumber}\n \n \n \n \n \n Order Amount\n \n \n {notifyBillerResponse.OrderAmount}\n \n \n \n \n \n Convenience Fee\n \n \n {notifyBillerResponse.Fee}\n \n \n \n \n \n Order Date\n \n \n {notifyBillerResponse.OrderDate}\n \n \n \n {!!notifyBillerResponse.ReceiptItems &&\n notifyBillerResponse.ReceiptItems.map((row) => {\n return (\n <>\n \n \n {row.Label}\n \n \n \n {splitResponse(row.Value)}\n \n \n \n \n \n );\n })}\n \n\n \n {/* */}\n \n \n \n \n \n \n \n
\n

\n Carry out{\" \"}\n \n {\" \"}\n another transaction\n {\" \"}\n or go{\" \"}\n \n Back to home\n \n

\n
\n
\n \n \n For any enquiries please contact: info@xpresspayments.com\n \n \n
\n
\n \n )}\n
\n
\n );\n}\n","import configuration from \"../../config\";\nimport React from \"react\";\nimport Swal from \"sweetalert2\";\nimport Modal from \"react-modal\";\nimport Button from \"@material-ui/core/Button\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\n\nimport {\n FaFacebookF,\n FaLinkedinIn,\n FaTwitter,\n //FaSignOutAlt,\n //FaUserCog,\n //FaLock,\n //FaGooglePlus,\n //FaInstagram\n //FaAlignRight\n //FaBookOpen,\n //FaSignInAlt,\n //FaPhone,\n //FaUserAlt\n //FaRegAddressBook,\n //FaUserPlus\n} from \"react-icons/fa\";\n\nimport \"./index.css\";\n\nconst customStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: \"1000\",\n // backgroundColor: \"rgba(255, 255, 255, 0.75)\",\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n //backgroundColor: \"papayawhip\"\n },\n\n xpressPrimaryBtn: {\n backgroundColor: \"#FF5800\",\n \"&:hover\": {\n backgroundColor: \"#C64500\",\n },\n },\n\n xpressDefaultBtn: {\n backgroundColor: \"#E1E1E1\",\n marginLeft: \"0.8rem\",\n\n \"&:hover\": {\n backgroundColor: \"#C64500\",\n },\n },\n};\n\n// Make sure to bind modal to your appElement (http://reactcommunity.org/react-modal/accessibility/)\nModal.setAppElement(\"#root\");\n\nlet winSet =\n \"toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes, resizable=yes\",\n width = 800,\n height = 600;\nwinSet +=\n \",width=\" +\n width +\n \",height=\" +\n height +\n \",left=\" +\n (window.screen.availWidth - width) / 2 +\n \",top=\" +\n (window.screen.availHeight - height) / 2;\n\nclass form extends React.Component {\n constructor() {\n super();\n\n this.state = {\n modalIsOpen: false,\n //responseCode: undefined,\n //responseMessage: undefined,\n disabled: false,\n };\n\n this.openModal = this.openModal.bind(this);\n this.afterOpenModal = this.afterOpenModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n openModal() {\n this.setState({ modalIsOpen: true });\n }\n\n afterOpenModal() {\n // references are now sync'd and can be accessed.\n this.subtitle.style.color = \"#f00\";\n this.subtitle.align = \"center\";\n }\n\n closeModal() {\n this.setState({ modalIsOpen: false });\n }\n\n PostGuess = (event) => {\n event.preventDefault();\n //const data = new FormData(event.target);\n this.setState({ disabled: true });\n const email = event.target.elements.email.value;\n const phone = event.target.elements.phone.value;\n const guess = event.target.elements.guess.value;\n\n const data = {\n UserEmail: email,\n UserPhone: phone,\n UserGuess: guess,\n };\n\n fetch(`${configuration.apiUrl2}/api/GuessAndWin/Guess`, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: new Headers({\n Authorization: \"Basic \" + btoa(`${configuration.apiUrl2Credentials}`),\n \"Content-Type\": \"application/json\",\n mode: \"cors\",\n cache: \"default\",\n credentials: \"same-origin\",\n }),\n })\n .then((response) => response.json())\n .then(\n (response) => {\n if (response.responseCode === \"00\") {\n this.closeModal();\n\n Swal.fire({\n title: \"Congratulations!!!\",\n //text: response.responseMessage,\n type: \"success\",\n animation: true,\n customClass: \"bounceInDown\",\n\n html:\n response.responseMessage +\n \"
\" +\n \"

\" +\n '' +\n \"
\" +\n '' +\n \"
\" +\n '' +\n \"
\" +\n ' MaleFemale' +\n \"
\",\n\n inputAttributes: {\n autocapitalize: \"off\",\n },\n showCancelButton: false,\n confirmButtonText: \"Save\",\n showLoaderOnConfirm: true,\n focusConfirm: false,\n preConfirm: () => {\n var location = document.getElementById(\"location\").value;\n var phoneToCredit = document.getElementById(\"phoneToCredit\")\n .value;\n var ageRange = document.getElementById(\"ageRange\").value;\n var gender = Array.from(\n document.getElementsByName(\"gender\")\n ).find((r) => r.checked).value;\n\n if (location === \"\") {\n Swal.showValidationMessage(\"please enter your location.\");\n } else if (phoneToCredit === \"\") {\n Swal.showValidationMessage(\"please enter phone to credit.\");\n } else if (\n phoneToCredit !== \"\" &&\n !ValidatePhoneNo(phoneToCredit)\n ) {\n Swal.showValidationMessage(\n \"please enter a valid phone number\"\n );\n }\n function ValidatePhoneNo(phone) {\n var expr = /^[a-zA-Z0-9\\s]{9,11}$/;\n return expr.test(phone);\n }\n\n const data2 = {\n Location: location,\n PhoneNotoCredit: phoneToCredit,\n AgeRange: ageRange,\n Gender: gender,\n };\n\n return fetch(\n `${configuration.apiUrl2}/api/GuessAndWin/GuessUpdate`,\n {\n method: \"POST\",\n body: JSON.stringify(data2),\n headers: new Headers({\n Authorization:\n \"Basic \" + btoa(`${configuration.apiUrl2Credentials}`),\n \"Content-Type\": \"application/json\",\n mode: \"cors\",\n cache: \"default\",\n credentials: \"same-origin\",\n }),\n }\n );\n },\n allowEscapeKey: false,\n allowOutsideClick: false, // () => !Swal.isLoading()\n })\n .then((result) => result.value.json())\n .then(\n (result) => {\n if (result.responseCode === \"00\") {\n this.setState({ disabled: false });\n Swal.fire({\n title: \"Successful!!!\",\n //text: result.responseMessage,\n type: \"success\",\n });\n } else {\n Swal.fire({\n title: \"Oops!!!\",\n text: result.responseMessage,\n type: \"error\",\n });\n }\n },\n (error) => {}\n );\n } else {\n this.setState({ disabled: false });\n Swal.fire({\n title: \"Oops!!!\",\n text: response.responseMessage,\n type: \"error\",\n });\n }\n },\n (error) => {}\n );\n };\n\n render() {\n // const { classes } = this.props;\n return (\n
\n \n \n \n \n
\n

(this.subtitle = subtitle)}>\n {this.props.CampaignName}\n

\n\n \n You have 3 trials to guess a number between{\" \"}\n {this.props.GuessRange} for a chance to win amazing gifts.\n
\n
\n\n this.PostGuess(event)}\n className=\"formBody\"\n >\n \n \n
\n\n \n \n
\n\n \n \n
\n\n \n Submit Guess\n \n \n close\n \n \n\n
\n \n {\n evt.preventDefault();\n let url =\n \"https://www.facebook.com/sharer/sharer.php?u=\" +\n //window.location.href +\n \"https://www.payxpress.com\" +\n \"/PayXpress%20Guess%20and%20Win%20Campaign!!!%20Click%20the%20below%20link%20to%20Play%20n%20Win%20Free%20Airtime%20Top-up,%20Movie%20Tickets%20and%20more...\";\n window.open(url, \"Share on Facebook\", winSet);\n }}\n aria-label=\"Facebook\"\n color=\"inherit\"\n >\n \n \n \n \n {\n evt.preventDefault();\n //let summary =\n // \"Xpress Payment Solutions Limited is a proudly owned Nigerian Company. A leading Financial Technology Solution Company that specializes in Electronic Payments, Collections, Bills Payment and Funds Disbursement.\";\n //summary = encodeURIComponent(summary);\n let url =\n \"https://www.linkedin.com/shareArticle?mini=true&url=\" +\n //window.location.href +\n \"https://www.payxpress.com/\" +\n \"&title=PayXpress&\" +\n \"summary=%20Guess%20and%20Win%20Campaign!!!%20Click%20the%20below%20link%20to%20Play%20n%20Win%20Free%20Airtime%20Top-up,%20Movie%20Tickets%20and%20more...&\" +\n \"source=LinkedIn\";\n\n window.open(url, \"Share on LinkedIn\", winSet);\n }}\n aria-label=\"LinkedIn\"\n color=\"inherit\"\n >\n \n \n \n \n {\n evt.preventDefault();\n let url =\n \"https://twitter.com/intent/tweet?source=sharethiscom&text=PayXpress%20Guess%20and%20Win%20Campaign!!!%20Click%20the%20below%20link%20to%20Play%20n%20Win%20Free%20Airtime%20Top-up,%20Movie%20Tickets%20and%20more...&url=\" +\n \"https://www.payxpress.com\"; // +window.location.href\n\n window.open(url, \"Share on Twitter\", winSet);\n }}\n aria-label=\"Twitter\"\n color=\"inherit\"\n >\n \n \n \n
\n
\n \n \n );\n }\n}\n\nexport default form;\n","import configuration from \"../../config\";\n\nimport React from \"react\";\nimport \"./index.css\";\n//import ReactDOM from \"react-dom\";\nimport Form from \"./form.jsx\";\n\n//import bootstrap from \"bootstrap\";\n\nclass GuessAndWin extends React.Component {\n state = {\n Status: false,\n UploadFrequency: 0,\n CampaignName: \"\",\n GuessRange: \"\",\n };\n\n //${configuration.apiUrl}\n componentDidMount() {\n fetch(`${configuration.apiUrl2}/api/GuessAndWin/GuessAndWinConfig`, {\n method: \"GET\",\n headers: new Headers({\n Authorization: \"Basic \" + btoa(`${configuration.apiUrl2Credentials}`),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n mode: \"cors\",\n cache: \"default\",\n credentials: \"same-origin\",\n }),\n })\n .then((response) => response.json())\n .then(\n (response) => {\n if (response.responseCode === \"00\") {\n this.setState({\n Status: response.responseData.Status,\n UploadFrequency: response.responseData.UploadFrequency,\n CampaignName: response.responseData.CampaignName,\n GuessRange: response.responseData.GuessRange,\n });\n }\n },\n (error) => {\n //this.setState({\n //isLoaded: true,\n //error;\n //});\n }\n );\n }\n\n render() {\n return this.state.Status === false ? \"\" :
;\n }\n}\n\nexport default GuessAndWin;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport clsx from \"clsx\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport List from \"@material-ui/core/List\";\nimport Divider from \"@material-ui/core/Divider\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport Header from \"../../components/header/header\";\nimport Footer from \"../../components/footer/footer\";\nimport Input from \"../../components/inputs/input\";\nimport { FaAngleDoubleDown } from \"react-icons/fa\";\nimport Purchase from \"../purchase/purchase\";\nimport PurchaseForm from \"../purchase/purchase-form\";\nimport PurchaseStatus from \"../purchase/purchase-status\";\nimport About from \"../about-us/about\";\nimport Overview from \"../overview/overview\";\nimport Home from \"../../pages/home/home\";\nimport { Switch, Route, withRouter } from \"react-router-dom\";\nimport Btn from \"../../components/button/menu-button\";\nimport { MdDashboard, MdAccountBalanceWallet } from \"react-icons/md\";\nimport TapAndPlayIcon from \"@material-ui/icons/TapAndPlay\";\nimport { FaFileInvoice } from \"react-icons/fa\";\nimport { Link } from \"react-router-dom\";\nimport \"../../index.css\";\nimport styles from \"../../components/sidenav/sidenav.module.css\";\nimport Faq from \"../../components/FAQ/faq\";\nimport Support from \"../../components/support/support\";\nimport Dashboard from \"../../pages/dashboard/dashboard\";\nimport AllTransactionHistory from \"../../pages/Transaction-History/index\";\nimport UpdateProfile from \"../../components/profiles/update-profile\";\nimport ProfileDropdown from \"../../components/profile-dropdown/profile-dropdown\";\nimport MySnackbarContent from \"../../components/alert-content\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport { alertActions } from \"../../_actions/alert.actions\";\nimport { AlertContext } from \"../../context/alert-context\";\nimport { ModalContext } from \"../../context/modal-context\";\nimport TAF from \"../Tell a friend/tell-a-friend\";\nimport FundTransfer from \"../fund-transfer/fund-transfer\";\nimport { PrivateRoute } from \"../../components/navigations/PrivateRoute\";\nimport { UserContext } from \"../../context/user-context\";\nimport { TransactionProvider } from \"../../context/transaction-context\";\nimport { TranHistoryProvider } from \"../../context/transaction-history-context\";\nimport CookiesPolicy from \"../Policy/cookies-policy\";\nimport PrivacyPolicy from \"../Policy/privacy-policy\";\nimport OtherServices from \"../other-transactions/other-services\";\nimport ConfirmAccount from \"../signup/account-confirmation\";\nimport BackUpEmailConfirmation from \"../login/backup-email-confirmation\";\nimport ResetPassword from \"../login/reset-password\";\nimport { TellAFriendContextProvider } from \"../../context/tell-a-friend-context\";\nimport { SupportContextProvider } from \"../../context/support-context\";\nimport { ActivationContextProvider } from \"../../context/activation-context\";\nimport { BackupEmailUpdateContextProvider } from \"../../context/backupEmail-update-context\";\nimport { AccountResetContextProvider } from \"../../context/account-reset-context\";\nimport Notification from \"../Notification/notification\";\nimport LogOut from \"../logout/logout\";\nimport BulkUploadForm from \"../bulk-upload/bulk-upload-form\";\nimport Tickets from \"../tickets\";\nimport Events from \"../tickets/events\";\nimport Movies from \"../tickets/movies\";\nimport BulkUploadPreview from \"../bulk-upload/bulkupload-preview\";\nimport EventTicketSummary from \"../tickets/event-ticket-summary\";\nimport MovieTicketSummary from \"../tickets/movie-ticket-summary\";\nimport EventTicketForm from \"../tickets/event-ticket-form\";\nimport MovieTicketForm from \"../tickets/movie-ticket-form\";\nimport XpressWallet from \"../xpress-wallet\";\nimport TopUpWallet from \"../xpress-wallet/topup-wallet\";\nimport WalletTopupSummary from \"../xpress-wallet/wallet-topup-summary\";\nimport BulkUploadNotification from \"../bulk-upload/bulk-upload-notification\";\nimport MovieNotification from \"../tickets/movie-notification\";\nimport EventNotification from \"../tickets/event-notification\";\nimport GuessAndWin from \"../../components/guessandwin/index\";\nimport { ProductContext } from \"../../context/product-context\";\n\n// import GuessAndWin from \"../../components/guessandwin\";\n// import LogOut from \"../../components/log-out\";\n\nimport { ThemeProvider } from \"@material-ui/core\";\n\nconst drawerWidth = 240;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n },\n\n // listItem:{\n // display:'none'\n // },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n [theme.breakpoints.down(\"sm\")]: {},\n [theme.breakpoints.up(\"md\")]: {},\n [theme.breakpoints.up(\"lg\")]: {},\n marginBottom: \"5px\",\n background: \"white\",\n // boxShadow: \"0 0px 4px rgba(0,0,0,0.05), 0 1px 4px rgba(0,0,0,0.05)\",\n boxShadow:\n \"0 5px 10px rgba(154,160,185,.05), 0 15px 40px rgba(166,173,201,.2)\",\n },\n appBarShift: {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n [theme.breakpoints.down(\"sm\")]: {\n width: \"59%\",\n boxShadow: \"0px 0px 0px rgba(0,0,0,0.11)\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n width: \"57.8%\",\n boxShadow: \"0px 0px 0px rgba(0,0,0,0.11)\",\n zIndex: \"1\",\n },\n },\n menuButton: {\n marginRight: 36,\n position: \"absolute\",\n left: \"15px\",\n \"&:focus\": {\n outline: \"none\",\n },\n },\n hide: {\n display: \"none\",\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n \"&:focus\": {\n outline: \"none\",\n },\n },\n iconImg: {\n marginTop: \"15px\",\n height: \"35px\",\n width: \"35px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"25px\",\n height: \"25px\",\n },\n },\n dashboardIcon: {\n fontSize: \"35px\",\n color: \"#FF6C00\",\n marginTop: \"50px\",\n marginLeft: \"-5px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"25px\",\n marginLeft: \"-2px\",\n },\n },\n moreServicesIcon: {\n color: \"#FF6C00\",\n marginLeft: \"19px\",\n fontSize: \"35px\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"25px\",\n marginLeft: \"15px\",\n },\n },\n style: {\n boxSizing: \"border-box\",\n // boxShadow: \"4px 4px 4px rgba(0, 0, 0, 0.25)\",\n boxShadow: \"5px 7px 30px -10px rgba(150,170,180,0.5)\",\n },\n drawerOpen: {\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n [theme.breakpoints.down(\"sm\")]: {\n width: 180,\n },\n },\n hideLogo: {\n display: \"none\",\n },\n showLogo: {\n display: \"block\",\n width: \"50px\",\n },\n drawerClose: {\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: theme.spacing(7) + 1,\n [theme.breakpoints.up(\"sm\")]: {\n width: theme.spacing(9) + 1,\n },\n },\n toolbar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n marginBottom: \"0px !important\",\n marginTop: \"-60px\",\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n },\n content: {\n flexGrow: 1,\n padding: \"0px\",\n height: \"550px\",\n // background: \"red\",\n boxSizing: \"content-box\",\n // marginTop: \"300px\",\n borderRadius: \"5px\",\n marginBottom: \"150px\",\n marginLeft: \"40px\",\n marginRight: \"30px\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n position: \"relative\",\n display: \"block\",\n \"&::webkitScrollBar\": {\n background: \"none\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n height: \"550px\",\n marginTop: \"65px\",\n overflowY: \"scroll\",\n marginLeft: \"2px\",\n marginRight: \"2px\",\n },\n [theme.breakpoints.up(\"md\")]: {\n marginTop: \"70px\",\n marginLeft: \"5px\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n marginTop: \"70px\",\n // backgroundColor: 'orange',\n },\n },\n brand: {\n textAlign: \"left\",\n flex: 1,\n marginLeft: \"50px\",\n marginTop: \"2px\",\n marginBottom: \"0px\",\n padding: \"0px\",\n },\n}));\nexport default function MiniDrawer() {\n const classes = useStyles();\n const { message, type, dispatch } = useContext(AlertContext);\n const { loggedIn } = useContext(UserContext);\n const { categories, loading } = useContext(ProductContext);\n\n const theme = useTheme();\n const [open, setOpen] = useState(true);\n const width = window.innerWidth;\n const handleDrawerOpen = () => {\n setOpen(true);\n };\n\n const handleDrawerClose = () => {\n setOpen(false);\n };\n\n const [sideNavItems, setSideNavItems] = useState([]);\n\n const getData = () => {\n fetch(\"../resources/sidebar_categories.json\", {\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (data) {\n setSideNavItems(data);\n });\n };\n\n useEffect(() => {\n getData();\n }, []);\n\n useEffect(() => {\n if (width <= 600) handleDrawerClose();\n }, [width]);\n\n const filteredMenu = categories.filter(function (category) {\n return (\n sideNavItems.filter(function (sideNavItem) {\n return category.CategoryCode == sideNavItem.categoryCode;\n }).length == 0\n );\n });\n const closeAlert = () => {\n dispatch(alertActions.clear());\n };\n\n return (\n
\n \n \n
\n \n
\n \n \n \n
\n \n \n \n \n \n \n\n
\n \n \n \n
\n \n \n {!!sideNavItems &&\n sideNavItems.map(({ id, url, text, icon, icon1, img, img1 }) => (\n text !== \"Pay Bills\" &&\n \n \n {!open ? (\n \n {img1 ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )}\n \n \n ))}\n \n {open ? (\n <>\n
\n
\n \n Pay Bills\n \n \n {!!filteredMenu &&\n filteredMenu.map(({ CategoryName, UrlPath }) => (\n <>\n \n {CategoryName}\n \n \n ))}\n
\n
\n
\n \n {/* {loggedIn && } */}\n
\n \n QUICKLINKS\n \n \n \n FAQ{\" \"}\n \n \n Tell A Friend\n \n \n Contact Us\n \n
\n \n \n \n ) : (\n \n )}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {/* \n \n */}\n\n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n {categories.map((route) => (\n \n ))}\n {categories.map((route) => (\n \n ))}\n {categories.map((route) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n {/* test */}\n \n \n {/* test */}\n \n {/* test */}\n \n\n \n\n \n \n {/* */}\n {/* */}\n \n \n \n \n \n {/* */}\n \n \n\n \n \n \n \n \n \n {message && (\n \n \n \n )}\n
\n\n