{"version":3,"sources":["util/Constant.js","components/custom/Icon.js","redux/AppReducer.js","redux/AuthReducer.js","redux/LanguageReducer.js","ApplicationStore.js","components/template_1/Loading.js","components/template_1/GameLobbyModal.js","components/template_1/VerifyPhoneNumberModal.js","components/template_1/LoadingPlaceholder.js","redux/LanguageAction.js","components/contentheader/header.js","assets/img/new_icons/copy.png","assets/img/new_icons/green.png","components/template_1/AddPhoneModal.js","redux/AppAction.js","pages/template_1/NotFound.js","components/template_1/spinWheel/SpinWheelRecord.js","components/template_1/spinWheel/SpinWheelClaimRecordPopUp.js","components/template_1/spinWheel/SpinWheelListPopUpModal.js","components/spinwheel/SpinWheel.js","components/template_1/MusicPlayerModal.js","components/custom/MusicPlayer.js","components/bannerAPK/BannerAPK.js","components/bannerAPK/BannerAPKMobile.js","components/template_1/Header.js","components/template_1/Footer.js","components/custom/InfoBox.js","components/custom/DynamicLoadTable.js","redux/AuthAction.js","components/custom/Input.js","assets/img/icon/icon-bottom-home.svg","assets/img/icon/icon-bottom-referral.svg","assets/img/icon/icon-bottom-promo.svg","assets/img/icon/icon-bottom-livechat.svg","assets/img/icon/icon-bottom-account.svg","assets/img/template_1/default_lang.png","assets/img/template_1/daily-claim.png","assets/img/trophy-gif.gif","pages/template_1/report/ReferralBonus.js","components/template_1/MyProfileModal.js","components/custom/LiveTransactions.js","components/custom/RecentBigWin.js","components/custom/ReferralBanner.js","components/custom/ProviderList.js","components/custom/RecentPayout.js","components/custom/RecommendedSlots.js","components/custom/FeaturedSlots.js","components/custom/HotProviders.js","components/custom/RecommendedCasino.js","components/custom/SpeakerIcon.js","components/custom/MarqueAnnoucement.js","components/custom/HomePageBanner.js","components/custom/MobileLoginComponents.js","pages/template_1/Login.js","assets/img/template_1/share/ig.png","assets/img/template_1/share/fb.png","assets/img/template_1/share/tele.png","assets/img/template_1/share/wa.png","assets/img/new_icons/red.png","components/custom/DateRangeFilter.js","components/custom/PaginationBar.js","pages lazy /^/.//.*//Login$/ groupOptions: {} namespace object","pages lazy /^/.//.*//LiveChat$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Settings$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Kpi$/ groupOptions: {} namespace object","util/Util.js","pages lazy /^/.//.*//home//News$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//NewsDetails$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GameLobby$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//UnderMaintenance$/ groupOptions: {} namespace object","pages lazy /^/.//.*//report//GameDetails$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//ContactForm$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//LiveChat$/ groupOptions: {} namespace object","pages lazy /^/.//.*//transaction//Transfer$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Promotion$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//PromotionInfo$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//CustomPage$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GameList$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Referral/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Vip/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Rebate/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//RecentGames/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//HotGames/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//NotFound/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GamePage2$/ groupOptions: {} namespace object","pages lazy /^/.//.*//profile//SpinWheelList$/ groupOptions: {} namespace object","components/template_1/FallBackImage.js","assets/img/icon/spin-wheel-btn.svg","localization/i18n.js","util/ApiEngine.js","assets/img/new_icons/yellow.png","assets/img/img_404_dark.png","assets/img/template_1/referral-banner.jpg","assets/img/template_1/referral-banner-mobile.jpg","assets/css/theme lazy /^/.//.*/.css$/ groupOptions: {} namespace object","assets/img/error.png","config/page-settings.js","config/page-route.jsx","pages/template_1/transaction/UploadReloadReceipt.js","pages/template_1/transaction/InstantPayDeposit.js","pages/template_1/transaction/Deposit.js","components/template_1/CompleteInfoModal.js","pages/template_1/transaction/WithdrawByBankTransfer.js","pages/template_1/transaction/WithdrawByPhoneNumber.js","pages/template_1/transaction/WithdrawByEWallet.js","pages/template_1/transaction/WithdrawalMethods.js","components/template_1/DepositWithdrawalModal.js","pages/template_1/home/DownlineDetails.js","pages/template_1/home/DownlineSummary.js","pages/template_1/home/DownlineKPI.js","pages/template_1/home/Downline.js","components/template_1/DownlineModal.js","components/template_1/ShareReferralModal.js","components/template_1/LoginModal.js","components/template_1/ResetPasswordModal.js","pages/template_1/report/TransactionHistory.js","pages/template_1/report/GameHistory.js","pages/template_1/report/CommissionHistory.js","pages/template_1/report/RebateHistory.js","pages/template_1/report/DailyCheckInHistory.js","pages/template_1/report/ReportsOverview.js","components/template_1/RegisterModal.js","components/template_1/DailyCheckInModal.js","components/template_1/ReferralBonusModal.js","components/content/content.jsx","app.jsx","index.js","config/theme.js","components/template_1/LoadingGames.js","components/custom/ProviderIcon.js","assets/img/new_icons/checked.png"],"names":["ApiKey","_API_SUCCESS_KEY","_API_MESSAGE_KEY","_API_DATA_KEY","_API_CODE_KEY","_API_CONTENT_TYPE","_API_ACCEPT","_API_APPLICATION_JSON","_API_XML_HTTP_REQUEST_KEY","_API_FORM_URLENCODED","_API_POST","_API_GET","ApiUrl","_API_LOGIN","_API_LOGOUT","_API_IS_LOGGED_IN","_API_GET_USER_PAYMENT_GATEWAY_INFO","_API_SEND_RESET_PASSWORD_SMS","_API_REGISTER","_API_CREATE_OR_UPDATE_MEMBER","_API_UPDATE_MEMBER_USERFULLNAME","_API_GET_USER_ANNOUNCEMENT","_API_GET_COMPANY_CONTACT_US","_API_VERIFY_RESET_PASSWORD_SMS","_API_UPDATE_USER_DATA","_API_GET_LOGIN_FAILED_COUNT","_API_MANAGE_MEMBER_LOGIN_FAIL_COUNT","_API_GET_MEMBER_DETAILS","_API_GET_MEMBER_DOWNLINE_GAMES_BY_MASTERPRODUCT","_API_GET_MEMBER_DETAILS_DASHBOARD","_API_GET_NOTIFICATION_LIST","_API_MEMBER_RESET_PASSWORD","_API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN","_API_MARK_ANNOUNCEMENT_AS_READ","_API_GET_USER_MEMBERS","_API_GET_USER_MEMBER_LIST","_API_GET_USER_MEMBER_LIST_LATEST","_API_GET_DOWNLINE_MEMBER_STATUS_COUNT","_API_GET_MEMBER_PRODUCT_RATES","_API_GET_MEMBER_UPLINE_PRODUCT_RATES","_API_GET_MEMBER_REFERRAL_CODES","_API_GET_MEMBER_REFERRAL_GROUPS_BY_CODE","_API_GET_MEMBER_REFERRAL_GROUPS_LIST","_API_DEL_REFERRAL","_API_GENERATE_MEMBER_REFERRAL_CODE","_API_GET_UPLINE_BY_REFERRAL_CODE","_API_GET_DOWNLINE_BY_REFERRAL_ID","_API_CHECK_USERNAME","_API_GET_MEMBER_SUMMARY_KPI","_API_GET_MEMBER_DETAIL_KPI","_API_UPDATE_MEMBER_NICKNAME","_API_UPDATE_MEMBER_DOWNLINE","_API_CHECK_MEMBER_PIN_NUMBER","_API_SET_MEMBER_PIN_NUMBER","_API_RESET_MEMBER_PIN_NUMBER","_API_CHECK_SHAREHOLDER_PIN_NUMBER","_API_SET_SHAREHOLDER_PIN_NUMBER","_API_RESET_SHAREHOLDER_PIN_NUMBER","_API_CHECK_IF_PHONE_VERIFIED","_API_GET_COMPANY_SKIN_SETTINGS","_API_GET_MEMBER_PRODUCT_DETAILS","_API_CREATE_OR_UPDATE_DOWNLINE_GROUP","_API_ADD_OR_REMOVE_MEMBER_INTO_GROUP","_API_GET_DOWNLINE_GROUPS","_API_GET_DOWNLINE_GROUP_DETAIL_BY_ID","_API_DELETE_DOWNLINE_GROUP","_API_GET_UNGROUP_MEMBER_LIST","_API_GET_UNCLAIM_COMMISSION_AMT","_API_GET_USER_FULLNAME","_API_GET_REPORT_OVERVIEW_SELECT_DATE","_API_GET_MEMBER_WALLET_STATEMENT","_API_GET_MEMBER_REWARD_HISTORY","_API_GET_TRANSACTION_BY_MEMBER_ID","_API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL","_API_GET_ROLLOVER_RECORD","_API_CREATE_TRANSACTION","_API_GET_BONUS_HISTORY","_API_GET_INTERNAL_TRANSFER","_API_GET_COMMISSION_HISTORY","_API_GET_PENDING_TRANSACTION","_API_GET_CLAIM_HISTORY","_API_GET_VADERPAY_BANK_OPTION","_API_GET_GAME_RECORD_BY_MEMBER","_API_GET_OVERALL_GAME_RECORD_BY_MEMBER","_API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER","_API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT","_API_DELETE_MEMBER_BANK_ACCOUNT","_API_GET_USER_BANK","_API_GET_BANK_ACCOUNT_BY_BANK_ID","_API_GET_BANK_ACCOUNT","_API_GET_BANK_ACCOUNT_2","_API_CREATE_WALLET_TRANSFER_TRANSACTION","_API_GET_NON_SEAMLESS_PRODUCT_BALANCE","_API_GET_ASSIGNED_MEMBER_PRODUCT","_API_GET_POOL_RESULT","_API_GET_PRODUCT_WITH_MAX_RATE","_API_GET_CATEGORY_GROUP_GAME","_API_GET_CATEGORY_GROUP_GAME_DASHBOARD","_API_GET_MASTER_PRODUCT_GROUP_GAME","_API_GET_MASTER_PRODUCT_GROUP_GAME_BY_GAME_ID","_API_GET_RECOMMENDED_MASTER_PRODUCT_GROUP_GAME","_API_GET_MASTER_PRODUCT_BY_ID","_API_HOMEPAGE_PRODUCTS","_API_GET_PROVIDER_GROUP_GAME","_API_CHECK_IF_NON_SEAMLESS","_API_CHANGE_PRODUCT_PASSWORD","_API_GET_GAME_IS_NEW_WINDOW","_API_START_GAME","_API_GET_BET_DETAILS","_API_GET_COMMUNICATION_CHANNELS","_API_SEND_VERIFICATION_CODE","_API_SEND_PIN_CODE","_API_VERIFY_PHONE_NUMBER","_API_VERIFY_MULTIPLE_PHONE_NUMBER","_API_CHECK_DISPLAY_BANK_DETAIL","_API_GET_USER_BANNER","_API_MANAGE_BANNER_NOTIFICATION","_API_GET_USER_REWARD_BANNER","_API_GET_PRODUCT_CATEGORY","_API_GET_PRODUCT_CATEGORY_WITH_MASTER_PRODUCT","_API_GET_MASTER_PRODUCT_CATEGORY","_API_GET_USER_VIP_LEVEL","_API_GET_MEMBER_SHAREHOLDER_DETAIL","_API_GET_MEMBER_SHAREHOLDER_UNCLAIM","_API_UPDATE_SHAREHOLDER","_API_CLAIM_SHAREHOLDER","_API_CLAIM_COMMISSION","_API_CLAIM_REWARD","_API_UPDATE_MEMBER_THEME","_API_GET_COMPANY_TNG_SYSTEM_SETTINGS","_API_GET_FLAG_TRANSFER_BACK_MAIN_WALLET","_API_SPG_CHECK","_API_SEND_TAC_CODE","_API_VERIFY_TAC_CODE","_API_GET_USER_SYSTEM_SETTINGS","_API_ADD_OPERATION_LOG","_API_GET_CATEGORY_REWARD_RATES","_API_UPDATE_MEMBER_PHONE_NUMBER","_API_UPDATE_MEMBER_LANGUAGE","_API_CHECK_MEMBER_ROLLOVER","_API_GET_COMPANY_CONTENT_LANGUAGE","_API_GET_WALLET_TRANSFER","_API_CHECK_IF_REFERRAL_CODE_EXIST","_API_GET_MEMBER_DETAILS_AND_DATE","_API_GET_COMMISSION_AND_REBATE_AMT","_API_GET_NUMBER_OF_GEN","_API_GET_CHAT_LIST","_API_GET_DEPOSIT_PROMOTION_BY_MASTER_PRODUCT_ID","_API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS","_API_GET_DEPOSIT_PROMOTION","_API_GET_DEPOSIT_PROMOTION_BY_ID","_API_GET_DEPOSIT_PROMOTION_INFO_BY_ID","_API_GET_MEMBER_REFERRAL_LIST","_API_GET_NON_SEAMLESS_PRODUCT","_API_GET_MARQUEE_TAG_CONTENT","_API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM","_API_GET_RESTORE","_API_GET_ALL_VIP_CRITERIA","_API_GET_VIP_BENEFIT_CONTENT","_API_GET_MEMBER_WALLET_BALANCE","_API_GET_LATEST_ROLLOVER_RECORD","_API_GET_MASTER_PRODUCT_GROUP_GAME_LIST","_API_REDEEM_VOUCHER","_API_CHECK_MEMBER_BANK_ACCOUNT_BY_FULLNAME","_API_GET_APP_LOGIN_CRED","_API_GET_WEEKLY_RESCUE","_API_CHECK_ANY_UNREAD_NOTIFICATION","_API_PRODUCT_COMM_RATE","_API_UPDATE_REFERRAL_CODE","_API_CREATE_REFERRAL_CODE","_API_GET_TYPE_BANK_ACCOUNT","_API_CREATE_TOPKASH_TRANSACTION","_API_CREATE_TRANSACTION_TOPKASH","_API_GET_MEMBER_DETAIL_KPI2","_API_GENERATE_OTP","_API_CHECK_EMAIL","_API_UPDATE_MEMBER_EMAIL_AND_BIRTH_DATE","_API_GET_VIP_COMMISSION_HISTORY","_API_GET_EXTRA_HTML_STYLE","_API_GET_CRYPTO_WALLETS","_API_GET_RECENT_GAMES","_API_GET_DEPOSIT_PROMOTION_CATEGORY","_API_GET_DEPOSIT_PROMOTION_CATEGORY_BY_ID","_API_GET_LATEST_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL","_API_GET_LATEST_GAME_RECORD_BY_MEMBER","_API_GET_SUMMARY_GAME_RECORD","_API_GET_LATEST_GAME_RECORD","_API_GET_LATEST_BETS","_API_START","_API_GET_MEMBER_ACCOUNT_BALANCE","_API_GET_PAYMENT_GATEWAY_INFO_BY_ID","_API_GET_MEMBER_UPGRADE_BONUS_RECORD","_API_REDEEM_MEMBER_VIP_BONUS","_API_GET_BONUS_DEPOSIT","_API_CLAIM_PROMOTION_FS","_API_RESTORE_ALL_WALLET","_API_RESTORE_MAIN_WALLET","_API_UPDATE_TRANSACTION_VALID_FOR_PROMO","_API_CHECK_WALLET","_API_GET_MASTER_REFERRAL_CODE","_API_GET_COMPANY_ICON_SETTINGS","_API_GET_COMPANY_DETAILS","_API_SEND_CHAT","_API_SEND_FILE","_API_SEND_VOICE","_API_MARK_LIVECHAT_AS_READ","_API_GET_TOP_DEPOSIT_WITHDRAWAL","_API_MEMBER_FIRST_TIME_RESET_PASSWORD","_API_GET_TOTAL_PROMO_CLAIMABLE","_API_GET_ANNOUNCEMENT","_API_GET_MINIMUM_DEPOSIT_WITHDRAWAL","_API_GET_TOTAL_COMM_EARNED","_API_GET_SETTING","_API_PROMOTION_SLUG","_API_CUSTOM_SLUG","_API_MEMBER_UPDATE_PROFILE","_API_GET_SEO_META_CONTENT","_API_CHECK_TRANSACTION_REFERENCE","_API_GET_THEME_TEMPLATE_BY_HANDLE","_API_GET_THEME_SECTION_BY_HANDLE","_API_GET_RECENT_PAYOUT","_API_GET_BIG_WIN","_API_GET_REBATES_RECORD","_API_GET_COMPANY_CHANNEL","_API_GET_GAME_TOP_3_WINNER","_API_GET_RECOMMENDED_GAME","_API_RETRIEVE_GAME_BET_RECORDS","_API_RETRIEVE_PRODUCT_GAME_BY_GAME_ID","_API_GET_TRANSACTION_TODAY_BY_USER","_API_GET_DAILY_CHECK_IN","_API_CLAIM_DAILY_CHECK_IN","_API_DAILY_CHECK_IN_STATUS","_API_GET_DAILY_CHECK_IN_RECORD","_API_TEST_DAILY_CHECK_IN","_API_GET_MEMBER_SPINS","_API_GET_MEMBER_SPINS_CLAIMS_RECORD","_API_GET_SPINWHEEL_SETTINGS","_API_IMREWARD_CALLBACK","_API_IMREWARD_SPIN","_API_IMREWARD_GENERATE_TOKEN","_API_IMREWARD_CREATE_CAMPAIGN_TOKEN","_API_IMREWARD_GET_ALL_CAMPAIGNS_BY_SUBSCRIBER","_API_IMREWARD_FIND_ALL_CAMPAIGN_TOKENS_BY_CAMPAIGN_ID","_API_GET_MEMBER_REFERRAL_BONUS","_API_CLAIM_MEMBER_REFERRAL_BONUS","_API_ADD_MEMBER_PHONE_NUMBER","_API_GET_MEMBER_PHONE_NUMBERS","_API_GET_EWALLET_STATUS","_API_GET_USER_E_WALLET","_API_GET_DASHBOARD_COMPONENT_SEQUENCE","_API_GET_COMMISSION_SETTING","_API_UPDATE_MEMBER_FAVORITE_TRACK_IDS","_API_DYNAMIC_PRODUCT_COMM_RATE","_API_CLAIM_REFERRAL_COMMISSION","_API_GET_REBATE_INFO_AMT","_API_CLAIM_REBATE","_API_GET_REFERRAL_COMMISSION","_API_GET_REFERRAL_INFO_AMT","BaseWebUrl","currentLocale","localStorage","getItem","SessionKey","_LANGUAGE","locale","setItem","url","concat","_URL_MAIN","_URL_HOME","_URL_LOGIN","_URL_LIVECHAT","_URL_REGISTER","_URL_NOT_FOUND","_URL_UNDER_MAINTENANCE","_URL_SETTINGS","_URL_NEWS","_URL_NEWS_DETAILS","_URL_GAME_LOBBY","_URL_CONTACT_US","_URL_LIVE_CHAT","_URL_TNC","_URL_PROMOTION","_URL_PROMOTION_INFO","_URL_GAME_LIST","_URL_REFERRAL","_URL_RECENT_GAMES","_URL_VIP","_URL_GAME_LIST_SPORTS","_URL_GAME_LIST_SLOTS","_URL_GAME_LIST_CASINO","_URL_GAME_LIST_FISHHUNT","_URL_GAME_LIST_KENO","_URL_GAME_LIST_SLOTS_NEW","_URL_GAME_LIST_E_SPORT","_URL_GAME_LIST_ARCADE","_URL_GAME_LIST_CRASH","_URL_GAME_LIST_EXCHANGE","_URL_GAME_LIST_POKER","_URL_REBATE","_URL_PROMOTION_INFO_SLUG","_URL_IFRAME_GAME_PAGE","_URL_SPIN_WHEEL_LIST","_URL_HOT_GAMES","WebUrl","Proxy","get","target","prop","receiver","startsWith","urlPath","Reflect","arguments","getCurrentLocale","Status","_ENABLED","_DISABLED","_DELETED","Language","_ENGLISH","_KHMER","_CHINESE","_VIETNAMESE","_INDON","_PORTUGUESE","_BENGALI","_TRADITIONAL_CHINESE","_NEPALI","_URDU","_TOK_PISIN","_HIRI_MOTU","_LOGIN_GUID","_TEMP_GUID","Role","_SUPER_ADMIN","_SHOP","_MANAGER","_MEMBER","_ADMIN_SUB_ACCOUNT","TransactionType","_DEPOSIT","_WITHDRAWAL","_BONUS","_ADJUSTMENT","_REBATE","_TRANSFER","_REFERRALBONUS","_REFUND","_COMMISSION","_BIRTHDAY_REWARD","_DAILY_RESCUE","_CREDIT_REDEMPTION","_VIP_UPGRADE_BONUS","_SPIN_WHEEL","_REWARD","_DAILY_CHECK_IN","TransactionStatus","_OPEN","_IN_REVIEW","_IN_PROGRESS","_APPROVED","_REJECTED","_AUTO_APPROVED","InputValidationKey","_REQUIRED_KEY","_MAX_LENGTH_KEY","_MIN_LENGTH_KEY","AlertTypes","_DEFAULT","_INFO","_SUCCESS","_WARNING","_DANGER","_ERROR","_INPUT","_CUSTOM","FilterStatus","_ACTIVE","_SUSPENDED","LoginType","_LOGIN_TYPE_SHOP","_LOGIN_TYPE_ADMIN","TopUpStatus","_PENDING","_FAILED","CommonStatus","_ALL_STATUS","_PENDING_STATUS","_APPROVE_STATUS","_REJECT_STATUS","_INACTIVE_STATUS","TransferType","_CONVERT_POINTS","_BANK","_DOWNLINE","_UPLINE","BankingChannel","_CHANNEL_OFFLINE_BANKING","_CHANNEL_PAYTRUST","_CHANNEL_GPAY","PanelType","_MEMBERSITE","_MOBILESITE","_BACKOFFICE","_APPS","_SYSTEM","BetStatus","_PENDING_BET_STATUS","_SETTLED_BET_STATUS","_CANCELED_BET_STATUS","LanguageKey","_PRIMARY","PaymentType","_PREPAID","_POSTPAID","DisplayDevice","_DESKTOP_MAIN","_DESKTOP_SUB","_MOBILE_POPOUT","_MOBILE_SLIDER","_DESKTOP_POPUP","_MAIN_WALLET_ID","ClientTemplates","_CHINESE_HK","hostname","template_id","template","TransactionPriority","_NO","_YES","_FIRST_PRIORITY","HIDE_APK_BANNER_DURATION","Icon","props","React","createElement","IcoMoon","Object","assign","iconSet","_INITIAL_STATE","brandName","isBusy","isBusyLoading","isKeepedLogin","message","i18n","t","alert","iconEnabled","apiCalledResponse","savedText","savedReferralText","gameSavedText","savedQuery","savedReferralQuery","gameQuery","y","pageSize","activeTab","bottomTabIndex","member","games","gamesRecommended","slotGamesCount","slotGames","casinoGamesCount","casinoGames","gamesFeatured","hotGames","payments","walletBalance","walletInfo","reportOverview","displayData","newDisplayData","totalTransferToWallet","totalTransferToWalletLM","totalTransferToMember","totalTransferToMemberLM","totalBetAmount","totalBetAmountLM","totalCommission","totalCommissionLM","totalVipCommission","totalBonus","downline","memberData","recentData","banners","themeName","openMenu","depositModal","depositTab","loginModal","gameLobbyModal","registerModal","provider","channels","latestBets","walletsDetails","currentWalletBalance","bonusWalletBalance","isPromoCleared","isBonusWalletRestored","isValidForPromotion","isActivedPromoExist","promoMaxWithdrawal","companyIcons","bannerAPK","isResetPassword","downlineModal","reportOverviewModal","shareReferralModal","companyCurrency","depositPresetAmt","htmlStyle","chatSphere","languages","profileModal","seoContent","pageName","seoTitle","seoDescription","companyCurrencySymbol","gameIframeModal","dialingCodes","promotionLayout","promotionShowCategoryTitle","completeInfoModal","showPromoThumbnailClaimButton","dailyCheckinModal","dailyCheckInExist","referralBonusModal","isReferralBonusActive","dashboardComponent","isNormalDepositEnable","isNormalWithdrawalEnable","musicPlayerModal","companyTimeZone","_busyCount","userData","heartBeat","loginMessage","loginStateInitialized","creditLimit","isToggleLoginModal","_INITIALSTATE","languageId","retain","store","createStore","combineReducers","authState","state","length","undefined","action","type","_LOGIN_SUCCESS","_objectSpread","_LOGIN_FAILED","_UPDATE_USER_DATA","_GET_SHOP_CREDIT","_LOGOUT","_LOGIN_MODAL","appState","_BUSY","stringIsNullOrEmpty","_IDLE","Math","max","_ALERT_TYPES","SET_ALERT","keys","NONE","_API_CALLED","data","_DOWNLINE_SEARCH","_DOWNLINE_QUERY","_REFERRAL_SEARCH","_REFERRAL_QUERY","_GAME_SEARCH","_GAME_QUERY","_SET_Y","_SET_PAGESIZE","_SET_ACTIVE_TAB","_SET_BOTTOM_TAB_INDEX","_BIND_MEMBER","_BIND_MEMBER_WALLET_BALANCE","_BIND_MEMBER_WALLET","_BIND_GAMES","_BIND_GAMES_RECOMMENDED","_BIND_GAMES_FEATURED","_SET_PAYMENT_LIST","_SET_OPEN_MENU","_SET_WALLET_INFO","_SET_REPORT_OVERVIEW","_SET_DOWNLINE","_SET_BANNERS","_SET_DEPOSIT_MODAL","_SET_DOWNLINE_MODAL","_SET_SHARE_REFERRAL_MODAL","_SET_DEPOSIT_TAB","_SET_LOGIN_MODAL","_SET_GAME_LOBBY_MODAL","_SET_REGISTER_MODAL","_SET_PROVIDER","_SET_LATEST_BETS","_SET_RESET_PASSWORD","_BUSY_LOADING","_SET_PROFILE_MODAL","_SET_SPIN_WHEEL_LIST_MODAL","spinWheelListModal","_SET_SPIN_WHEEL_REPORT_MODAL","spinWheelReportModal","_SET_GAME_IFRAME_MODAL","_SET_SEO_CONTENT","_BIND_SETTING","membershipEnabled","currencySymbol","settingApiComplete","otpEnabled","eWalletOTPEnabled","captchaEnabled","priorityModalTypeId","musicPlayerEnabled","musicTrackList","isEWalletActive","isBankTransferActive","isReferralCommissionManual","isRebateManual","availableProductCategories","isGameLobbyRequired","isLoginAttemptBlockingEnabled","isHotGameEnabled","_SET_REPORT_OVERVIEW_MODAL","_SET_COMPLETE_INFO_MODAL","_SET_DAILY_CHECKIN_MODAL","_SET_DAILY_CHECKIN_EXIST","_SET_REFERRAL_BONUS_MODAL","_SET_MUSIC_PLAYER_MODAL","_IS_KEEPED_LOGIN","_BIND_HOT_GAMES","languageState","_SAVE_LANGUAGE_ID","composeWithDevTools","applyMiddleware","thunk","Loading","_dispatch","useDispatch","useSelector","logo","setLogo","useState","useEffect","async","setBusy","find","iconCategory","iconImage","defaultImage","setIdle","getCompanyIcon","Fragment","className","src","GameLobbyModal","_memberData$membershi10","useTranslation","_history","useHistory","_USER_DATA","s","usernameRef","useRef","passwordRef","showLobby","walletList","setWalletList","bonus","setBonus","commission","setCommission","clubFee","setClubFee","gameWalletBalanceBeforeTransfer","setGameWalletBalanceBeforeTransfer","masterProductContent","setMasterProductContent","fromOptions","setFromOptions","toOptions","setToOptions","mpData","setMpData","isApp","setIsApp","appUrl","setAppUrl","appDeepLink","setAppDeepLink","packageNameKeyword","setPackageNameKeyword","toLobbyBtn","setToLobbyBtn","showAppCred","setShowAppCred","selectedGameIsSeamless","setSelectedGameIsSeamless","balanceLoading","setBalanceLoading","masterProductId","setMasterProductId","selectedGameName","setSelectedGameName","popupBannerImage","setPopupBannerImage","isDisabled","setDisabled","productCommRate","setProductCommRate","isProductCommRateShowed","setIsProductCommRateShow","guaranteeRebatePercentage","setGuaranteeRebatePercentage","productGameId","setProductGameId","appUsername","setAppUsername","appPassword","setAppPassword","isNewWindow","setIsNewWindow","rolloverBalance","setRolloverBalance","rolloverTarget","setRolloverTarget","mincoinTarget","setMincoinTarget","maxWithdraw","setMaxWithdraw","promoTitle","setPromoTitle","promoSlug","setPromoSlug","isLoading","setIsLoading","isBonusWallet","setIsBonusWallet","isWalletLoaded","setIsWalletLoaded","showRestoreAccBlanceConfirmation","setShowRestoreAccBlanceConfirmation","alertIcon","setAlertIcon","defaultGameBanner","setDefaultGameBanner","seconds","setSeconds","setIsValidForPromotion","countdown","setCountdown","intervalId","setIntervalId","promoAlert","setPromoAlert","totalPromoClaimable","isSupportIframe","setIsSupportIframe","iframeAlert","setIsIframeAlert","balanceRefresh","setBalanceRefresh","getRolloverProgress","CheckWallet","startGame","checkIsProductCommRateShouldShow","responseJson","ApiEngine","username","password","isNewWindowJson","getProductComRate","providerName","apiUrl","_response$find","products","x","categoryName","category","name","isObjectEmpty","productCommRatePercentage","playerComm","toFixed","copyText","textType","current","select","document","execCommand","getRestore","id","getRestoreAccountBlance","heartBeatDispatch","showResponseMessage","startGame2","gameId","breadcrumbData","title","location","pathname","search","path","push","window","open","innerWidth","setGameLobbyModal","setTransactionValidForPromo","interval","setInterval","prevSeconds","clearInterval","closeBtn","onClick","VIcon","icon","themeIcons","close","SweetAlert","customIcon","height","width","alt","cancelBtnText","confirmBtnText","onCancel","custom","showCancel","reverseButtons","cancelBtnBsStyle","customButtons","disabled","dangerouslySetInnerHTML","__html","replace","style","marginBottom","fontSize","InfoBox","maxWidth","margin","content","onConfirm","Modal","fade","isOpen","contentClassName","backdrop","toggle","fullscreen","ModalHeader","ModalBody","numberWithCurrencyFormat","Spinner","animation","role","size","verticalAlign","marginLeft","refresh","dashboardCommission","_memberData$membershi","_memberData$membershi2","_memberData$membershi3","_memberData$membershi4","_memberData$membershi5","_memberData$membershi6","_memberData$membershi7","_memberData$membershi8","_memberData$membershi9","rebatePercentage","membership","rebateSlot","rebateSport","rebateESport","rebateCasino","rebateFishHunt","rebateKeno","rebateArcade","rebateCrash","rebateExchange","getMembershipRebateRate","lockClosed","parseFloat","color","lineHeight","ReactNativeWebView","postMessage","JSON","stringify","deeplink","process","REACT_APP_ENDPOINT_URL","origin","_URL_GAME_PAGE","selectedTheme","prev","countDownAlert","position","value","ref","readOnly","cursor","mdiContentCopy","VerifyPhoneNumberModal","_ref","show","phoneNumber","phoneNumType","onClose","onCallback","_objectWithoutProperties","_excluded","showVerifyOtpModal","setShowVerifyOtpModal","otpValue","setOtpValue","showVerifyOtpError","setShowVerifyOtpError","sentCode","setSentCode","countdownPeriod","setCountdownPeriod","TACcountdownPeriod","setTACCountdownPeriod","TACtimer","setTACtimer","setTimeout","TACtimedOut","setTACtimedOut","attemp","setAttemp","elePin","pinInputDisabled","setPinInputDisabled","tempPinNumber","setTempPinNumber","pinLoading","setPinLoading","selectedPhoneNumber","setSelectedPhoneNumber","selectedPhoneNumType","setSelectedPhoneNumType","countdownPeriodTimeOutId","apiTimeOutId","stopTimeout","clearTimeout","verifyOTP","post","createMultiPartFormBody","verificationCode","pinstr","phoneNum","then","response","clear","PinInput","inputMode","inputStyle","border","regexCriteria","onComplete","index","key","pinStr","keyLength","split","onKeyPress","params","languageCode","TACExist","usage","createFormBody","_TAC_VALID_TIMER","sendOtp","LoadingPlaceholder","_COOKIE","Cookies","saveLanguageId","removeItem","set","dispatch","ContentHeader","enableBackButton","subTitle","topRightTitle","backButtonOnClick","escButtonOnClick","displayYellowAlert","topRightUrl","alertMsg","addEventListener","e","fontWeight","minWidth","require","bottom","defaultProps","history","go","module","exports","AddPhoneModal","PhoneNumberPrefix","selectedPhonePrefix","setSelectedPhonePrefix","formattedPhoneNumber","setFormattedPhoneNumber","register","ewalletRegister","handleSubmit","ewalletHandleSubmit","errors","ewalletErrors","setError","ewalletError","useForm","sanitizePhoneNumber","test","slice","onSubmit","accountHolderName","bindMember","required","onChange","map","prefix","label","autoComplete","minLength","maxLength","pattern","onKeyDown","includes","preventDefault","newValue","registerPhone","setY","setBanners","balance","walletDetails","totalwalletbalance","totalbonuswallet","isNaN","setProvider","availableList","providerList","groupBy","item","productName","providerArray","providerImage","providerImageLight","bindGames","bindGamesRecommended","bindGamesFeatured","bindHotGames","setPaymentList","setPageSize","pagesize","setGameSearchText","setGameQuery","setOpenMenu","setPerformApiCall","status","success","translateRequired","messageToShow","showMessage","alertProps","_alertProps$title","customConfirm","disposeMessage","customCancel","allowEscape","setDepositModal","tab","setDownlineModal","setShareReferralModal","setDepositTab","setLoginModal","setRegisterModal","setResetPassword","setAppSetting","presetAmt","currency","medias","setBusyLoading","setMyProfileModal","setSpinWheelListModal","setSpinWheelReportModal","setSeoContent","_ref3","setReportOverviewModal","setGameIframeModal","setCompleteInfoModal","setDailyCheckinModal","setDailyCheckInExist","setReferralBonusModal","setMusicPlayerModal","userKeepLogin","NotFound","href","SpinWheelRecord","_location$state","_location$state2","_location$state3","_location","useLocation","paginationPageNum","setPaginationPageNum","isResetCurrentPage","setIsResetCurrentPage","loadingFlag","setLoadingFlag","memberSpinList","setMemberSpinList","startDate","setStartDate","date","moment","startOf","endDate","setEndDate","endOf","selectedFilterType","setSelectedFilterType","format","getMemberSpinData","page","keyword","itemsPerPage","start","totalCount","pageValue","ceil","prevValue","err","DateRangeFilter","onSave","end","options","initialType","typeOnSelect","colSpan","textAlign","marginTop","PaginationBar","totalPages","retrieveDataRecords","setIsChangeTab","SpinWheelClaimRecordPopUp","loadingSearchData","setLoadingSearchData","coinIcon","setCoinIcon","recordType","selectedOption","setSelectedOption","angleLeft","SpinWheelListPopUpModal","utcTimeForTooltip","setUtcTimeForTooltip","isLoadingList","setIsLoadingList","spinWheelList","setSpinWheelList","shouldShowSpinWheel","setShouldShowSpinWheel","emptyPromoIcon","setEmptyPromoIcon","iframeSrc","setIframeSrc","isLoadingBtn","setIsLoadingBtn","firstLoad","intervalRef","hasShownError","getMySpins","paginatedData","i","calculateTimeLeft","utcTimezone","utc","spinWheelEnabled","showSpinWheelForGuest","init","expiryDate","expiryDateWithUtc","endsWith","now","Date","expiry","getTime","diff","toLowerCase","days","floor","hours","minutes","parts","dayLabel","hourLabel","minuteLabel","join","alignSelf","unionIcon","clas","display","alignItems","gap","padding","textDecoration","refreshTime","borderBottom","campaignName","expiryDateTxt","completedAt","opacity","memberSpinWheelId","initSpin","SpinWheel","isPromoInfo","onClickPromoInfo","promoInfoId","setSpinWheelEnabled","setShowSpinWheelForGuest","clickCloseSpinWheel","setClickCloseSpinWheel","showSpinWheelListPopup","setShowSpinWheelListPopup","spinWheelImg","setSpinWheelImg","iconColor","setIconColor","spinWheelIcon","iconName","showSpinWheelForGuestTemp","parentElement","querySelector","backgroundColor","getComputedStyle","isDarkTheme","isDarkBackground","imgLoad","setImgLoad","SpinWheelIcon","onLoad","bgColor","rgb","match","parseInt","CloseBtn","stopPropagation","MusicPlayerModal","systemMusicTracks","setSystemMusicPlayList","memberFavoriteTracks","setMemberFavoritePlaylist","setPlayList","playing","setPlaying","currentTrack","setCurrentTrack","currentTrackIndex","setCurrentTrackIndex","trackDuration","trackProgress","setTrackProgress","playedProgress","setPlayed","playerRef","setSeeking","loop","setLoop","isShuffle","setIsShuffle","setShuffleBtnClicked","currentPlayListType","setCurrentPlayListType","durations","setDurations","pendingItems","setPendingItems","activeMusicListTab","setActiveMusicListTab","iconTheme","musicListTab","text","musicListTabId","handleSeekAndProgress","formatTime","secs","handleListPlayPause","selectedTrack","activeMusicListTabType","setTrackAsFavourite","findIndex","updatedPlayList","favorite","updatedFavoriteList","memberFavoriteTrackIds","track","updateMemberFavoriteTrackIds","filter","ReactPlayer","link","onDuration","duration","handleTrackDuration","pendingItem","musicNotes","min","step","onMouseDown","newProgress","onMouseUp","seekTo","onTouchStart","onTouchMove","touch","touches","rect","getBoundingClientRect","touchPosition","clientX","left","clampedProgress","onTouchEnd","handleTouchEnd","shuffleBtn","handlePrevious","_targetPlayList$prevI","targetPlayList","prevIndex","previousBtn","handlePlayPause","pauseButton","playButton","handleNext","_targetPlayList$nextI","nextIndex","nextBtn","handleToggleLoop","sessionStorage","d","addedMusic","addFavourite","MusicPlayer","setTrackTitle","setIsTrackLoading","setIsTrackPlaying","clickShuffleBtn","setClickShuffleBtn","shuffleEnabled","setShuffleEnabled","isPlayNextTrack","setIsPlayNextTrack","isPlayPrevTrack","setIsPlayPrevTrack","playButtonClicked","setPlayBtnClicked","systemMusicPlayList","memberFavoritePlaylist","savedState","muted","setMuted","seeking","setDuration","progress","setProgress","played","initFlag","setInitFlag","playList","shuffleBtnClicked","isMobile","setIsMobile","mobileOS","setMobileOS","turnOnPlay","setTurnOnPlay","userAgent","navigator","vendor","opera","detectMobileOS","memberFavoriteTrackList","forEach","memberTrack","shuffledSystemPlaylist","shufflePlaylist","shuffledMemberFavoritePlaylist","setNewCurrentTrackIndex","memberFavoriteList","handleTrackLoading","systemPlayList","memberPlayList","newIndex","_playList$nextIndex","_playList$prevIndex","playlist","sort","random","controls","volume","onPlay","handlePlay","onProgress","playedSeconds","onEnded","handleEnded","onError","handleError","console","log","onReady","handleReady","playsinline","onBuffer","handleBuffer","onBufferEnd","handleBufferEnd","getInternalPlayer","playVideo","musicPlaylist","BannerAPK","shouldShowBannerAPK","setShouldShowBannerAPK","clickCloseBannerAPK","setClickCloseBannerAPK","bannerAPKImg","setBannerAPKImg","bannerAPKUrl","setBannerAPKUrl","bannerAPKIcon","desktopImage","URL","isValidApkUrl","handleResize","removeEventListener","mobileImage","BannerAPKIcon","handleDownloadAPK","fileName","substring","lastIndexOf","download","body","appendChild","click","removeChild","BannerAPKMobile","Header","SecureLS","URLSearchParams","tacVerifyRegister","tacVerifyHandleSubmit","tacVerifyErrors","watch","tacVerifyWatch","setValue","tacVerifySetValue","unregister","tacVerifyUnregister","ResetPasswordRegister","ResetPasswordHandleSubmit","ResetPasswordErrors","ResetPasswordWatch","ResetPasswordSetValue","ResetPasswordUnregister","showCodeError","setShowCodeError","clearErrors","getValues","control","trigger","phoneNumberChk","PasswordUpdatedHandleSubmit","showModalLogin","setShowModalLogin","hideLoginPassword","setHideLoginPassword","registerSteps","setRegisterSteps","activeLanguage","setActiveLanguage","setCurrentWalletBalance","_userData","referralCode","setReferralCode","formattedPhone","setFormattedPhone","phoneNumberError","setPhoneNumberError","_username","_setUsername","isUsernameAvailable","setIsUsernameAvailable","isDigit","setIsDigit","setPhoneNumber","enteredPinNumber","setEnteredPinNumber","enteredPinNumberConfirm","setEnteredPinNumberConfirm","pinNumberConfirmFocused","setPinNumberConfirmFocused","pinNumber","setPinNumber","TACsent","setTACsent","canSendTAC","setCanSendTAC","TACBtnAble","setTACBtnAble","tempPinNumberFocused","setTempPinNumberFocused","isLiveChatOpen","setIsLiveChatOpen","registerStepsViaEmail","setRegisterStepsViaEmail","registerStepsThreeFirst","setRegisterStepsThreeFirst","_email","_setEmail","_emailText","_setEmailText","isEmailAvailable","setIsEmailAvailable","setPassword","referralCodeString","setReferralCodeString","forgotPassword","setForgotPassword","isModalVisible","setIsModalVisible","isForgetPassword","setIsForgetPassword","isLogin","setIsLogin","verifyPhoneTAC","setVerifyPhoneTAC","isPasswordUpdated","setIsPasswordUpdated","verifyState","button","isUpdatePassword","setIsUpdatePassword","tempPhoneNum","setTempPhoneNum","countdownTAC","setCountdownTAC","setUsername","selectedChannel","setSelectedChannel","toggleModal","setToggleModal","isLoginLoading","setIsLoginLoading","isTACLoading","setIsTACLoading","isRegisterLoading","setIsRegisterLoading","disableRegister","setDisableRegister","disableViaEmail","setDisableViaEmail","viaEmailLoading","setViaEmailLoading","timerPeriod","setTimerPeriod","tabActive","setTabActive","disabledRefrerral","setDisabledRefrerral","sideMenuList","setSideMenuList","spinWheelMenuItem","setSpinWheelMenuItem","smallLogo","setSmallLogo","profileIcon","setProfileIcon","loginBanner","setLoginBanner","dropdownOpen","setDropdownOpen","openMobileSideMenu","setOpenMobileSideMenu","chatLoading","setChatLoading","APKMobileBannerIsVisible","setAPKMobileBannerIsVisible","companyLanguages","languageSelected","setLanguageSelected","code","registerChannel","unreadLivechat","totalUnreadLivechat","languageDetected","setLanguageDetected","isTrackPlaying","trackTitle","isTrackLoading","rolloverData","setRolloverData","sideNavList","spinnerWheelMenu","profile","fetchData","reference","loadSpinWheelMenu","_companyLanguages$","tempLangCode","storedLanguage","tempLang","isDefault","onInitLanguage","currentDate","localeUserCreatedDate","language","languageSetting","getLatestRolloverRecord","pin","email","TAC","submitPin","onChangeUsername","useCallback","debounce","nativeEvent","handleClick","channel","actionUrl","cta","attachment","parsedReferralCode","indexOf","checkIfReferralExist","findLanguage","onChangeLanguage","selectedLanguage","previousLocale","changeLanguage","locationPathname","regex","RegExp","setCurrentLocale","customEvent","CustomEvent","detail","dispatchEvent","handleImageError","displayMode","viewBox","fill","xmlns","fillRule","clipRule","Number","isFinite","deposit","percentage","formattedPercentage","round","upperCase","focusable","aria-hidden","data-testid","UncontrolledDropdown","toggleDropDown","prevState","direction","DropdownToggle","DropdownMenu","DropdownItem","onClickLanguage","menu1","exclamation","availableProductCategory","sidenavItem","productCategory","trim","ignoreLinks","itemPathname","clipPath","x1","y1","x2","y2","gradientUnits","stopColor","offset","transform","image","description","centered","usernameAvail","avail","checkUsername","phoneError","referralString","referralCheck","checkIfReferralExist2","defaultReferralCode","phoneNo","Array","from","autocomplete","Input","onInput","autoFocus","selectionStart","selectionEnd","setSelectionRange","onchange","eyeBlocked","eye","top","checkmarkOutline","validateReferralCode","background","checkEmail","repeat","substr","_SECONDS_IN_MS","placeholder","event","selectedReferralCode","handleRegisterClick","formData","taccode","formBody","TACjson","newpassword","newPassword","confpassword","confPassword","validate","Footer","bottomNavList","setBottomNavList","displayDefaultIcon","setDisplayDefaultIcon","defaultIcon","setDefaultIcon","footerSections","setFooterSections","sectionSettings","setSectionSettings","activeLanguageId","setActiveLanguageId","activeLanguageCode","defaultGameIcon","setDefaultGameIcon","bottomNav","_BOTTOM_NAV_LIST","sanitizedIconName","activeImage","activeIconImage","subLink","Image","defaultGameIconTemp","_defaultGameIconTemp$","_defaultGameIconTemp$2","navIndex","tempLangId","sections","settings","sectionJson","parse","every","blocks","block_order","validateFooterSections","error","getFooterSections","currentYear","getFullYear","parsedSettings","parsedTranslatedSettings","translatedSettings","sanitizeUrls","translatedSettingsBlock","b","defaultSettings","entries","reduce","acc","block_id","block","links","_ref2","link_key","minHeight","_block$defaultSetting","heading","link_index","_block$defaultSetting2","defaultLink","linkItem","FallBackImage","fallbackSrc","_block$defaultSetting3","_block$defaultSetting4","ProviderIcon","containerClassName","imgLightMode","ProviderIconDisplay","imgClassName","imgSrc","imgDarkMode","imgAlt","whiteSpace","overflow","textOverflow","forwardRef","iconClassName","rest","typeConfig","notice","textColor","highlightColor","danger","default","borderRadius","DynamicLoadTable","_props$infiniteLoadEn","_supportInfiniteLoading","dataList","setDataList","totalRecords","setTotaRecords","searchEnabled","setSearchEnabled","autoscrollEnabled","setAutoscrollEnabled","apiQuery","setApiQuery","setTitle","isTable","setIsTable","setTemplate","latestApiQuery","abortControllerRef","noDataBg","setNoDataBg","triggerCount","setTriggerCount","onScrollHandlerModal","popUpModalId","getElementById","windowHeight","clientHeight","docHeight","scrollHeight","offsetHeight","windowBottom","scrollTop","modalElement","modalBottom","scrollTo","behavior","getDataList","onScrollHandler","checkTriggerInfiniteLoading","container","elem","listContainer","bufferTriggerHeight","offsetTop","scrollY","innerHeight","list","signal","abortController","abort","AbortController","pageNumber","isQueryStringAppended","totalDataLoaded","isQueryStringAppended1","currentApiUrl","currentResponseJson","Util","returnRecord","_ClientTemplates$filt","_ClientTemplates$filt2","templateFilter","dataLength","render","justifyContent","paddingTop","paddingBottom","gridColumn","justifySelf","performLoginReturnMessage","getState","jwtToken","userId","updateLoginUser","performLogout","resetLogin","bonusBalance","isAnyTransactionValidForPromo","labelClassName","inputClassName","small","inputGroupType","inputGroupContent","getValidationMessage","TransactionHistory","transactionDetailsActiveTaB","setTransactionDetailsActiveTaB","sortOrder","setSortOrder","searchTransactionHistory","setSearchTransactionHistory","referralBonus","setReferralBonus","isSubmitLoading","setIsSubmitLoading","GetReferralBonus","temp","statusHtml","bonusAmount","MyProfileModal","_memberData$phoneNumb","popout","showAlert","setShowAlert","birthDate","setBirthDate","subtract","maxDate","minDate","isEditBirthDate","setIsEditBirthDate","memberBankAccounts","setMemberBankAccounts","showAddPhoneNumberModal","setShowAddPhoneNumberModal","memberEwalletAccounts","setMemberEwalletAccounts","selectedPhoneNumberId","setSelectedPhoneNumberId","showDeletePhoneNumberModal","setShowDeletePhoneNumberModal","setPhoneNumType","completeProfile","completeProfileHandleSubmit","completeProfileErrors","setCompleteProfileError","getMemberEwalletAccounts","checkBirthDate","getMemberBankAccount","birthDateString","bankAccountList","bankAccount","bankName","accountNumber","bankId","accNum","handleVerifyOtp","user","isEmpty","userFullName","calender4","DatePicker","singleDatePicker","onApply","picker","alwaysShowCalendars","applyLabel","cancelLabel","showDropdowns","opens","containerStyles","profilePhone","isPhoneVerify","Skeleton","baseColor","settingsBank","wallet","verified","handleAddPhoneCallback","handleVerifyOtpCallback","LiveTransactions","RecentBigWin","updateMasterProductId","updateSelectedGameIsSeamless","updateSelectedGameName","updateProductGameId","updatePopBannerImage","updateTitle","updateCategoryTitle","UpdateIsSupportIframe","updateProviderName","selectedGameHasOwnLobby","setSelectedGameHasOwnLobby","showPregamePopup","setShowPregamePopup","SetToLobbyBtn","bigWinList","setBigWinList","isSupportIframeState","setIsSupportIframeState","categoryTitle","setCategoryTitle","setProviderName","isGameLobbyModal","setIsGameLobbyModal","slides","chunkArray","arr","chunkSize","result","dots","infinite","speed","slidesToShow","slidesToScroll","vertical","verticalSwiping","autoplay","autoplaySpeed","arrows","responsive","breakpoint","variableWidth","getBigWin","responseJsonBigWin","bigWinResult","pop","hasOwnLobby","gameName","isSeamless","popoutBanner","tempFromOptions","tempToOptions","product","option","productId","amount","Slider","slide","winning","ReferralBanner","showCodeAlert","setShowCodeAlert","referralBanner","setReferralBanner","referralBannerMobile","setReferralBannerMobile","uplineLoading","setUplineLoading","referralDetails","copy1","setCopy1","copy2","setCopy2","_codeRef","_linkRef","registerUrl","setRegisterUrl","tempReferralBanner","tempReferralBannerMobile","copy","copyItem","clipboard","writeText","innerText","copyItem2","ProviderList","SwiperCore","use","Autoplay","gameCategoryActive","setGameCategoryActive","gameCategories","setGameCategories","setGames","teamBanner","setTeamBanner","selectedGameCategoryGames","setSelectedGameCategoryGames","setHotgames","containerRef","pathnamesToFilter","gameList","exchangeCategory","game","leftButton","rightButton","scrollAmount","scrollLeft","scrollBy","scrollRight","containerCurr","activeElement","scrollAmountActive","offsetLeft","isHotGame","selectedCategoryGameList","loading","LoadingGames","cx","cy","r","fillOpacity","stroke","strokeWidth","RecentPayout","payoutList","setPayoutList","payoutSlick","draggable","touchMove","getRecentPayout","responseJsonPayout","RecommendedSlots","_slotSlickRef$current","slotSlickRef","recommendedSlotGames","setRecommendedSlotGames","recommendedSlotGamesCount","setRecommendedSlotGamesCount","recommendedCasinoGames","setRecommendedCasinoGames","recommendedCasinoGamesCount","setRecommendedCasinoGamesCount","dragging","setDragging","loadingRecommendedGames","setLoadingRecommendedGames","slotSlick","lazyLoad","swipe","swipeToSlide","beforeChange","afterChange","recommendedGames","groupedArray","casinoRecommendedGame","casinoGameGrouped","getNewGames","toUpperCase","innerSlider","children","_slotSlickRef$current2","slickPrev","_slotSlickRef$current3","slickNext","angleRight","index2","FeaturedSlots","_featuredSlickRef$cur","featuredSlickRef","featuredSlotGames","setFeaturedSlotGames","featuredSlotGamesCount","setFeaturedSlotGamesCount","featuredGame","isFeaturedGame","featuredGameGrouped","_featuredSlickRef$cur2","_featuredSlickRef$cur3","HotProviders","providerSlick","setProviderSlick","RecommendedCasino","_liveSlickRef$current","liveSlickRef","_liveSlickRef$current2","_liveSlickRef$current3","SpeakerIcon","MarqueAnnoucement","setContent","getMarqueeTagContent","HomePageBanner","bannerLoading","setBannerLoading","bannersList","setBannersList","getBanners","flexDirection","Swiper","spaceBetween","slidesPerView","onSlideChange","onSwiper","swiper","delay","disableOnInteraction","pauseOnMouseEnter","breakpoints","1280","1024","480","0","_","SwiperSlide","MobileLoginComponent","minimumDeposit","setMinimumDeposit","minimumWithdrawal","setMinimumWithdrawal","rolloverWarning","setRolloverWarning","getMinumumDepositWithdrawal","_responseJson$ApiKey$","_responseJson$ApiKey$2","vipName","checkMemberRollover","withdraw","Login","isAutoScrolling","isStopScroll","setIsStopScroll","isTransferSuccess","setIsTransferSuccess","transferShow","setTransferShow","toGameAmount","setToGameAmount","promoId","setPromoId","promoCodeList","setPromoCodeList","inputValue","setInputValue","promoShow","setPromoShow","paidAmount","setPaidAmount","transferDate","setTransferDate","transferLoading","setTransferLoading","showDepositSuccess","setShowDepositSuccess","showDepositFailed","setShowDepositFailed","showAnnouncementModal","setShowAnnouncementModal","announcementList","setAnnouncementsList","transcactionNumber","setTranscactionNumber","useMediaQuery","query","handleSubmitPopup","registerPopup","controlPopup","watchPopup","getValuesPopup","setValuePopup","errorsPopup","reset","resetPopup","handleWindowSizeChange","transactionStatus","getAnnouncement","closePopUp","startAutoScroll","startTime","performance","requestAnimationFrame","scroll","currentTime","elapsedTime","easeInOut","cos","PI","scrollToBottom","bool","deviceType","componentStatus","userComponentStatus","MobileLoginComponents","ReferralBannerComponent","fromWallet","toWallet","promotionProductId","gameWalletBalance","updateWalletBalance","transactionId","minDeposit","rollover","promo","PlaceholderLoading","shape","colorStart","colorEnd","sDate","setSDate","eDate","setEDate","calendarOpen","setCalendarOpen","startCalendar","endCalendar","optionClicked","setOptionClicked","currMinDate","setCurrMinDate","currMaxDate","setCurrMaxDate","chgOption","setchgOption","onStartDateChange","onEndDateChange","_DATE_SELECTIONS","to","checkOptionActive","isActive","separator","startDateStr","endDateStr","reverse","isBetween","startDateMoment","endDateMoment","tempMinDate","tempMaxDate","isSameOrBefore","add","isSameOrAfter","object","updateTypeOnSelection","selection","handleTouchStart","startDateTimeRef","endDateTimeRef","handleClickOutside","contains","DateTime","onFocus","inputProps","dateFormat","closeOnSelect","isValidDate","timeFormat","textTransform","Pagination","searchKeyword","currentPage","setCurrentPage","startPage","pageLimit","endPage","adjustedStartPage","goToPage","previousPage","nextPage","webpackAsyncContext","req","Promise","resolve","__webpack_require__","o","Error","ids","all","property","encodedKey","encodeURIComponent","encodedValue","FormData","append","validationMsg","formatNumber","decimalPlaces","toLocaleString","minimumFractionDigits","decimal","force","CURRENCY_DECIMAL","toString","convertedNumber","pow","afterDecimalNumber","decimalDiff","processNumber","charAt","VALID_LOCALES","isValidLocale","hasValidLocale","browserLocale","extractLocaleFromPathname","regex2","pathSegments","segment","abbreviateNumber","number","parsedNumber","adjustFontSizeToFit","querySelectorAll","element","clientWidth","maxHeight","scrollWidth","webpackEmptyAsyncContext","FallbackImage","imageLoaded","setImageLoaded","imageError","setImageError","handleLoad","_resources","common","common_en","common_kh","common_cn","common_vi","common_id","common_pt","common_bn","common_zh_hk","common_ur","common_ne","common_tpi","common_ho","initReactI18next","defaultNS","debug","resources","lng","fallbackLng","keySeparator","interpolation","escapeValue","interceptError","returnData","AppActions","AuthActions","axios","create","baseURL","withCredentials","headers","interceptors","request","config","requestConfig","interceptRequest","interceptResponse","PageSettings","createContext","fetchRoute","themeVar","lazy","LiveChat","Settings","News","NewsDetails","GameLobby","UnderMaintenance","ContactUs","LiveChatPage","Promotion","PromotionInfo","CustomPage","GameList","Referral","Vip","Rebate","RecentGames","HotGames","IframeGamePage","_LOGIN_ROUTE3","exact","component","_ROUTES","authRequired","ConvertToLocalePath","routes","_LOCALED_ROUTES","route","localePath","UploadReloadReceipt","file","setFile","receiptReference","setReceiptReference","selected","setSelected","setAmount","isReloadSuccess","setIsReloadSuccess","reloadDate","setReloadDate","setMin","setMax","bankAccountId","setBankAccountId","selectedBank","setIsDisabled","setBankName","accNumber","setAccNumber","setLabel","bankref","setBankRef","bonusDeposit","setBonusDeposit","bankAccountOption","setBankAccountOption","addAmountList","setAddAmountList","_accNumberRef","_labelRef","_bankRef","copied","setCopied","toobj","setToobj","headerMsg","setHeaderMsg","hasPendingTxn","setHasPendingTxn","transType","setTransType","timeDiffSeconds","setTimeDiffSeconds","countdownTime","setCountdownTime","countdownStr","setCountdownStr","loadingSpinner","setLoadingSpinner","bankLogo","setBankLogo","collapse","setCollapse","bankError","setBankError","amountError","setAmountError","refError","setRefError","fileError","setFileError","errorMessage","setErrorMessage","depositPresetAmtArray","updatedData","pendingTransactionJson","tempS","bankOptions","maximumDeposit","tempPeriod","tempX","tempMM","tempSS","tempStr","getBankAccInfo","debouncedAmount","textToCopy","tagName","catch","bank","bankIndex","formattedCurrency","total","paddingLeft","paddingRight","sanitizedValue","htmlFor","bytes","decimals","k","dm","sizes","formatBytes","hidden","selectedFile","files","accept","transactionTypeId","panel","fbq","pixels","handleRedirect","InstantPayDeposit","selectedEwallet","setSelectedEwallet","isDirect","setIsDirect","displayNotes","setDisplayNotes","instantBankSetting","setInstantBankSetting","instantPayGatewayId","setinstantPayGatewayId","phoneOption","setPhoneOption","requirePhone","setRequirePhone","phone","setPhone","errorPhone","setErrorPhone","_props$instantBankSet","_props$instantBankSet2","instantBankSettingModelList","instantBankSettingModel","instantPayGatewayNotes","bankCode","validationError","validatePhone","instantPayBankSettingId","instantPay","Deposit","instantPayOption","setInstantPayOption","paymentOptionList","setPaymentOptionList","paymentOption","setPaymentOption","setActiveTab","showFullnamePopup","setShowFullnamePopup","memberId","setMemberId","activePaymentOption","setActivePaymentOption","showConfirmation","setShowConfirmation","showBankOptions","setShowBankOptions","showBackward","setShowBackward","setIsNormalDepositEnable","activeIndex","setActiveIndex","setSelectedBank","filterBankOptions","setFilterBankOptions","initOptions","responseJsonData","tempOptions","responseJsonBank","hasEwallet","some","isEwallet","paymentType","fee","remark","account","instantPayGatewayString","serviceCharge","remarks","notes","normalOptions","warning","confirmBtnBsStyle","borderColor","angleDown","class","instantBankSettingId","CompleteInfoModal","priorityModalType","fullName","WithdrawByBankTransfer","onRenderComplete","onAfterHandleCheck","setAction","addSuccessModelShow","setAddSuccessModelShow","setAccountNumber","setAccountHolderName","isInsufficientAmount","setIsInsufficientAmount","bankOption","setBankOption","isWithdrawalSuccess","setIsWithdrawalSuccess","withdrawalAmount","setWithdrawalAmount","withdrawalDate","setWithdrawalDate","showPinEntry","setShowPinEntry","showVerifyPhone","setShowVerifyPhone","changePinShow","setChangePinShow","mainForm","setSuccess","successMsg","setSuccessMsg","pinEntered","setPinEntered","pinNumberFinal","setPinNumberFinal","enteredPinNumberFinal","setEnteredPinNumberFinal","pinNumberFinalFocused","setPinNumberFinalFocused","initDone","setInitDone","hasRolloverBal","setHasRolloverBal","memberEmail","setMemberEmail","memberPhone","setMemberPhone","transactionData","setTransactionData","showModal","setShowModal","displayDataIndex","setDisplayDataIndex","totalWithdrawAmountToday","setTotalWithdrawAmountToday","totalWithdrawCountToday","setTotalWithdrawCountToday","isWithdrawalLimitError","setIsWithdrawalLimitError","remainingWithdrawalLimit","setRemainingWithdrawalLimit","memberWithdrawalAmountLimit","setMemberWithdrawalAmountLimit","specificElementRef","isWithdrawLoading","setIsWithdrawLoading","getMemberDetails","transactionTodayJson","transactionsToday","totalAmount","accumulator","bankList","maximumWithdrawal","getBankList","bankInfo","maxWithdrawalAmount","maxWithdrawalCount","withdrawAmountLimitRemainingToday","triggerParentFunction","createAccParams","createAccResponseJson","createTransParams","bankAccountNumber","bankAccountHolderName","createTransResponseJson","createTransParams2","submitWithdrawal","defaultValue","handleSelectedBank","pointerEvents","addAccountHolderName","addAccountNumber","WithdrawByPhoneNumber","selectedBankCode","eWalletError","setEWalletError","phoneNumberList","phoneNumberData","handleSelectedPhoneNumber","1","WithdrawalMethods","isHidden","showWithdrawBankTransfer","setShowWithdrawBankTransfer","showWithdrawTopkash","setShowWithdrawTopkash","showWithdrawMethods","setShowWithdrawMethods","showWithdrawBCPay","setShowWithdrawBCPay","isInitFinished","setIsInitFinished","isWithdrawEleReady","setIsWithdrawEleReady","showWithdrawByPhoneNumber1","setShowWithdrawByPhoneNumber1","showWithdrawByPhoneNumber2","setShowWithdrawByPhoneNumber2","showWithdrawByEWallet","setShowWithdrawByEWallet","withdrawMethods","setWithdrawMethods","setIsNormalWithdrawalEnable","selectedWithdrawMethod","setSelectedWithdrawMethod","handleChildRenderComplete","afterHandleCheck","withdrawList","handle","responseJson3","ewalletlList","getBankEwallet","WithdrawByEWallet","DepositWithdrawalModal","isDepositModal","depositAndWithdrawActive","modalRef","handleWithdrawalMethodsModal","scrollIntoView","DownlineDetails","setShowDownlineDetail","showDownlineDetail","setShowDownlineList","setShowDownlineDetailTab","downlineData","setDownlineData","referralUsed","setReferralUsed","categories","setCategories","setProducts","nickname","setNickname","referralCodeDetail","setReferralCodeDetail","referralGroupOptions","setReferralGroupOptions","selectedReferralGroup","setSelectedReferralGroup","loadingDetails","setLoadingDetails","editDownlineShow","setEditDownlineShow","registerNickname","handleSubmitNickname","errorsNickname","setValueNickname","watchNickname","controlNickname","triggerNickname","goBack","referralNickname","DownlineSummary","monthOptions","setMonthOptions","selectedMonth","setSelectedMonth","selectedYear","setSelectedYear","selectedGroup","setSelectedGroup","downlineShow","setDownlineShow","memberLMData","setMemberLMData","selectedDate","setSelectedDate","queryProduct","setQueryProduct","searchTrigger","setSearchTrigger","isDateFilterOpen","setIsDateFilterOpen","newGen","setNewGen","newAllGens","setNewAllGens","totalGens","setTotalGens","totalAllGen","setTotalAllGen","numberOfGen","setNumberOfGen","memberDetailUrl","setMemberDetailUrl","showDownlineLsit","targetedMonth","controller","apiController","responseJson2","numberOfGens","getRecentMember","getReportDate","month","year","apiUrl2","data2","report","bd","lg","DownlineKPI","activeMemberCount","setActiveMemberCount","inactiveMemberCount","setInactiveMemberCount","showDownlineList","searchL1DownlineMemberData","setSearchL1DownlineMemberData","setSearchKeyword","downlineStatusActiveTab","setDownlineStatusActiveTab","scrollCategory","downlineStatusTabId","getDownlineMemberData","memberDownlineStatus","totalActiveMemberCount","totalInactiveMemberCount","getDownlineMemberStatusCount","downlineMemberData","sortedDownlineMemberData","orderBy","clearSearchField","Trans","i18nKey","getText","handleSort","prevOrder","createdDate","totalDeposit","Downline","isDownlineModal","downlineDetailsActiveTab","setDownlineDetailsActiveTab","showDownlineDetailTab","downlineTabId","DownLineSummary","DownlineModal","ShareReferralModal","isShareReferralModal","getUpline","ShareButton","useMemo","InlineShareButtons","alignment","enabled","font_size","networks","radius","LoginModal","ls","mode","hideNewPassword","setHideNewPassword","hideConfirmPassword","setHideConfirmPassword","visibleLoginAlert","setVisibleLoginAlert","setLoginMessage","isForgotPasswordLoading","setIsForgotPasswordLoading","isTacModal","setIsTacModal","attempt","setAttempt","FPButtonAttempt","setFPButtonAttempt","isResetPasswordLoading","setIsResetPasswordLoading","emailExist","setEmailExist","tacCode","setTacCode","loginRegister","loginHandleSubmit","loginErrors","forgotPasswordRegister","forgotPasswordHandleSubmit","forgotPasswordErrors","forgotPasswordWatch","forgotPasswordSetValue","forgotPasswordUnregister","submitVerifyTAC","Alert","isKeepedPassword","Do3SwI4cuvqR","gR1IPGBN01dS","PYTLczcty9uH","loginRes","loginType","ResetPasswordModal","setResetPasswordLoading","resetPassword","resetPasswordHandleSubmit","resetPasswordErrors","setResetPasswordError","confirm_password","getTransactionData","sortedtransactionData","transactionType","card","okup_withdraw","dateTime","GameHistory","gameHistoryData","setGameHistoryData","totalProducts","setTotalProducts","recordUrl","setRecordUrl","dateSelectedOption","setDateSelectedOption","getGameRecords","productList","sortedGameHistoryData","CommissionHistory","commissionData","setCommissionData","commissionUrl","setCommissionUrl","getCommissionData","commData","sortedCommissionMemberData","parsedTime","turnover","RebateHistory","DailyCheckInHistory","dailyRecordData","setDailyRecordData","getDailyCheckInData","rolloverMultiplier","ReportOverview","updatedRecordType","isReportOverviewModal","RegisterModal","countryCode","setCountryCode","registerStepsViaOtherChannel","setRegisterStepsViaOtherChannel","smsChannel","setSmsChannel","chatSphereChannel","setChatSphereChannel","chatSphereChannelList","setChatSphereChannelList","channleClick","setChannleClick","channelType","setChannelType","showModalRegister","setShowModalRegister","channelList","chatSphereChannelEnabled","smsChannelEnabled","chatSphereActionType","loadCaptchaEnginge","defaultLang","submitForm","validateCaptcha","loginCaptcha","dialingCode","registerWithoutOTP","shouldValidate","LoadCanvasTemplateNoReload","DailyCheckInModal","dailyItems","setDailyItems","disabledClaim","setDisabledClaim","accumulateDay","setAccumulateDay","monthMode","setMonthMode","monthText","setMonthText","dcid","setDcid","timezone","setTimezone","claimedAmount","setClaimedAmount","successAlert","setSuccessAlert","checkDailyCheckInStatus","dailyDetails","timeZone","totalDaysLeft","claimed","today","monthName","getMonth","dailySuccess","credit","day","classDaily","actived","dailyTick","iconReward","activeItem","dcdid","claimDailyCheckIn","ReferralBonusModal","ReferralBonus","Content","Component","constructor","_props$template","super","resetTimeout","this","startTimeout","reload","_TIMEOUT_TIME","currroutes","loginRoute","bottomNavIndex","ComponentRoute","routeComponent","PrivateRoute","routeData","isLoggedIn","shouldRedirect","currentReference","redirectPath","getLocaleUrl","Route","Redirect","Suspense","fallback","renderFallback","componentWillUpdate","loginRouteVar","routesVar","setState","componentDidMount","loadData","componentWillMount","currRoutePath","hotGameWebUrl","normalizedPathname","normalizedCurrRoutePath","normalizedHotGameUrl","routeSegments","hotGameSegments","localeSegment","Consumer","pageContentFullWidth","pageContentClass","pageContentInverseMode","Switch","ReportOverviewModal","connect","withRouter","LoadingOverlay","propTypes","App","handleSetPageContent","pageContent","handleSetPageContentClass","handleSetPageContentFullHeight","pageContentFullHeight","handleSetPageContentFullWidth","handleSetPageContentInverseMode","handleSetPageFooter","pageFooter","handleSetBodyWhiteBg","classList","remove","pageNavBar","errorInfo","handleSetPageBoxedLayout","interval1","appLoad","scrollRef","createRef","hasCustomSkin","activeTheme","backgroundImage","root","fetchSettings","getMeta","componentDidUpdate","prevProps","_this$props$appState$","_this$props$appState$2","_this$props$appState$3","getSetting","seoImage","componentDidCatch","getPageSlug","pageSlug","encodedPageSlug","encodedLanguage","seoManagementFlag","customScripts","languageSeoTitle","languageSeoDescription","languageSeoImage","languageCustomScripts","matches","html","contentWithoutScriptTags","tags","pageNameOverride","seoTitleOverride","seoDescriptionOverride","seoImageOverride","rawScriptsOverride","hideApkBanner","presetAmtData","chatsphereData","chatsphere","brandNameData","siteTitleData","siteTitle","siteDescriptionData","siteDescription","faviconData","favicon","htmlStyleData","userStatus","userStatusInString","customScriptData","customScript","customScriptFooterData","customScriptFooter","currencyData","languagesData","mediasData","channelsData","styleElement","innerHTML","head","scriptElement","_APPEND_REGISTER_WHATSAPP_URL","_APPEND_REGISTER_TELEGRAM_URL","contentLength","newData","newList","contentLength1","jsonObj","metaType","titleList","meta","script","noscript","base","trimmedContent","jsonObject","replaceAll","scriptList","metaList","linkList","noscriptList","baseList","contentAll","scrips","metas","listPage","filterList","obj","splice","a","noscripts","bases","seo","rawScripts","objectFit","marginRight","Provider","Helmet","rel","active","styles","overlay","zIndex","classNames","userSelect","WebkitTouchCallout","WebkitUserSelect","MozUserSelect","msUserSelect","pageSidebarToggled","toggleMobileSidebar","withTranslation","ReactDOM","BrowserRouter","menu","menu3","angleUp","moreVertical","home","activity","downlines","referral","sales","home1","star","qrcode","delete","upload","claim","eyeblocked","info","cog","alertCircle","edit","statistic","checkmark","huione","usdt","bubbles","usercheck","giftpace","topkash","sliderArrowRight","sliderArrowLeft","wingWeiluy","facebook2","telegram","whatsapp","instagram","exclamation_solid","livechat_mobile","envelope4","gameCount","starEmpty","starFull","exitFullScreen","dashboardAnnouncement","dashboardNotification","dashboardBalanceDeposit","dashboardBalanceWithdraw","dashboardBalanceRestore","dashboardBalanceTransfer","dashboardBalanceWallet","dashboardCommissionClaim","dashboardCommissionDownlines","dashboardCommissionReferral","dashboardCommissionSales","dashboardPoints","dashboardPointsCheckin","dashboardPointsShop","dashboardPointsHistory","dashboardPointsRecord","settingsLanguage","settingsPassword","settingsPin","settingsLivechat","settingsTerms","settingsLogout","volumeHigh","volumeMute","profileMail","rows","columns","covers","LazyLoad","banner"],"mappings":"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","file":"static/js/main.1b9143bd.chunk.js","sourcesContent":["/// \n/// Author :\n/// API related key or field when making ajax or api call\n/// \nexport class ApiKey {\n static _API_SUCCESS_KEY = \"success\";\n static _API_MESSAGE_KEY = \"message\";\n static _API_DATA_KEY = \"data\";\n static _API_CODE_KEY = \"code\";\n\n static _API_CONTENT_TYPE = \"Content-Type\";\n static _API_ACCEPT = \"Accept\";\n static _API_APPLICATION_JSON = \"application/json\";\n static _API_XML_HTTP_REQUEST_KEY = \"XMLHttpRequest\";\n static _API_FORM_URLENCODED = \"application/x-www-form-urlencoded\";\n static _API_POST = \"POST\";\n static _API_GET = \"GET\";\n}\n\n/// \n/// Author :\n/// Url to communicate to controller\n/// \nexport class ApiUrl {\n static _API_LOGIN = \"/Account/Login\";\n static _API_LOGOUT = \"/Account/Logout\";\n static _API_IS_LOGGED_IN = \"/Account/heartBeat\";\n static _API_GET_USER_PAYMENT_GATEWAY_INFO = \"/Account/RetrievePaymentGatewayInfo\";\n static _API_SEND_RESET_PASSWORD_SMS = \"/Account/SendResetPasswordSms\";\n static _API_REGISTER = \"/Account/Register\"; //KT: More simple straight forward URL please.\n //Its also risky to have register/modify as a same function.\n static _API_CREATE_OR_UPDATE_MEMBER = \"/Account/InitiateOrReviseMember\";\n static _API_UPDATE_MEMBER_USERFULLNAME = \"/Account/ReviseMemberUserFullname\";\n static _API_GET_USER_ANNOUNCEMENT = \"/Account/RetrieveUserAnnouncement\";\n static _API_GET_COMPANY_CONTACT_US = \"/Account/RetrieveCompanyContactUs\";\n static _API_VERIFY_RESET_PASSWORD_SMS = \"/Account/ValidateResetPasswordSms\";\n\n static _API_UPDATE_USER_DATA = \"/Account/ReviseUserData\";\n\n static _API_GET_LOGIN_FAILED_COUNT = \"/Account/RetrieveLoginFailCount\";\n static _API_MANAGE_MEMBER_LOGIN_FAIL_COUNT =\n \"/Account/ManageMemberLoginFailCount\";\n\n static _API_GET_MEMBER_DETAILS = \"/Member/GetInfo\";\n static _API_GET_MEMBER_DOWNLINE_GAMES_BY_MASTERPRODUCT =\n \"/Member/RetrieveMemberDownlineGameByMasterProduct\";\n static _API_GET_MEMBER_DETAILS_DASHBOARD =\n \"/Member/RetrieveMemberDetailsDashboard\";\n static _API_GET_NOTIFICATION_LIST = \"/Member/RetrieveNotificationList\";\n static _API_MEMBER_RESET_PASSWORD = \"/Member/ResetPassword\";\n static _API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN =\n \"/Member/ResetPasswordBeforeLogin\";\n static _API_MARK_ANNOUNCEMENT_AS_READ = \"/Member/MarkAnnouncementRead\";\n static _API_GET_USER_MEMBERS = \"/Member/RetrieveUserMember\";\n static _API_GET_USER_MEMBER_LIST = \"/Member/RetrieveUserMemberList\";\n static _API_GET_USER_MEMBER_LIST_LATEST = \"/Member/RetrieveUserMemberListLatest\";\n static _API_GET_DOWNLINE_MEMBER_STATUS_COUNT = \"/Member/RetrieveDownlineMemberStatusCount\";\n static _API_GET_MEMBER_PRODUCT_RATES = \"/Member/RetrieveMemberProductRates\";\n static _API_GET_MEMBER_UPLINE_PRODUCT_RATES = \"/Member/RetrieveUplineProductRates\";\n static _API_GET_MEMBER_REFERRAL_CODES = \"/Member/RetrieveMemberReferralCodes\";\n static _API_GET_MEMBER_REFERRAL_GROUPS_BY_CODE =\n \"/Member/RetrieveMemberReferralGroupsByCode\";\n static _API_GET_MEMBER_REFERRAL_GROUPS_LIST =\n \"/Member/RetrieveMemberReferralGroupsList\";\n static _API_DEL_REFERRAL = \"/Member/DelMemberReferralCode\";\n static _API_GENERATE_MEMBER_REFERRAL_CODE = \"/Member/GenerateReferralCode\";\n static _API_GET_UPLINE_BY_REFERRAL_CODE = \"/Member/RetrieveUplineByReferralCode\";\n static _API_GET_DOWNLINE_BY_REFERRAL_ID = \"/Member/RetrieveDownlineByReferralId\";\n static _API_CHECK_USERNAME = \"/Member/VerifyUsername\";\n static _API_GET_MEMBER_SUMMARY_KPI = \"/Member/RetrieveMemberSummaryKpi\";\n static _API_GET_MEMBER_DETAIL_KPI = \"/Member/RetrieveMemberKpiDetail\";\n static _API_UPDATE_MEMBER_NICKNAME = \"/Member/ReviseMemberNickname\";\n static _API_UPDATE_MEMBER_DOWNLINE = \"/Member/ReviseMemberDownline\";\n static _API_CHECK_MEMBER_PIN_NUMBER = \"/Member/VerifyMemberPinNumber\";\n static _API_SET_MEMBER_PIN_NUMBER = \"/Member/SetMemberPinNumber\";\n static _API_RESET_MEMBER_PIN_NUMBER = \"/Member/ResetMemberPinNumber\";\n static _API_CHECK_SHAREHOLDER_PIN_NUMBER =\n \"/Member/VerifyShareholderPinNumber\";\n static _API_SET_SHAREHOLDER_PIN_NUMBER = \"/Member/SetShareholderPinNumber\";\n static _API_RESET_SHAREHOLDER_PIN_NUMBER =\n \"/Member/ResetShareholderPinNumber\";\n static _API_CHECK_IF_PHONE_VERIFIED = \"/Member/VerifyIfPhoneVerified\";\n static _API_GET_COMPANY_SKIN_SETTINGS = \"/Member/RetrieveCompanySkinSettings\";\n\n static _API_GET_MEMBER_PRODUCT_DETAILS = \"/Member/RetrieveMemberProductDetails\";\n\n static _API_CREATE_OR_UPDATE_DOWNLINE_GROUP =\n \"/Member/InitiateOrReviseDownlineGroup\";\n static _API_ADD_OR_REMOVE_MEMBER_INTO_GROUP =\n \"/Member/AddOrRemoveMemberIntoGroup\";\n static _API_GET_DOWNLINE_GROUPS = \"/Member/RetrieveDownlineGroups\";\n static _API_GET_DOWNLINE_GROUP_DETAIL_BY_ID =\n \"/Member/RetrieveDownlineGroupDetailById\";\n static _API_DELETE_DOWNLINE_GROUP = \"/Member/DeleteDownlineGroup\";\n static _API_GET_UNGROUP_MEMBER_LIST = \"/Member/RetrieveUngroupMemberList\";\n\n static _API_GET_UNCLAIM_COMMISSION_AMT = \"/Member/RetrieveUnclaimCommissionAmt\";\n\n\n static _API_GET_USER_FULLNAME = \"/Member/RetrieveUserFullName\";\n\n static _API_GET_REPORT_OVERVIEW_SELECT_DATE =\n \"/Member/RetrieveReportOverviewSelectDate\";\n static _API_GET_MEMBER_WALLET_STATEMENT =\n \"/Transaction/RetrieveMemberWalletStatement\";\n static _API_GET_MEMBER_REWARD_HISTORY = \"/Transaction/RetrieveMemberRewardHistory\";\n static _API_GET_TRANSACTION_BY_MEMBER_ID =\n \"/Transaction/RetrieveTransactionByMemberId\";\n static _API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL =\n \"/Transaction/RetrieveTransactionByMemberDepositAndWithdrawal\";\n static _API_GET_ROLLOVER_RECORD = \"/Transaction/RetrieveRolloverRecord\";\n static _API_CREATE_TRANSACTION = \"/Transaction/InitiateTransaction\";\n static _API_GET_BONUS_HISTORY = \"/Transaction/RetrieveBonusHistory\";\n static _API_GET_INTERNAL_TRANSFER = \"/Transaction/RetrieveInternalTransferHistory\";\n static _API_GET_COMMISSION_HISTORY = \"/Transaction/RetrieveCommissionHistory\";\n static _API_GET_PENDING_TRANSACTION = \"/Transaction/VerifyPendingTransaction\";\n\n static _API_GET_CLAIM_HISTORY = \"/Transaction/RetrieveClaimHistory\";\n static _API_GET_VADERPAY_BANK_OPTION = \"/Transaction/RetrieveVaderPayBankOption\";\n\n static _API_GET_GAME_RECORD_BY_MEMBER = \"/Game/RetrieveProductGameRecordByMember\";\n static _API_GET_OVERALL_GAME_RECORD_BY_MEMBER =\n \"/Game/RetrieveProductOverallGameRecordByMember\";\n\n static _API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER =\n \"/Bank/RetrieveMemberBankAccountByMember\";\n static _API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT =\n \"/Bank/InitiateOrReviseMemberBankAccount\";\n static _API_DELETE_MEMBER_BANK_ACCOUNT = \"/Bank/DeleteMemberBankAccount\";\n static _API_GET_USER_BANK = \"/Bank/RetrieveUserBank\";\n static _API_GET_BANK_ACCOUNT_BY_BANK_ID = \"/Bank/RetrieveBankAccountByBankId\";\n static _API_GET_BANK_ACCOUNT = \"/Bank/RetrieveBankAccount\";\n static _API_GET_BANK_ACCOUNT_2 = \"/Bank/RetrieveBankAccount2\";\n\n static _API_CREATE_WALLET_TRANSFER_TRANSACTION =\n \"/Transaction/InitiateWalletTransferTransaction\";\n\n static _API_GET_NON_SEAMLESS_PRODUCT_BALANCE =\n \"/Game/RetrieveNonSeamlessProductBalance\";\n static _API_GET_ASSIGNED_MEMBER_PRODUCT = \"/Game/RetrieveAssignedMemberProduct\";\n static _API_GET_POOL_RESULT = \"/Game/RetrievePoolResult\";\n static _API_GET_PRODUCT_WITH_MAX_RATE = \"/Game/RetrieveGroupedProductWithMaxRates\";\n static _API_GET_CATEGORY_GROUP_GAME = \"/Game/RetrieveCategoryGroupedGame\";\n static _API_GET_CATEGORY_GROUP_GAME_DASHBOARD =\n \"/Game/RetrieveCategoryGroupedGameDashboard\";\n\n static _API_GET_MASTER_PRODUCT_GROUP_GAME =\n \"/Game/RetrieveMasterProductGroupedGame\";\n static _API_GET_MASTER_PRODUCT_GROUP_GAME_BY_GAME_ID =\n \"/Game/RetrieveMasterProductGroupedGameByGameId\";\n static _API_GET_RECOMMENDED_MASTER_PRODUCT_GROUP_GAME =\n \"/Game/RetrieveRecommendedMasterProductGroupedGame\";\n static _API_GET_MASTER_PRODUCT_BY_ID = \"/Game/RetrieveMasterProductById\";\n static _API_HOMEPAGE_PRODUCTS =\n \"/Game/GetHomepageProducts\";\n\n static _API_GET_PROVIDER_GROUP_GAME =\n \"/Game/RetrieveProviderGroupGame\";\n\n static _API_CHECK_IF_NON_SEAMLESS = \"/Game/VerifyIfNonSeamless\";\n static _API_CHANGE_PRODUCT_PASSWORD = \"/Game/ChangeProductPassword\";\n static _API_GET_GAME_IS_NEW_WINDOW = \"/Game/RetrieveGameIsNewWindow\";\n\n static _API_START_GAME = \"/Game/StartGame\";\n static _API_GET_BET_DETAILS = \"/Game/RetrieveProductGameRecordById\";\n static _API_GET_COMMUNICATION_CHANNELS = \"/Member/RetrieveCommunicationChannel\";\n\n static _API_SEND_VERIFICATION_CODE = \"/Member/SendVerificationCode\";\n static _API_SEND_PIN_CODE = \"/Member/SendPinCode\";\n static _API_VERIFY_PHONE_NUMBER = \"/Member/ValidatePhoneNumber\";\n static _API_VERIFY_MULTIPLE_PHONE_NUMBER = \"/Member/ValidateMultiPhoneNumber\";\n static _API_CHECK_DISPLAY_BANK_DETAIL = \"/Bank/VerifyBankDetails\";\n\n static _API_GET_USER_BANNER = \"/Member/RetrieveUserBanner\";\n static _API_MANAGE_BANNER_NOTIFICATION = \"/Member/ManageBannerNotification\";\n static _API_GET_USER_REWARD_BANNER = \"/Member/RetrieveUserRewardBanner\";\n static _API_GET_PRODUCT_CATEGORY = \"/Member/RetrieveProductCategory\";\n static _API_GET_PRODUCT_CATEGORY_WITH_MASTER_PRODUCT =\n \"/Member/RetrieveProductCategoryWithMasterProduct\";\n static _API_GET_MASTER_PRODUCT_CATEGORY = \"/Member/RetrieveMasterProductCategory\";\n static _API_GET_USER_VIP_LEVEL = \"/Member/RetrieveUserVipLevel\";\n\n static _API_GET_MEMBER_SHAREHOLDER_DETAIL =\n \"/Member/RetrieveMemberShareholderDetail\";\n static _API_GET_MEMBER_SHAREHOLDER_UNCLAIM =\n \"/Member/RetrieveMemberShareholderUnclaim\";\n static _API_UPDATE_SHAREHOLDER = \"/Member/ReviseShareholder\";\n static _API_CLAIM_SHAREHOLDER = \"/Member/ClaimShareholder\";\n static _API_CLAIM_COMMISSION = \"/Member/ClaimCommission\";\n static _API_CLAIM_REWARD = \"/Member/ClaimReward\";\n\n static _API_UPDATE_MEMBER_THEME = \"/Member/ReviseMemberTheme\";\n\n //static _API_CHECK_PHONE_NUMBER = \"/Member/VerifyPhoneNumber\";\n\n static _API_GET_COMPANY_TNG_SYSTEM_SETTINGS =\n \"/Member/RetrieveCompanyTnGSystemSettings\";\n static _API_GET_FLAG_TRANSFER_BACK_MAIN_WALLET =\n \"/Game/RetrieveFlagTransferBackMainWallet\";\n\n static _API_SPG_CHECK = \"/Transaction/CheckSPG\";\n\n static _API_SEND_TAC_CODE = \"/Member/SendTACCode\";\n static _API_VERIFY_TAC_CODE = \"/Member/ValidateTACCode\";\n\n static _API_GET_USER_SYSTEM_SETTINGS = \"/Member/RetrieveUserSystemSettings\";\n\n static _API_ADD_OPERATION_LOG = \"/Account/AddOperationLog\";\n\n static _API_GET_CATEGORY_REWARD_RATES = \"/Member/RetrieveCategoryRewardRates\";\n\n static _API_UPDATE_MEMBER_PHONE_NUMBER = \"/Member/ReviseMemberPhoneNumber\";\n static _API_UPDATE_MEMBER_LANGUAGE = \"/Member/ReviseMemberLanguage\";\n static _API_UPDATE_MEMBER_USERFULLNAME = \"/Account/ReviseMemberUserFullname\";\n\n static _API_CHECK_MEMBER_ROLLOVER = \"/Member/VerifyMemberRollover\";\n\n static _API_GET_COMPANY_CONTENT_LANGUAGE =\n \"/Account/RetrieveCompanyContentLanguage\";\n\n static _API_GET_WALLET_TRANSFER = \"/Account/RetrieveWalletTransfer\";\n static _API_CHECK_IF_REFERRAL_CODE_EXIST = \"/Member/VerifyReferralCode\";\n static _API_GET_MEMBER_DETAILS_AND_DATE =\n \"/Member/GetInfoAndDate\";\n //KT: TO REMOVE THIS, THE COMMISSION SHOULD BE ALREADY WITH MEMBERDETAILSBYID\n static _API_GET_COMMISSION_AND_REBATE_AMT = \"/Member/RetrieveCommissionAndRebateAmt\";\n static _API_GET_NUMBER_OF_GEN = \"/Member/RetrieveNumberOfGen\";\n static _API_GET_CHAT_LIST = \"/Member/GetChat\";\n static _API_GET_DEPOSIT_PROMOTION_BY_MASTER_PRODUCT_ID =\n \"/Member/RetrievePromotionByMasterProductId\";\n\n static _API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS =\n \"/Member/RetrievePromotionRolloverProgress\";\n\n static _API_GET_DEPOSIT_PROMOTION = \"/Member/RetrievePromotion\";\n static _API_GET_DEPOSIT_PROMOTION_BY_ID = \"/Member/RetrievePromotionById\";\n static _API_GET_DEPOSIT_PROMOTION_INFO_BY_ID =\n \"/Member/RetrievePromotionInfoById\";\n\n static _API_GET_MEMBER_REFERRAL_LIST = \"/Member/RetrieveUserMemberReferralList\";\n\n static _API_GET_NON_SEAMLESS_PRODUCT = \"/Game/RetrieveNonSeamlessProduct\";\n static _API_GET_MARQUEE_TAG_CONTENT = \"/Member/RetrieveMarqueeTagContent\";\n static _API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM =\n \"/Member/RetrieveMarqueeTagContentByPlatform\";\n\n static _API_GET_RESTORE = \"/Bank/RestoreFunction\";\n static _API_GET_ALL_VIP_CRITERIA = \"/Member/RetrieveAllVipCriteriaByCompany\";\n static _API_GET_VIP_BENEFIT_CONTENT = \"/Member/RetrieveVipBenefitContent\";\n\n static _API_GET_MEMBER_WALLET_BALANCE = \"/Account/RetrieveMemberWalletBalance\";\n\n static _API_GET_LATEST_ROLLOVER_RECORD =\n \"/Transaction/RetrieveLatestRolloverRecord\";\n static _API_GET_MASTER_PRODUCT_GROUP_GAME_LIST =\n \"/Game/RetrieveMasterProductGroupedGameList\";\n static _API_REDEEM_VOUCHER = \"/Transaction/RedeemVoucher\";\n static _API_CHECK_MEMBER_BANK_ACCOUNT_BY_FULLNAME =\n \"/Bank/VerifyMemberBankAccountByFullname\";\n static _API_GET_APP_LOGIN_CRED = \"/Member/RetrieveAppLoginCred\";\n static _API_GET_WEEKLY_RESCUE = \"/Member/RetrieveWeeklyRescue\";\n static _API_CHECK_ANY_UNREAD_NOTIFICATION =\n \"/Member/VerifyAnyUnreadNotification\";\n static _API_PRODUCT_COMM_RATE = \"/Game/RetrieveProductCommRate\";\n static _API_UPDATE_REFERRAL_CODE = \"/Member/ReviseReferralCode\";\n static _API_CREATE_REFERRAL_CODE = \"/Member/InitiateReferralCode\";\n static _API_GET_TYPE_BANK_ACCOUNT = \"/Bank/RetrieveTypeBankAccount\";\n static _API_CREATE_TOPKASH_TRANSACTION =\n \"/Transaction/InitiateTopkashTransaction\";\n\n static _API_CREATE_TRANSACTION_TOPKASH =\n \"/Transaction/InitiateTransactionTopkash\";\n static _API_GET_MEMBER_DETAIL_KPI2 = \"/Member/RetrieveMemberKpiDetail2\";\n\n static _API_GENERATE_OTP = \"/Member/GenerateOTP\";\n static _API_CHECK_EMAIL = \"/Member/VerifyEmail\";\n static _API_UPDATE_MEMBER_EMAIL_AND_BIRTH_DATE =\n \"/Account/ReviseMemberEmailAndBirthDate\";\n\n static _API_GET_VIP_COMMISSION_HISTORY =\n \"/Transaction/RetrieveVipCommissionHistory\";\n static _API_GET_EXTRA_HTML_STYLE = \"/Member/RetrieveExtraHtmlStyle\";\n static _API_GET_CRYPTO_WALLETS = \"/Bank/RetrieveCryptoWallets\";\n static _API_GET_RECENT_GAMES = \"/Game/RetrieveRecentgame\";\n\n //Get Separated Promotion\n static _API_GET_DEPOSIT_PROMOTION_CATEGORY =\n \"/Member/RetrievePromotionCategory\";\n static _API_GET_DEPOSIT_PROMOTION_CATEGORY_BY_ID =\n \"/Member/RetrievePromotionCategoryById\";\n static _API_GET_LATEST_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL =\n \"/Transaction/RetrieveLatestTransactionByMemberDepositAndWithdrawal\";\n static _API_GET_LATEST_GAME_RECORD_BY_MEMBER =\n \"/Game/RetrieveLatestProductGameRecordByMember\";\n static _API_GET_SUMMARY_GAME_RECORD = \"/Game/RetrieveSummaryProductGameRecord\";\n static _API_GET_LATEST_GAME_RECORD = \"/Game/RetrieveLatestProductGameRecord\";\n static _API_GET_LATEST_BETS = \"/Game/RetrieveLatestBets\";\n static _API_START = \"/Game/Start\";\n static _API_GET_MEMBER_ACCOUNT_BALANCE = \"/Account/RetrieveMemberAccountBalance\";\n\n static _API_GET_PAYMENT_GATEWAY_INFO_BY_ID = \"/Account/RetrievePaymentGatewayInfoById\";\n static _API_GET_MEMBER_UPGRADE_BONUS_RECORD = \"/Account/RetrieveMemberUpgradeBonusRecord\";\n static _API_REDEEM_MEMBER_VIP_BONUS = \"/Transaction/RedeemUpdateVipBonus\";\n static _API_GET_BONUS_DEPOSIT = \"/Transaction/GetBonusDeposit\";\n\n static _API_CLAIM_PROMOTION_FS = \"/Transaction/ClaimPromotion\";\n static _API_RESTORE_ALL_WALLET = \"/Transaction/RestoreAllWallet\";\n\n static _API_RESTORE_MAIN_WALLET = \"/Transaction/RestoreMainWallet\";\n static _API_UPDATE_TRANSACTION_VALID_FOR_PROMO = \"/Transaction/UpdateTransactionValidForPromo\";\n\n static _API_CHECK_WALLET = \"/Game/CheckWallet\";\n\n static _API_GET_MASTER_REFERRAL_CODE = \"/Member/RetrieveMemberMasterReferralCodes\";\n\n static _API_GET_COMPANY_ICON_SETTINGS = \"/Member/RetrieveCompanyIconSettings\";\n static _API_GET_COMPANY_DETAILS = \"/Account/GetCompanyDetails\";\n\n\n static _API_SEND_CHAT = \"/api/chat/user/send\";\n static _API_SEND_FILE = \"/api/chat/user/file\";\n static _API_SEND_VOICE = \"/api/chat/user/voice\";\n static _API_MARK_LIVECHAT_AS_READ = \"/Member/MarkLivechatRead\";\n\n static _API_GET_TOP_DEPOSIT_WITHDRAWAL = \"/Member/GetLatestDepositWithdrawal\";\n static _API_MEMBER_FIRST_TIME_RESET_PASSWORD = \"/Member/FirstTimeResetPassword\";\n static _API_GET_TOTAL_PROMO_CLAIMABLE = \"/Member/GetTotalPromoClaimable\";\n\n static _API_GET_ANNOUNCEMENT = \"/Account/RetrieveAnnouncement\";\n static _API_GET_MINIMUM_DEPOSIT_WITHDRAWAL = \"/Bank/getMinimumDepositWithdrawal\";\n\n static _API_GET_TOTAL_COMM_EARNED = \"/Member/GetTotalCommEarned\";\n static _API_GET_SETTING = \"/Account/GetSetting\";\n static _API_PROMOTION_SLUG = \"/Account/PromotionSlug\";\n static _API_CUSTOM_SLUG = \"/Account/CustomSlug\";\n static _API_MEMBER_UPDATE_PROFILE = \"/Member/MemberUpdateProfile\";\n\n static _API_GET_SEO_META_CONTENT = \"/Member/RetrieveSeoMetaContent\";\n static _API_CHECK_TRANSACTION_REFERENCE = \"/Transaction/VerifyTransactionReference\";\n\n\n // Customizer/Custom Pages\n static _API_GET_THEME_TEMPLATE_BY_HANDLE = \"/Theme/GetThemeTemplateByHandle\";\n static _API_GET_THEME_SECTION_BY_HANDLE = \"/Theme/GetThemeSectionByHandle\";\n\n static _API_GET_RECENT_PAYOUT = \"/Account/GetRecentPayout\";\n\n static _API_GET_BIG_WIN = \"/Account/GetBigWin\";\n static _API_GET_REBATES_RECORD = \"/Member/GetRebatesRecord\";\n\n static _API_GET_COMPANY_CHANNEL = \"/Account/getCompanyChannel\";\n\n static _API_GET_GAME_TOP_3_WINNER = \"/Game/GetGameTop3Winners\";\n static _API_GET_RECOMMENDED_GAME = \"/Game/GetRecommendedGame\";\n static _API_RETRIEVE_GAME_BET_RECORDS = \"/Game/RetrieveGameBetRecords\";\n static _API_RETRIEVE_PRODUCT_GAME_BY_GAME_ID = \"/Game/RetrieveProductGameByGameId\";\n static _API_GET_TRANSACTION_TODAY_BY_USER = \"/Transaction/getTransactionTodayByUserId\";\n\n static _API_GET_DAILY_CHECK_IN = \"/Member/RetrieveDailyCheckInItem\";\n static _API_CLAIM_DAILY_CHECK_IN = \"/Member/InitiateMemberDailyCheckIn\";\n static _API_DAILY_CHECK_IN_STATUS = \"/Member/GetDailyCheckInStatus\";\n static _API_GET_DAILY_CHECK_IN_RECORD = \"/Member/GetDailyCheckInRecord\";\n\n //Delete later\n static _API_TEST_DAILY_CHECK_IN = \"/Member/TestMemberDailyCheckIn\";\n\n \n // Imreward\n static _API_GET_MEMBER_SPINS = \"/Member/GetMemberSpins\";\n static _API_GET_MEMBER_SPINS_CLAIMS_RECORD = \"/Member/GetMemberSpinsClaimRecord\";\n static _API_GET_SPINWHEEL_SETTINGS = \"/Member/GetSpinwheelSettings\";\n static _API_IMREWARD_CALLBACK = \"/api/imreward/callback\";\n static _API_IMREWARD_SPIN = \"/api/imreward/spin\";\n static _API_IMREWARD_GENERATE_TOKEN = \"/api/imreward/generate-token\"; // Login to imreward\n static _API_IMREWARD_CREATE_CAMPAIGN_TOKEN = \"https://api-imreward.holiaodev.com/api/campaign-tokens/create\";\n static _API_IMREWARD_GET_ALL_CAMPAIGNS_BY_SUBSCRIBER = \"https://api-imreward.holiaodev.com/api/campaigns/subscriber\";\n static _API_IMREWARD_FIND_ALL_CAMPAIGN_TOKENS_BY_CAMPAIGN_ID = \"https://api-imreward.holiaodev.com/api/campaign-tokens/campaign\";\n\n static _API_GET_MEMBER_REFERRAL_BONUS = \"/Member/GetMemberReferralBonus\";\n static _API_CLAIM_MEMBER_REFERRAL_BONUS = \"/Member/ClaimReferralBonus\";\n\n // Phone number (CHRIS 20241209: we use it as Ewallet Accounts for now, until bank system refactoring)\n static _API_ADD_MEMBER_PHONE_NUMBER = \"/Member/AddMemberPhoneNumber\";\n static _API_GET_MEMBER_PHONE_NUMBERS = \"/Member/GetMemberPhoneNumbers\";\n\n static _API_GET_EWALLET_STATUS = \"/Bank/GetEwalletStatus\";\n static _API_GET_USER_E_WALLET = \"/Bank/RetrieveUserEWallet\";\n\n static _API_GET_DASHBOARD_COMPONENT_SEQUENCE = \"/Member/RetrieveDashboardComponentSequence\";\n\n //commission setting\n static _API_GET_COMMISSION_SETTING = \"/Account/GetCommissionSetting\";\n\n static _API_UPDATE_MEMBER_FAVORITE_TRACK_IDS = \"/Member/UpdateMemberFavoriteTrackIds\";\n\n static _API_DYNAMIC_PRODUCT_COMM_RATE = \"/Game/RetrieveDynamicProductCommRate\";\n\n static _API_CLAIM_REFERRAL_COMMISSION = \"/Member/ClaimReferralCommission\";\n static _API_GET_REBATE_INFO_AMT= \"/Member/GetRebateInfoAmt\";\n static _API_CLAIM_REBATE= \"/Member/ClaimRebate\";\n static _API_GET_REFERRAL_COMMISSION = \"/Member/GetReferralCommission\";\n static _API_GET_REFERRAL_INFO_AMT = \"/Member/GetReferralInfoAmt\";\n\n}\n\n/// \n/// Author :\n/// Url to navigate to pages\n/// \nexport class BaseWebUrl {\n static currentLocale = null;\n\n static getCurrentLocale() {\n if (!BaseWebUrl.currentLocale) {\n // console.log('localStorage.getItem(SessionKey._LANGUAGE)', localStorage.getItem(SessionKey._LANGUAGE))\n BaseWebUrl.currentLocale = localStorage.getItem(SessionKey._LANGUAGE) || 'en'; // Default to 'en' if no locale set\n }\n return BaseWebUrl.currentLocale;\n }\n\n // Method to update locale both in localStorage and cache\n static setCurrentLocale(locale) {\n localStorage.setItem(SessionKey._LANGUAGE, locale);\n BaseWebUrl.currentLocale = locale;\n }\n\n // Method to get a URL with the locale prefix\n static getLocaleUrl(url) {\n if (url === \"/\") {\n url = \"\";\n }\n return `/${BaseWebUrl.currentLocale}${url}`;\n }\n\n // // Use a static getter to always fetch the current locale\n // static get locale() {\n // return localStorage.getItem(\"language\") || \"en\"; // Provide a default if nothing is set\n // }\n\n // // Add a setter to update the locale in localStorage\n // static set locale(newLocale) {\n // localStorage.setItem(\"language\", newLocale);\n // }\n\n // // Method to set the locale, which utilizes the setter\n // static setLocale(newLocale) {\n // WebUrl.locale = newLocale; // This now calls the static setter\n // }\n\n // // Method to get a URL with the locale prefix\n // static getLocaleUrl(url) {\n // if(url === \"/\") {\n // url = \"\";\n // }\n // return `/${WebUrl.locale}${url}`;\n // }\n\n // // CHRIS_LOCALE: Static getter for home URL, demonstrates usage of getLocaleUrl\n // static get _URL_MAIN() {\n // return WebUrl.getLocaleUrl(\"/\");\n // }\n // static get _URL_HOME() {\n // console.log('WebUrl._URL_HOME', WebUrl.getLocaleUrl(\"/\"));\n // return WebUrl.getLocaleUrl(\"/\");\n // }\n // static get _URL_SETTINGS() {\n // console.log('WebUrl._URL_SETTINGS', WebUrl.getLocaleUrl(\"/settings\"));\n // return WebUrl.getLocaleUrl(\"/settings\");\n // }\n\n static _URL_MAIN = \"/\";\n static _URL_HOME = \"/\";\n // static _URL_ECOMMERCE = \"/ecommerce\";\n static _URL_LOGIN = \"/login\";\n static _URL_LIVECHAT = \"/livechat\";\n // static _URL_WELCOME = \"/welcome\";\n // static _URL_FORGOT = \"/forgot\";\n static _URL_REGISTER = \"/register\";\n\n static _URL_NOT_FOUND = \"/not-found\";\n static _URL_UNDER_MAINTENANCE = \"/under-maintenance\";\n // static _URL_DASHBOARD = \"/dashboard\";\n // static _URL_DASHBOARD2 = \"/dashboard2\";\n // static _URL_DASHBOARD_V2 = \"/dashboardv2\";\n // static _URL_QR_CODE = \"/qr-code\";\n // static _URL_WITHDRAWAL = \"/withdrawal\";\n // static _URL_WITHDRAWAL_RECORD = \"/withdrawal-record\";\n // static _URL_DEPOSIT_RECORD = \"/deposit-record\";\n // static _URL_CASH_RELOAD = \"/cash-reload\";\n // static _URL_CASH_BALANCE = \"/cash-balance\";\n // static _URL_CASH_BALANCE_HISTORY = \"/cash-balance-history\";\n // static _URL_DOWNLINE = \"/downline\";\n // static _URL_DOWNLINE_DETAILS = \"/downline-details\";\n // static _URL_MY_DOWNLINES = \"/downlines\";\n // static _URL_EDIT_DOWNLINE = \"/edit-downline\";\n // static _URL_FORGET_PIN = \"/forget-pin\";\n // static _URL_POINT_TRANSFER = \"/point-transfer\";\n // static _URL_POINT_BALANCE = \"/point-balance\";\n // static _URL_RECEIPTS = \"/receipts\";\n static _URL_SETTINGS = \"/settings\";\n static _URL_NEWS = \"/news\";\n static _URL_NEWS_DETAILS = \"/news-details\";\n // static _URL_PACKAGES = \"/packages\";\n // static _URL_TICKETS = \"/tickets\";\n // static _URL_KPI = \"/kpi\";\n static _URL_GAME_LOBBY = \"/game-lobby\";\n // static _URL_DEPOSIT = \"/deposit\";\n // static _URL_TRANSACTION = \"/transaction\";\n // static _URL_TRANSFER_SUCCESS = \"/transfer-successful\";\n // static _URL_RELOAD_TRANSACTION = \"/reload\";\n // static _URL_WALLET_HISTORY = \"/report/wallet-history\";\n // static _URL_WALLET_HISTORY_MOBILE = \"/report/wallet-historyM\";\n // static _URL_TRANSACTION_HISTORY = \"/report/transaction-history\";\n // static _URL_BONUS_HISTORY = \"/report/bonus-history\";\n // static _URL_INTERAL_TRASNFER_HISTORY = \"/report/internal-transfer-history\";\n // static _URL_WALLET_TRANSFER_HISTORY = \"/report/wallet-transfer-history\";\n // static _URL_COMMISSION_HISTORY = \"/report/commission-history\";\n // static _URL_ROLLOVER_STATEMENT = \"/report/rollover-statement\";\n // static _URL_GAME_HISTORY = \"/report/game-history\";\n // static _URL_MEMBERS_TRANSFER = \"/report/members-transfer\";\n // static _URL_GAME_WALLET_TRANSFER = \"/report/game-wallet-transfer\";\n // static _URL_REPORTS_OVERVIEW = \"/report/overview\";\n // static _URL_GAME_DETAILS = \"/report/game-details\";\n // static _URL_GAME_RESULT = \"/result\";\n // static _URL_REPORTS = \"/report\";\n // static _URL_GAME_WALLET = \"/game-wallet\";\n // static _URL_MAINTENANCE = \"/maintenance\";\n static _URL_CONTACT_US = \"/contact-us\";\n static _URL_LIVE_CHAT = \"/livechat\";\n // static _URL_SHAREHOLDER = \"/shareholder\";\n // static _URL_SHAREHOLDER_DETAIL = \"/shareholder-details\";\n // static _URL_EDIT_SHAREHOLDER = \"/edit-shareholder\";\n // static _URL_DOWNLINE_GROUP_DETAIL = \"/downline-group-detail\";\n // static _URL_UNCLAIM_COMMISSION_HISTORY = \"/unclaim-commission-history\";\n static _URL_TNC = \"/tnc\";\n // static _URL_REWARDS_TNC = \"/rewards-tnc\";\n // static _URL_CLAIM_RECORD = \"/claim-history\";\n // static _URL_SUMMARY_DOWNLINE_SALES = \"/shareholder/downline\";\n // static _URL_DOWNLINE_PRODUCT_RATE_DETAIL = \"/downline/product-rate-detail\";\n // static _URL_REWARDS = \"/rewards\";\n // static _URL_REWARDS_HISTORY = \"/rewards/history\";\n // static _URL_REWARDS_DETAIL = \"/rewards/detail\";\n // static _URL_GAME_PAGE = \"/game-page\";\n // static _URL_GAME_RELOAD = \"/game-reload\";\n // static _URL_ACTIVITY_MAIN = \"/activity\";\n // static _URL_WALLET_STATEMENT = \"/wallet-statement\";\n // static _URL_WITHDRWAL_METHODS = \"/withdraw-methods\";\n // static _URL_WITHDRWAL_BY_BANK_TRANSFER = \"/withdraw-by-bank-transfer\";\n // static _URL_SCAN_QR = \"/scan-qr\";\n // static _URL_CREATE_ACCOUNT = \"/scan-qr/create-account\";\n // static _URL_VERIFY_CREATE_ACCOUNT = \"/scan-qr/verify\";\n // static _URL_CREATE_PASSWORD = \"/scan-qr/create-password\";\n // static _URL_CREATE_ACCOUNT_SUCCESS = \"/success\";\n // static _URL_CREATE_ACCOUNT_BY_REFERRAL_CODE = \"/key-in-referral\";\n // static _URL_WITHDRAWAL_IN_PROGRESS = \"/withdrawal-in-progress\";\n // static _URL_MAIN_WALLET = \"/wallet\";\n // static _URL_RELOAD_BANK = \"/deposit/reload-bank\";\n // static _URL_GIFTPACE = \"/deposit/giftpace\";\n // static _URL_RELOAD_TOUCH_N_GO = \"/transaction/reload-touchngo\";\n // static _URL_UPLOAD_RELOAD_RECEIPT = \"/deposit/upload-reload-receipt\";\n // static _URL_RELOAD_DONE = \"/deposit/reload-done\";\n // static _URL_COMMISSION = \"/commission\";\n // static _URL_TRANSFER = \"/transfer\";\n // static _URL_VIP_BENEFITS = \"/vip-benefits\";\n static _URL_PROMOTION = \"/promotion\";\n static _URL_PROMOTION_INFO = \"/promo\";\n // static _URL_COMMISSIONS_INFO = \"/commissions-info\";\n // static _URL_TOPKASH = \"/deposit/topkash\";\n // static _URL_WITHDRAWAL_BY_TOPKASH = \"/withdraw-by-topkash\";\n // static _URL_VIP_COMMISSION_HISTORY = \"/vip-commission-history\";\n // static _URL_HUIONE_DEPOSIT = \"/huione-deposit\";\n // static _URL_WITHDRAWAL_BY_HUIONE = \"/withdraw-by-huione\";\n // static _URL_CRYPTO_WALLETS = \"/crypto-wallets\";\n // static _URL_CRYPTO_DEPOSIT = \"/crypto-deposit\";\n // Daily Check In\n // static _URL_DAILY_CHECK_IN = \"/daily-check-in\";\n // static _URL_DC_REDEMPTION = \"/daily-check-in-redemption\";\n // static _URL_DC_REDEMPTION_HISTORY = \"/daily-check-in-redemption-history\";\n // static _URL_UNCLAIM_DC_POINTS = \"/unclaim-daily-check-in-points\";\n // static _URL_DC_POINTS_HISTORY = \"/daily-check-in-points-history\";\n static _URL_GAME_LIST = \"/game-list\";\n static _URL_REFERRAL = \"/referral\";\n static _URL_RECENT_GAMES = \"/recent-games\";\n static _URL_VIP = \"/membership\";\n // static _URL_WING_WEILUY_DEPOSIT = \"/wing-weiluy-deposit\";\n // static _URL_UPLOAD_WING_WEILUY_RECEIPT = \"/deposit/upload-wing-weiluy-receipt\";\n // static _URL_WITHDRAW_BY_WING_WEILUY = \"/withdraw-by-wing-weiluy\";\n\n // static _URL_WITHDRAWAL_BY_BCPAY = \"/withdraw-by-bcpay\";\n static _URL_GAME_LIST_SPORTS = \"/sports\";\n static _URL_GAME_LIST_SLOTS = \"/slots\";\n static _URL_GAME_LIST_CASINO = \"/casino\";\n static _URL_GAME_LIST_FISHHUNT = \"/fish\";\n static _URL_GAME_LIST_KENO = \"/keno\";\n static _URL_GAME_LIST_SLOTS_NEW = \"/slots-new\";\n static _URL_GAME_LIST_E_SPORT = \"/e-sport\";\n static _URL_GAME_LIST_ARCADE = \"/arcade\";\n static _URL_GAME_LIST_CRASH = \"/crash\";\n static _URL_GAME_LIST_EXCHANGE = \"/exchange\";\n static _URL_GAME_LIST_POKER = \"/poker\";\n\n static _URL_REBATE = \"/rebate\";\n static _URL_PROMOTION_INFO_SLUG = '/promo/:slug';\n\n static _URL_IFRAME_GAME_PAGE = '/game-page';\n static _URL_SPIN_WHEEL_LIST = '/spin-wheel';\n static _URL_HOT_GAMES = \"/hot-games\";\n\n}\n\nexport const WebUrl = new Proxy(BaseWebUrl, {\n get(target, prop, receiver) {\n if (prop.startsWith('_URL')) {\n const urlPath = Reflect.get(...arguments);\n const locale = BaseWebUrl.getCurrentLocale();\n // Apply middleware logic\n // console.log(`Accessing URL: ${urlPath} with locale ${locale}`);\n // console.log('`/${locale}${urlPath}`', `/${locale}${urlPath}`)\n return `/${locale}${urlPath}`;\n }\n\n return Reflect.get(...arguments);\n }\n});\n\n/// \n/// Author :\n/// \nexport class Status {\n static _ENABLED = 1;\n static _DISABLED = 0;\n static _DELETED = 2;\n}\n\n/// \n/// Author :\n/// \nexport class Language {\n static _ENGLISH = \"en\";\n static _KHMER = \"kh\";\n static _CHINESE = \"zh\";\n static _VIETNAMESE = \"vi\";\n static _INDON = \"id\";\n static _PORTUGUESE = \"pt\";\n static _BENGALI = \"bn\";\n static _TRADITIONAL_CHINESE = \"zk\";\n static _NEPALI = \"ne\";\n static _URDU = \"ur\";\n static _TOK_PISIN = \"tpi\";\n static _HIRI_MOTU = \"ho\";\n}\n\n/// \n/// Author :\n/// \nexport class SessionKey {\n static _LANGUAGE = \"language\";\n static _LOGIN_GUID = \"loginGuid\";\n static _TEMP_GUID = \"tempGuid\";\n}\n\n/// \n/// Author :\n/// \nexport class Role {\n static _SUPER_ADMIN = 1;\n static _SHOP = 2;\n static _MANAGER = 3;\n static _MEMBER = 4;\n static _ADMIN_SUB_ACCOUNT = 0;\n}\n\n/// \n/// Author : -\n/// \nexport class TransactionType {\n static _DEPOSIT = 1;\n static _WITHDRAWAL = 2;\n static _BONUS = 3;\n static _ADJUSTMENT = 4;\n static _REBATE = 5;\n static _TRANSFER = 6;\n static _REFERRALBONUS = 7;\n static _REFUND = 8;\n static _COMMISSION = 9;\n static _BIRTHDAY_REWARD = 10;\n static _DAILY_RESCUE = 11;\n static _CREDIT_REDEMPTION = 12;\n static _VIP_UPGRADE_BONUS = 13;\n static _SPIN_WHEEL = 16;\n static _REWARD = 999;\n static _DAILY_CHECK_IN = 15;\n}\n\n/// \n/// Author : -\n/// \nexport class TransactionStatus {\n static _OPEN = 0;\n static _IN_REVIEW = 1;\n static _IN_PROGRESS = 2;\n static _APPROVED = 3;\n static _REJECTED = 4;\n static _AUTO_APPROVED = 5;\n}\n\n/// \n/// Author: -\n/// \nexport class InputValidationKey {\n static _REQUIRED_KEY = \"required\";\n static _MAX_LENGTH_KEY = \"maxLength\";\n static _MIN_LENGTH_KEY = \"minLength\";\n}\n\n/// \n/// Author: -\n/// \nexport class AlertTypes {\n static _DEFAULT = \"default\"; // (No icon for default)\n static _INFO = \"info\"; // dont use this\n static _SUCCESS = \"success\"; // work properly\n static _WARNING = \"warning\"; // work properly\n static _DANGER = \"danger\"; // work properly\n static _ERROR = \"error\"; // work properly\n static _INPUT = \"input\"; // work properly\n static _CUSTOM = \"custom\"; // (No icon for default)\n}\n\n/// \n/// Author: -\n/// \nexport class FilterStatus {\n static _ACTIVE = 1;\n static _DELETED = 2;\n static _SUSPENDED = 0;\n}\n\n/// \n/// Author: -\n/// \nexport class LoginType {\n static _LOGIN_TYPE_SHOP = 2;\n static _LOGIN_TYPE_ADMIN = 1;\n}\n\n/// \n/// Author: -\n/// this is match db value, do not change\n/// \nexport class TopUpStatus {\n static _PENDING = 0;\n static _SUCCESS = 1;\n static _FAILED = 2;\n}\n\n/// \n/// Author: -\n/// \nexport class CommonStatus {\n static _ALL_STATUS = -1;\n static _PENDING_STATUS = 0;\n static _APPROVE_STATUS = 1;\n static _REJECT_STATUS = 2;\n static _INACTIVE_STATUS = 3;\n}\n\nexport class TransferType {\n static _DEFAULT = \"Default\";\n static _CONVERT_POINTS = \"Convert Points\";\n static _BANK = \"Bank\";\n static _DOWNLINE = \"Downline\";\n static _UPLINE = \"Upline\";\n}\n\n/// \n/// Author : -\n/// \nexport class BankingChannel {\n static _CHANNEL_OFFLINE_BANKING = 1;\n static _CHANNEL_PAYTRUST = 2;\n static _CHANNEL_GPAY = 3;\n}\n\n/// \n/// Author : -\n/// \nexport class PanelType {\n static _MEMBERSITE = \"MemberSite\";\n static _MOBILESITE = \"MobileSite\";\n static _BACKOFFICE = \"BackOffice\";\n static _APPS = \"Apps\";\n static _SYSTEM = \"Systems\";\n}\n\n/// \n/// Author : -\n/// \nexport class BetStatus {\n static _PENDING_BET_STATUS = 0;\n static _SETTLED_BET_STATUS = 1;\n static _CANCELED_BET_STATUS = 2;\n}\n\n/// \n/// Author : -\n/// \nexport class LanguageKey {\n static _PRIMARY = \"common\";\n}\n\n/// \n/// Author : -\n/// \nexport class PaymentType {\n static _PREPAID = 2;\n static _POSTPAID = 1;\n}\n\n/// \n/// Author : -\n/// this value have to match with backend\n/// \nexport class DisplayDevice {\n static _DESKTOP_MAIN = 0;\n static _DESKTOP_SUB = 1;\n static _MOBILE_POPOUT = 2;\n static _MOBILE_SLIDER = 3;\n static _DESKTOP_POPUP = 4;\n}\n\n/// \n/// Author : -\n/// \nexport const _TICKET_STATUS = [\n { value: null, label: \"ALL\" },\n { value: \"0\", label: \"PENDING\" },\n { value: \"1\", label: \"SETTLED\" },\n { value: \"2\", label: \"CANCELLED\" },\n];\n\n/// \n/// Author : -\n/// \nexport const _MAIN_WALLET_ID = 0;\n\n/// \n/// Author : Wong\n/// \nexport const LanguageOptionTemplate3 = [\n {\n prefix: \"PT\",\n value: Language._PORTUGUESE,\n name: \"Portuguese\",\n code: \"pt\",\n languageId: 6,\n },\n {\n prefix: \"EN\",\n value: Language._ENGLISH,\n name: \"English\",\n code: \"en\",\n languageId: 1,\n },\n {\n prefix: \"中文\",\n value: Language._CHINESE,\n name: \"Chinese\",\n code: \"zh\",\n languageId: 3,\n },\n\n];\n\nexport const LanguageOption = [\n {\n prefix: \"EN\",\n value: Language._ENGLISH,\n name: \"English\",\n code: \"en\",\n languageId: 1,\n },\n {\n prefix: \"ខ្មែរ\",\n value: Language._KHMER,\n name: \"Khmer\",\n code: \"kh\",\n languageId: 2,\n },\n {\n prefix: \"中文\",\n value: Language._CHINESE,\n name: \"Chinese\",\n code: \"zh\",\n languageId: 3,\n },\n {\n prefix: \"VI\",\n value: Language._VIETNAMESE,\n name: \"Vietnamese\",\n code: \"vi\",\n languageId: 4,\n },\n {\n prefix: \"ID\",\n value: Language._INDON,\n name: \"Indonesia\",\n code: \"id\",\n languageId: 5,\n },\n {\n prefix: \"PT\",\n value: Language._PORTUGUESE,\n name: \"Portuguese\",\n code: \"pt\",\n languageId: 6,\n },\n {\n prefix: \"BN\",\n value: Language._BENGALI,\n name: \"Bengali\",\n code: \"bn\",\n languageId: 7,\n },\n {\n prefix: \"ZK\",\n value: Language._CHINESE_HK,\n name: \"Tranditional Chinese\",\n code: \"zk\",\n languageId: 8,\n },\n {\n prefix: \"ne\",\n value: Language._NEPALI,\n name: \"Nepali\",\n code: \"ne\",\n languageId: 9,\n },\n {\n prefix: \"UR\",\n value: Language._URDU,\n name: \"Urdu\",\n code: \"ur\",\n languageId: 10,\n },\n {\n prefix: \"TPI\",\n value: Language._TOK_PISIN,\n name: \"Tok Pisin\",\n code: \"tpi\",\n languageId: 11,\n },\n {\n prefix: \"HO\",\n value: Language._HIRI_MOTU,\n name: \"Hiri Motu\",\n code: \"ho\",\n languageId: 12,\n },\n];\n\n/// \n/// Author : KT\n/// Desc : Temporary measure to visualize the multiple theme data from DB\n/// TODO : Change keyword THEME to TEMPLATE (Prevent confusion)\n/// \nexport const ClientTemplates = [\n {\n hostname: \"localhost\", // Example\n template_id: 1,\n template: \"template_1\",\n },\n {\n hostname: \"prod.com\", // Example\n template_id: 2,\n template: \"template_1\",\n },\n {\n hostname: \"staging-template3.holiaodev.com\", // Example\n template_id: 3,\n template: \"template_1\",\n },\n {\n hostname: \"features01.riocity9.com\", // Example\n template_id: 3,\n template: \"template_1\",\n },\n {\n hostname: \"staging.riocity9.com\", // Example\n template_id: 4,\n template: \"template_1\",\n },\n];\n\nexport const LanguageSelectStyle = {\n control: (styles, state) => ({\n width: \"60px\",\n padding: \".5rem\",\n borderRadius: \"4px\",\n background: \"rgba(0, 0, 0, 0.3)\",\n }),\n placeholder: (provided, state) => ({\n color: \"#fff\",\n margin: \"0 auto\",\n }),\n dropdownIndicator: (defaultStyles) => ({\n display: \"none\",\n }),\n indicatorsContainer: (defaultStyles) => ({\n display: \"none\",\n }),\n option: (provided, state) => ({\n fontSize: \"12px\",\n textAlign: \"center\",\n marginTop: \"3px\",\n marginBottom: \"2px\",\n padding: \".5rem 1rem\",\n color: \"#002e6c\",\n }),\n};\n\nexport const PhoneNumberPrefix = [\n {\n label: \"+61\",\n countryCode: \"AU\",\n value: \"61\",\n }\n //{\n // label: \"+55\",\n // countryCode: \"PT\",\n // value: \"55\",\n //},\n //{\n // label: \"+855\",\n // countryCode: \"KH\",\n // value: \"855\",\n //},\n //{\n // label: \"+86\",\n // countryCode: \"CN\",\n // value: \"86\",\n //},\n //{\n // label: \"+60\",\n // countryCode: \"MY\",\n // value: \"60\",\n //},\n //{\n // label: \"+62\",\n // countryCode: \"ID\",\n // value: \"62\",\n //},\n //{\n // label: \"+66\",\n // countryCode: \"TH\",\n // value: \"66\",\n //},\n //{\n // label: \"+84\",\n // countryCode: \"VI\",\n // value: \"84\",\n //},\n];\n\nexport const ThemeOption = [\n {\n value: \"default\",\n name: \"Default\",\n themeId: 1,\n },\n {\n value: \"light\",\n name: \"Light\",\n themeId: 2,\n },\n {\n value: \"dark\",\n name: \"Dark\",\n themeId: 3,\n },\n];\n\nexport class TransactionPriority {\n static _NO = 0;\n static _YES = 1;\n static _FIRST_PRIORITY = 2;\n}\n\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// export const DEFAULT_REFERRAL_CODE = \"JkCDiepa\";\nexport const DEFAULT_REFERRAL_CODE = \"X7MiiKbI\";\n\n// 7 days\nexport const HIDE_APK_BANNER_DURATION = 1 * 24 * 60 * 60 * 1000;","import React from \"react\";\nimport IcoMoon from \"react-icomoon\";\nimport iconSet from \"./selection.json\";\n\nconst Icon = (props) => ;\n\nexport default Icon;\n","import {\n _IDLE,\n _BUSY,\n _ALERT_TYPES,\n _API_CALLED,\n _DOWNLINE_SEARCH,\n _DOWNLINE_QUERY,\n _REFERRAL_SEARCH,\n _REFERRAL_QUERY,\n _SET_Y,\n _SET_PAGESIZE,\n _SET_ACTIVE_TAB,\n _IS_KEEPED_LOGIN,\n _GAME_SEARCH,\n _GAME_QUERY,\n _SET_BOTTOM_TAB_INDEX,\n _BIND_SETTING,\n _BIND_MEMBER,\n _BIND_MEMBER_WALLET,\n _BIND_MEMBER_WALLET_BALANCE,\n _BIND_GAMES,\n _BIND_GAMES_RECOMMENDED,\n _BIND_GAMES_FEATURED,\n _SET_PAYMENT_LIST,\n _SET_WALLET_INFO,\n _SET_OPEN_MENU,\n _SET_REPORT_OVERVIEW,\n _SET_DOWNLINE,\n _SET_BANNERS,\n _SET_DEPOSIT_MODAL,\n _SET_DEPOSIT_TAB,\n _SET_LOGIN_MODAL,\n _SET_REGISTER_MODAL,\n _SET_PROVIDER,\n _SET_LATEST_BETS,\n _SET_GAME_LOBBY_MODAL,\n _SET_RESET_PASSWORD,\n _SET_DOWNLINE_MODAL,\n _SET_SHARE_REFERRAL_MODAL,\n _BUSY_LOADING,\n _SET_PROFILE_MODAL,\n _SET_SPIN_WHEEL_LIST_MODAL,\n _SET_SPIN_WHEEL_REPORT_MODAL,\n _SET_SEO_CONTENT,\n _SET_REPORT_OVERVIEW_MODAL,\n _SET_GAME_IFRAME_MODAL,\n _SET_COMPLETE_INFO_MODAL,\n _SET_DAILY_CHECKIN_MODAL,\n _SET_DAILY_CHECKIN_EXIST,\n _SET_REFERRAL_BONUS_MODAL,\n _SET_MUSIC_PLAYER_MODAL,\n _BIND_HOT_GAMES,\n} from \"./AppAction\";\nimport { stringIsNullOrEmpty } from \"../util/Util\";\nimport i18n from \"../localization/i18n\";\n\nconst _INITIAL_STATE = {\n brandName: \"\",\n isBusy: false,\n isBusyLoading: false,\n isKeepedLogin: false,\n message: i18n.t(\"LOADING\"),\n alert: {},\n iconEnabled: true,\n apiCalledResponse: {},\n savedText: \"\",\n savedReferralText: \"\",\n gameSavedText: \"\",\n savedQuery: \"\", // KT: DEFAULT REMOVED\n savedReferralQuery: \"\", // KT: DEFAULT REMOVED\n gameQuery: \"\", // KT: DEFAULT REMOVED\n y: 0,\n pageSize: 10,\n activeTab: 0,\n bottomTabIndex: 0,\n member: {},\n games: [],\n gamesRecommended:{\n slotGamesCount:0,\n slotGames:[],\n casinoGamesCount:0,\n\t\tcasinoGames:[]\n },\n gamesFeatured:{\n slotGamesCount:0,\n slotGames:[],\n },\n hotGames:[],\n payments: [],\n walletBalance: 0,\n walletInfo: [],\n reportOverview: {\n displayData: [],\n newDisplayData: [],\n totalTransferToWallet: 0,\n totalTransferToWalletLM: 0,\n totalTransferToMember: 0,\n totalTransferToMemberLM: 0,\n totalBetAmount: 0,\n totalBetAmountLM: 0,\n totalCommission: 0,\n totalCommissionLM: 0,\n totalVipCommission: 0,\n totalBonus: 0,\n },\n downline: {\n memberData: null,\n recentData: null,\n },\n banners: [],\n themeName: \"template1\",\n openMenu: true,\n depositModal:false,\n depositTab:1,\n loginModal:false,\n gameLobbyModal:false,\n registerModal:false,\n provider:[],\n channels:[],\n latestBets:[],\n walletsDetails:{\n currentWalletBalance : 0,\n bonusWalletBalance : 0,\n isPromoCleared :false,\n isBonusWalletRestored : false,\n isValidForPromotion : false,\n isActivedPromoExist: false,\n promoMaxWithdrawal: false,\n },\n companyIcons:[],\n bannerAPK:{},\n isResetPassword:false,\n downlineModal:false,\n reportOverviewModal:false,\n shareReferralModal:false,\n companyCurrency:\"$\",\n depositPresetAmt:\"30,50,100,200,500,1000\",\n htmlStyle: false,\n chatSphere: [],\n languages: [],\n profileModal: false,\n seoContent:{\n pageName:\"\",\n seoTitle:\"\",\n seoDescription:\"\"\n },\n companyCurrencySymbol: \"$\",\n gameIframeModal: false,\n dialingCodes: [],\n promotionLayout: \"1\",\n promotionShowCategoryTitle: true,\n completeInfoModal:false,\n showPromoThumbnailClaimButton: false,\n dailyCheckinModal:false,\n dailyCheckInExist:false,\n referralBonusModal: false,\n isReferralBonusActive: false,\n dashboardComponent: [],\n isNormalDepositEnable: false,\n isNormalWithdrawalEnable: false,\n musicPlayerModal: false,\n companyTimeZone:\"\"\n }\n\nvar _busyCount = 0;\n\nexport default (state = _INITIAL_STATE, action) => {\n switch (action.type) {\n case _BUSY:\n _busyCount++;\n return {\n ...state,\n isBusy: true,\n message: stringIsNullOrEmpty(action.message)\n ? i18n.t(\"LOADING\")\n : action.message,\n iconEnabled:\n action.iconEnabled == null\n ? _INITIAL_STATE.iconEnabled\n : action.iconEnabled,\n };\n break;\n case _IDLE:\n _busyCount = Math.max(--_busyCount, 0);\n return {\n ...state,\n isBusy: _busyCount != 0,\n };\n break;\n case _ALERT_TYPES.SET_ALERT:\n return {\n ...state,\n alert: Object.keys(state.alert) == 0 ? action.alert : state.alert,\n };\n break;\n case _ALERT_TYPES.NONE:\n return {\n ...state,\n alert: {},\n };\n break;\n case _API_CALLED:\n return {\n ...state,\n apiCalledResponse: action.data,\n };\n break;\n case _DOWNLINE_SEARCH:\n return {\n ...state,\n savedText: action.data,\n };\n break;\n case _DOWNLINE_QUERY:\n return {\n ...state,\n savedQuery: action.data,\n };\n break;\n case _REFERRAL_SEARCH:\n return {\n ...state,\n savedReferralText: action.data,\n };\n break;\n case _REFERRAL_QUERY:\n return {\n ...state,\n savedReferralQuery: action.data,\n };\n break;\n case _GAME_SEARCH:\n return {\n ...state,\n gameSavedText: action.data,\n };\n break;\n case _GAME_QUERY:\n return {\n ...state,\n gameQuery: action.data,\n };\n break;\n case _SET_Y:\n return {\n ...state,\n y: action.y,\n };\n case _SET_PAGESIZE:\n return {\n ...state,\n pageSize: action.data,\n };\n break;\n case _SET_ACTIVE_TAB:\n return {\n ...state,\n activeTab: action.data,\n };\n break;\n case _SET_BOTTOM_TAB_INDEX:\n return {\n ...state,\n bottomTabIndex: action.bottomTabIndex,\n };\n break;\n case _BIND_MEMBER:\n return {\n ...state,\n member: action.member,\n walletBalance: action.walletBalance,\n walletsDetails: action.walletsDetails,\n };\n break;\n case _BIND_MEMBER_WALLET_BALANCE:\n return {\n ...state,\n walletBalance: action.walletBalance,\n walletsDetails: action.walletsDetails,\n\n };\n break;\n case _BIND_MEMBER_WALLET:\n return {\n ...state,\n walletsDetails: action.walletsDetails,\n };\n case _BIND_GAMES:\n return {\n ...state,\n games: action.games,\n };\n break;\n case _BIND_GAMES_RECOMMENDED:\n return {\n ...state,\n gamesRecommended: {\n slotGamesCount: action.slotGamesCount,\n slotGames: action.slotGames,\n casinoGamesCount: action.casinoGamesCount,\n\t casinoGames: action.casinoGames\n }\n };\n break;\n case _BIND_GAMES_FEATURED:\n return {\n ...state,\n gamesFeatured: {\n slotGamesCount: action.slotGamesCount,\n slotGames: action.slotGames\n }\n };\n break;\n case _SET_PAYMENT_LIST:\n return {\n ...state,\n payments: action.payments,\n };\n break;\n case _SET_OPEN_MENU:\n return {\n ...state,\n openMenu: action.data,\n };\n break;\n case _SET_WALLET_INFO:\n return {\n ...state,\n walletInfo: action.data,\n };\n break;\n\n case _SET_REPORT_OVERVIEW:\n state.reportOverview.displayData = action.displayData;\n state.reportOverview.newDisplayData = action.newDisplayData;\n state.reportOverview.totalTransferToWallet = action.totalTransferToWallet;\n state.reportOverview.totalTransferToWalletLM = action.totalTransferToWalletLM;\n state.reportOverview.totalTransferToMember = action.totalTransferToMember;\n state.reportOverview.totalTransferToMemberLM = action.totalTransferToMemberLM;\n state.reportOverview.totalBetAmount = action.totalBetAmount;\n state.reportOverview.totalBetAmountLM = action.totalBetAmountLM;\n state.reportOverview.totalCommission = action.totalCommission;\n state.reportOverview.totalCommissionLM = action.totalCommissionLM;\n state.reportOverview.totalVipCommission = action.totalVipCommission;\n state.reportOverview.totalBonus = action.totalBonus;\n\n return {\n ...state,\n };\n break;\n case _SET_DOWNLINE:\n state.downline.memberData = action.memberData;\n state.downline.recentData = action.recentData;\n return {\n ...state,\n };\n break;\n case _SET_BANNERS:\n return {\n ...state,\n banners: action.banners,\n };\n break;\n case _SET_DEPOSIT_MODAL:\n return {\n ...state,\n depositModal: action.depositModal,\n depositTab: action.depositTab\n };\n break;\n case _SET_DOWNLINE_MODAL:\n return {\n ...state,\n downlineModal: action.downlineModal,\n };\n break;\n case _SET_SHARE_REFERRAL_MODAL:\n return {\n ...state,\n shareReferralModal: action.shareReferralModal,\n };\n break;\n case _SET_DEPOSIT_TAB:\n return {\n ...state,\n depositTab: action.depositTab\n };\n break;\n case _SET_LOGIN_MODAL:\n return {\n ...state,\n loginModal: action.loginModal\n };\n break;\n case _SET_GAME_LOBBY_MODAL:\n return {\n ...state,\n gameLobbyModal: action.gameLobbyModal\n };\n break;\n case _SET_REGISTER_MODAL:\n return {\n ...state,\n registerModal: action.registerModal\n };\n break;\n case _SET_PROVIDER:\n return {\n ...state,\n provider: action.provider\n };\n break;\n case _SET_LATEST_BETS:\n return {\n ...state,\n latestBets: action.latestBets\n };\n break;\n case _SET_RESET_PASSWORD:\n return {\n ...state,\n isResetPassword: action.isResetPassword\n };\n break;\n\n case _BUSY_LOADING:\n return {\n ...state,\n isBusyLoading: action.isBusyLoading,\n };\n break;\n case _SET_PROFILE_MODAL:\n return {\n ...state,\n profileModal: action.profileModal\n };\n break;\n case _SET_SPIN_WHEEL_LIST_MODAL:\n return{\n ...state,\n spinWheelListModal: action.spinWheelListModal\n };\n case _SET_SPIN_WHEEL_REPORT_MODAL:\n return{\n ...state,\n spinWheelReportModal: action.spinWheelReportModal\n };\n case _SET_GAME_IFRAME_MODAL:\n return {\n ...state,\n gameIframeModal: action.gameIframeModal,\n };\n break;\n case _SET_SEO_CONTENT:\n state.seoContent.pageName = action.pageName;\n state.seoContent.seoTitle = action.seoTitle;\n state.seoContent.seoDescription = action.seoDescription;\n\n return {\n ...state,\n };\n break;\n case _BIND_SETTING:\n return {\n ...state,\n depositPresetAmt: action.depositPresetAmt != null ? action.depositPresetAmt : \"30,50,100,200,500,1000\", // MULTITAB THINGY\n companyCurrency: action.companyCurrency, // Account/GetCompanyDetails\n companyIcons: action.companyIcons,\n channels: action.channels,\n htmlStyle: action.htmlStyle,\n chatSphere: action.chatSphere,\n languages: action.languages,\n brandName: action.brandName,\n membershipEnabled: action.membershipEnabled,\n currencySymbol: action.currencySymbol,\n dialingCodes : action.dialingCodes,\n settingApiComplete: action.settingApiComplete,\n promotionLayout: action.promotionLayout,\n promotionShowCategoryTitle: action.promotionShowCategoryTitle,\n showPromoThumbnailClaimButton: action.showPromoThumbnailClaimButton,\n isReferralBonusActive: action.isReferralBonusActive,\n otpEnabled: action.otpEnabled,\n eWalletOTPEnabled: action.eWalletOTPEnabled,\n captchaEnabled: action.captchaEnabled,\n priorityModalTypeId: action.priorityModalTypeId,\n dashboardComponent: action.dashboardComponent,\n isNormalDepositEnable: action.isNormalDepositEnable,\n isNormalWithdrawalEnable: action.isNormalWithdrawalEnable,\n musicPlayerEnabled: action.musicPlayerEnabled,\n musicTrackList: action.musicTrackList,\n isEWalletActive: action.isEWalletActive,\n isBankTransferActive: action.isBankTransferActive,\n isReferralCommissionManual: action.isReferralCommissionManual,\n isRebateManual: action.isRebateManual,\n availableProductCategories: action.availableProductCategories,\n isGameLobbyRequired: action.isGameLobbyRequired,\n companyTimeZone: action.companyTimeZone,\n bannerAPK:action.bannerAPK,\n isLoginAttemptBlockingEnabled: action.isLoginAttemptBlockingEnabled,\n isHotGameEnabled: action.isHotGameEnabled\n };\n case _SET_REPORT_OVERVIEW_MODAL:\n return {\n ...state,\n reportOverviewModal: action.reportOverviewModal,\n };\n break;\n case _SET_COMPLETE_INFO_MODAL:\n return {\n ...state,\n completeInfoModal: action.completeInfoModal\n };\n break;\n case _SET_DAILY_CHECKIN_MODAL:\n return {\n ...state,\n dailyCheckinModal: action.dailyCheckinModal\n };\n break;\n case _SET_DAILY_CHECKIN_EXIST:\n return {\n ...state,\n dailyCheckInExist: action.dailyCheckInExist\n };\n break;\n case _SET_REFERRAL_BONUS_MODAL:\n return {\n ...state,\n referralBonusModal: action.referralBonusModal\n };\n break;\n case _SET_MUSIC_PLAYER_MODAL:\n return {\n ...state,\n musicPlayerModal: action.musicPlayerModal\n };\n break;\n case _IS_KEEPED_LOGIN:\n return {\n ...state,\n isKeepedLogin: action.data,\n };\n break;\n case _BIND_HOT_GAMES:\n return {\n ...state,\n hotGames: action.hotGames,\n };\n break;\n default:\n return state;\n break;\n }\n};\n","import {\n _LOGIN_SUCCESS,\n _LOGIN_FAILED,\n _LOGOUT,\n _GET_SHOP_CREDIT,\n _UPDATE_USER_DATA,\n _LOGIN_MODAL,\n} from \"./AuthAction\";\n\nconst _INITIAL_STATE = {\n userData: {},\n heartBeat: false,\n loginMessage: \"\",\n loginStateInitialized: false,\n creditLimit: 0,\n isToggleLoginModal: false,\n};\n\n/// \n/// Author :\n/// \nexport default (state = _INITIAL_STATE, action) => {\n switch (action.type) {\n case _LOGIN_SUCCESS:\n return {\n ...state,\n userData: action.userData,\n heartBeat: true,\n loginMessage: \"\",\n loginStateInitialized: true,\n isToggleLoginModal: false,\n };\n break;\n case _LOGIN_FAILED:\n return {\n loginMessage: action.message,\n heartBeat: false,\n userData: {},\n loginStateInitialized: true,\n isToggleLoginModal: false,\n };\n break;\n case _UPDATE_USER_DATA:\n return {\n ...state,\n userData: action.userData,\n };\n break;\n case _GET_SHOP_CREDIT:\n return {\n ...state,\n creditLimit: action.creditLimit,\n };\n break;\n case _LOGOUT:\n return {\n userData: {},\n heartBeat: false,\n loginMessage: \"\",\n loginStateInitialized: true,\n creditLimit: 0,\n isToggleLoginModal: state.isToggleLoginModal,\n };\n break;\n case _LOGIN_MODAL:\n return {\n ...state,\n isToggleLoginModal: action.isToggleLoginModal,\n };\n break;\n default:\n return state;\n break;\n }\n};\n","import { _SAVE_LANGUAGE_ID } from './LanguageAction';\n\nconst _INITIALSTATE = {\n languageId: \"\",\n retain: false\n};\n\n/// \n/// Author : -\n/// \nexport default (state = _INITIALSTATE, action) => {\n switch (action.type) {\n case _SAVE_LANGUAGE_ID:\n return {\n ...state,\n languageId: action.languageId,\n retain: action.retain\n }\n break;\n default:\n return state;\n break;\n }\n};","import { createStore, applyMiddleware, combineReducers } from \"redux\";\nimport appReducer from \"./redux/AppReducer\";\nimport authReducer from \"./redux/AuthReducer\";\nimport languageReducer from \"./redux/LanguageReducer\";\nimport thunk from \"redux-thunk\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\n/// \n/// Author :\n/// \nconst store = createStore(\n combineReducers({\n authState: authReducer,\n appState: appReducer,\n languageState: languageReducer,\n }),\n composeWithDevTools(applyMiddleware(thunk))\n);\n\nexport default store;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setBusy, setIdle, bindCompanyIcon } from \"../../redux/AppAction.js\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\n\nconst Loading = (props) => {\n\tvar _dispatch = useDispatch();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [logo, setLogo] = useState();\n\n\tuseEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Loading;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport VIcon from \"components/custom/Icon\";\nimport Icon from \"@mdi/react\";\nimport { mdiContentCopy } from \"@mdi/js\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, SessionKey, _MAIN_WALLET_ID, WebUrl } from \"util/Constant\";\nimport { numberWithCurrencyFormat, stringIsNullOrEmpty, isObjectEmpty } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport LoadingPlaceholder from \"./LoadingPlaceholder\";\nimport Loading from \"./Loading\";\nimport InfoBox from \"../../components/custom/InfoBox\";\n\nimport {\n showMessage,\n showResponseMessage,\n setBusy,\n setIdle,\n setGameSearchText,\n setGameQuery,\n setPageSize,\n setY,\n bindMember,\n setGameLobbyModal,\n bindCompanyIcon\n} from \"redux/AppAction.js\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\nimport { heartBeat as heartBeatDispatch } from \"redux/AuthAction\";\n\nconst GameLobbyModal = (props) => {\n var { t } = useTranslation();\n const _history = useHistory();\n var _dispatch = useDispatch();\n const memberData = useSelector((state) => state.appState.member);\n const _USER_DATA = useSelector((s) => s.authState.userData);\n let usernameRef = useRef();\n let passwordRef = useRef();\n\n const showLobby = useSelector((state) => state.appState.gameLobbyModal);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [clubFee, setClubFee] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [mpData, setMpData] = useState([]);\n const [isApp, setIsApp] = useState(false);\n const [appUrl, setAppUrl] = useState(\"\");\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [toLobbyBtn, setToLobbyBtn] = useState(false);\n const [showAppCred, setShowAppCred] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [balanceLoading, setBalanceLoading] = useState(false);\n const [masterProductId, setMasterProductId] = useState(0);\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n\n const [isDisabled, setDisabled] = useState(false);\n const [productCommRate, setProductCommRate] = useState([]);\n const [isProductCommRateShowed, setIsProductCommRateShow] = useState(true);\n const [guaranteeRebatePercentage, setGuaranteeRebatePercentage] = useState(0.00);\n const [productGameId, setProductGameId] = useState(0);\n const [appUsername, setAppUsername] = useState(\"\");\n const [appPassword, setAppPassword] = useState(\"\");\n const [isNewWindow, setIsNewWindow] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [mincoinTarget, setMincoinTarget] = useState(\"\");\n const [maxWithdraw, setMaxWithdraw] = useState(\"\");\n const [promoTitle, setPromoTitle] = useState(\"\");\n const [promoSlug, setPromoSlug] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const [isBonusWallet, setIsBonusWallet] = useState(false);\n const [isWalletLoaded, setIsWalletLoaded] = useState(false);\n const [showRestoreAccBlanceConfirmation, setShowRestoreAccBlanceConfirmation] = useState(false);\n var { heartBeat } = useSelector((state) => state.authState);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameBanner, setDefaultGameBanner] = useState();\n const [seconds, setSeconds] = useState(-1);\n const isBusy = useSelector(\n (state) => state.appState.isBusy\n );\n const [isValidForPromotion, setIsValidForPromotion] = useState(false);\n const [countdown, setCountdown] = useState(5); // Start countdown at 5 seconds\n const [intervalId, setIntervalId] = useState(null);\n const [promoAlert, setPromoAlert] = useState(false);\n var totalPromoClaimable = useSelector((state) =>\n state.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n );\n const [isSupportIframe, setIsSupportIframe] = useState(false);\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [balanceRefresh, setBalanceRefresh] = useState(false);\n\n const membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n\n useEffect(() => {\n //bindCompanyIcon(_dispatch);\n }, []);\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (showLobby) {\n getRolloverProgress();\n CheckWallet(props.masterProductId);\n setProductGameId(props.productGameId)\n setSelectedGameIsSeamless(props.selectedGameIsSeamless)\n setMasterProductId(props.masterProductId)\n setSelectedGameName(props.selectedGameName)\n setPopupBannerImage(props.popupBannerImage)\n setIsSupportIframe(props.isSupportIframe)\n startGame(props.masterProductId)\n\n }\n\n }, [showLobby])\n\n useEffect(() => {\n checkIsProductCommRateShouldShow();\n }, [productCommRate]);\n\n const startGame = async (masterProductId) => {\n\n setIsLoading(true)\n if (\n props.selectedGameName == \"Pussy888\" ||\n props.selectedGameName == \"Mega888\" ||\n props.selectedGameName == \"Evo888\"\n ) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_APP_LOGIN_CRED + \"?productId=\" + masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setShowAppCred(true);\n setAppUsername(responseJson[ApiKey._API_DATA_KEY].username);\n setAppPassword(responseJson[ApiKey._API_DATA_KEY].password);\n }\n }\n // setProductGameId(productGameId);\n var isNewWindowJson = await ApiEngine(\n ApiUrl._API_GET_GAME_IS_NEW_WINDOW + \"?gameId=\" + props.productGameId\n );\n setIsNewWindow(isNewWindowJson[ApiKey._API_DATA_KEY]);\n // setShowPregamePopup(true);\n getProductComRate(props.selectedGameName, props.providerName);\n getRolloverProgress(props.productGameId);\n setIsLoading(false)\n\n }\n\n const RefreshBalanceF = async () => {\n // setMasterProductId(masterProductId);\n // _dispatch(setBusy());\n setBalanceLoading(true);\n\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n props.masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === props.masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n // _dispatch(setIdle());\n setBalanceLoading(false);\n\n setDisabled(true);\n setTimeout(() => setDisabled(false), 5000);\n }\n }\n\n const getProductComRate = async (selectedGameName, providerName) => {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n var response = responseJson[ApiKey._API_DATA_KEY];\n var products = response.find((x) => x.categoryName === props.category)?.products;\n if (products) {\n data = products.find((x) => x.name === selectedGameName || x.name === providerName);\n }\n\n if (data != null) {\n setProductCommRate(data);\n }\n }\n }\n const getRolloverProgress = async () => {\n if (props.masterProductId !== 0) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n props.masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n setMincoinTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"mincoinTarget\"]\n );\n setMaxWithdraw(\n responseJson[ApiKey._API_DATA_KEY].data[\"maxWithdraw\"]\n );\n setPromoTitle(\n responseJson[ApiKey._API_DATA_KEY].data[\"title\"]\n );\n setPromoSlug(\n responseJson[ApiKey._API_DATA_KEY].data[\"slug\"]\n );\n }\n }\n }\n }\n }\n\n const checkIsProductCommRateShouldShow = () => {\n if (isObjectEmpty(productCommRate)) {\n setIsProductCommRateShow(false);\n return;\n }\n\n var productCommRatePercentage = productCommRate.playerComm;\n setIsProductCommRateShow(productCommRatePercentage != 0);\n setGuaranteeRebatePercentage(productCommRatePercentage.toFixed(2));\n }\n\n const copyText = async (textType) => {\n if (textType === \"username\") {\n usernameRef.current.select();\n } else if (textType === \"password\") {\n passwordRef.current.select();\n }\n document.execCommand(\"copy\");\n //setShowCopyAlert(true);\n //setTimeout(() => setShowCopyAlert(false), [_ALERT_TIMEOUT]);\n }\n\n async function getRestore() {\n _dispatch(setBusy());\n setBalanceRefresh(true);\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n setBalanceRefresh(false);\n _dispatch(setIdle());\n }\n\n async function CheckWallet(id) {\n setIsWalletLoaded(false);\n\n if (!stringIsNullOrEmpty(id)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_WALLET +\n \"?id=\" +\n id\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsBonusWallet(responseJson[ApiKey._API_DATA_KEY]);\n setIsWalletLoaded(true);\n }\n }\n }\n\n const confirmRestore = () => {\n setShowRestoreAccBlanceConfirmation(true)\n\n }\n\n const getRestoreAccountBlance = async () => {\n setShowRestoreAccBlanceConfirmation(false)\n\n _dispatch(setBusy());\n\n // setConfirmLoading(true)\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_MAIN_WALLET);\n\n _dispatch(heartBeatDispatch());\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n CheckWallet(props.masterProductId);\n getRolloverProgress();\n }\n\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n // setShowRestoreAccBlanceConfirmation(false)\n // setConfirmLoading(false)\n\n _dispatch(setIdle());\n }\n\n\n async function startGame2(gameId) {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: props.title,\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n\n } else {\n setIsIframeAlert(false);\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n _dispatch(setGameLobbyModal(false))\n setToLobbyBtn(false);\n setShowAppCred(false);\n\n\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const defaultGameBanner = find(companyIcons, { iconCategory: \"default_game_banner\" });\n if (defaultGameBanner) {\n setDefaultGameBanner(defaultGameBanner.iconImage||defaultGameBanner.defaultImage);\n }\n _dispatch(setIdle());\n }\n\n useEffect(() => {\n if (seconds === 0) return;\n\n const interval = setInterval(() => {\n if (rolloverBalance !== \"\" || rolloverTarget !== \"\") {\n getRolloverProgress(props.productGameId)\n }\n setSeconds(prevSeconds => prevSeconds - 1);\n }, 15000);\n\n return () => clearInterval(interval);\n }, [seconds]);\n\n async function setTransactionValidForPromo() {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n function countDownAlert() {\n // Ensure there's no ongoing countdown\n if (intervalId) clearInterval(intervalId);\n\n // Set up the countdown interval\n const id = setInterval(() => {\n setCountdown(prev => {\n if (prev <= 1) {\n clearInterval(id);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n setIntervalId(id);\n\n return () => clearInterval(id); // Clean up on component unmount\n }\n\n const closeBtn = (\n {\n _dispatch(setGameLobbyModal(false))\n setToLobbyBtn(false);\n setShowAppCred(false);\n }}\n >\n \n \n );\n\n function getMembershipRebateRate() {\n var rebatePercentage = 0;\n switch (props.category) {\n case \"Slots\":\n rebatePercentage = memberData.membership?.rebateSlot;\n break;\n case \"Sports\":\n rebatePercentage = memberData.membership?.rebateSport;\n break;\n case \"ESport\":\n rebatePercentage = memberData.membership?.rebateESport;\n break;\n case \"Casino\":\n rebatePercentage = memberData.membership?.rebateCasino;\n break;\n case \"Fish Hunt\":\n rebatePercentage = memberData.membership?.rebateFishHunt;\n break;\n case \"Keno\":\n rebatePercentage = memberData.membership?.rebateKeno;\n break;\n case \"Arcade\":\n rebatePercentage = memberData.membership?.rebateArcade;\n break;\n case \"Crash\":\n rebatePercentage = memberData.membership?.rebateCrash;\n break;\n case \"Exchange\":\n rebatePercentage = memberData.membership?.rebateExchange;\n break;\n default:\n rebatePercentage = 0.00;\n }\n\n return rebatePercentage.toFixed(2);\n }\n\n return (\n <>\n {promoAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setPromoAlert(false);\n setCountdown(5);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n setTransactionValidForPromo();\n setPromoAlert(false);\n setCountdown(5);\n if (isSupportIframe) {\n startGame2(\n props.productGameId\n );\n } else {\n setPromoAlert(false);\n setIsIframeAlert(true)\n }\n \n // console.log('confirm proceed')\n }}\n >\n {t(\"CONTINUE_ANYWAY\")} {countdown != 0 ? \"(\" + countdown + \")\" : \"\"}\n \n {/* (setPromoAlert(false), _dispatch(setGameLobbyModal(false)), _history.push(WebUrl._URL_PROMOTION))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"GO_TO_PROMOTIONS\")}\n */}\n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n < InfoBox style={{ maxWidth: \"100%\", margin: \"0 16px\", marginBottom: \"0px\" }} type=\"danger\" content={t(\"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME_WARNING\")} />\n \n \n
\n )}\n\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n setCountdown(5);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n setTransactionValidForPromo();\n setPromoAlert(false);\n setCountdown(5);\n startGame2(\n props.productGameId\n );\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")} \n \n (setPromoAlert(false), _dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {showRestoreAccBlanceConfirmation && (\n
\n\n {\n getRestoreAccountBlance();\n }}\n onCancel={() => {\n setShowRestoreAccBlanceConfirmation(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customIcon={alertIcon}\n\n customButtons={\n \n \n\n \n\n \n }\n >\n \n {t(\"RESTORE_WALLETS\")}\n \n \n
\n )}\n {\n _dispatch(setGameLobbyModal(false))\n // setShowPregamePopup(false);\n setToLobbyBtn(false);\n // setShowAppCred(false);\n }}\n fullscreen={\"true\"}\n // centered\n >\n \n {props.selectedGameName}\n \n \n
\n
\n
\n {isLoading ?\n () :\n (<>\n
\n
\n {!stringIsNullOrEmpty(props.popupBannerImage) ? (\n \n ) : (\n \n )}\n
\n
\n {!props.selectedGameIsSeamless && isWalletLoaded && (\n <>\n
\n {/*{isBonusWallet && */}\n {/*
*/}\n {/*
*/}\n {/*}*/}\n
\n {!isBonusWallet && <>\n { /* WALLET */}\n \n
\n
\n {t(\"MAIN_WALLET\")}\n
\n
\n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n {balanceRefresh ? (\n \n ) : (\n {\n getRestore();\n }}\n disabled={isDisabled}\n />\n )}\n \n
\n
\n
\n { /* BASED REBATE */}\n {isProductCommRateShowed &&\n
\n
\n
\n {t(\"GUARANTEED_REBATE\")}\n
\n
\n {guaranteeRebatePercentage}\n %\n
\n
\n
\n
\n \n
\n
\n
\n }\n { /* ADDITIONAL REBATE */}\n {membershipEnabled && \n
\n
\n
\n {t(\"MEMBERSHIP_REBATE\")}\n
\n
\n {getMembershipRebateRate()}\n %\n
\n
\n
\n
\n {memberData.membership?.membership > 1 ? (\n \n ) : (\n \n )}\n
\n
\n
\n }\n }\n\n {isBonusWallet && <>\n\n { /* BASED REBATE */}\n
\n
\n
\n {t(\"PROMOTION\")}\n
\n
\n {promoTitle}\n
\n
\n
\n
\n \n
\n
\n
\n\n { /* WALLET */}\n \n
\n
\n {t(\"COINS\")}\n
\n
\n {numberWithCurrencyFormat(\n walletsDetails.bonusWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n {balanceRefresh ? (\n \n ) : (\n {\n getRestore();\n }}\n disabled={isDisabled}\n />\n )}\n
\n
\n
\n {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (\n \n
\n
\n {t(\"ROLLOVER\")}\n
\n
\n \n\n
\n
\n {numberWithCurrencyFormat(\n parseFloat(rolloverTarget - rolloverBalance),\n 2,\n true\n )}{\" \"}\n /{\" \"}\n {numberWithCurrencyFormat(\n parseFloat(rolloverTarget),\n 2,\n true\n )}\n
\n
\n
\n )}\n {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (\n \n
\n
\n {t(\"TARGET\")}\n
\n
\n \n\n
\n
{numberWithCurrencyFormat(\n parseFloat(walletsDetails.bonusWalletBalance > mincoinTarget ? mincoinTarget : walletsDetails.bonusWalletBalance),\n 2,\n true\n )}{\" \"}\n /{\" \"}\n {numberWithCurrencyFormat(\n parseFloat(mincoinTarget),\n 2,\n true\n )}
\n
\n
\n )}\n }\n\n {/* {isBonusWallet && <> */}\n {/* { /* COINS */}\n {/* */}\n {/*
*/}\n {/* */}\n {/* {t(\"BONUS_WALLET\")}*/}\n {/*
*/}\n {/*
*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* walletsDetails.bonusWalletBalance,*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* {*/}\n {/* getRestore();*/}\n {/* }}*/}\n {/* disabled={isDisabled}*/}\n {/* />*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* { /* More Info */}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/* { /* BONUS ROLLOVER */}\n {/* {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"ROLLOVER\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(rolloverTarget - rolloverBalance),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}{\" \"}*/}\n {/* /{\" \"}*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(rolloverTarget),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/* */}\n {/*
*/}\n {/* )}*/}\n {/* { /* MIN COINS IF ANY */}\n {/* {isBonusWallet && mincoinTarget !== \"\" && mincoinTarget > 0 && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"Target\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(walletsDetails.bonusWalletBalance > mincoinTarget ? mincoinTarget:walletsDetails.bonusWalletBalance),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}{\" \"}*/}\n {/* /{\" \"}*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(mincoinTarget),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/* */}\n {/* */}\n {/* )}*/}\n\n {/* {isBonusWallet && mincoinTarget !== \"\" && mincoinTarget == 0 && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"Target\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {t(\"NoTarget\")}*/}\n {/* */}\n {/* */}\n {/* )}*/}\n\n {/* { /* Claim/End */}\n {/* {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && ( 0 && mincoinTarget <= walletsDetails.bonusWalletBalance || mincoinTarget == 0))) || walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion) ? \"\" : \"unavailable\")}*/}\n {/* onClick={() => !isBusy && ((rolloverBalance === 0 && ((mincoinTarget > 0 && mincoinTarget <= walletsDetails.bonusWalletBalance || mincoinTarget == 0))) || walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion) && getRestoreAccountBlance()}*/}\n {/* >*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* {walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion ? t(\"END\"):numberWithCurrencyFormat(parseFloat(maxWithdraw === 0 ? walletsDetails.bonusWalletBalance : (maxWithdraw >= walletsDetails.bonusWalletBalance ? walletsDetails.bonusWalletBalance : maxWithdraw), 2, true))}*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* { walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion ? t(\"PROMO\"):t(\"CLAIM\")}*/}\n {/*
*/}\n {/*
*/}\n {/* )}*/}\n\n\n {/*}*/}\n \n\n \n\n {props.selectedGameName == \"Pussy888\" ||\n props.selectedGameName == \"Mega888\" ||\n props.selectedGameName == \"Evo888\" ? (\n
\n \n {t(\"PRODUCT_ROLLOVER_MESSAGE\")}\n

\n
\n ) : null}\n\n
\n {!isApp || (isApp && appDeepLink != \"\") ? (\n <>\n {!toLobbyBtn ? (\n {\n if (!window.ReactNativeWebView) {\n if (walletsDetails.isValidForPromotion && totalPromoClaimable > 0) {\n setPromoAlert(true);\n setCountdown(5);\n countDownAlert();\n } else {\n if (isSupportIframe) {\n startGame2(props.productGameId)\n } else {\n setIsIframeAlert(true)\n }\n \n }\n } else {\n if (isApp) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n action: \"deeplink\",\n url: appUrl,\n deeplink: appDeepLink\n .replace(\n \"[username]\",\n mpData[\"username\"]\n )\n .replace(\n \"[password]\",\n mpData[\"password\"]\n ),\n })\n );\n } else {\n if (isNewWindow === true) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n url: `${process.env\n .REACT_APP_ENDPOINT_URL ||\n window.location.origin\n }${ApiUrl._API_START\n }?gameId=${props.productGameId}&device=${window.innerWidth <= 900 ? \"m\" : \"d\"}`,\n })\n );\n } else {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n url: `${process.env\n .REACT_APP_ENDPOINT_URL ||\n window.location.origin\n }${WebUrl._URL_GAME_PAGE\n }?gameId=${props.productGameId}`,\n selectedTheme:\n _USER_DATA.selectedTheme,\n })\n );\n }\n }\n }\n }}\n className=\"t3-custom-light-btn\"\n >\n {t(\"START_GAME\")}\n \n ) : (\n <>\n )}\n \n ) : (\n {\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({ url: appUrl })\n );\n } else {\n window.open(appUrl);\n }\n }}\n className=\"t3-custom-light-btn\"\n >\n {t(\"DOWNLOAD_APP\")}\n \n )}\n
\n {showAppCred && (\n
\n \n
\n {t(\"USERNAME\") + \" : \"}\n \n
\n\n copyText(\"username\")}\n style={{ cursor: \"pointer\" }}\n >\n \n
\n \n \n
\n {t(\"PASSWORD\") + \" : \"}\n \n
\n\n copyText(\"password\")}\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n \n )}\n \n )}\n )\n }\n\n\n \n \n \n \n \n \n )\n\n}\n\nexport default GameLobbyModal;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal } from \"../../redux/AppAction.js\";\nimport { map, find } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty, createMultiPartFormBody } from \"../../util/Util.js\";\nimport moment from \"moment\";\nimport DatePicker from \"react-bootstrap-daterangepicker\";\nimport PinInput from \"react-pin-input\";\nimport Skeleton from \"react-loading-skeleton\";\n\nconst VerifyPhoneNumberModal = ({show, phoneNumber, phoneNumType, onClose, onCallback, ...props}) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const memberData = useSelector((state) => state.appState.member);\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n const [otpValue, setOtpValue] = useState(\"\");\n const [showVerifyOtpError, setShowVerifyOtpError] = useState(false);\n const [sentCode, setSentCode] = useState(false);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [attemp, setAttemp] = useState(1);\n const elePin = useRef(null);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const [pinLoading, setPinLoading] = useState(false);\n\n // const [memberEwalletAccounts, setMemberEwalletAccounts] = useState([]);\n const [selectedPhoneNumber, setSelectedPhoneNumber] = useState(\"\");\n const [selectedPhoneNumType, setSelectedPhoneNumType]=useState(\"\");\n\n const _TAC_VALID_TIMER = 60000;\n const _SECONDS_IN_MS = 1000;\n\n let countdownPeriodTimeOutId, apiTimeOutId;\n\n useEffect(() => {\n if (show) {\n setSelectedPhoneNumber(phoneNumber);\n setSelectedPhoneNumType(phoneNumType);\n\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n }\n }, [show, phoneNumber, phoneNumType]);\n\n // OTP functions\n useEffect(() => {\n if (countdownPeriod > 0) {\n countdownPeriodTimeOutId=setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS);\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n const sendOtp = async () => {\n const OTP_VIA_SMS = 1;\n const channelType = OTP_VIA_SMS;\n\n let params = {\n phoneNumber: selectedPhoneNumber,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: OTP_VIA_SMS,\n usage: \"verifyPhoneNumber\",\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]\n ) {\n setSentCode(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setAttemp(attemp + 1);\n apiTimeOutId=setTimeout(() => {\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER);\n }else{\n setShowVerifyOtpModal(false);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n }\n\n const stopTimeout = () => {\n clearTimeout(countdownPeriodTimeOutId);\n clearTimeout(apiTimeOutId);\n };\n\n const handleVerifyOtp = async (data, e) => {\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n\n // Open modal\n setShowVerifyOtpModal(true);\n }\n\n async function onKeyPress(key, index) {\n //setAllowPinClick(false);\n // 1st: have to check currentPinRef\n // 2nd: have to know which index is currently focused for altering the state.value\n // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // let currentIndex = 0;\n let pinStr = tempPinNumber;\n let keyLength = key.split(\"\");\n if (key !== \"{bksp}\" && key !== \" \") {\n pinStr = key;\n setTempPinNumber(pinStr);\n if (keyLength.length !== 6) {\n } else {\n setTempPinNumber(\"\");\n setPinInputDisabled(true);\n setPinLoading(true);\n\n await verifyOTP(pinStr);\n\n setPinLoading(false);\n setPinInputDisabled(false);\n }\n } else {\n elePin.current.clear();\n }\n }\n\n const verifyOTP = async (pinstr) => {\n await ApiEngine.post(\n ApiUrl._API_VERIFY_MULTIPLE_PHONE_NUMBER,\n createMultiPartFormBody({\n verificationCode: pinstr,\n phoneNum: selectedPhoneNumber,\n phoneNumType: selectedPhoneNumType\n })\n ).then((response) => {\n if (response[ApiKey._API_SUCCESS_KEY]) {\n if(onCallback) {\n onCallback(response);\n }\n\n // setShowVerifyOtpModal(false);\n // getMemberEwalletAccounts();\n\n // if(phoneNumType==\"member\"){\n // memberData.isPhoneVerify=true;\n // }\n }\n\n _dispatch(\n showResponseMessage(\n response[ApiKey._API_SUCCESS_KEY],\n response[ApiKey._API_MESSAGE_KEY]\n )\n );\n\n // Clear pin inputs\n elePin.current.clear();\n });\n };\n\n // const getMemberEwalletAccounts = async () => {\n // let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_PHONE_NUMBERS);\n // if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setMemberEwalletAccounts(responseJson[ApiKey._API_DATA_KEY]);\n // }\n // }\n\n return (\n <>\n {/* Modal for verifying phone number using otp */}\n {\n stopTimeout();\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n {/* {\n // setManageProfileShow(false);\n _dispatch(setMyProfileModal(false))\n\n }}\n >\n \n
*/}\n
{t(\"VERIFY_PHONE_NUMBER\")}
\n \n
\n
{\n stopTimeout();\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n
\n
\n \n
\n
\n
\n {sentCode ? (\n
\n

\n {t(\"VERIFY_YOUR_NUMBER\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {selectedPhoneNumber}.\n
\n {\n onKeyPress(value, index);\n }}\n />\n {sentCode && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")} {countdownPeriod}s\n

\n )}\n {/*
{t(\"OTP_SENT_TO\", { phoneNumber: memberData.phoneNumber })
\n setOtpValue(e.target.value)}\n style={{ height: \"48px\", width: \"300px !important\", textAlign: \"center\" }}\n />\n {showVerifyOtpError && (\n
\n {t(\"INVALID_OTP_ENTERED\")}\n
\n )} */}\n {/* */}\n
\n ) : (\n
\n
{t(\"OTP_WILL_BE_SEND_TO\", { phoneNumber: selectedPhoneNumber})}
\n \n
\n )}\n
\n
\n
\n
\n \n \n );\n};\n\nexport default VerifyPhoneNumberModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setBusy, setIdle, bindCompanyIcon } from \"../../redux/AppAction.js\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\n\nconst LoadingPlaceholder = (props) => {\n\tvar _dispatch = useDispatch();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [logo, setLogo] = useState();\n\n\tuseEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t// _dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\t\t// _dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default LoadingPlaceholder;\n","import Cookies from \"universal-cookie\";\nimport { SessionKey } from \"../util/Constant\";\n\nexport const _SAVE_LANGUAGE_ID = \"saveLanguageId\";\nexport const _COOKIE = new Cookies();\n\n/// \n/// Author : -\n/// \nexport const saveLanguageId = (id, retain) => {\n\tlocalStorage.setItem(SessionKey._LANGUAGE, id);\n\tlocalStorage.removeItem(\"setReportDate\");\n\t_COOKIE.set(SessionKey._LANGUAGE, id, { path: \"/\" });\n\n\treturn async (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _SAVE_LANGUAGE_ID,\n\t\t\tlanguageId: id,\n\t\t\tretain: retain,\n\t\t});\n\t};\n};\n","import React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { WebUrl } from \"../../util/Constant\";\nimport { useHistory, Link } from \"react-router-dom\";\n\nconst ContentHeader = ({\n\tenableBackButton,\n\ttitle,\n\tsubTitle,\n\ttopRightTitle,\n\tbackButtonOnClick,\n\tescButtonOnClick,\n\tdisplayYellowAlert,\n\ttopRightUrl,\n\talertMsg,\n}) => {\n\tconst _history = useHistory();\n\n\tuseEffect(() => {\n\t\twindow.addEventListener(\"keydown\", (e) => {\n\t\t\tif (e.key === \"Escape\") {\n\t\t\t\t_history.replace(WebUrl._URL_MAIN);\n\t\t\t}\n\t\t});\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{enableBackButton && (\n\t\t\t\t\t\t\t\t\t backButtonOnClick()}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t topRightUrl()}\n\t\t\t\t\t\tstyle={{ fontWeight: \"bold\", cursor: \"pointer\", minWidth:30 }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{topRightTitle}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{displayYellowAlert && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{alertMsg}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t\t{subTitle &&

{subTitle}

}\n\t\t\t
\n\t\t\n\t);\n};\n\nContentHeader.propTypes = {\n\tenableBackButton: PropTypes.bool,\n\ttitle: PropTypes.string.isRequired,\n\tsubTitle: PropTypes.string,\n\ttopRightTitle: PropTypes.string,\n\tbackButtonOnClick: PropTypes.func,\n\tescButtonOnClick: PropTypes.func,\n\tdisplayYellowAlert: PropTypes.bool,\n\ttopRightUrl: PropTypes.func,\n\talertMsg: PropTypes.string,\n};\n\nContentHeader.defaultProps = {\n\tenableBackButton: false,\n\tbackButtonOnClick: () => window.history.go(-1),\n\tescButtonOnClick: () => {},\n\ttopRightUrl: () => {},\n\tdisplayYellowAlert: false,\n};\n\nexport default ContentHeader;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUBAMAAACQZWsAAAAAMFBMVEUAAABYWFhVVVVXV1dXV1dXV1dXV1daWlpWVlZYWFhVVVVWVlZXV1dWVlZgYGBXV1f30yFTAAAAD3RSTlMAIGC/35/vMM9AkH9wUBAKpSJNAAAAVUlEQVQI12MAgpL/QPBtAwMI+P8HgZ8gJuN/MPiEymY3WQhns/wPhLPlacI2yIe4B8T+CHHnARD7iwADGIDY/38YAwGEDQEg9jMI8wuIzQvxVTuQCQAl4o9sNwt9+wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAP1BMVEUAAABuyyBvyyBuyiBwyiBwyiBvyyBuzCBvzCBvyiBvyyBvyyBvzCBwyyBwyyBwzCBwzyBwxyBrziFwxSBvyyDpTZ1gAAAAFHRSTlMAf+9vYDCvX9/fz7+PgHBQECAfMK0UqaYAAACgSURBVBjTXdBZDoMwEATRxuONfUnd/6wBYjCkPp80kt06Wyxm6GJSbXaU2psH6G2Tgs8w/mzEmUqTY9CexwXdBccsKWMP04Rb5GmreUb1mCLpYTQyojo+L9O6n4KkUE27nDiSihXMbGog3RboFDEdepk8UUavXW9TJmlx2KGXTee75/9vpnOk9yDlpDl2DNJqPQwq+UzJzar52EGOtujoC8iHCXoCswYwAAAAAElFTkSuQmCC\"","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal, setCompleteInfoModal } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\n\nconst AddPhoneModal = ({show, onClose, onCallback, ...props}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n const [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n const [formattedPhoneNumber, setFormattedPhoneNumber] = useState(false);\n \n const {\n register: ewalletRegister,\n handleSubmit: ewalletHandleSubmit,\n errors: ewalletErrors,\n setError: ewalletError,\n } = useForm();\n\n function sanitizePhoneNumber(e) {\n const re = /^[0-9\\b]+$/;\n let value = e.target.value;\n\n // Check if the value contains only digits\n if (re.test(value)) {\n // Limit the value to 12 characters\n if (value.length > 12) {\n value = value.slice(0, 12);\n }\n\n // setIsDigit(true);\n setFormattedPhoneNumber(value);\n } else {\n return false;\n // setIsDigit(false);\n }\n }\n\n // Add ewallet functions\n const addEwallet = async (data, e) => {\n let params = {\n accountHolderName: data.accountHolderName,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhoneNumber\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_ADD_MEMBER_PHONE_NUMBER,\n createFormBody(params)\n );\n\n if (typeof responseJson[ApiKey._API_SUCCESS_KEY] !== \"undefined\") {\n bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]) {\n if(onCallback) {\n onCallback(responseJson);\n }\n }\n }\n };\n\n\n const closeBtn = (\n\t\t _dispatch(setCompleteInfoModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n return (\n
\n {\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n
{t(\"ADD_PHONE_NUMBER\")}
\n
\n
\n
{\n if (onClose) {\n onClose();\n }\n }}>\n \n
\n
\n
\n \n
\n
\n
\n
\n \n {/*
\n {t(\"ADD_NEW_SECONDARY_PHONE_NUMBER\")}\n
*/}\n
\n
\n \n
\n
\n
\n sanitizePhoneNumber(e)}\n />\n
\n
\n
\n
\n
\n \n
\n
\n
\n {\n setSelectedPhonePrefix(e.target.value);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n // const inputValue = e.target.value;\n // if (inputValue.length === 0 && key === \"0\") {\n // e.preventDefault();\n // }\n }}\n // onChange={(e) => sanitizePhoneNumber(e)}\n onChange={(e) => {\n let newValue = e.target.value;\n \n // Remove all leading zeros\n // newValue = newValue.replace(/^0+/, '');\n \n // Call your original `onChange` function\n sanitizePhoneNumber(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n }}\n />\n\n {ewalletError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : ewalletErrors.registerPhone ? (\n
\n
\n {t(ewalletErrors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n )\n};\n\nexport default AddPhoneModal;","import { AlertTypes } from \"../util/Constant.js\";\nimport i18n from \"../localization/i18n\";\nimport ApiEngine from \"../util/ApiEngine.js\";\nimport { ApiUrl, ApiKey } from \"../util/Constant\";\nimport { numberWithCurrencyFormat, stringIsNullOrEmpty } from \"../util/Util\";\nimport { groupBy, map } from \"lodash\";\n\nexport const _BIND_SETTING = \"bindSetting\";\nexport const _BIND_MEMBER = \"bindMember\";\nexport const _BIND_MEMBER_WALLET = \"bindMemberWallet\";\nexport const _BIND_MEMBER_WALLET_BALANCE = \"bindMemberWalletBalance\";\nexport const _BIND_GAMES = \"bindGames\";\nexport const _BIND_GAMES_RECOMMENDED = \"bindGamesRecommended\";\nexport const _BIND_GAMES_FEATURED = \"bindGamesFeatured\";\nexport const _BUSY = \"busy\";\nexport const _IDLE = \"idle\";\nexport const _API_CALLED = \"setApiCalled\";\nexport const _DOWNLINE_SEARCH = \"setDownlineSearchTextCalled\";\nexport const _DOWNLINE_QUERY = \"setDownlineQueryCalled\";\nexport const _REFERRAL_SEARCH = \"setReferralSearchTextCalled\";\nexport const _REFERRAL_QUERY = \"setReferralQueryCalled\";\nexport const _GAME_SEARCH = \"setGameSearchTextCalled\";\nexport const _GAME_QUERY = \"setGameQueryCalled\";\nexport const _SET_Y = \"setY\";\nexport const _SET_PAGESIZE = \"setPageSize\";\nexport const _SET_ACTIVE_TAB = \"setActiveTab\";\nexport const _SET_BOTTOM_TAB_INDEX = \"setBottomTabIndex\";\nexport const _SET_PAYMENT_LIST = \"setPaymentList\";\nexport const _SET_WALLET_INFO = \"setWalletInfo\";\nexport const _SET_OPEN_MENU = \"setOpenMenu\";\nexport const _SET_REPORT_OVERVIEW = \"setReportOverview\";\nexport const _SET_DOWNLINE = \"setDownline\";\nexport const _SET_BANNERS = \"setBanners\";\nexport const _SET_DEPOSIT_MODAL = \"setDepositModal\";\nexport const _SET_DEPOSIT_TAB = \"setDepositTab\";\nexport const _SET_LOGIN_MODAL = \"setLoginModal\";\nexport const _SET_GAME_LOBBY_MODAL = \"setGameLobbyModal\";\nexport const _SET_REGISTER_MODAL = \"setRegisterModal\";\nexport const _SET_PROVIDER = \"setProvider\";\nexport const _SET_LATEST_BETS = \"setLatestBets\";\nexport const _SET_RESET_PASSWORD = \"setResetPassword\";\nexport const _SET_DOWNLINE_MODAL = \"setDownlineModal\";\nexport const _SET_SHARE_REFERRAL_MODAL = \"setShareReferralModal\";\nexport const _BUSY_LOADING = \"setBusyLoading\";\nexport const _SET_PROFILE_MODAL = \"setMyProfileModal\";\nexport const _SET_SPIN_WHEEL_LIST_MODAL=\"setSpinWheelListModal\";\nexport const _SET_SPIN_WHEEL_REPORT_MODAL=\"setSpinWheelReportModal\";\nexport const _SET_SEO_CONTENT = \"setSeoContent\";\nexport const _SET_REPORT_OVERVIEW_MODAL = \"setReportOverviewModal\";\nexport const _SET_GAME_IFRAME_MODAL = \"setGameIframeModal\";\nexport const _SET_COMPLETE_INFO_MODAL = \"setCompleteInfoModal\";\nexport const _SET_DAILY_CHECKIN_MODAL = \"setDailyCheckinModal\";\nexport const _SET_DAILY_CHECKIN_EXIST = \"setDailyCheckInExist\";\nexport const _SET_REFERRAL_BONUS_MODAL = \"setReferralBonusModal\";\nexport const _SET_MUSIC_PLAYER_MODAL = \"setMusicPlayerModal\";\nexport const _IS_KEEPED_LOGIN = \"userKeepLogin\";\nexport const _BIND_HOT_GAMES = \"bindHotGames\";\n\nexport const _ALERT_TYPES = {\n SET_ALERT: \"SetAlert\",\n NONE: \"AlertNone\",\n};\n\nexport const setY = (y) => {\n return (dispatch) => {\n dispatch({\n type: _SET_Y,\n y,\n });\n };\n};\n\nexport const setBottomTabIndex = (bottomTabIndex) => {\n return (dispatch) => {\n dispatch({\n type: _SET_BOTTOM_TAB_INDEX,\n bottomTabIndex,\n });\n };\n};\n\nexport const setBanners = (banners) => {\n return (dispatch) => {\n dispatch({\n type: _SET_BANNERS,\n banners,\n });\n };\n};\n\nexport const bindMember = async (dispatch) => {\n let member = [];\n let balance = 0;\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_DETAILS);\n\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]));\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n member = responseJson[ApiKey._API_DATA_KEY];\n\n\n let walletDetails = {\n currentWalletBalance: 0,\n bonusWalletBalance: 0,\n isPromoCleared: false,\n isBonusWalletRestored: false,\n isValidForPromotion: false,\n isActivedPromoExist: false,\n promoMaxWithdrawal: 0,\n }\n\n var totalwalletbalance =\n member[\"primaryCredit\"] +\n member[\"tempPrimaryCredit\"];\n var totalbonuswallet =\n member[\"bonusWallet\"] +\n member[\"tempBonusWallet\"];\n\n balance = isNaN(parseFloat(totalwalletbalance + totalbonuswallet), 3)\n ? \"0.00\"\n : numberWithCurrencyFormat(parseFloat(totalwalletbalance + totalbonuswallet), 2, true);\n\n walletDetails = {\n currentWalletBalance: totalwalletbalance,\n bonusWalletBalance: totalbonuswallet,\n isPromoCleared: member[\"isPromoCleared\"],\n isBonusWalletRestored: member[\"isBonusWalletRestored\"],\n isValidForPromotion: member[\"isAnyTransactionValidForPromo\"],\n isActivedPromoExist: member[\"isActivedPromoExist\"],\n promoMaxWithdrawal: member[\"promoMaxWithdrawal\"]\n }\n\n dispatch({\n type: _BIND_MEMBER,\n member: member,\n walletBalance: balance, //KT: Should this be totalwalletbalance or member[\"primaryCredit\"] or (totalwalletbalance + totalbonuswallet)?\n walletsDetails: walletDetails,\n });\n};\n\nexport const setProvider = async (dispatch) => {\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_PROVIDER_GROUP_GAME);\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]));\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n const availableList = responseJson[ApiKey._API_DATA_KEY];\n const providerList = groupBy( availableList , item => item.productName.split(' ')[0])\n\n let providerArray = []\n map(providerList, (item)=>{\n if(!stringIsNullOrEmpty(item[0].providerImage) \n || !stringIsNullOrEmpty(item[0].providerImageLight))\n {\n providerArray.push({\n providerName:item[0].productName,\n providerImage:item[0].providerImage,\n providerImageLight:item[0].providerImageLight\n })\n }\n })\n dispatch({\n type: _SET_PROVIDER,\n provider: providerArray,\n });\n};\n\nexport const bindGames = (games) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES,\n games,\n });\n };\n};\n\nexport const bindGamesRecommended = (gamesRecommended) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES_RECOMMENDED,\n slotGamesCount:gamesRecommended.slotGamesCount,\n slotGames:gamesRecommended.slotGames,\n casinoGamesCount:gamesRecommended.casinoGamesCount,\n casinoGames:gamesRecommended.casinoGames\n });\n };\n};\n\nexport const bindGamesFeatured = (gamesFeatured) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES_FEATURED,\n slotGamesCount:gamesFeatured.slotGamesCount,\n slotGames:gamesFeatured.slotGames,\n \n });\n };\n};\n\nexport const bindHotGames = (hotGames) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_HOT_GAMES,\n hotGames:hotGames,\n \n });\n };\n};\n\nexport const setPaymentList = (payments) => {\n return (dispatch) => {\n dispatch({\n type: _SET_PAYMENT_LIST,\n payments,\n });\n };\n};\n\nexport const setPageSize = (pagesize) => {\n return (dispatch) => {\n dispatch({\n type: _SET_PAGESIZE,\n data: pagesize,\n });\n };\n};\n\nexport const setActiveTab = (activeTab) => {\n return (dispatch) => {\n dispatch({\n type: _SET_ACTIVE_TAB,\n data: activeTab,\n });\n };\n};\n\nexport const setDownlineSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _DOWNLINE_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setDownlineQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _DOWNLINE_QUERY,\n data: e,\n });\n };\n};\n\nexport const setReferralSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _REFERRAL_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setReferralQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _REFERRAL_QUERY,\n data: e,\n });\n };\n};\n\nexport const setGameSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _GAME_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setGameQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _GAME_QUERY,\n data: e,\n });\n };\n};\n\nexport const setWalletInfo = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_WALLET_INFO,\n data: e,\n });\n };\n};\n\nexport const setOpenMenu = (openMenu) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_OPEN_MENU,\n data: openMenu,\n });\n };\n};\n\nexport const setReportOverview = ({\n displayData,\n newDisplayData,\n totalTransferToWallet,\n totalTransferToWalletLM,\n totalTransferToMember,\n totalTransferToMemberLM,\n totalBetAmount,\n totalBetAmountLM,\n totalCommission,\n totalCommissionLM,\n totalVipCommission,\n totalBonus,\n}) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_REPORT_OVERVIEW,\n displayData,\n newDisplayData,\n totalTransferToWallet,\n totalTransferToWalletLM,\n totalTransferToMember,\n totalTransferToMemberLM,\n totalBetAmount,\n totalBetAmountLM,\n totalCommission,\n totalCommissionLM,\n totalVipCommission,\n totalBonus,\n });\n };\n};\n\nexport const setDownline = ({ memberData, recentData }) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_DOWNLINE,\n memberData,\n recentData,\n });\n };\n};\n/// \n/// Author :\n/// \nexport const setBusy = (iconEnabled, message) => {\n return async (dispatch) => {\n dispatch({\n type: _BUSY,\n message: message,\n iconEnabled: iconEnabled,\n });\n };\n};\n\n/// \n/// Author :\n/// this function is to only update user status to logout\n/// \nexport const setIdle = () => {\n return async (dispatch) => {\n dispatch({\n type: _IDLE,\n });\n };\n};\n\n\n/// \n/// Author :\n/// \nexport const setPerformApiCall = (status, url) => {\n return async (dispatch) => {\n dispatch({\n type: _API_CALLED,\n data: { success: status, url: url },\n });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showResponseMessage = (\n status,\n message,\n translateRequired = true\n) => {\n return (dispatch) => {\n var messageToShow = message;\n if (translateRequired) {\n messageToShow = i18n.t(message);\n }\n dispatch(\n showMessage({\n type: status ? AlertTypes._SUCCESS : AlertTypes._ERROR,\n content: messageToShow,\n })\n );\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showResponseMessageWithoutT = (\n status,\n message,\n translateRequired = true\n) => {\n return (dispatch) => {\n var messageToShow = message;\n dispatch(\n showMessage({\n type: status ? AlertTypes._SUCCESS : AlertTypes._ERROR,\n content: messageToShow,\n })\n );\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showMessage = (alertProps) => {\n return (dispatch) => {\n const customConfirm = alertProps.onConfirm;\n alertProps.onConfirm = async (...args) => {\n disposeMessage()(await dispatch);\n if (customConfirm) {\n customConfirm(...args);\n }\n };\n\n const customCancel = alertProps.onCancel;\n alertProps.onCancel = async (...args) => {\n disposeMessage()(await dispatch);\n if (customCancel) {\n customCancel(...args);\n }\n };\n\n alertProps.cancelBtnBsStyle = \"danger\";\n alertProps.title = alertProps.title ?? \"\";\n alertProps.allowEscape = false;\n alertProps.reverseButtons = true;\n\n dispatch({ type: _ALERT_TYPES.SET_ALERT, alert: alertProps });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const disposeMessage = () => {\n return (dispatch) => {\n dispatch({ type: _ALERT_TYPES.NONE });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const setDepositModal = (value, tab = 1) => {\n return (dispatch) => {\n dispatch({ type: _SET_DEPOSIT_MODAL, depositModal:value, depositTab:tab});\n };\n};\n\n/// \n/// Author: -\n/// \nexport const setDownlineModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_DOWNLINE_MODAL, downlineModal:value});\n };\n};\n\nexport const setShareReferralModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_SHARE_REFERRAL_MODAL, shareReferralModal:value});\n };\n};\n\n\n/// \n/// Author: -\n/// \nexport const setDepositTab = (tab) => {\n return (dispatch) => {\n dispatch({ type: _SET_DEPOSIT_TAB, depositTab:tab});\n };\n};\n\n\n/// \n/// Author: -\n/// \nexport const setLoginModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_LOGIN_MODAL, loginModal:value});\n };\n};\n\nexport const setGameLobbyModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_GAME_LOBBY_MODAL, gameLobbyModal:value});\n };\n};\n\nexport const setRegisterModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_REGISTER_MODAL, registerModal:value});\n };\n};\n\n\nexport const setLatestBets = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_LATEST_BETS, latestBets:value});\n };\n};\n\nexport const setResetPassword = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_RESET_PASSWORD, isResetPassword:value});\n };\n};\n\nexport const setAppSetting = (\n brandName, \n presetAmt, \n currency, \n medias, \n channels, \n htmlStyle, \n chatSphere, \n languages, \n membershipEnabled, \n currencySymbol, \n dialingCodes, \n settingApiComplete,\n promotionLayout,\n promotionShowCategoryTitle,\n showPromoThumbnailClaimButton,\n isReferralBonusActive,\n otpEnabled,\n eWalletOTPEnabled,\n captchaEnabled,\n priorityModalTypeId,\n dashboardComponent,\n isNormalDepositEnable,\n isNormalWithdrawalEnable,\n musicPlayerEnabled,\n musicTrackList,\n isEWalletActive,\n isBankTransferActive,\n isReferralCommissionManual,\n isRebateManual,\n availableProductCategories,\n isGameLobbyRequired,\n companyTimeZone,\n bannerAPK,\n isLoginAttemptBlockingEnabled,\n isHotGameEnabled,\n) => {\n return (dispatch) => {\n dispatch({ type: _BIND_SETTING, \n brandName: brandName, \n depositPresetAmt: presetAmt, \n companyCurrency: currency, \n companyIcons: medias, \n channels: channels, \n htmlStyle: htmlStyle, \n chatSphere: chatSphere, \n languages: languages, \n membershipEnabled: membershipEnabled, \n currencySymbol: currencySymbol, \n dialingCodes: dialingCodes,\n settingApiComplete: settingApiComplete,\n promotionLayout: promotionLayout,\n promotionShowCategoryTitle: promotionShowCategoryTitle,\n showPromoThumbnailClaimButton: showPromoThumbnailClaimButton,\n isReferralBonusActive: isReferralBonusActive,\n otpEnabled: otpEnabled,\n eWalletOTPEnabled: eWalletOTPEnabled,\n captchaEnabled: captchaEnabled,\n priorityModalTypeId: priorityModalTypeId,\n dashboardComponent: dashboardComponent,\n isNormalDepositEnable: isNormalDepositEnable,\n isNormalWithdrawalEnable: isNormalWithdrawalEnable,\n musicPlayerEnabled: musicPlayerEnabled,\n musicTrackList: musicTrackList,\n isEWalletActive: isEWalletActive,\n isBankTransferActive: isBankTransferActive,\n isReferralCommissionManual: isReferralCommissionManual,\n isRebateManual: isRebateManual,\n availableProductCategories: availableProductCategories,\n isGameLobbyRequired: isGameLobbyRequired,\n companyTimeZone:companyTimeZone,\n bannerAPK:bannerAPK,\n isLoginAttemptBlockingEnabled: isLoginAttemptBlockingEnabled,\n isHotGameEnabled: isHotGameEnabled\n });\n };\n};\n\nexport const setBusyLoading = (value) => {\n return async (dispatch) => {\n dispatch({\n type: _BUSY_LOADING,\n isBusyLoading:value\n });\n };\n};\n\nexport const setMyProfileModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_PROFILE_MODAL, profileModal:value});\n };\n};\n\nexport const setSpinWheelListModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_SPIN_WHEEL_LIST_MODAL, spinWheelListModal:value});\n };\n};\n\nexport const setSpinWheelReportModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_SPIN_WHEEL_REPORT_MODAL, spinWheelReportModal:value});\n };\n}\n\nexport const setSeoContent = ({\n pageName,\n seoTitle,\n seoDescription,\n}) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_SEO_CONTENT,\n pageName,\n seoTitle,\n seoDescription,\n }); \n };\n};\n\nexport const setReportOverviewModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_REPORT_OVERVIEW_MODAL, reportOverviewModal:value});\n };\n};\nexport const setGameIframeModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_GAME_IFRAME_MODAL, gameIframeModal: value });\n };\n};\n\nexport const setCompleteInfoModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_COMPLETE_INFO_MODAL, completeInfoModal:value});\n };\n};\n\nexport const setDailyCheckinModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_DAILY_CHECKIN_MODAL, dailyCheckinModal:value});\n };\n};\n\nexport const setDailyCheckInExist = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_DAILY_CHECKIN_EXIST, dailyCheckInExist:value});\n };\n};\n\n\nexport const setReferralBonusModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_REFERRAL_BONUS_MODAL, referralBonusModal: value });\n };\n};\n\nexport const setMusicPlayerModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_MUSIC_PLAYER_MODAL, musicPlayerModal: value });\n };\n};\n\nexport const userKeepLogin = (isKeepedLogin) => {\n return (dispatch) => {\n dispatch({\n type: _IS_KEEPED_LOGIN,\n data: isKeepedLogin,\n });\n };\n};","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { WebUrl } from \"../../util/Constant\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nconst NotFound = () => {\n const { t } = useTranslation();\n const openMenu = useSelector((state) => state.appState.openMenu);\n\n return (\n
\n
\n
\n
\n
\n \"404\n

{t(\"PAGE_NOT_FOUND\")}

\n

{t(\"PAGE_NOT_FOUND_DESCRIPTION\")}

\n {t(\"GO_TO_HOMEPAGE\")}\n
\n
\n
\n
\n );\n};\n\nexport default NotFound;","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst SpinWheelRecord = () => {\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst {t} = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [memberSpinList, setMemberSpinList] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetMemberSpinData();\n\t}, [startDate, endDate]);\n\n\n\tasync function getMemberSpinData(page, keyword) {\n\t\tsetMemberSpinList([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tconst itemsPerPage = 10; \n\t\t\tvar start = (page - 1) * itemsPerPage;\n\n\t\t\tvar apiUrl = `${\n\t\t\t\tApiUrl._API_GET_MEMBER_SPINS_CLAIMS_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\")\n\t\t\t}`;\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=\"+itemsPerPage;\n\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetMemberSpinList(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / itemsPerPage));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"SPIN_WHEEL_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{memberSpinList &&\n\t\t\t\t\t\t\tmemberSpinList.length != 0 ? (\n\t\t\t\t\t\t\t\tmemberSpinList.map((data, index) => {\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"SPIN_WHEEL_ID\")}{t(\"CAMPAIGN\")}{t(\"CLAIMED_DATE\")}{t(\"REWARD\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"spinWheelId\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {data[\"campaignName\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t { data[\"claimedDateTxt\"]===\"EXPIRED\"?\n t(\"EXPIRED\"):\n\t\t\t\t\t\t\t\t\t\t\t\t data[\"claimedDateTxt\"]\n\t\t\t\t\t\t\t\t\t\t\t }\n\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"reward\"]}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default SpinWheelRecord ;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {setSpinWheelReportModal, setSpinWheelListModal } from \"redux/AppAction\";\nimport { find } from \"lodash\";\nimport { numberWithCurrencyFormat } from \"../../../util/Util\";\nimport SpinWheelRecord from \"./SpinWheelRecord\";\n\nconst SpinWheelClaimRecordPopUp = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const spinWheelReportModal = useSelector((state) => state.appState.spinWheelReportModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [loadingSearchData, setLoadingSearchData] = useState(false);\n\tconst [coinIcon, setCoinIcon] = useState();\n\n\n const recordType = [\n\t\t{\n\t\t\tlabel: \"SPIN_WHEEL_RECORD\",\n\t\t\tvalue: 1,\n\t\t}\n\t\t\n\t];\n\tconst [selectedOption, setSelectedOption] = useState(1);\n \n\nuseEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n}, [companyIcons]);\n\nasync function getCompanyIcon() {\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n}\n \n return (\n
\n\n {\n _dispatch(setSpinWheelReportModal(false));\n }}\n >\n \n
\n {\n _dispatch(setSpinWheelReportModal(false));\n _dispatch(setSpinWheelListModal(true)); \n }}\n >\n \n
\n
{t(\"CLAIM_RECORD\")}
\n
\n
\n _dispatch(setSpinWheelReportModal(false))}\n >\n \n
\n \n \n \n
\n
\n\n\n
\n
\n
\n \n
\n
{`${t(\"WALLET_BALANCE\")}:`}
\n \n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n
\n\n
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"RECORD_TYPE\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\t\t\trecordType && recordType.length > 0 ? (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{recordType.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n \n {selectedOption === 1 && spinWheelReportModal && }\n\n
\n \n
\n \n \n\n );\n};\n\nexport default SpinWheelClaimRecordPopUp;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport { ApiKey, ApiUrl,AlertTypes } from \"util/Constant\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { showResponseMessage,setSpinWheelListModal,setSpinWheelReportModal,showMessage,setBusy,setIdle } from \"redux/AppAction\";\nimport { find } from \"lodash\";\nimport { numberWithCurrencyFormat,stringIsNullOrEmpty } from \"../../../util/Util\";\nimport moment from \"moment\";\nimport SpinWheelClaimRecordPopUp from \"./SpinWheelClaimRecordPopUp\";\n\n\n\nconst SpinWheelListPopUpModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const openSpinWheelAsModal = false;\n const [paginationPageNum, setPaginationPageNum] = useState(10);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n var { heartBeat } = useSelector((state) => state.authState);\n const [utcTimeForTooltip, setUtcTimeForTooltip] = useState();\n\n\n const spinWheelListModal = useSelector((state) => state.appState.spinWheelListModal);\n const [isLoadingList, setIsLoadingList] = useState(false);\n const [spinWheelList, setSpinWheelList] = useState([]);\n const [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [coinIcon, setCoinIcon] = useState();\n const [emptyPromoIcon, setEmptyPromoIcon] = useState();\n const [iframeSrc, setIframeSrc] = useState('');\n const [isLoadingBtn, setIsLoadingBtn] = useState(false);\n\n let firstLoad = false;\n const intervalRef = useRef(null); // Ref to track the interval\n\tconst hasShownError = useRef(false); // Ref to track if the error message has been shown\n\n useEffect(() => {\n\t\tconst utcTimezone = moment.utc().format(\"h:mm:ss A\");\n\t\tsetUtcTimeForTooltip(utcTimezone);\n\t\tfirstLoad = true;\n\t}, []);\n\n \n useEffect(() => {\n\t\tif (shouldShowSpinWheel && spinWheelListModal) {\n getMySpins();\n\n\t\t\t// Create interval for spin wheel heartbeat\n\t\t\tintervalRef.current = setInterval(() => {\n\t\t\t\t// Call the spin wheel heartbeat function\n\t\t\t\tgetMySpins();\n\t\t\t}, 10000);\n\n\t\t\treturn () => {\n\t\t\t\t// Cleanup the interval on component unmount\n\t\t\t\tclearInterval(intervalRef.current);\n\t\t\t};\n\t\t}\n\t}, [shouldShowSpinWheel,spinWheelListModal]);\n\n useEffect(() => {\n\n\t\tif (heartBeat) {\n\t\t\t//setIsLogin(true);\n\t\t\tinit();\n\t\t}\n\t}, [heartBeat]);\n\n\n useEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n async function getCompanyIcon() {\n\t\tconst coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n\t\tif (coinIcon) {\n\t\t\tsetCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n\t\t}\n\n const emptyPromoIcon = find(companyIcons, { iconCategory: \"empty_promotion\" });\n\t\tif (emptyPromoIcon) {\n\t\t\tsetEmptyPromoIcon(emptyPromoIcon.iconImage||emptyPromoIcon.defaultImage);\n\t\t}\n\n\t}\n\n\n async function init() {\n\t\t// Get spinwheel settings\n\t\tlet responseJson = await ApiEngine.get(\n\t\tApiUrl._API_GET_SPINWHEEL_SETTINGS\n\t\t);\n\t\n\t\tif(responseJson[ApiKey._API_SUCCESS_KEY]){\n\t\t\tvar spinWheelEnabled = false;\n\t\t\tvar showSpinWheelForGuest = false;\n\t\t\n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\"){\n\t\t\t\tspinWheelEnabled = true;\n\t\t\t}\n\t\t\n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\"){\n\t\t\t\tshowSpinWheelForGuest = true;\n\t\t\t}\n\t\t\n\t\t\tif(heartBeat && spinWheelEnabled) {\n\t\t\t\tsetShouldShowSpinWheel(true);\n\t\t\t} else if(!heartBeat && spinWheelEnabled && showSpinWheelForGuest) {\n\t\t\t\tsetShouldShowSpinWheel(true);\n\t\t\t}\n\t\t}\n\t}\n\n async function getMySpins(page) {\n try{\n\t\tif(firstLoad) {\n\t\t\t_dispatch(setBusy());\n\t\t\tsetIsLoadingList(true);\n\t\t}\n\n page = page ? page : 1;\n const itemsPerPage = 10; \n var start = (page - 1) * itemsPerPage;\n const end = start + itemsPerPage;\n\n var apiUrl=ApiUrl._API_GET_MEMBER_SPINS+\n \"?start=\"+start+\"&count=\"+itemsPerPage;\n\n\t\tlet responseJson = await ApiEngine.get(apiUrl);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\n var paginatedData = responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY];\n \n for(var i=0;i pageValue);\n}\n\n const calculateTimeLeft = (expiryDate) => {\n \n if (!expiryDate) {\n return \"-\";\n }\n\n const expiryDateWithUtc = expiryDate.endsWith(\"Z\") ? expiryDate : expiryDate + \"Z\"; // John - We are already storing UTC time in the database, but we need to add the suffix to prevent it from changing to a \"15 hours remaining\" time.\n const now = new Date();\n const expiry = new Date(expiryDateWithUtc);\n // console.log(\"Now date -\", now.toISOString())\n // console.log(\"Old expiry -\", expiryDateAddedUtcLabel)\n // console.log(\"New expiry - \", expiry.toISOString())\n\n if (isNaN(expiry.getTime())) {\n return \"-\";\n }\n \n const diff = expiry - now;\n \n if (diff <= 0) {\n return (`0${t(\"DAY\")}`).toLowerCase();\n }\n \n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));\n \n const parts = [];\n \n if (days > 0) {\n const dayLabel = days === 1 ? t(\"DAY\"): t(\"DAYS\");\n parts.push(`${days}${dayLabel}`);\n }\n \n if (hours > 0) {\n const hourLabel = hours === 1 ? t(\"HR\") : t(\"HRS\");\n parts.push(`${hours}${hourLabel}`);\n }\n \n if (minutes > 0) {\n const minuteLabel = minutes === 1 ? t(\"MIN_\"): t(\"MINS\");\n parts.push(`${minutes}${minuteLabel}`);\n }\n \n return parts.join(\" \").toLowerCase();\n };\n return (\n
\n\n {\n _dispatch(setSpinWheelListModal(false))\n }}\n >\n \n
\n
{t(\"SPIN_WHEEL_TOKENS\")}
\n
\n
\n _dispatch(setSpinWheelListModal(false))}\n >\n \n
\n
\n \n \n
\n
\n\n\n
\n
\n
\n \n
\n
{`${t(\"WALLET_BALANCE\")}:`}
\n \n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n {\n _dispatch(setSpinWheelReportModal(true));\n _dispatch(setSpinWheelListModal(false)); \n }}\n >\n {/* */}\n \n {t(\"RECORD\")}\n \n
\n
\n
\n\t\t\t\t\t\t\t\t \n {t(\"SPINS_WHEEL_REMINDER\")}\n
\n \n\n {isLoadingList && \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n {!isLoadingList && spinWheelList && spinWheelList.length > 0 && (\n <>
\n {spinWheelList.map((item, index) => (\n
\n
\n {`${t(\"SPIN_WHEEL\")} #${item.id}`}\n
\n
\n {`${t(\"CAMPAIGN\")}: ${item.campaignName}`}\n
\n
\n\t\t\t\t\t\t\t\t\n \n {item.expiryDateTxt}\n \n
\n \n {item.completedAt == null ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoadingBtn == item.id ? \n
\n \n
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {t(\"COMPLETED\")}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n
\n ))}\n
\n \n {paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t )}\n \n )}\n\n\n {/* {!isLoadingList && spinWheelList && spinWheelList.length == 0 && ( */}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n \n\t\t\t\t\t\t\t\t\t\t\t\t\t
{t(\"NO_SPIN_WHEEL_TOKENS\")}
\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/* )} */}\n\n
\n \n
\n \n \n \n\n );\n};\n\nexport default SpinWheelListPopUpModal;\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { find, map, set,filter } from \"lodash\";\nimport Countdown, { zeroPad } from \"react-countdown\";\nimport ApiEngine from \"util/ApiEngine\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tSessionKey,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tDEFAULT_PAGE_SIZE,\n} from \"util/Constant\";\nimport { setLoginModal } from \"redux/AppAction\";\nimport { useTranslation } from \"react-i18next\";\nimport { bindMember, setBusy, setIdle,setSpinWheelListModal } from \"redux/AppAction\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport SpinWheelListPopUpModal from \"components/template_1/spinWheel/SpinWheelListPopUpModal\";\nimport \"../../assets/css/spinwheel.css\"\n\nconst SpinWheel = ({ isPromoInfo, onClickPromoInfo, promoInfoId }) => {\n\tconst { t, i18n } = useTranslation();\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst _userData = useSelector((state) => state.authState.userData);\n\tconst memberData = useSelector((state) => state.appState.member);\n const [iframeSrc, setIframeSrc] = useState('');\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [spinWheelEnabled, setSpinWheelEnabled] = useState(false);\n const [showSpinWheelForGuest, setShowSpinWheelForGuest] = useState(false);\n const [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(false);\n const [clickCloseSpinWheel, setClickCloseSpinWheel] = useState(false);\n const [showSpinWheelListPopup,setShowSpinWheelListPopup] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [spinWheelImg,setSpinWheelImg]=useState(require(\"../../assets/img/icon/spin-wheel-btn.svg\"));\n const [iconColor, setIconColor] = useState('#FFF');\n\n\tuseEffect(() => {\n\t\tinit();\n\n const parentElement = document.querySelector('.page-container');\n \n if(parentElement){\n const backgroundColor = window.getComputedStyle(parentElement).backgroundColor; \n const isDarkTheme = isDarkBackground(backgroundColor);\n setIconColor(isDarkTheme ? '#FFF' : '#383838');\n }\n\t}, []);\n\n useEffect(() => {\n init()\n }, [heartBeat]);\n\n async function init() {\n // Get spinwheel settings\n\n let spinWheelIcon = find(companyIcons, { iconCategory: \"side_nav\",iconName: \"Spin Wheel Bonus\" });\n\n if(spinWheelIcon){\n setSpinWheelImg(spinWheelIcon.iconImage);\n }\n\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_SPINWHEEL_SETTINGS\n );\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n var spinWheelEnabled = false;\n var showSpinWheelForGuestTemp = false;\n\n if(responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\"){\n spinWheelEnabled = true;\n }\n\n if(responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\"){\n showSpinWheelForGuestTemp = true;\n setShowSpinWheelForGuest(true);\n }\n\n if(heartBeat && spinWheelEnabled && !clickCloseSpinWheel) {\n setShouldShowSpinWheel(true);\n } else if(!heartBeat && spinWheelEnabled && showSpinWheelForGuestTemp && !clickCloseSpinWheel) {\n setShouldShowSpinWheel(true);\n } else {\n setShouldShowSpinWheel(false);\n } \n }\n }\n\n const [imgLoad, setImgLoad] = useState(false);\n\n const SpinWheelIcon = (props) => (\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 \"spin-wheel-icon\" setImgLoad(true)}/>\n );\n\n const isDarkBackground = (bgColor) => {\n const rgb = bgColor.match(/\\d+/g);\n if (rgb) {\n const r = parseInt(rgb[0], 10);\n const g = parseInt(rgb[1], 10);\n const b = parseInt(rgb[2], 10);\n return (r * 0.299 + g * 0.587 + b * 0.114) < 128;\n }\n return false;\n };\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowSpinWheel(false);\n setClickCloseSpinWheel(true); \n }}\n >\n \n \n );\n\n\treturn (\n <>\n {shouldShowSpinWheel && (\n
\n
{ \n if(!heartBeat && showSpinWheelForGuest){\n _dispatch(setLoginModal(true));\n }else{\n //_history.push(WebUrl._URL_SPIN_WHEEL_LIST);\n _dispatch(setSpinWheelListModal(true));\n }\n }}>\n {imgLoad && }\n \n {imgLoad &&(
\n {t(\"SPIN_NOW\")}\n
)}\n
\n
\n )}\n \n \n\t);\n};\n\nexport default SpinWheel;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState } from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport { map } from \"lodash\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport { createFormBody } from \"../../util/Util.js\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { setMusicPlayerModal, showMessage } from \"../../redux/AppAction.js\";\nimport { Spinner } from \"react-bootstrap\";\n\nconst MusicPlayerModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n var {\n systemMusicTracks,\n setSystemMusicPlayList,\n memberFavoriteTracks,\n setMemberFavoritePlaylist,\n setPlayList,\n playing,\n setPlaying,\n currentTrack,\n setCurrentTrack,\n currentTrackIndex,\n setCurrentTrackIndex,\n trackDuration,\n trackProgress,\n setTrackProgress,\n playedProgress,\n setPlayed,\n playerRef,\n setSeeking,\n isLoading,\n setIsLoading,\n loop,\n setLoop,\n isShuffle,\n setIsShuffle,\n setShuffleBtnClicked,\n currentPlayListType,\n setCurrentPlayListType\n } = props;\n\n const musicPlayerModal = useSelector((state) => state.appState.musicPlayerModal);\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [durations, setDurations] = useState([]);\n const [pendingItems, setPendingItems] = useState(systemMusicTracks);\n const [activeMusicListTab, setActiveMusicListTab] = useState(1);\n const iconTheme = \"music-player-contorl-btn-icon\";\n\n const musicListTab = [\n\t\t{\n text: t(\"SYSTEM_MUSIC\"),\n musicListTabId: 1,\n\t\t},\n\t\t{\n\t\t\ttext: t(\"MY_MUSIC\"),\n musicListTabId: 2,\n\t\t},\n\t];\n\n const closeBtn = (\n\t {\n _dispatch(setMusicPlayerModal(false));\n }}\n\t >\n\t\t \n\t \n );\n\n useEffect(() => {\n\n }, [musicPlayerModal]);\n\n //handle next music\n const handleNext = () => {\n var targetPlayList = currentPlayListType == \"system\" ? systemMusicTracks : memberFavoriteTracks;\n var nextIndex = (currentTrackIndex + 1) % targetPlayList.length;\n var isSameTrack = targetPlayList[nextIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleSeekAndProgress();\n setCurrentTrack(targetPlayList[nextIndex]);\n setCurrentTrackIndex(nextIndex); \n }\n };\n\n //handle previous music\n const handlePrevious = () => {\n var targetPlayList = currentPlayListType == \"system\" ? systemMusicTracks : memberFavoriteTracks;\n var prevIndex = (currentTrackIndex - 1 + targetPlayList.length) % targetPlayList.length;\n var isSameTrack = targetPlayList[prevIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleSeekAndProgress();\n setCurrentTrack(targetPlayList[prevIndex]);\n setCurrentTrackIndex(prevIndex);\n }\n };\n\n const handleSeekAndProgress = () => {\n setIsLoading(true);\n setTrackProgress(0);\n setPlayed(0);\n }\n\n const handlePlayPause = () => {\n setPlaying(!playing);\n };\n\n const formatTime = (seconds) => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n const secs = Math.floor(seconds % 60);\n\n if (hours > 0) {\n // If hours are present, return hours, minutes, and seconds\n return `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n } else {\n // If no hours, return only minutes and seconds\n return `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n }\n };\n\n const handleSeekMouseDown = (e) => {\n setSeeking(true);\n };\n\n const handleSeekChange = (e) => {\n const newProgress = parseFloat(e.target.value);\n setTrackProgress(newProgress); // Update time in seconds\n setPlayed(newProgress / trackDuration); // Update fraction for CSS\n };\n\n const handleSeekMouseUp = (e) => {\n setSeeking(false);\n playerRef.current.seekTo(parseFloat(e.target.value), 'seconds');\n };\n\n const handleTouchStart = (e) => {\n setSeeking(true);\n };\n\n const handleTouchMove = (e) => {\n const touch = e.touches[0];\n const rect = e.target.getBoundingClientRect();\n const touchPosition = ((touch.clientX - rect.left) / rect.width) * trackDuration;\n\n // Clamp the value within trackDuration\n const clampedProgress = Math.min(Math.max(touchPosition, 0), trackDuration);\n setPlayed(clampedProgress / trackDuration); // Update fraction for CSS\n setTrackProgress(clampedProgress); // Update current progress in seconds\n };\n\n const handleTouchEnd = () => {\n setSeeking(false);\n playerRef.current.seekTo(trackProgress, 'seconds');\n };\n\n\n const handleToggleLoop = () => {\n setLoop(!loop);\n sessionStorage.setItem('loop', !loop);\n };\n\n const handleTrackDuration = (id, duration) => {\n setDurations((prev) => [\n ...prev,\n { id: id, duration }, // Add duration with ID\n ]);\n // Remove the video from pendingUrls after fetching the duration\n setPendingItems((prev) =>\n prev.filter((pendingItem) => pendingItem.id !== id)\n );\n };\n\n const handleListPlayPause = (selectedTrack, index) => {\n if (currentTrack.id !== selectedTrack.id) {\n handleSeekAndProgress();\n setCurrentPlayListType(activeMusicListTab == 1 ? \"system\" : \"member\");\n setPlayList(activeMusicListTab == 1 ? systemMusicTracks : memberFavoriteTracks);\n setCurrentTrack(selectedTrack);\n setCurrentTrackIndex(index);\n\n if (!playing) {\n setPlaying(true);\n }\n }\n else {\n setPlaying(!playing);\n }\n\n var activeMusicListTabType = activeMusicListTab == 1 ? \"system\" : \"member\";\n if (setCurrentPlayListType != activeMusicListTabType) {\n setCurrentPlayListType(activeMusicListTabType);\n setPlayList(activeMusicListTab == 1 ? systemMusicTracks : memberFavoriteTracks);\n setCurrentTrackIndex(index);\n }\n }\n\n const setTrackAsFavourite = (item) => {\n var index = systemMusicTracks.findIndex((x) => {\n return x.id == item.id;\n });\n\n var updatedPlayList = [...systemMusicTracks];\n updatedPlayList[index].favorite = !updatedPlayList[index].favorite;\n setSystemMusicPlayList(updatedPlayList);\n\n var updatedFavoriteList = updatedPlayList.filter((track) => track.favorite);\n updateMemberFavoriteTrackIds(updatedFavoriteList);\n }\n\n async function updateMemberFavoriteTrackIds(updatedFavoriteList) {\n setMemberFavoritePlaylist(updatedFavoriteList);\n const ids = updatedFavoriteList.map(track => track.id).join(',');\n\n let params = {\n memberFavoriteTrackIds: ids\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_UPDATE_MEMBER_FAVORITE_TRACK_IDS,\n createFormBody(params)\n );\n\n if (typeof responseJson[ApiKey._API_SUCCESS_KEY] !== \"undefined\") {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setMemberFavoritePlaylist(updatedFavoriteList);\n\n if (currentPlayListType == \"member\") {\n setCurrentTrackIndex(updatedFavoriteList.findIndex((x) => x.id == currentTrack.id));\n }\n }\n }\n }\n\n return (\n <>\n {\n _dispatch(setMusicPlayerModal(!musicPlayerModal))\n }}\n >\n \t\n {t(\"MUSIC_PLAYER\")}\n \n \n
\n
\n
\n
\n {pendingItems.map((item) => (\n handleTrackDuration(item.id, duration)}\n style={{ display: 'none' }}\n />\n ))}\n
\n \n {currentTrack?.title}\n
\n
\n
\n \n
\n
\n
\n {formatTime(trackProgress)}\n
\n
\n {isLoading ? (\n \n ) : (\n formatTime(trackDuration)\n )}\n
\n
\n
\n
\n {\n setShuffleBtnClicked(true);\n setIsShuffle((prev) => !prev)\n }}\n >\n \n
\n \n \n
\n \n {playing ?\n :\n \n }\n
\n \n \n
\n \n \n
\n \n \n \n
\n
\n {heartBeat && musicListTab &&\n musicListTab.length &&\n map(musicListTab, (item, index) => {\n if (!heartBeat && item.musicListTabId === 2) {\n return null;\n }\n\n return (\n {\n setActiveMusicListTab(item.musicListTabId);\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })}\n
\n
\n
\n {activeMusicListTab === 1 &&\n systemMusicTracks.length &&\n map(systemMusicTracks, (item, index) => {\n const trackDuration = durations.find((d) => d.id === item.id);\n return (\n
\n
\n
\n
\n
\n {currentTrack && currentTrack.id == item.id &&\n \n }\n {item.title}\n
\n
\n \n {currentTrack && currentTrack.id == item.id ? formatTime(trackProgress) : \"0:00\"}\n \n  / \n \n {trackDuration ? formatTime(trackDuration.duration) : t(\"LOADING_DURATION\")}\n \n
\n
\n
\n handleListPlayPause(item, index)}\n >\n {playing && (currentTrack && currentTrack.id == item.id) ?\n :\n \n }\n
\n {heartBeat &&\n setTrackAsFavourite(item)}\n >\n {item.favorite ?\n :\n \n }\n
\n }\n
\n
\n
\n
\n
\n );\n })\n }\n\n {activeMusicListTab === 2 &&\n (memberFavoriteTracks.length ? (\n map(memberFavoriteTracks, (item, index) => {\n const trackDuration = durations.find((d) => d.id === item.id);\n return (\n <>\n
\n
\n
\n
\n {currentTrack && currentTrack.id === item.id && (\n \n )}\n {item.title}\n
\n
\n \n {currentTrack && currentTrack.id === item.id\n ? formatTime(trackProgress)\n : \"0:00\"}\n \n  / \n \n {trackDuration ? formatTime(trackDuration.duration) : t(\"LOADING_DURATION\")}\n \n
\n
\n
\n handleListPlayPause(item, index)}\n >\n {playing &&\n currentTrack &&\n currentTrack.id === item.id ? (\n \n ) : (\n \n )}\n
\n setTrackAsFavourite(item)}\n >\n {item.favorite ? (\n \n ) : (\n \n )}\n
\n
\n \n \n
\n \n );\n })\n ) : (\n
\n {t(\"NO_FAVORITE_MUSIC\")}\n
\n ))\n }\n \n \n \n \n \n
\n
\n \n )\n};\n\nexport default MusicPlayerModal;","import React, { useState, useRef, useEffect } from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Spinner } from \"react-bootstrap\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setMusicPlayerModal } from \"../../redux/AppAction.js\";\nimport MusicPlayerModal from \"../template_1/MusicPlayerModal\";\n\nconst MusicPlayer = (props) => {\n var {\n musicTrackList,\n setTrackTitle,\n setIsTrackLoading,\n setTrackProgress,\n setIsTrackPlaying,\n clickShuffleBtn,\n setClickShuffleBtn,\n shuffleEnabled,\n setShuffleEnabled,\n isPlayNextTrack,\n setIsPlayNextTrack,\n isPlayPrevTrack,\n setIsPlayPrevTrack,\n playButtonClicked,\n setPlayBtnClicked\n } = props;\n var _dispatch = useDispatch();\n var { heartBeat } = useSelector((state) => state.authState);\n var memberData = useSelector((state) => state.appState.member);\n\n const [systemMusicPlayList, setSystemMusicPlayList] = useState(musicTrackList);\n const [memberFavoritePlaylist, setMemberFavoritePlaylist] = useState([]);\n const [currentTrack, setCurrentTrack] = useState(null);\n const [currentTrackIndex, setCurrentTrackIndex] = useState(() => {\n const savedState = sessionStorage.getItem('currentTrackIndex');\n return savedState ? parseInt(savedState, 10) : 0; // Default to 0 if no value exists\n });\n const [playing, setPlaying] = useState(() => {\n const savedState = sessionStorage.getItem('playing');\n return savedState === 'true';\n });\n const [isShuffle, setIsShuffle] = useState(() => {\n const savedState = sessionStorage.getItem('isShuffle');\n return savedState === 'true';\n });\n\n const [loop, setLoop] = useState(() => {\n const savedState = sessionStorage.getItem('loop');\n return savedState === 'true';\n });\n\n const [muted, setMuted] = useState(false);\n const [seeking, setSeeking] = useState(false);\n const [duration, setDuration] = useState(false);\n const [progress, setProgress] = useState(0);\n const [played, setPlayed] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n const [currentPlayListType, setCurrentPlayListType] = useState(null);\n const [initFlag, setInitFlag] = useState(true);\n\n const iconTheme = \"music-player-contorl-btn-icon\";\n const [playList, setPlayList] = useState(musicTrackList);\n const [shuffleBtnClicked, setShuffleBtnClicked] = useState(false);\n const [isMobile, setIsMobile] = useState(true);\n const [mobileOS, setMobileOS] = useState(\"\");\n const [turnOnPlay, setTurnOnPlay] = useState(false);\n\n var playerRef = useRef(null);\n\n useEffect(() => {\n setPlayList(musicTrackList);\n setCurrentTrack(musicTrackList[currentTrackIndex]);\n setCurrentPlayListType(\"system\");\n setIsMobile(window.innerWidth < 900);\n detectMobileOS();\n }, []);\n\n useEffect(() => {\n if (heartBeat && initFlag) {\n var memberFavoriteTrackList = memberData.memberFavoriteTrackList;\n if (memberFavoriteTrackList && memberFavoriteTrackList.length) {\n setMemberFavoritePlaylist(memberFavoriteTrackList);\n setPlayList(memberFavoriteTrackList);\n setCurrentTrack(memberFavoriteTrackList[0]);\n setCurrentPlayListType(\"member\");\n\n systemMusicPlayList.forEach(track => {\n // Check if the track's id exists in `memberTracks`\n const memberTrack = memberFavoriteTrackList.find(memberTrack => memberTrack.id === track.id);\n if (memberTrack) {\n track.favorite = true; // Update favorite status if track exists in `memberTracks`\n }\n });\n\n setInitFlag(false);\n }\n }\n else if (!memberData.memberFavoriteTrackList) {\n if (currentPlayListType == \"member\") {\n setMemberFavoritePlaylist([]);\n setPlayList(systemMusicPlayList);\n setCurrentTrack(systemMusicPlayList[0]);\n setCurrentPlayListType(\"system\");\n }\n setInitFlag(true);\n }\n\n }, [heartBeat, memberData]);\n\n useEffect(() => {\n if (shuffleBtnClicked) {\n if (isShuffle) {\n // Generate a shuffled playlist when shuffle mode is enabled\n var shuffledSystemPlaylist = shufflePlaylist(systemMusicPlayList);\n setSystemMusicPlayList(shuffledSystemPlaylist);\n\n var shuffledMemberFavoritePlaylist = shufflePlaylist(memberFavoritePlaylist)\n setMemberFavoritePlaylist(shuffledMemberFavoritePlaylist);\n\n setPlayList(currentPlayListType == \"system\" ? shuffledSystemPlaylist : shuffledMemberFavoritePlaylist);\n if (currentTrack) {\n setNewCurrentTrackIndex(shuffledSystemPlaylist, shuffledMemberFavoritePlaylist);\n }\n\n } else {\n setSystemMusicPlayList([...musicTrackList]);\n var memberFavoriteList = memberData.memberFavoriteTrackList ? memberData.memberFavoriteTrackList : [];\n setMemberFavoritePlaylist(memberFavoriteList);\n setPlayList(currentPlayListType == \"system\" ? musicTrackList : memberFavoriteList);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(musicTrackList, memberFavoriteList);\n }\n }\n\n sessionStorage.setItem('isShuffle', isShuffle);\n setShuffleBtnClicked(false);\n setShuffleEnabled(isShuffle);\n }\n\n }, [shuffleBtnClicked]);\n\n useEffect(() => {\n sessionStorage.setItem('currentTrackIndex', currentTrackIndex);\n }, [currentTrackIndex]);\n\n useEffect(() => {\n if (currentTrack) {\n setTrackTitle(currentTrack.title);\n }\n }, [currentTrack]);\n\n useEffect(() => {\n if (playButtonClicked) {\n handlePlayPause();\n setPlayBtnClicked(false);\n }\n }, [playButtonClicked]);\n\n useEffect(() => {\n if (clickShuffleBtn) {\n if (shuffleEnabled) {\n // Generate a shuffled playlist when shuffle mode is enabled\n var shuffledSystemPlaylist = shufflePlaylist(systemMusicPlayList);\n setSystemMusicPlayList(shuffledSystemPlaylist);\n\n var shuffledMemberFavoritePlaylist = shufflePlaylist(memberFavoritePlaylist)\n setMemberFavoritePlaylist(shuffledMemberFavoritePlaylist);\n\n setPlayList(currentPlayListType == \"system\" ? shuffledSystemPlaylist : shuffledMemberFavoritePlaylist);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(shuffledSystemPlaylist, shuffledMemberFavoritePlaylist);\n }\n\n } else {\n setSystemMusicPlayList([...musicTrackList]);\n var memberFavoriteList = memberData.memberFavoriteTrackList ? memberData.memberFavoriteTrackList : [];\n setMemberFavoritePlaylist(memberFavoriteList);\n setPlayList(currentPlayListType == \"system\" ? musicTrackList : memberFavoriteList);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(musicTrackList, memberFavoriteList);\n }\n }\n\n sessionStorage.setItem('isShuffle', shuffleEnabled);\n setClickShuffleBtn(false);\n setIsShuffle(shuffleEnabled);\n }\n }, [clickShuffleBtn]);\n\n useEffect(() => {\n if (isPlayNextTrack) {\n handleNext();\n setIsPlayNextTrack(false);\n }\n }, [isPlayNextTrack]);\n\n useEffect(() => {\n if (isPlayPrevTrack) {\n handlePrevious();\n setIsPlayPrevTrack(false);\n }\n }, [isPlayPrevTrack]);\n\n const handleTrackLoading = () => {\n setIsLoading(true);\n setIsTrackLoading(true);\n setProgress(0);\n setTrackProgress(0);\n }\n\n const setNewCurrentTrackIndex = (systemPlayList, memberPlayList) => {\n var newIndex = currentPlayListType == \"system\"\n ? systemPlayList.findIndex((x) => x.id == currentTrack.id)\n : memberPlayList.findIndex((x) => x.id == currentTrack.id);\n\n setCurrentTrackIndex(newIndex);\n }\n\n //handle next music\n const handleNext = () => {\n var nextIndex = (currentTrackIndex + 1) % playList.length;\n var isSameTrack = playList[nextIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleTrackLoading();\n setCurrentTrack(playList[nextIndex]);\n setCurrentTrackIndex(nextIndex); // Loop back to the first track\n }\n };\n\n //handle previous music\n const handlePrevious = () => {\n var prevIndex = (currentTrackIndex - 1 + playList.length) % playList.length;\n var isSameTrack = playList[prevIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleTrackLoading();\n setCurrentTrack(playList[prevIndex]);\n setCurrentTrackIndex(prevIndex); // Loop back to the last track\n }\n };\n\n const handlePlayPause = () => {\n setPlaying(!playing);\n setIsTrackPlaying(!playing);\n sessionStorage.setItem('playing', !playing);\n };\n\n const handlePlay = () => {\n setPlaying(true);\n };\n\n const handleBuffer = () => {\n console.log(\"bufferring...\");\n };\n\n const handleBufferEnd = () => {\n console.log(playerRef.current.getInternalPlayer());\n if (isMobile && mobileOS === \"iOS\" && turnOnPlay) {\n console.log(\"forcePlay\");\n setPlaying(true);\n setTurnOnPlay(false);\n if (playerRef.current.getInternalPlayer().playVideo) {\n playerRef.current.getInternalPlayer().playVideo();\n }\n }\n };\n\n // Handle song end\n const handleEnded = () => {\n handleTrackLoading();\n var nextIndex = currentTrackIndex + 1 < playList.length ? currentTrackIndex + 1 : 0; // Loop back to the start of the playlist\n setCurrentTrackIndex(nextIndex);\n setCurrentTrack(playList[nextIndex]);\n };\n\n // Function to shuffle the playlist\n const shufflePlaylist = (playlist) => {\n return [...playlist].sort(() => Math.random() - 0.5);\n };\n\n const handleDuration = (duration) => {\n setDuration(duration); // Set duration in seconds\n };\n\n const handleProgress = (state) => {\n if (!seeking) {\n setTrackProgress(state.playedSeconds);\n setProgress(state.playedSeconds);\n setPlayed(state.played);\n }\n };\n\n const formatTime = (seconds) => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n const secs = Math.floor(seconds % 60);\n\n if (hours > 0) {\n // If hours are present, return hours, minutes, and seconds\n return `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n } else {\n // If no hours, return only minutes and seconds\n return `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n }\n };\n\n const handleError = () => {\n console.log(\"have error\")\n // Skip to next track if there's an error with the current track\n var nextIndex = currentTrackIndex + 1 < playList.length ? currentTrackIndex + 1 : 0; // Loop back to the start of the playlist\n setCurrentTrackIndex(nextIndex);\n setCurrentTrack(playList[nextIndex]);\n };\n\n const handleToggleMuted = (isMuted) => {\n setMuted(isMuted);\n };\n\n const handleReady = () => {\n setIsLoading(false);\n setIsTrackLoading(false);\n };\n\n function detectMobileOS() {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Check for Android\n if (/android/i.test(userAgent)) {\n setMobileOS(\"Android\");\n return;\n }\n\n // Check for iOS (iPhone, iPad, iPod)\n if (/iPhone|iPad|iPod/i.test(userAgent)) {\n setMobileOS(\"iOS\");\n return;\n }\n\n // Otherwise assume desktop or unknown device\n setMobileOS(\"others\");\n }\n\n return (\n
\n {\n _dispatch(setMusicPlayerModal(true))\n }}\n >\n \n
\n
\n \n
\n \n \n
\n \n {playing ?\n :\n \n }\n
\n \n \n \n {\n setShuffleBtnClicked(true);\n setIsShuffle((prev) => !prev);\n }}\n >\n \n \n {\n _dispatch(setMusicPlayerModal(true));\n }}\n >\n \n \n \n
\n \n
\n {currentTrack?.title}\n
\n
\n {isLoading ? (\n \n ) : (\n formatTime(progress)\n )}\n
\n
\n \n \n \n );\n};\n\nexport default MusicPlayer;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector} from \"react-redux\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport \"../../assets/css/bannerapk.css\"\nimport { useLocation } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\n\nconst BannerAPK = () => {\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [shouldShowBannerAPK, setShouldShowBannerAPK] = useState(false);\n const [clickCloseBannerAPK, setClickCloseBannerAPK] = useState(false);\n const [bannerAPKImg,setBannerAPKImg]=useState(\"\");\n const [bannerAPKUrl,setBannerAPKUrl]=useState(\"\");\n\n const [iconColor, setIconColor] = useState('#FFF');\n const bannerAPK=useSelector((state)=>state.appState.bannerAPK);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const location = useLocation();\n\n\n\n\tuseEffect(() => {\n \n\t\tinit();\n\n const parentElement = document.querySelector('.page-container');\n \n if(parentElement){\n const backgroundColor = window.getComputedStyle(parentElement).backgroundColor; \n const isDarkTheme = isDarkBackground(backgroundColor);\n setIconColor(isDarkTheme ? '#FFF' : '#383838');\n }\n \n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n\n\t}, []);\n\n useEffect(()=>{\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if (!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage)){\n setBannerAPKImg(bannerAPKIcon.desktopImage);\n }\n\n if(isMobile && !stringIsNullOrEmpty(bannerAPKIcon?.mobileImage)){\n setBannerAPKImg(bannerAPKIcon.mobileImage);\n }\n }\n\n },[isMobile])\n\n // useEffect(() => {\n // init()\n // }, [heartBeat]);\n\n async function init() {\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if(!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage) && isValidApkUrl(bannerAPKIcon?.url)){\n\n setBannerAPKUrl(bannerAPKIcon.url);\n \n if(!clickCloseBannerAPK){\n setShouldShowBannerAPK(true);\n }\n\n }else{\n setShouldShowBannerAPK(false);\n } \n }else{\n setShouldShowBannerAPK(false);\n }\n }\n\n function isValidApkUrl(url) {\n try {\n\n if(stringIsNullOrEmpty(url))return false;\n\n const parsedUrl = new URL(url);\n return parsedUrl.href.toLowerCase().endsWith(\".apk\");\n } catch (e) {\n return false;\n }\n }\n\n const handleDownloadAPK = () => {\n const fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n const link = document.createElement(\"a\");\n link.href = bannerAPKUrl;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const [imgLoad, setImgLoad] = useState(false);\n\n const BannerAPKIcon = (props) => (\n \"banner-apk-icon\" setImgLoad(true)}/>\n );\n\n const isDarkBackground = (bgColor) => {\n const rgb = bgColor.match(/\\d+/g);\n if (rgb) {\n const r = parseInt(rgb[0], 10);\n const g = parseInt(rgb[1], 10);\n const b = parseInt(rgb[2], 10);\n return (r * 0.299 + g * 0.587 + b * 0.114) < 128;\n }\n return false;\n };\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowBannerAPK(false);\n setClickCloseBannerAPK(true);\n }}\n >\n \n \n );\n\n\treturn (\n <>\n {shouldShowBannerAPK && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n
\n
\n {imgLoad && }\n < BannerAPKIcon className=\"banner-apk-icon\" />\n
\n
\n )}\n \n\t);\n};\n\nexport default BannerAPK;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector} from \"react-redux\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport \"../../assets/css/bannerapk.css\"\nimport { useLocation } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { HIDE_APK_BANNER_DURATION } from \"../../util/Constant\";\n\nconst BannerAPKMobile = () => {\n \n const [shouldShowBannerAPK, setShouldShowBannerAPK] = useState(false);\n const [clickCloseBannerAPK, setClickCloseBannerAPK] = useState(false);\n const [bannerAPKUrl,setBannerAPKUrl]=useState(\"\");\n\n const bannerAPK=useSelector((state)=>state.appState.bannerAPK);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const location = useLocation();\n var { t } = useTranslation();\n var brandName = useSelector((state) => state.appState.brandName);\n\n\n\n\tuseEffect(() => {\n \n\tinit();\n \n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n\n\t}, []);\n\n\n\n\n\n async function init() {\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if(!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage) && isValidApkUrl(bannerAPKIcon?.url)){\n\n setBannerAPKUrl(bannerAPKIcon.url);\n \n if(!clickCloseBannerAPK){\n setShouldShowBannerAPK(true);\n }\n\n }else{\n setShouldShowBannerAPK(false);\n } \n }else{\n setShouldShowBannerAPK(false);\n }\n }\n\n function isValidApkUrl(url) {\n try {\n\n if(stringIsNullOrEmpty(url))return false;\n\n const parsedUrl = new URL(url);\n return parsedUrl.href.toLowerCase().endsWith(\".apk\");\n } catch (e) {\n return false;\n }\n }\n\n const handleDownloadAPK = () => {\n const fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n const link = document.createElement(\"a\");\n link.href = bannerAPKUrl;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const CloseBtn = (props)=> (\n \n \n );\n\n\treturn (\n <>\n {shouldShowBannerAPK && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n <>\n
\n
\n
\n \n
\n
\n
{t(\"APK_UP_LBL\", { brandName })}
\n
{t(\"APK_BTM_LBL\")}
\n
\n
\n \n \n
\n \n
\n
{t(\"DOWNLOAD\")}
\n
\n \n \n \n )}\n \n\t);\n};\n\nexport default BannerAPKMobile;\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { map, debounce, find, filter, upperCase, get, forEach } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n\t_MAIN_WALLET_ID,\n\t//PhoneNumberPrefix,\n\tDEFAULT_REFERRAL_CODE,\n} from \"../../util/Constant\";\nimport {\n\tAlert,\n\tDropdown,\n\tDropdownItem,\n\tDropdownMenu,\n\tDropdownToggle,\n\tModal,\n\tModalBody,\n\tSpinner,\n\tUncontrolledDropdown,\n} from \"reactstrap\";\nimport PinInput from \"react-pin-input\";\nimport Input from \"../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetDepositModal,\n\tsetIdle,\n\tsetLoginModal,\n\tsetRegisterModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n\tsetDailyCheckinModal,\n\tsetMusicPlayerModal\n} from \"../../redux/AppAction.js\";\nimport SecureLS from \"secure-ls\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n\tcreateMultiPartFormBody,\n} from \"../../util/Util\";\nimport { setOpenMenu,setSpinWheelListModal } from \"redux/AppAction\";\nimport i18n from \"localization/i18n\";\nimport { saveLanguageId } from \"redux/LanguageAction\";\nimport SpinWheel from \"components/spinwheel/SpinWheel\";\nimport MusicPlayer from \"components/custom/MusicPlayer\"\nimport \"../../assets/css/spinwheel.css\"\nimport BannerAPK from \"components/bannerAPK/BannerAPK\";\nimport BannerAPKMobile from \"components/bannerAPK/BannerAPKMobile\";\n\nconst Header = (props) => {\n\tvar { t } = useTranslation();\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tvar ls = new SecureLS();\n\tconst search = window.location.search;\n\tconst params = new URLSearchParams(search);\n\tconst {\n\t\tregister: tacVerifyRegister,\n\t\thandleSubmit: tacVerifyHandleSubmit,\n\t\terrors: tacVerifyErrors,\n\t\twatch: tacVerifyWatch,\n\t\tsetValue: tacVerifySetValue,\n\t\tunregister: tacVerifyUnregister,\n\t} = useForm();\n\tconst {\n\t\tregister: ResetPasswordRegister,\n\t\thandleSubmit: ResetPasswordHandleSubmit,\n\t\terrors: ResetPasswordErrors,\n\t\twatch: ResetPasswordWatch,\n\t\tsetValue: ResetPasswordSetValue,\n\t\tunregister: ResetPasswordUnregister,\n\t} = useForm();\n\tvar brandName = useSelector((state) => state.appState.brandName);\n\tconst [showCodeError, setShowCodeError] = useState(false);\n\tconst {\n\t\tregister,\n\t\thandleSubmit,\n\t\terrors,\n\t\tclearErrors,\n\t\tsetError,\n\t\tsetValue,\n\t\tgetValues,\n\t\twatch,\n\t\tcontrol,\n\t\ttrigger,\n\t\tphoneNumberChk,\n\t} = useForm();\n\tconst { handleSubmit: PasswordUpdatedHandleSubmit } = useForm();\n\n\tconst handleReferralCode = (code) => {\n\t\tsetReferralCode(code);\n\t};\n\n\tconst PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n\tconst [showModalLogin, setShowModalLogin] = useState(false);\n\tconst registerModal = useSelector((state) => state.appState.registerModal);\n\tconst [hideLoginPassword, setHideLoginPassword] = useState(true);\n\tconst [registerSteps, setRegisterSteps] = useState(1);\n\tconst openMenu = useSelector((state) => state.appState.openMenu);\n\tconst [activeLanguage, setActiveLanguage] = useState(\n\t\tlocalStorage.getItem(SessionKey._LANGUAGE) || \"EN\"\n\t);\n\tconst [currentWalletBalance, setCurrentWalletBalance] = useState(0);\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n\tconst [referralCode, setReferralCode] = useState(\"\");\n\tconst [formattedPhone, setFormattedPhone] = useState(\"\");\n\tconst [phoneNumberError, setPhoneNumberError] = useState(false);\n\tconst [_username, _setUsername] = useState(\"\");\n\tconst [isUsernameAvailable, setIsUsernameAvailable] = useState();\n\tconst [isDigit, setIsDigit] = useState(false);\n\tconst [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n\n\tconst [phoneNumber, setPhoneNumber] = useState(\"\");\n\tconst [enteredPinNumber, setEnteredPinNumber] = useState(\"\");\n\tconst [enteredPinNumberConfirm, setEnteredPinNumberConfirm] = useState(\"\");\n\tconst [pinNumberConfirmFocused, setPinNumberConfirmFocused] = useState(0);\n\tconst [pinNumber, setPinNumber] = useState(\"\");\n\tconst _TAC_VALID_TIMER = 60000;\n\tconst _SECONDS_IN_MS = 1000;\n\n\tconst _TAC_TIMEOUT_IN_MINUTES = 1;\n\tconst [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n\tconst [TACsent, setTACsent] = useState(true);\n\tconst [TACtimedOut, setTACtimedOut] = useState(true);\n\tconst [canSendTAC, setCanSendTAC] = useState(true);\n\tconst [TACBtnAble, setTACBtnAble] = useState(false);\n\tconst [attemp, setAttemp] = useState(1);\n\n\tconst elePin = useRef(null);\n\tconst [tempPinNumberFocused, setTempPinNumberFocused] = useState(0);\n\tconst [tempPinNumber, setTempPinNumber] = useState();\n\tconst OTP_VIA_SMS = 1;\n\tconst OTP_VIA_EMAIL = 2;\n\tconst OTP_VIA_WHATSAPP = 3;\n\tconst [isLiveChatOpen, setIsLiveChatOpen] = useState(false);\n\tconst [registerStepsViaEmail, setRegisterStepsViaEmail] = useState(false);\n\tconst [registerStepsThreeFirst, setRegisterStepsThreeFirst] = useState(false);\n\tconst [_email, _setEmail] = useState(\"\");\n\tconst [_emailText, _setEmailText] = useState(\"\");\n\tconst [isEmailAvailable, setIsEmailAvailable] = useState();\n\n\tconst [password, setPassword] = useState(\"\");\n\tconst [referralCodeString, setReferralCodeString] = useState(\"\");\n\n\tconst _MIN_PASSWORD_LENGTH = 8;\n\n\tconst [forgotPassword, setForgotPassword] = useState(false);\n\tconst [isModalVisible, setIsModalVisible] = useState(false);\n\tconst [isForgetPassword, setIsForgetPassword] = useState(false);\n\tconst [isLogin, setIsLogin] = useState(true);\n\tconst [verifyPhoneTAC, setVerifyPhoneTAC] = useState(false);\n\tconst [isPasswordUpdated, setIsPasswordUpdated] = useState(false);\n\tconst verifyState = {\n\t\tbutton: 1,\n\t};\n\tconst [isUpdatePassword, setIsUpdatePassword] = useState(false);\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst [countdownTAC, setCountdownTAC] = useState(false);\n\tconst [username, setUsername] = useState(\"\");\n\n\tconst channels = useSelector((state) => state.appState.channels);\n\n\tconst [selectedChannel, setSelectedChannel] = useState();\n\tconst [toggleModal, setToggleModal] = useState();\n\tconst [isLoginLoading, setIsLoginLoading] = useState(false);\n\tconst [isTACLoading, setIsTACLoading] = useState(false);\n\tconst [isRegisterLoading, setIsRegisterLoading] = useState(false);\n\tconst [disableRegister, setDisableRegister] = useState(false);\n\tconst [disableViaEmail, setDisableViaEmail] = useState(false);\n\tconst [viaEmailLoading, setViaEmailLoading] = useState(false);\n\n\tconst [pinLoading, setPinLoading] = useState(false);\n\tconst [timerPeriod, setTimerPeriod] = useState(null);\n\tconst [pinInputDisabled, setPinInputDisabled] = useState(false);\n\tconst activeLanguageCode = useSelector(\n\t\t(state) => state.languageState.languageId\n\t);\n\tconst [tabActive, setTabActive] = useState();\n\tconst [disabledRefrerral, setDisabledRefrerral] = useState(false);\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst walletBalance = useSelector((state) => state.appState.walletBalance);\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [sideMenuList, setSideMenuList] = useState();\n\tconst [spinWheelMenuItem, setSpinWheelMenuItem] = useState();\n\tconst [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(true);\n\t\n\tconst [logo, setLogo] = useState();\n\tconst [smallLogo, setSmallLogo] = useState();\n\tconst [alertIcon, setAlertIcon] = useState();\n\tconst [profileIcon, setProfileIcon] = useState();\n\tconst [loginBanner, setLoginBanner] = useState();\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\n\tconst [openMobileSideMenu, setOpenMobileSideMenu] = useState(false);\n\tconst [balanceRefresh, setBalanceRefresh] = useState(false);\n\tconst [chatLoading, setChatLoading] = useState(true);\n\n\tconst bannerAPK = useSelector((state)=>state.appState.bannerAPK);\n\tconst isHotGameEnabled = useSelector(\n\t\t(state) => state.appState.isHotGameEnabled\n \t);\n\tconst [APKMobileBannerIsVisible, setAPKMobileBannerIsVisible]=useState(true);\n\n\tvar companyLanguages = useSelector((state) => state.appState.languages);\n\tconst [languageSelected, setLanguageSelected] = useState(\n\t\tcompanyLanguages.find(\n\t\t\t(x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n\t\t)\n\t);\n\n\tvar registerChannel = useSelector((state) => state.appState.chatSphere);\n\tvar totalPromoClaimable = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n\t);\n\tvar unreadLivechat = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalUnreadLivechat : 1\n\t);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [languageDetected, setLanguageDetected] = useState(false);\n\n\tconst membershipEnabled = useSelector(\n\t\t(state) => state.appState.membershipEnabled\n\t);\n\tconst memberData = useSelector((state) => state.appState.member);\n const dailyCheckInExist = useSelector((state) => state.appState.dailyCheckInExist);\n\n\tconst [showSpinWheelForGuest, setShowSpinWheelForGuest] = useState(false);\n\n\tconst musicPlayerEnabled = useSelector(\n\t\t(state) => state.appState.musicPlayerEnabled\n\t);\n\t// const musicPlayerEnabled = true;\n\n\tconst musicTrackList = useSelector(\n\t\t(state) => state.appState.musicTrackList\n\t);\n\n\tconst availableProductCategories = useSelector(\n\t\t(state) => state.appState.availableProductCategories\n\t);\n\n\tconst [isTrackPlaying, setIsTrackPlaying] = useState(false);\n\tconst [trackTitle, setTrackTitle] = useState(null);\n\tconst [shuffleEnabled, setShuffleEnabled] = useState(false);\n\tconst [trackProgress, setTrackProgress] = useState(false);\n\tconst [isTrackLoading, setIsTrackLoading] = useState(false);\n\tconst [shuffleBtnClicked, setShuffleBtnClicked] = useState(false);\n\tconst [isPlayNextTrack, setIsPlayNextTrack] = useState(false);\n\tconst [isPlayPrevTrack, setIsPlayPrevTrack] = useState(false);\n\tconst [playButtonClicked, setPlayBtnClicked] = useState(false);\n\n\tconst iconTheme = \"music-player-contorl-btn-icon\";\n\n\tconst [rolloverData, setRolloverData] = useState([]);\n\n\tconst formatTime = (seconds) => {\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n\t\tconst secs = Math.floor(seconds % 60);\n\n\t\tif (hours > 0) {\n\t\t\t// If hours are present, return hours, minutes, and seconds\n\t\t\treturn `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n\t\t} else {\n\t\t\t// If no hours, return only minutes and seconds\n\t\t\treturn `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tuseEffect(() => {\n\t\tif (!heartBeat) {\n\t\t\tsetCurrentWalletBalance(0);\n\t\t} else {\n\t\t\tbindMember(_dispatch);\n\t\t}\n\t\tconst fetchData = async () => {\n\t\t\tif (_userData[\"walletBalance\"]) {\n\t\t\t\tsetCurrentWalletBalance(_userData[\"walletBalance\"]);\n\t\t\t}\n\t\t};\n\t\tfetchData();\n\t}, [heartBeat, localStorage.getItem(SessionKey._TEMP_GUID)]);\n\n\tuseEffect(() => {\n\t\tif (location.state) {\n\t\t\tsetTabActive(location.state.reference);\n\t\t} else {\n\t\t\tif (location.pathname == \"/\") {\n\t\t\t\tsetTabActive(\"Home\");\n\t\t\t} else {\n\t\t\t\tsetTabActive();\n\t\t\t}\n\t\t}\n\t\tloadSpinWheelMenu();\n\t}, [location]);\n\n\t/*useEffect(() => {\n\t\tif (heartBeat) {\n\t\t\tbindMember(_dispatch);\n\t\t}\n\t}, [activeLanguageCode]);*/\n\n\tuseEffect(() => {\n\t\tif (!registerModal) {\n\t\t\tsetRegisterSteps(1);\n\t\t\tsetAttemp(1);\n\t\t\t_setEmail(\"\");\n\t\t\t_setEmailText(\"\");\n\t\t\tclearTimeout(timerPeriod);\n\t\t\tclearTimeout(TACtimer);\n\t\t}\n\t}, [registerModal]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tsetTimerPeriod(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (TACcountdownPeriod > 0) {\n\t\t\tsetTACtimer(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = TACcountdownPeriod - 1;\n\t\t\t\t\tsetTACCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [TACcountdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// Set default language\n\t\tif (companyLanguages?.length) {\n\t\t\tconst tempLangCode = companyLanguages[0]?.code;\n\t\t\tconst storedLanguage = localStorage.getItem(SessionKey._LANGUAGE);\n\t\t\tconst tempLang = companyLanguages.find((x) => x.isDefault === true);\n\n\t\t\t// console.log('storedLanguage', storedLanguage)\n\t\t\t// console.log('tempLang', tempLang)\n\n\t\t\t//console.log('Set default lang')\n\t\t\tif (storedLanguage && storedLanguage !== \"undefined\") {\n\t\t\t\tonInitLanguage(storedLanguage);\n\t\t\t} else if (tempLang) {\n\t\t\t\tonInitLanguage(tempLang.code);\n\t\t\t} else {\n\t\t\t\tonInitLanguage(tempLangCode);\n\t\t\t}\n\t\t}\n\n\t\t// Hierarchy: account lang > user selected lang > ip lang > browser lang > default\n\n\t\tconst currentDate = new Date();\n\t\tconst oneDayInMilliseconds = 24 * 60 * 60 * 1000;\n\t\tconst localeUserCreatedDate = new Date(\n\t\t\tlocalStorage.getItem(\"userSelectedLanguageCodeCreatedAt\") || 0\n\t\t);\n\t\tconst localeIpCreatedDate = new Date(\n\t\t\tlocalStorage.getItem(\"ipCreatedAt\") || 0\n\t\t);\n\n\t\tif (\n\t\t\theartBeat &&\n\t\t\tObject.keys(memberData).length > 0 &&\n\t\t\tcompanyLanguages != undefined &&\n\t\t\tcurrentDate - localeUserCreatedDate > oneDayInMilliseconds\n\t\t) {\n\t\t\tconst language = companyLanguages.find(\n\t\t\t\t(x) => x.id == memberData.languageSetting\n\t\t\t);\n\t\t\tlocalStorage.setItem(\"userSelectedLanguageCode\", language.code);\n\t\t\tlocalStorage.setItem(\"userSelectedLanguageCodeCreatedAt\", new Date());\n\t\t\t//console.log('Set lang by member')\n\t\t\tonInitLanguage(language.code);\n\t\t} else {\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(\"userSelectedLanguageCode\") &&\n\t\t\t\tcurrentDate - localeUserCreatedDate <= oneDayInMilliseconds\n\t\t\t) {\n\t\t\t\t//console.log('Set lang by guest user')\n\t\t\t\tonInitLanguage(localStorage.getItem(\"userSelectedLanguageCode\"));\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\t!localStorage.getItem(\"ipLanguageCode\") ||\n\t\t\t\t\tcurrentDate - localeIpCreatedDate > oneDayInMilliseconds\n\t\t\t\t) {\n\t\t\t\t\t// Disabled by Chris 20241009 - calling too many times and also causing CORS errors, remove for now\n\t\t\t\t\t// setLanguageByIPLocaleOrBrowserLocale();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [\n\t\tcompanyLanguages,\n\t\tmemberData,\n\t\theartBeat,\n\t\tlanguageSelected,\n\t\tlocalStorage.getItem(SessionKey._LANGUAGE),\n\t]);\n\n\tuseEffect(() => {\n\t\tif (heartBeat) {\n\t\t getLatestRolloverRecord();\n\t\t}\n\t }, [walletBalance, walletsDetails, heartBeat, companyIcons]);\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t ApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\t\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t setRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t} else {\n\t\t\tsetRolloverData([]);\n\t\t}\n\t}\n\n\tconst loadSpinWheelMenu=async()=>{\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_SPINWHEEL_SETTINGS\n\t\t );\n\t \n\t\t if(responseJson[ApiKey._API_SUCCESS_KEY]){\n\t\t\tvar spinWheelEnabled = false;\n\t\t\tvar showSpinWheelForGuestTemp = false;\n\t \n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\"){\n\t\t\t spinWheelEnabled = true;\n\t\t\t}\n\t \n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\"){\n\t\t\t showSpinWheelForGuestTemp = true;\n\t\t\t setShowSpinWheelForGuest(true);\n\t\t\t}\n\t \n\t\t\tif(heartBeat && spinWheelEnabled) {\n\t\t\t setShouldShowSpinWheel(true);\n\t\t\t} else if(!heartBeat && spinWheelEnabled && showSpinWheelForGuestTemp) {\n\t\t\t setShouldShowSpinWheel(true);\n\t\t\t} else {\n\t\t\t setShouldShowSpinWheel(false);\n\t\t\t} \n\t\t }\n\t}\n\n\tconst setLanguageByIPLocaleOrBrowserLocale = async () => {\n\t\tconst response = await ApiEngine.get(\"https://ipapi.co/json/\");\n\t\t// const response = {\n\t\t// \t\"ip\": \"146.70.29.196\",\n\t\t// \t\"network\": \"146.70.29.0/24\",\n\t\t// \t\"version\": \"IPv4\",\n\t\t// \t\"city\": \"Singapore\",\n\t\t// \t\"region\": null,\n\t\t// \t\"region_code\": null,\n\t\t// \t\"country\": \"SG\",\n\t\t// \t\"country_name\": \"Singapore\",\n\t\t// \t\"country_code\": \"SG\",\n\t\t// \t\"country_code_iso3\": \"SGP\",\n\t\t// \t\"country_capital\": \"Singapore\",\n\t\t// \t\"country_tld\": \".sg\",\n\t\t// \t\"continent_code\": \"AS\",\n\t\t// \t\"in_eu\": false,\n\t\t// \t\"postal\": \"13\",\n\t\t// \t\"latitude\": 1.2982,\n\t\t// \t\"longitude\": 103.7836,\n\t\t// \t\"timezone\": \"Asia/Singapore\",\n\t\t// \t\"utc_offset\": \"+0800\",\n\t\t// \t\"country_calling_code\": \"+65\",\n\t\t// \t\"currency\": \"SGD\",\n\t\t// \t\"currency_name\": \"Dollar\",\n\t\t// \t\"languages\": \"cmn,en-SG,ms-SG,ta-SG,zh-SG\",\n\t\t// \t\"country_area\": 692.7,\n\t\t// \t\"country_population\": 5638676,\n\t\t// \t\"asn\": \"AS9009\",\n\t\t// \t\"org\": \"M247 Europe SRL\"\n\t\t// }\n\t\t// const response = {};\n\n\t\tif (response && Object.keys(response).length > 0) {\n\t\t\tconst languagesArray = response.languages.split(\",\");\n\n\t\t\t// Detect the first language tag that has a dash (e.g., en-SG, zh-Hans)\n\t\t\tconst languageWithDash = languagesArray.find((lang) =>\n\t\t\t\tlang.includes(\"-\")\n\t\t\t);\n\n\t\t\tconst convertedMainLanguages = languageWithDash.toLowerCase();\n\n\t\t\tcompanyLanguages.forEach((language) => {\n\t\t\t\tif (convertedMainLanguages?.includes(language.code)) {\n\t\t\t\t\t// Set by ip language\n\t\t\t\t\tconsole.log(\"Set by ip language\");\n\t\t\t\t\tlocalStorage.setItem(\"ipLanguageCode\", convertedMainLanguages);\n\t\t\t\t\tlocalStorage.setItem(\"ipCreatedAt\", new Date());\n\t\t\t\t\tonChangeLanguage(language);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// If IP geo location doesn't exist then use browser language\n\t\t\tconst browserLanguage = navigator.language || navigator.userLanguage;\n\t\t\tconst convertedBrowserLanguage = browserLanguage.toLowerCase();\n\n\t\t\tcompanyLanguages.forEach((language) => {\n\t\t\t\tif (convertedBrowserLanguage.includes(language.code)) {\n\t\t\t\t\t// Set by browser language\n\t\t\t\t\tconsole.log(\"Set by browser language\");\n\t\t\t\t\tonChangeLanguage(language);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tasync function checkIfReferralExist2(code) {\n\t\tlet referralCode = code;\n\t\tif (code.includes(\" +\")) {\n\t\t\treferralCode = code.substring(0, code.indexOf(\" +\"));\n\t\t}\n\t\tlet apiUrl =\n\t\t\tApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n\t\tlet responseJson = await ApiEngine.get(apiUrl);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\tasync function checkIfReferralExist(code) {\n\t\tlet referralCode = code;\n\t\tif (code.includes(\" +\")) {\n\t\t\treferralCode = code.substring(0, code.indexOf(\" +\"));\n\t\t}\n\t\tlet apiUrl =\n\t\t\tApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n\t\tlet responseJson = await ApiEngine.get(apiUrl);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetDisabledRefrerral(true);\n\t\t\tsetRegisterSteps(1);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tasync function checkUsername(username) {\n\t\tlet avail = true;\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_CHECK_USERNAME +\n\t\t\t\t\"?username=\" +\n\t\t\t\tusername +\n\t\t\t\t\"&code=\" +\n\t\t\t\treferralCode\n\t\t);\n\t\tavail = responseJson[ApiKey._API_SUCCESS_KEY];\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsUsernameAvailable(true);\n\t\t} else {\n\t\t\tsetIsUsernameAvailable(false);\n\t\t}\n\n\t\treturn avail;\n\t}\n\n\tfunction onchange(e) {\n\t\tconst re = /^[0-9\\b]+$/;\n\t\tlet value = e.target.value;\n\n\t\t// Check if the value contains only digits\n\t\tif (re.test(value)) {\n\t\t\t// Limit the value to 12 characters\n\t\t\tif (value.length > 12) {\n\t\t\t\tvalue = value.slice(0, 12);\n\t\t\t}\n\n\t\t\tsetIsDigit(true);\n\t\t\tsetFormattedPhone(value);\n\t\t} else {\n\t\t\treturn false;\n\t\t\tsetIsDigit(false);\n\t\t}\n\t}\n\n\tconst submitRegisterForm2 = async (data, e) => {\n\t\tsetDisableRegister(true);\n\t\tsetIsRegisterLoading(true);\n\n\t\tsetPassword(data.password);\n\t\tlet usernameAvail = await checkUsername(data.username);\n\t\tlet phoneError = false;\n\t\tif (!usernameAvail) {\n\t\t\tsetError(\"username\", { message: t(\"USERNAME_TAKEN\") });\n\t\t}\n\n\t\tlet referralString = \"\";\n\t\tlet referralCheck = true;\n\t\tif (referralCode !== \"\") {\n\t\t\tif (referralCode.length >= 8) {\n\t\t\t\tsetShowCodeError(false);\n\t\t\t\treferralString = referralCode;\n\t\t\t\tsetReferralCodeString(referralString);\n\t\t\t\treferralCheck = await checkIfReferralExist2(referralString);\n\t\t\t\tif (!referralCheck) {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n\t\t\t\t\t);\n\t\t\t\t\tsetIsRegisterLoading(false);\n\t\t\t\t\tsetDisableRegister(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetShowCodeError(true);\n\t\t\t}\n\t\t} else {\n\t\t\tvar defaultReferralCode = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_MASTER_REFERRAL_CODE\n\t\t\t);\n\t\t\tif (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\treferralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n\t\t\t\tsetReferralCodeString(referralString);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n\t\t\t\t);\n\t\t\t\tsetIsRegisterLoading(false);\n\t\t\t\tsetDisableRegister(false);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\ttypeof formattedPhone !== \"undefined\" &&\n\t\t\t(selectedPhonePrefix + formattedPhone).length >= 10\n\t\t) {\n\t\t\tif (!errors.phoneNumber && usernameAvail) {\n\t\t\t\tlet params = {\n\t\t\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\t\t\treferralCode: referralString,\n\t\t\t\t\tlanguageCode: \"en\",\n\t\t\t\t\tcountdown: 0,\n\t\t\t\t\tTACExist: false,\n\t\t\t\t\ttype: 1,\n\t\t\t\t\tusage: \"createMember\",\n\t\t\t\t};\n\n\t\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\t\tcreateFormBody(params)\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tconst phoneNo = selectedPhonePrefix + formattedPhone;\n\t\t\t\t\tconst phoneNum =\n\t\t\t\t\t\tArray.from({ length: phoneNo.length - 3 - 1 }, () => \"*\").join(\"\") +\n\t\t\t\t\t\tphoneNo.slice(-4);\n\t\t\t\t\tsetPhoneNumber(phoneNum);\n\t\t\t\t\t_setUsername(data.username);\n\t\t\t\t\tsetPhoneNumberError(false);\n\t\t\t\t\tphoneError = false;\n\t\t\t\t} else {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t\tphoneError = true;\n\t\t\t\t\tsetPhoneNumberError(true);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(\"registerPhone\", { message: t(\"INVALID_PHONE_NUMBER\") });\n\t\t}\n\n\t\tif (usernameAvail && !phoneError && referralCheck) {\n\t\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\tsetRegisterSteps(2);\n\t\t\tsetRegisterStepsThreeFirst(true);\n\t\t}\n\n\t\tsetIsRegisterLoading(false);\n\t\tsetDisableRegister(false);\n\t};\n\n\tasync function submitPin(pin) {\n\t\tlet params = {\n\t\t\tusername: _username,\n\t\t\temail: _email,\n\t\t\tpassword: password,\n\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\treferralCode: referralCodeString,\n\t\t\tlanguageSetting: \"en\",\n\t\t\tTAC: pin,\n\t\t};\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_REGISTER,\n\t\t\tcreateFormBody(params)\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRegisterSteps(3);\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\ttype: AlertTypes._SUCCESS,\n\t\t\t\t\tcontent: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n\t\t\t\t\tonConfirm: async () => {\n\t\t\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t\tif (responseJson[ApiKey._API_DATA_KEY]) {\n\t\t\t\t\t\t\t\t// KT: Register completed.\n\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t_dispatch(setDepositModal(true));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.replace(\"https://www.google.com\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n\t\t\t);\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetPinNumber(\"\");\n\t\t\tsetEnteredPinNumber(\"\");\n\t\t\tsetEnteredPinNumberConfirm(\"\");\n\t\t\tsetPinNumberConfirmFocused(0);\n\t\t}\n\t}\n\n\tasync function onKeyPress(key, index) {\n\t\t//setAllowPinClick(false);\n\t\t// 1st: have to check currentPinRef\n\t\t// 2nd: have to know which index is currently focused for altering the state.value\n\t\t// 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n\t\t// 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n\t\t// let currentIndex = 0;\n\t\tlet pinStr = tempPinNumber;\n\t\tlet keyLength = key.split(\"\");\n\t\tif (key !== \"{bksp}\" && key !== \" \") {\n\t\t\tpinStr = key;\n\t\t\tsetTempPinNumber(pinStr);\n\t\t\tif (keyLength.length !== 6) {\n\t\t\t} else {\n\t\t\t\tsetTempPinNumber(\"\");\n\t\t\t\tsetPinInputDisabled(true);\n\t\t\t\tsetPinLoading(true);\n\n\t\t\t\tawait submitPin(pinStr);\n\n\t\t\t\tsetPinLoading(false);\n\t\t\t\tsetPinInputDisabled(false);\n\t\t\t}\n\t\t} else {\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetPinNumber(\"\");\n\t\t\tsetTempPinNumber(\"\");\n\t\t\tsetPinNumberConfirmFocused(0);\n\t\t\tsetTempPinNumberFocused(0);\n\t\t}\n\t}\n\n\tasync function checkEmail(email) {\n\t\tlet avail = true;\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_CHECK_EMAIL + \"?email=\" + email + \"&code=\" + referralCode\n\t\t);\n\t\tavail = responseJson[ApiKey._API_SUCCESS_KEY];\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsEmailAvailable(true);\n\t\t} else {\n\t\t\tsetIsEmailAvailable(false);\n\t\t}\n\n\t\treturn avail;\n\t}\n\n\tconst submitForm = async (data, e) => {\n\t\tsetDisableViaEmail(true);\n\t\tsetViaEmailLoading(true);\n\t\tif (selectedPhonePrefix == \"\") {\n\t\t\tsetSelectedPhonePrefix(PhoneNumberPrefix[0].value);\n\t\t}\n\t\tif (canSendTAC) {\n\t\t\tif (TACtimedOut || countdownPeriod > 0) {\n\t\t\t\tlet emailAvail = await checkEmail(data.email);\n\t\t\t\tif (emailAvail) {\n\t\t\t\t\tlet params = {\n\t\t\t\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\t\t\t\treferralCode: referralCode,\n\t\t\t\t\t\temail: data.email,\n\t\t\t\t\t\tlanguageCode: \"en\",\n\t\t\t\t\t\tcountdown: countdownPeriod,\n\t\t\t\t\t\tTACExist: !TACtimedOut,\n\t\t\t\t\t\ttype: OTP_VIA_EMAIL,\n\t\t\t\t\t\tusage: \"createMember\",\n\t\t\t\t\t};\n\n\t\t\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\t\t\tcreateFormBody(params)\n\t\t\t\t\t);\n\t\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t_setEmail(data.email);\n\t\t\t\t\t\t_setEmailText(\"*\".repeat(4) + data.email.substr(4));\n\t\t\t\t\t\tsetTACsent(true);\n\t\t\t\t\t\tsetTACtimedOut(false);\n\t\t\t\t\t\tsetCountdownPeriod(0);\n\t\t\t\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\t\t\tsetTACBtnAble(false);\n\t\t\t\t\t\tsetAttemp(attemp + 1);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tsetTACBtnAble(true);\n\t\t\t\t\t\t\tsetTACtimedOut(true);\n\t\t\t\t\t\t}, _TAC_VALID_TIMER);\n\t\t\t\t\t\tsetRegisterStepsViaEmail(false);\n\t\t\t\t\t\tsetRegisterSteps(2);\n\t\t\t\t\t\tsetRegisterStepsThreeFirst(true);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n\t\t\t\t\tsetDisableViaEmail(false);\n\t\t\t\t\tsetViaEmailLoading(false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsetCanSendTAC(false);\n\t\tclearTimeout(TACtimer);\n\t\tclearTimeout(timerPeriod);\n\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\tsetTimeout(() => {\n\t\t\tsetCanSendTAC(true);\n\t\t}, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n\t\tsetDisableViaEmail(false);\n\t\tsetViaEmailLoading(false);\n\t};\n\n\tasync function submitVerifyTAC(data) {\n\t\tsetIsTACLoading(true);\n\t\tif (verifyState.button == 1) {\n\t\t\tlet formData = {\n\t\t\t\ttaccode: data.taccode,\n\t\t\t\tusername: username,\n\t\t\t};\n\t\t\tlet formBody = createMultiPartFormBody(formData);\n\t\t\tlet TACjson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_VERIFY_RESET_PASSWORD_SMS,\n\t\t\t\tformBody\n\t\t\t);\n\t\t\tif (TACjson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetVerifyPhoneTAC(false);\n\t\t\t\tsetIsUpdatePassword(true);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage({\n\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: t(TACjson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (verifyState.button == 2) {\n\t\t\tlet formData = {\n\t\t\t\tlanguage: \"en\",\n\t\t\t\tusername: username,\n\t\t\t\ttype: verifyState.button,\n\t\t\t\tusage: \"resetPassword\",\n\t\t\t};\n\t\t\tlet formBody = createMultiPartFormBody(formData);\n\t\t\t//data[\"phoneNumber\"] = formattedPhoneNumber;\n\t\t\tdata[\"language\"] = \"en\";\n\t\t\tvar responseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\tformBody\n\t\t\t);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCountdownTAC(false);\n\t\t\t\tsetPhoneNumber(responseJson.data);\n\t\t\t\tsetTempPhoneNum(\n\t\t\t\t\tresponseJson.data.replace(\n\t\t\t\t\t\tresponseJson.data.substr(3, responseJson.data.length - 7),\n\t\t\t\t\t\tresponseJson.data\n\t\t\t\t\t\t\t.substr(1, responseJson.data.length - 4)\n\t\t\t\t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tsetVerifyPhoneTAC(true);\n\t\t\t\tsetIsForgetPassword(false);\n\t\t\t\tsetAttemp(attemp + 1);\n\t\t\t\tverifyState.button = verifyState.button + 1;\n\t\t\t\tsetCanSendTAC(false);\n\t\t\t\tclearTimeout(TACtimer);\n\t\t\t\tclearTimeout(timerPeriod);\n\t\t\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\tsetTACsent(true);\n\t\t\t\tsetTACtimedOut(false);\n\t\t\t\tsetCountdownPeriod(0);\n\t\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\tclearTimeout(TACtimer);\n\t\t\t\tclearTimeout(timerPeriod);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetCanSendTAC(true);\n\t\t\t\t\tsetCountdownTAC(true);\n\t\t\t\t}, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n\t\t\t\t//resetForm();\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage({\n\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tsetIsTACLoading(false);\n\t}\n\n\tasync function submitNewPassword(data) {\n\t\t_dispatch(setBusy());\n\t\tlet formData = {\n\t\t\tnewpassword: data.newPassword,\n\t\t\tconfpassword: data.confPassword,\n\t\t\tusername: username,\n\t\t};\n\n\t\tlet formBody = createMultiPartFormBody(formData);\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN,\n\t\t\tformBody\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsUpdatePassword(false);\n\t\t\tsetIsPasswordUpdated(true);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\tasync function submitPasswordUpdated(data) {\n\t\tsetIsUpdatePassword(false);\n\t\tsetIsPasswordUpdated(false);\n\t\tsetIsLogin(true);\n\t\tsetIsModalVisible(false);\n\t}\n\n\tconst goToLogin = async (data, e) => {\n\t\t_dispatch(setRegisterModal(false));\n\t\t_dispatch(setLoginModal(true));\n\t};\n\n\tconst validateReferralCode = (e) => {\n\t\tvar regexp = /^[A-Za-z0-9]+$/i;\n\t\tif (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n\t\t\tsetReferralCode(e.target.value);\n\t\t}\n\t};\n\n\tconst onChangeUsername = useCallback(\n\t\tdebounce(async (e) => {\n\t\t\tvar regexp = /^[\\S]*^[^ \\[\\]`~\\/!@#$%^&*()\"':;?|{}=+_<>,.\\\\-]*$/g;\n\t\t\tif (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n\t\t\t\t_setUsername(e.target.value);\n\t\t\t}\n\t\t}, 500),\n\t\t[]\n\t);\n\n\tconst handleChange = (event) => {\n\t\t// Remove spaces and convert to lowercase\n\t\tconst newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n\t\t_setEmail(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selectedChannel) {\n\t\t\tif (!stringIsNullOrEmpty(selectedChannel.attachment)) {\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}, [selectedChannel]);\n\n\tuseEffect(() => {\n\t\tconst parsedReferralCode = params.get(\"code\");\n\t\tif (parsedReferralCode != null && !heartBeat) {\n\t\t\t// getUpline(parsedReferralCode);\n\t\t\t_dispatch(setRegisterModal(true));\n\t\t\tsetReferralCode(parsedReferralCode);\n\t\t\t// setRegisterSteps(2);\n\t\t\tcheckIfReferralExist(parsedReferralCode);\n\t\t} else if (parsedReferralCode != null && heartBeat) {\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\t//KT: The company icons details not loaded when reach this point.\n\t\t\t\t\tcontent: t(\"ALREADY_LOGIN\"),\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, []);\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\twindow.open(channel.cta, \"_blank\");\n\t\t\t\t// window.location.href = channel.cta;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst toggleDropDown = () => setDropdownOpen((prevState) => !prevState);\n\tconst onInitLanguage = (value) => {\n\t\t// console.log(\"onInitLanguage\", value);\n\t\tlet findLanguage = find(companyLanguages, { code: value });\n\t\tonChangeLanguage(findLanguage);\n\t};\n\tconst onClickLanguage = async (value) => {\n\t\tlet findLanguage = find(companyLanguages, { code: value });\n\t\tonChangeLanguage(findLanguage);\n\n\t\tlocalStorage.setItem(\"userSelectedLanguageCode\", findLanguage.code);\n\t\tlocalStorage.setItem(\"userSelectedLanguageCodeCreatedAt\", new Date());\n\n\t\tif (heartBeat) {\n\t\t\tlet data = {};\n\t\t\tdata[\"languageSetting\"] = findLanguage.code;\n\n\t\t\tawait ApiEngine.post(\n\t\t\t\tApiUrl._API_UPDATE_MEMBER_LANGUAGE,\n\t\t\t\tcreateMultiPartFormBody(data)\n\t\t\t);\n\n\t\t\t// KT: Why we call this? After change language we need to bindMember for language?\n\t\t\t// bindMember(_dispatch);\n\t\t}\n\t};\n\n\tconst onChangeLanguage = async (selectedLanguage) => {\n\t\tsetLanguageSelected(selectedLanguage);\n\n\t\tconst previousLocale = localStorage.getItem(SessionKey._LANGUAGE);\n\t\tif (selectedLanguage) {\n\t\t\ti18n.changeLanguage(selectedLanguage.code);\n\t\t\t_dispatch(saveLanguageId(selectedLanguage.code, true));\n\n\t\t\t// CHRIS_LOCALE: Update the URL to reflect the new language\n\t\t\tif (previousLocale !== selectedLanguage.code) {\n\t\t\t\tlet locationPathname = location.pathname;\n\n\t\t\t\t// Use the regex to replace the locale at the start of the pathname\n\t\t\t\tif (locationPathname.startsWith(`/${previousLocale}`)) {\n\t\t\t\t\tconst regex = new RegExp(`^/${previousLocale}(/|$)`);\n\t\t\t\t\tlocationPathname = location.pathname.replace(\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\t`/${selectedLanguage.code}/`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// Ensure that the URL does not end with a slash, unless it's just the root \"/\"\n\t\t\t\tlocationPathname =\n\t\t\t\t\tlocationPathname === `/${selectedLanguage.code}/`\n\t\t\t\t\t\t? `/${selectedLanguage.code}`\n\t\t\t\t\t\t: locationPathname;\n\n\t\t\t\tlocationPathname += location.search;\n\n\t\t\t\t_history.replace(locationPathname);\n\n\t\t\t\t// CHRIS_LOCALE: Update the current locale in WebUrl\n\t\t\t\t// console.log(\"WebUrl.setCurrentLocale\", selectedLanguage.code);\n\t\t\t\tWebUrl.setCurrentLocale(selectedLanguage.code);\n\n\t\t\t\t// Create a custom event\n\t\t\t\tconst customEvent = new CustomEvent(\"changedLocale\", {\n\t\t\t\t\tdetail: { message: \"Changed locale!\" },\n\t\t\t\t});\n\n\t\t\t\t// Dispatch the event\n\t\t\t\twindow.dispatchEvent(customEvent);\n\t\t\t}\n\t\t}\n\t};\n\n\tasync function getRestore() {\n\t\tsetBalanceRefresh(true);\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n\t\t// KT: I dont see a point popping out \"Success\"\n\t\t/*_dispatch(\n\t\t\tshowResponseMessage(\n\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t)\n\t\t);*/\n\t\tbindMember(_dispatch);\n\t\tsetBalanceRefresh(false);\n\t}\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tsetChatLoading(true);\n\n\t\tlet sideNavList = companyIcons.filter(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName !== \"Spin Wheel Bonus\"\n\t\t );\n\t\t\n\t\tlet spinnerWheelMenu=companyIcons.find(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName == \"Spin Wheel Bonus\"\n\t\t );\n\n\t\tif(spinnerWheelMenu){\n setSpinWheelMenuItem(spinnerWheelMenu);\n\t\t}\n\n\t\tif (sideNavList) {\n\t\t\t// Remove Membership icon if membership is not enabled\n\t\t\tif (!membershipEnabled) {\n\t\t\t\t// Filter out the \"/membership\" path from the list\n\t\t\t\tsideNavList = filter(\n\t\t\t\t\tsideNavList,\n\t\t\t\t\t(item) => item.pathname !== \"/membership\"\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetSideMenuList(sideNavList);\n\t\t}\n\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\n\t\tconst smallLogo = find(companyIcons, { iconCategory: \"small_logo\" });\n\t\tif (smallLogo) {\n\t\t\tsetSmallLogo(smallLogo.iconImage||smallLogo.defaultImage);\n\t\t}\n\n\t\tconst alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n\t\tconst profile = find(companyIcons, { iconCategory: \"profile\" });\n\t\tif (profile) {\n\t\t\tsetProfileIcon(profile.iconImage||profile.defaultImage);\n\t\t}\n\n\t\tconst loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n\t\tif (loginBanner) {\n\t\t\tsetLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n\t\t}\n\t\tsetChatLoading(false);\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst getTempID = () => {\n\t\tvar tempId = \"\";\n\n\t\tif (!heartBeat) {\n\t\t\tif (localStorage.getItem(SessionKey._TEMP_GUID) !== \"\") {\n\t\t\t\ttempId = localStorage.getItem(SessionKey._TEMP_GUID);\n\t\t\t}\n\t\t\tif (tempId == \"undefined\" || tempId == null) tempId = \"\";\n\t\t}\n\n\t\treturn tempId;\n\t};\n\n\tasync function handleRegisterClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.url}`\n\t\t\t\t\t\t\t: `${channel.url}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tvar selectedReferralCode =\n\t\t\t\treferralCode == \"\" ? referralCodeString : referralCode;\n\t\t\tif (!stringIsNullOrEmpty(channel.url)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\tlet referralString = \"\";\n\n\t\t\t\tif (stringIsNullOrEmpty(selectedReferralCode)) {\n\t\t\t\t\tvar defaultReferralCode = await ApiEngine.get(\n\t\t\t\t\t\tApiUrl._API_GET_MASTER_REFERRAL_CODE\n\t\t\t\t\t);\n\t\t\t\t\tif (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\treferralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n\t\t\t\t\t\tselectedReferralCode = referralString;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tt(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\twindow.location.href = channel.url + selectedReferralCode;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\tconst handleImageError = (e) => {\n\t\t// setIsImageBroken(true);\n\t\te.target.style.display = \"none\";\n\t};\n\n\tfunction isNumber(value) {\n\t\treturn typeof value === \"number\" && Number.isFinite(value);\n\t}\n\n\t\n\tconst handleDownloadAPK = () => {\n\t\tlet bannerAPKUrl = bannerAPK?.url;\n\n\t\tif(!stringIsNullOrEmpty(bannerAPKUrl)){\n\t\t\tconst fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n\t\t\tconst link = document.createElement(\"a\");\n\t\t\tlink.href = bannerAPKUrl;\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t }\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleResize = () => {\n\t\t\t// Check if url is on homepage\n\t\t\tif(location.pathname === \"/\" + localStorage.getItem(SessionKey._LANGUAGE) || location.pathname === \"/\" + localStorage.getItem(SessionKey._LANGUAGE) + \"/\") {\n\t\t\t\tsetAPKMobileBannerIsVisible(window.innerWidth <= 900 && bannerAPK?.displayMode === 2);\t\n\t\t\t} else {\n\t\t\t\tsetAPKMobileBannerIsVisible(false);\n\t\t\t}\n\t\t};\n\n\t\thandleResize();\n\t\twindow.addEventListener(\"resize\", handleResize);\n\t\t\n\t\treturn () => window.removeEventListener(\"resize\", handleResize);\n\t}, [window.location, bannerAPK]);\n\n\treturn (\n\t<>\n\t\t{/* Download APK Mobile Banner Top */}\n\t\t{bannerAPK != \"\" && APKMobileBannerIsVisible && (\n\t\t\t\n\t \t)}\n\n\t\t\t{/* /////////t3 header */}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t _dispatch(setOpenMenu(!openMenu))}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t _history.push(WebUrl._URL_MAIN)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{logo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t{heartBeat == false ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t setShowModalLogin(true)}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t(\"LOGIN\")}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setShowModalRegister(true)}\n\t\t\t\t\t\t\t\tonClick={() => _dispatch(setRegisterModal(true))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t(\"REGISTER\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// \n\t\t\t\t\t\t//
\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_SETTINGS);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\tisBalanceLoading ? \t\n\t\t\t\t\t\t\t\t\t\t() : \"\"\n\t\t\t\t\t\t\t\t\t\t} */}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{!isNumber(walletBalance)\n\t\t\t\t\t\t\t\t\t\t\t\t? walletBalance\n\t\t\t\t\t\t\t\t\t\t\t\t: numberWithCurrencyFormat(walletBalance, 2, true)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
getRestore()}>\n\t\t\t\t\t\t\t\t\t{/* refresh */}\n\t\t\t\t\t\t\t\t\t{balanceRefresh ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t setShowDepositAndWithdrawPopup(true)}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(true));\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{rolloverData &&\n\t\t\t\t\t\t\t\trolloverData.length > 0 &&\n\t\t\t\t\t\t\t\tmap(rolloverData, (item, index) => {\n\t\t\t\t\t\t\t\t\tif (item[\"rolloverTarget\"] === 0) {\n\t\t\t\t\t\t\t\t\t\treturn null; // Skip items with rolloverTarget as 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t///make changes to make negative not appear\n\t\t\t\t\t\t\t\t\tlet percentage;\n\t\t\t\t\t\t\t\t\tlet value = item[\"isLatestRecord\"] == 1 \n\t\t\t\t\t\t\t\t\t? (item[\"rolloverProgress\"] < 0 ? 0 : item[\"rolloverProgress\"]) \n\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"];\n\n\t\t\t\t\t\t\t\t\tif (value == 0 && item[\"rolloverTarget\"] == 0) {\n\t\t\t\t\t\t\t\t\t\tpercentage = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tpercentage = (value / item[\"rolloverTarget\"]) * 100;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst formattedPercentage = Math.round(percentage);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"YOUR_ROLLOVER_PROGRESS_IS\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"] < 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\".\"}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{formattedPercentage}%\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_SETTINGS);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{_userData[\"username\"]}
\n\t\t\t\t\t\t\t\t\t{membershipEnabled && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(upperCase(_userData[\"vipName\"]))}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t// \n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t{ bannerAPK?.displayMode===2 &&(\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{companyLanguages && companyLanguages.length > 1 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t{languageSelected && languageSelected.icon ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{companyLanguages &&\n\t\t\t\t\t\t\t\t\tcompanyLanguages.length > 0 &&\n\t\t\t\t\t\t\t\t\tmap(companyLanguages, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t onClickLanguage(item.code)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.icon ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"flag\"\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 side menu */}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{dailyCheckInExist && (\n\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\tif(heartBeat){\n\n\t\t\t\t\t\t\t\t\t\tif(dailyCheckInExist){\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDailyCheckinModal(true))\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: t(\"DAILY_CHECKIN_EMPTY\")\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DAILY_BONUS_CLAIM\")}
\n\t\t\t\t\t\t\t\t\t{/*
{t(\"JOIN_DAILY_BONUS\")}
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t{ spinWheelMenuItem && shouldShowSpinWheel &&(\n\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t if(!heartBeat && showSpinWheelForGuest){\n\t\t\t\t\t\t\t\t\t\t _dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t }else{\n\t\t\t\t\t\t\t\t\t\t _dispatch(setSpinWheelListModal(true));\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t }}\t\t\t\t\t\t \n\t\t\t\t\t\t\t >\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t(\"SPIN_WHEEL_BONUS\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n { bannerAPK?.displayMode===2 &&(\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t(\"DOWNLOAD\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{musicPlayerEnabled &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\tsideMenuList.length &&\n\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t// CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n\t\t\t\t\t\t\t\t// Only apply this filtering criteria if availableProductCategories is not empty\n\t\t\t\t\t\t\t\tif(availableProductCategories.length > 0) {\n\t\t\t\t\t\t\t\t\t// Call sidenavitems to get only the available categories - hide categories that are not available\n\t\t\t\t\t\t\t\t\tlet availableProductCategory = availableProductCategories.filter((sidenavItem) => {\n\t\t\t\t\t\t\t\t\t\treturn sidenavItem.productCategory.title.trim() == item.iconName.trim();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t// Ignore some items\n\t\t\t\t\t\t\t\t\tlet ignoreLinks = [\"Home\", \"Membership\", \"Referral\", \"Rebate\", \"Promotion\", \"Recent Game\"];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(isHotGameEnabled){\n\t\t\t\t\t\t\t\t\t\tignoreLinks.push(\"Hot Games\")\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!ignoreLinks.includes(item.iconName) && availableProductCategory.length == 0 ) {\n\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t// CHRIS_LOCALE: Ensure that locale is prepended\n\t\t\t\t\t\t\t\t\t\t\tvar locale = localStorage.getItem(SessionKey._LANGUAGE);\n\t\t\t\t\t\t\t\t\t\t\tlet itemPathname = stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"];\n\t\t\t\t\t\t\t\t\t\t\titemPathname = locale\n\t\t\t\t\t\t\t\t\t\t\t\t? \"/\" + locale + itemPathname\n\t\t\t\t\t\t\t\t\t\t\t\t: itemPathname;\n\n\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] === \"/promotion\" &&\n\t\t\t\t\t\t\t\t\t\t\ttotalPromoClaimable > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{totalPromoClaimable}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\n\t\t\t\t\t{!chatLoading && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setOpenMenu(true));\n\t\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_LIVECHAT);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ position: \"relative\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"LIVE_CHAT\")}
\n\t\t\t\t\t\t\t\t\t{unreadLivechat > 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{unreadLivechat}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{channels && channels.length > 0 && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.actionUrl)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* {channels && channels.length > 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.actionUrl)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)} */}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 mobile menu pop.up */}\n\t\t\t{openMobileSideMenu && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdailyCheckInExist && (\n\t\t\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t\tif(heartBeat){\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(dailyCheckInExist){\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDailyCheckinModal(true))\n\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: t(\"DAILY_CHECKIN_EMPTY\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonConfirm: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// console.log(\"hi\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true))\n\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{t(\"DAILY_BONUS_CLAIM\")}
\n\t\t\t\t\t\t\t\t\t\t\t{/*
{t(\"JOIN_DAILY_BONUS\")}
*/}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{musicPlayerEnabled && \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t setIsPlayPrevTrack(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPlayBtnClicked(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{isTrackPlaying ?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t setIsPlayNextTrack(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShuffleBtnClicked(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShuffleEnabled((prev) => !prev);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setMusicPlayerModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (setOpenMobileSideMenu) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{trackTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{isTrackLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatTime(trackProgress)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{ spinWheelMenuItem && shouldShowSpinWheel &&(\n\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t\tif(!heartBeat && showSpinWheelForGuest){\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setSpinWheelListModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false);\n\t\t\t\t\t\t\t\t\t\t}}\t\t\t\t\t\t \n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{t(\"SPIN_WHEEL_BONUS\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\t\t\tsideMenuList.length &&\n\t\t\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t// CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n\t\t\t\t\t\t\t\t\t\t// Only apply this filtering criteria if availableProductCategories is not empty\n\t\t\t\t\t\t\t\t\t\tif(availableProductCategories.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\t// Call sidenavitems to get only the available categories - hide categories that are not available\n\t\t\t\t\t\t\t\t\t\t\tlet availableProductCategory = availableProductCategories.filter((sidenavItem) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn sidenavItem.productCategory.title.trim() == item.iconName.trim();\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t// Ignore some items\n\t\t\t\t\t\t\t\t\t\t\tvar ignoreLinks = [\"Home\", \"Membership\", \"Referral\", \"Rebate\", \"Promotion\", \"Recent Game\"];\n\n\t\t\t\t\t\t\t\t\t\t\tif (!ignoreLinks.includes(item.iconName) && availableProductCategory.length == 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS_LOCALE: Ensure that locale is prepended\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar locale = localStorage.getItem(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSessionKey._LANGUAGE\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet itemPathname = stringIsNullOrEmpty(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"pathname\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"];\n\t\t\t\t\t\t\t\t\t\t\t\t\titemPathname = locale\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"/\" + locale + itemPathname\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: itemPathname;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"id\"] == 8) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (item[\"id\"] == 9) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"id\"] == 8) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{channels && channels.length > 0 && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{channels &&\n\t\t\t\t\t\t\t\t\t\tchannels.length &&\n\t\t\t\t\t\t\t\t\t\tmap(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* ///register pop.up */}\n\t\t\t {\n\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t// setShowModalRegister(false);\n\t\t\t\t}}\n\t\t\t\tbackdrop={\"static\"}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setShowModalRegister(!showModalRegister)}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (params.get(\"code\") != referralCode) {\n\t\t\t\t\t\t\t\t\t\tsetReferralCode(\"\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t{/*\t{t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{registerSteps == 1 && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t(await checkUsername(value)) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t(console.log(\"test\"), \"USERNAME_TAKEN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpattern: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: /^(?=.*[A-Za-z0-9])[A-Za-z0-9]{4,9}$/i,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmessage: t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"USERNAME_REQUIRES_ALPHANUMERIC_WITH_LOWERCASE_MINIMUM_4_9_CHARACTERS_ONLY\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"loginUsername\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"username\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// value={_username.toLowerCase()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// onInput={(e) => validateUsername(e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// onChange={onChangeUsername}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonInput={onChangeUsername}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"t3-custom-input-text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Allow lowercase letters, numbers, and allowed keys\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[a-z0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (/[A-Z]/.test(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst start = e.target.selectionStart;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst end = e.target.selectionEnd;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Insert the lowercase version of the uppercase key\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value.slice(0, start) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey.toLowerCase() +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value.slice(end);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Adjust the cursor position to be after the inserted character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart + 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent any other unwanted key input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {isObjectEmpty(errors) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisUsernameAvailable &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_username != \"\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"THIS_USERNAME_IS_AVAILABLE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedPhonePrefix(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{PhoneNumberPrefix != undefined &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPhoneNumberPrefix.map((prefix, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{prefix.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent '0' as the first character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst inputValue = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (inputValue.length === 0 && key === \"0\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newValue = e.target.value;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Remove all leading zeros\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue = newValue.replace(/^0+/, '');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Call your original `onChange` function\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonchange(e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Update the input field with the modified value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value = newValue;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{phoneNumberError == true ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"NUMBER_NOT_AVAILABLE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : errors.registerPhone ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.registerPhone.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[a-zA-Z0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype={hideLoginPassword ? \"password\" : \"text\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"t3-custom-input-text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideLoginPassword(!hideLoginPassword)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REGISTER_PAGE_MIN_8_CHARS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ONLY_LETTERS_NUMBERS_9\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"NO_SPECIAL_SYMBOLS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t validateReferralCode(e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={referralCode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// disabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{showCodeError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"INVALID_REFERRAL_CODE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t console.log(\"btnsubmit\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disableRegister}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isRegisterLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"REGISTER\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ALREADY_HAVE_AN_ACCOUNT\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOGIN_NOW\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{registerSteps == 2 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{registerStepsThreeFirst && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"VERIFY_YOUR_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{_emailText != \"\" ? _emailText : phoneNumber}.\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyPress(value, index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// onChange={(value, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \tonKeyPress(value,index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t// setPinNumberFocused(index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t{TACsent && countdownPeriod != 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TAC_SENT\")} {countdownPeriod}s\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t{pinLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t{countdownPeriod == 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {attemp == 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetRegisterStepsThreeFirst(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetRegisterStepsViaEmail(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={pinInputDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RECEIVE_OTP_VIA_EMAIL\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 2 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t setIsLiveChatOpen(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={pinInputDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTACT_CUSTOMER_SERVICE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{!registerStepsThreeFirst && registerStepsViaEmail && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{viaEmailLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"CONTINUE\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{registerSteps == 3 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REGISTRATION_COMPLETED\")}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{/* KT: Maybe can replace this with welcoming msgs etc. \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSubmit(goToLogin)();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isLoginLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"LOGIN\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
*/}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{registerChannel && registerChannel.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t(\"REGISTER_THROUGH_SOCIAL_MEDIA\")}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{map(registerChannel, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.url)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleRegisterClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\n\t\t\t{/* Seem Like Not Using Anymore */}\n\t\t\t {\n\t\t\t\t\tsetIsModalVisible(false);\n\t\t\t\t\tsetIsForgetPassword(true);\n\t\t\t\t\tsetVerifyPhoneTAC(false);\n\t\t\t\t\tsetIsUpdatePassword(false);\n\t\t\t\t\tsetIsPasswordUpdated(false);\n\t\t\t\t\tsetIsLogin(true);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setIsModalVisible(!isModalVisible)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t{/*\t{t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{verifyPhoneTAC && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PHONE_TAC_SEND_TO\")}\n\t\t\t\t\t\t\t\t\t\t\t{tempPhoneNum}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{TACsent && countdownPeriod != 0 && (\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TAC_SENT\")} {countdownPeriod}s\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t (verifyState.button = \"1\")}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTINUE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t{isTACLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t{countdownTAC && countdownPeriod == 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t (verifyState.button = 2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RECEIVE_OTP_VIA_EMAIL\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 2 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t setIsLiveChatOpen(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTACT_CUSTOMER_SERVICE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isUpdatePassword && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\twatch(\"confPassword\") == \"\" ||\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue != watch(\"confPassword\") ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"PASSWORD_MISMATCH\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\terrors={ResetPasswordErrors}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\twatch(\"newPassword\") == \"\" ||\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue != watch(\"newPassword\") ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"PASSWORD_MISMATCH\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\terrors={ResetPasswordErrors}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isPasswordUpdated && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RESET_PASSWORD_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalVisible(!isModalVisible);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetForgotPassword(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowModalLogin(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t{bannerAPK != \"\" && bannerAPK?.displayMode === 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Header;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { map, debounce, find, filter, upperCase, findIndex, get } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n} from \"../../util/Constant\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport PinInput from \"react-pin-input\";\nimport Input from \"../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetLoginModal,\n\tsetProvider,\n\tshowMessage,\n\tbindCompanyIcon,\n\tsetDepositModal,\n} from \"../../redux/AppAction.js\";\nimport SecureLS from \"secure-ls\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { stringIsNullOrEmpty } from \"../../util/Util\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport ProviderIcon, { ProviderIconDisplay } from \"components/custom/ProviderIcon\";\n\nconst preloadIcons = (icons) => {\n\ticons.forEach((icon) => {\n\t\tconst img = new Image();\n\t\timg.src = icon.image; // Preload inactive icon\n\n\t\tconst imgActive = new Image();\n\t\timgActive.src = icon.activeImage; // Preload active icon\n\t});\n };\n\nconst Footer = (props) => {\n\tvar { t } = useTranslation();\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tconst location = useLocation();\n\tvar ls = new SecureLS();\n\tconst search = window.location.search;\n\tconst params = new URLSearchParams(search);\n\n\tconst openMenu = useSelector((state) => state.appState.openMenu);\n\tconst [currentWalletBalance, setCurrentWalletBalance] = useState(0);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n\tvar companyLanguages = useSelector((state) => state.appState.languages);\n\n\tconst [_username, _setUsername] = useState(\"\");\n\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n\n\tconst [_email, _setEmail] = useState(\"\");\n\tconst [_emailText, _setEmailText] = useState(\"\");\n\tconst channels = useSelector((state) => state.appState.channels);\n\tconst settingApiComplete = useSelector((state) => state.appState.settingApiComplete);\n\n\tconst [selectedChannel, setSelectedChannel] = useState();\n\tconst [toggleModal, setToggleModal] = useState();\n\tconst [openMobileSideMenu, setOpenMobileSideMenu] = useState(false);\n\n\tconst providerList = useSelector((state) => state.appState.provider);\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [sideMenuList, setSideMenuList] = useState();\n\tconst [logo, setLogo] = useState();\n\tconst [alertIcon, setAlertIcon] = useState();\n\tconst [tabActive, setTabActive] = useState();\n\tconst [bottomNavList, setBottomNavList] = useState();\n\tconst [displayDefaultIcon,setDisplayDefaultIcon]=useState(false);\n\tconst [defaultIcon,setDefaultIcon]=useState();\n\n\tvar brandName = useSelector((state) => state.appState.brandName);\n\tvar totalPromoClaimable = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n\t);\n\tvar unreadLivechat = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalUnreadLivechat : 1\n\t);\n\n\tconst [footerSections, setFooterSections] = useState([]);\n\tconst [sectionSettings, setSectionSettings] = useState({});\n\tconst [activeLanguage, setActiveLanguage] = useState(\"\");\n\tconst [activeLanguageId, setActiveLanguageId] = useState(0);\n\tconst activeLanguageCode = useSelector(\n\t\t(state) => state.languageState.languageId\n\t);\n\tconst [defaultGameIcon, setDefaultGameIcon] = useState();\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tlocation.pathname === WebUrl._URL_PROMOTION ||\n\t\t\tlocation.pathname === WebUrl._URL_PROMOTION_INFO ||\n\t\t\tlocation.pathname.includes(\"/promo/\")\n\t\t\t//KT: Alamak two ppl do same, if use state?, user directly go into link I think cant get \"Promotion\"\n\t\t\t//location.pathname == WebUrl._URL_PROMOTION ||\n\t\t\t//location.pathname == WebUrl._URL_PROMOTION_INFO ||\n\t\t\t//location.state?.reference == \"Promotion\"\n\t\t) {\n\t\t\tlet navIndex = findIndex(bottomNavList, {\n\t\t\t\tpathname: WebUrl._URL_PROMOTION,\n\t\t\t});\n\t\t\tsetTabActive(navIndex);\n\t\t} else if (\n\t\t\tlocation.pathname === WebUrl._URL_REFERRAL ||\n\t\t\tlocation.pathname === WebUrl._URL_LIVECHAT ||\n\t\t\tlocation.pathname === WebUrl._URL_SETTINGS\n\t\t) {\n\t\t\tlet navIndex = findIndex(bottomNavList, {\n\t\t\t\tpathname: location.pathname,\n\t\t\t});\n\t\t\tsetTabActive(navIndex);\n\t\t} else {\n\t\t\tsetTabActive(0);\n\t\t}\n\t}, [location]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t}, _SECONDS_IN_MS);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (TACcountdownPeriod > 0) {\n\t\t\tsetTACtimer(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = TACcountdownPeriod - 1;\n\t\t\t\t\tsetTACCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [TACcountdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (selectedChannel) {\n\t\t\tif (!stringIsNullOrEmpty(selectedChannel.attachment)) {\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}, [selectedChannel]);\n\n\tuseEffect(() => {\n\t\tif (companyLanguages != undefined) {\n\t\t\tconst tempLangCode = get(companyLanguages[0], \"code\");\n\t\t\tconst tempLangId = get(companyLanguages[0], \"id\");\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) &&\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n\t\t\t) {\n\t\t\t\tlet tempLang = companyLanguages.filter(\n\t\t\t\t\t(x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n\t\t\t\t)[0];\n\n\t\t\t\tif (tempLang != undefined) {\n\t\t\t\t\tsetActiveLanguage(tempLang.code);\n\t\t\t\t\tsetActiveLanguageId(tempLang.id);\n\t\t\t\t} else {\n\t\t\t\t\tsetActiveLanguage(tempLangCode);\n\t\t\t\t\tsetActiveLanguageId(tempLangId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetActiveLanguage(tempLangCode);\n\t\t\t\tsetActiveLanguageId(tempLangId);\n\t\t\t}\n\t\t} else {\n\t\t\tsetActiveLanguage(\"en\");\n\t\t\tsetActiveLanguageId(1);\n\t\t}\n\t}, [companyLanguages, activeLanguageCode]);\n\n\tuseEffect(() => {\n\t\tif (activeLanguageId > 0) {\n\t\t\tgetFooterSections();\n\t\t}\n\t}, [activeLanguageId]);\n\n\tuseEffect(() => {\n\t\tsetProvider(_dispatch);\n\t}, []);\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\twindow.location.href = channel.cta;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst sideNavList = filter(companyIcons, { iconCategory: \"side_nav\" });\n\t\tif (sideNavList) {\n\t\t\tsetSideMenuList(sideNavList);\n\t\t}\n\n\t\tconst bottomNavList = filter(companyIcons, { iconCategory: \"bottom_nav\" });\n\n\t\t// const defaultBottomNavIcon = filter(companyIcons, { iconCategory: \"default_bottomnav_icon\" });\n\n\t\t// setDefaultIcon(defaultBottomNavIcon[0]?.iconImage);\n\n\t\tif (bottomNavList && bottomNavList.length > 0) {\n\t\t\tconst bottomNav = [];\n\n\t\t\tbottomNavList.map((x) => {\n\t\t\t\tconst defaultIcon = _BOTTOM_NAV_LIST.find(item => item.title === x.iconName) || {};\n\n\t\t\t\tconst sanitizedIconName = x.iconName.replace(/\\s*\\([^)]*\\)\\s*$/, \"\");\n\n\t\t\t\tbottomNav.push({\n\t\t\t\t\ttitle: sanitizedIconName,\n\t\t\t\t\tpathname: x.pathname ? \"/\" + WebUrl.getCurrentLocale() + x.pathname : defaultIcon.pathname,\n\t\t\t\t\timage: x.iconImage ? x.iconImage : defaultIcon?.image,\n\t\t\t\t\tactiveImage: x.activeIconImage ? x.activeIconImage : x.iconImage ? x.iconImage : defaultIcon?.activeImage,\n\t\t\t\t\tsubLink: [],\n text: _BOTTOM_NAV_LIST.filter(y => x.iconName && y.title === sanitizedIconName)[0].text || sanitizedIconName\n\t\t\t\t\t\t// .filter(y => x.iconName && y.title === sanitizedIconName)\n\t\t\t\t\t\t// .map(z => z.text) // take only the text from the filtered array\n\t\t\t\t\t\t// .join('') // Convert from array to string\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetBottomNavList(bottomNav);\n\t\t\tpreloadIcons(bottomNav);\t\t\t\n\t\t}else{\n\t\t\tconst bottomNav = [];\n\n\t\t\t// setDisplayDefaultIcon(true);\n\n\t\t\t_BOTTOM_NAV_LIST.map((x)=>{\n\t\t\t\tconsole.log(x)\n\t\t\t\tbottomNav.push({\n\t\t\t\t\ttitle: x.title,\n\t\t\t\t\tpathname: x.pathname,\n\t\t\t\t\timage: x.image,\n\t\t\t\t\tactiveImage: x.activeImage,\n\t\t\t\t\tsubLink: [],\n text: x.text\n\t\t\t\t});\n\t\t\t})\n\t\t\tsetBottomNavList(bottomNav);\n\n\t\t}\n\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\n\t\tconst alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n\t\tconst defaultGameIconTemp = filter(companyIcons, (icon) => {\n\t\t\treturn icon.iconCategory === \"default_game_icon\";\n\t\t});\n\t\tif (defaultGameIconTemp) {\n\t\t\tsetDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n\t\t}\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst getTempID = () => {\n\t\tvar tempId = \"\";\n\n\t\tif (!heartBeat) {\n\t\t\tif (localStorage.getItem(SessionKey._TEMP_GUID) !== \"\") {\n\t\t\t\ttempId = localStorage.getItem(SessionKey._TEMP_GUID);\n\t\t\t}\n\t\t\tif (tempId == \"undefined\" || tempId == null) tempId = \"\";\n\t\t}\n\n\t\treturn tempId;\n\t};\n\n\tconst currentYear = new Date().getFullYear();\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\t// window.location.href = channel.cta;\n\t\t\t\twindow.open(channel.cta, \"_blank\");\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction validateFooterSections(sections) {\n\t\tif (typeof sections.id !== \"number\") return false;\n\t\tif (typeof sections.title !== \"string\") return false;\n\t\tif (typeof sections.settings !== \"string\") return false;\n\n\t\tconst sectionJson = JSON.parse(sections.settings);\n\n\t\tif (typeof sectionJson !== \"object\") return false;\n\n\t\tconst result = sectionJson.every((x) => {\n\t\t\tif (typeof x.type !== \"string\") return false;\n\t\t\tif (typeof x.blocks !== \"object\") return false;\n\t\t\tif (typeof x.block_order !== \"object\") return false;\n\t\t\tif (typeof x.settings !== \"object\") return false;\n\t\t\treturn true;\n\t\t});\n\n\t\tif (!result) return false;\n\n\t\treturn true;\n\t}\n\n\tasync function getFooterSections() {\n\t\ttry {\n\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_THEME_SECTION_BY_HANDLE + \"?handle=footer&languageId=\" + activeLanguageId\n\t\t\t);\n\t\t\tif (\n\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY] &&\n\t\t\t\tObject.keys(responseJson[ApiKey._API_DATA_KEY]).length > 0\n\t\t\t) {\n\t\t\t\tlet footerSections = responseJson[ApiKey._API_DATA_KEY];\n\n\t\t\t\tif (validateFooterSections(footerSections)) {\n\t\t\t\t\tsetFooterSections(footerSections);\n\t\t\t\t} else {\n\t\t\t\t\t// console.error(\"Invalid footer section structure\", footerSections);\n\t\t\t\t\t// Handle invalid structure, e.g., set an error state or fallback\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// console.error(\"Error fetching footer sections:\", error);\n\t\t\t// Handle error, e.g., set an error state or retry\n\t\t}\n\t}\n\n\t// Set defaults\n\tconst _BOTTOM_NAV_LIST = [\n\t\t\n {\n title: \"Home\",\n\t\t\ttext: \"HOME\",\n\t\t\tpathname: WebUrl._URL_HOME,\n\t\t\timage: `${require('../../assets/img/icon/icon-bottom-home.svg')}`,\n\t\t\tactiveImage: `${require('../../assets/img/icon/icon-bottom-home.svg')}`\n },\n {\n title: \"Referral\",\n\t\t\ttext: \"REFERRAL\",\n\t\t\tpathname: WebUrl._URL_REFERRAL,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-referral.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-referral.svg')\n },\n {\n title: \"Promotions\",\n\t\t\t text: \"PROMOTION\",\n\t\t\t pathname: WebUrl._URL_PROMOTION,\n\t\t\t image: require('../../assets/img/icon/icon-bottom-promo.svg'),\n\t\t\t activeImage: require('../../assets/img/icon/icon-bottom-promo.svg')\n\n },\n {\n title: \"Livechat\",\n\t\t\ttext: \"LIVECHAT\",\n\t\t\tpathname: WebUrl._URL_LIVE_CHAT,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-livechat.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-livechat.svg')\n\n },\n {\n title: \"Account\",\n\t\t\ttext: \"ACCOUNT\",\n\t\t\tpathname: WebUrl._URL_SETTINGS,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-account.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-account.svg')\n\n }\n ];\n\n\tconst sanitizeUrls = (settings, translatedSettings) => {\n\t\tif (!settings.blocks) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tif (translatedSettings && translatedSettings.length !== 0) {\n\t\t\tvar translatedSettingsBlock = settings.blocks.map((b, index) => {\n\t\t\t\tvar match = translatedSettings[b.id];\n\t\t\t\t\treturn {\n\t\t\t\t\t...b,\n\t\t\t\t\tsettings : match ? match : b.settings,\n\t\t\t\t\tdefaultSettings : settings.blocks[index].settings,\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tsettings.blocks = translatedSettingsBlock;\n\t\t}\n\n\t\tsettings.blocks = Object.entries(settings.blocks).reduce(\n\t\t\t(acc, [block_id, block]) => {\n\t\t\t\tif (block && block.type === \"link_list\") {\n\t\t\t\t\tObject.entries(block.settings.links).forEach(([link_key, link]) => {\n\t\t\t\t\t\tif (!link.url) return; // Skip if URL is missing\n\n\t\t\t\t\t\t// Sanitize URL\n\t\t\t\t\t\tlink.url = link.url.replace(\"http://\", \"https://\");\n\n\t\t\t\t\t\t// CHRIS: Don't sanitize here - we should sanitize and redirect at the app level in case people browse to http://\n\t\t\t\t\t\t// if (!link.url.match(/^https?:\\/\\//)) {\n\t\t\t\t\t\t// \tlink.url = 'https://' + link.url;\n\t\t\t\t\t\t// }\n\t\t\t\t\t});\n\t\t\t\t} else if (block && block.type === \"image\") {\n\t\t\t\t\tif (typeof block.settings.image === \"string\") {\n\t\t\t\t\t\tblock.settings.image = block.settings.image.replace(\n\t\t\t\t\t\t\t\"http://\",\n\t\t\t\t\t\t\t\"https://\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tacc[block_id] = block;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\treturn settings;\n\t};\n\n\tuseEffect(() => {\n\t\tif (Object.keys(footerSections).length) {\n\t\t\tvar parsedSettings = JSON.parse(footerSections.settings);\n\t\t\tvar parsedTranslatedSettings = JSON.parse(footerSections.translatedSettings);\n\n\t\t\tsetSectionSettings(sanitizeUrls(parsedSettings[0], parsedTranslatedSettings));\n\t\t}\n\t}, [footerSections]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\tTODO: - Chris\n\t\t\t\t\t\t\t- Create a 2nd style for footer navigation (to accommodate for menus with very few links)\n\t\t\t\t\t\t\t- Single line centered navigation menu\n\t\t\t\t\t\t*/}\n\t\t\t\t\t\t{sectionSettings &&\n\t\t\t\t\t\t\tsectionSettings.block_order &&\n\t\t\t\t\t\t\tsectionSettings.block_order.length > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{sectionSettings.block_order.map((block_id, index) => {\n\t\t\t\t\t\t\t\t\t\tconst block = find(sectionSettings.blocks, {\n\t\t\t\t\t\t\t\t\t\t\tid: block_id,\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tif(block.defaultSettings?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (block.type === \"link_list\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.heading ? block.settings.heading : block.defaultSettings.heading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{Object.keys(block.settings.links).map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(link_key, link_index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst link = block.settings.links[link_key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst defaultLink = block.defaultSettings?.links.find(linkItem => linkItem.id == link_key);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t{link.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: Chris\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Add a checker link.internalLink to see if the link is internal or external\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// If external, use , if internal, use \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{link.name ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{link.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{defaultLink?.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (block.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block && block.settings.image ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (block.type === \"rich_text\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.heading ? block.settings.heading : block.defaultSettings.heading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.content ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \twindow.location.href = block.url;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \twindow.location.href = block.url;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>
\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{providerList?.length>0 && \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{providerList &&\n\t\t\t\t\t\t\t\t\tproviderList.length>0 &&\n\t\t\t\t\t\t\t\t\tmap(providerList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{!settingApiComplete ? (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tsettingApiComplete &&\n\t\t\t\t\t\t\t\t\t\tchannels &&\n\t\t\t\t\t\t\t\t\t\tchannels.length > 0 &&\n\t\t\t\t\t\t\t\t\t\tmap(channels, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(item.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

0) ? '15px' : '5px',\n }}>{t(\"FOOTER_NOTES\")}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tCopyright @{currentYear} {brandName}. All rights reserved.\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 footer */}\n\n\t\t\t{/* /////////t3 mobile bottom nav */}\n\t\t\t
\n \n\t\t\t {/* {\n displayDefaultIcon?(\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t):( */}\n\t\t\t\t\t{bottomNavList &&\n\t\t\t\t\t\tbottomNavList.length > 0 &&\n\t\t\t\t\tmap(bottomNavList, (item, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t_history.push({ // Chris: We use history.push instead of history.replace because it allows users to reliably go back or forwards\n\t\t\t\t\t\t\t\t\t\t\t\tpathname: item.pathname,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\treference: item.state,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", index);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] !== \"/\"+WebUrl.getCurrentLocale()+ \"/settings\") {\n\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", index);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t// backgroundImage: `url(\"${item[\"activeImage\"]}\")`,\n\t\t\t\t\t\t\t\t\t\t// backgroundSize:`${\n\t\t\t\t\t\t\t\t\t\t// \t\titem.text\n\t\t\t\t\t\t\t\t\t\t// \t\t\t? \"30px\"\n\t\t\t\t\t\t\t\t\t\t// \t\t\t: \"35px\"\n\t\t\t\t\t\t\t\t\t\t// \t}`\n\t\t\t\t\t\t\t\t\t\t// background: `url(\"${\n\t\t\t\t\t\t\t\t\t\t// \ttabActive === index\n\t\t\t\t\t\t\t\t\t\t// \t\t? item[\"activeImage\"]\n\t\t\t\t\t\t\t\t\t\t// \t\t: item[\"inactiveImage\"]\n\t\t\t\t\t\t\t\t\t\t// }\") center center / contain no-repeat`,\n\t\t\t\t\t\t\t\t\t\t// width: \"100%\",\n\t\t\t\t\t\t\t\t\t\t// height: \"68px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t> \n\t\t\t\t\t\t\t\t {/*
\n\t\t\t\t\t\t\t\t\t
*/}\n\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] == WebUrl._URL_LIVECHAT && unreadLivechat > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{unreadLivechat}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] == WebUrl._URL_PROMOTION && totalPromoClaimable > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{totalPromoClaimable}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.text && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(item.text)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t{/* )\n\n\t\t\t } */}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 mobile menu pop.up */}\n\t\t\t{openMobileSideMenu && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\t\t\tsideMenuList.length > 0 &&\n\t\t\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.replace({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"id\"] == 8) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (item[\"id\"] == 9) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.replace({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"id\"] == 8) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{channels &&\n\t\t\t\t\t\t\t\t\tchannels.length &&\n\t\t\t\t\t\t\t\t\tmap(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Footer;\n","import React from \"react\";\n\n/**\n * Author: -\n */\nconst InfoBox = React.forwardRef((props, ref) => {\n\tconst {\n\t\tname,\n\t\tclassName=\"\",\n\t\tcontainerClassName = \"\",\n\t\ticonClassName = \"\",\n\t\tcontentClassName = \"\",\n\t\tcontent=\"\",\n\t\ttype=\"default\",\n\t\t...rest\n\t} = props;\n\n\tconst typeConfig = {\n\t\tnotice: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t},\n\t\tdanger: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t},\n\t\tdefault: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t}\n\t};\n\n\tconst { iconColor, textColor, highlightColor, bgColor } = typeConfig[type] || typeConfig.default;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{/* */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{content}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n});\n\nexport default InfoBox;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { ApiKey,ClientTemplates } from \"../../util/Constant\";\nimport * as Util from \"../../util/Util\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showMessage, showResponseMessage } from \"../../redux/AppAction\";\nimport { setPageSize, setY, setBusy, setIdle } from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport ApiEngine from \"../../util/ApiEngine\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport axios from \"axios\";\nimport AbortController from \"abort-controller\";\nimport { find } from \"lodash\";\n\n/// \n/// Author: -\n/// \nconst DynamicLoadTable = (props) => {\n\tconst { t, i18n } = useTranslation();\n\tvar _supportInfiniteLoading = props[\"infiniteLoadEnable\"] ?? true;\n\tconst _dispatch = useDispatch();\n\tconst [dataList, setDataList] = useState([]);\n\tconst [totalRecords, setTotaRecords] = useState(0);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [searchEnabled, setSearchEnabled] = useState(false);\n\tconst [autoscrollEnabled, setAutoscrollEnabled] = useState(false);\n\n\tconst [apiQuery, setApiQuery] = useState(props[\"apiQuery\"]);\n\tconst [title, setTitle] = useState(\"TOTAL_RECORD\");\n\tconst [isTable, setIsTable] = useState(false);\n\tconst y = useSelector((state) => state.appState.y);\n\n\tconst _DEFAULT_PAGE_SIZE = 20;\n\n\tconst [pageSize, setPageSize] = useState(_DEFAULT_PAGE_SIZE);\n\tconst [template, setTemplate] = useState('template_1')\n\tconst latestApiQuery = useRef(props.apiQuery);\n\t// AbortController scoped to the component or module\n\tconst abortControllerRef = useRef(null); \n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [noDataBg, setNoDataBg] = useState();\n\n\tconst [triggerCount, setTriggerCount] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n\t\tif (noDataBg) {\n\t\t\tsetNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\tuseEffect(() => {\n\t\tif (!Util.stringIsNullOrEmpty(props[\"apiQuery\"])) {\n\t\t\tsetDataList([]);\n\t\t\tsetTitle(props[\"title\"]);\n\t\t\tsetApiQuery(props[\"apiQuery\"]);\n\t\t}\n\t}, [props[\"apiQuery\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tsetSearchEnabled(props[\"searchEnabled\"]);\n\t\tif (!props[\"searchEnabled\"]) {\n\n\t\t\tsetDataList([]);\n\t\t}\n\n\t\tif (props[\"autoscrollEnabled\"]) {\n\t\t\tsetAutoscrollEnabled(props[\"autoscrollEnabled\"]);\n\t\t}\n\n\t\tif (props[\"isTable\"]) {\n\t\t\tsetIsTable(props[\"isTable\"]);\n\t\t}\n\t}, [props[\"searchEnabled\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tif (props[\"returnRecord\"]) {\n\t\t\tprops.returnRecord(dataList);\n\t\t}\n\n\t}, [dataList]);\n\n\tuseEffect(() => {\n\t\tif (props[\"totalRecords\"]) {\n\t\t\tprops.totalRecords(totalRecords);\n\t\t}\n\t}, [dataList, totalRecords]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tsetPageSize(props[\"pageSize\"] ? props[\"pageSize\"] : _DEFAULT_PAGE_SIZE);\n\t}, [props[\"pageSize\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tlet templateFilter = ClientTemplates.filter((x) => x.hostname == window.location.hostname)[0]\n\t\t?.template ?? \"template_1\"\n\t\tsetTemplate(templateFilter)\n\t\tif (!Util.stringIsNullOrEmpty(apiQuery)) {\n\t\t\tgetDataList();\n\t\t}\n\t}, [apiQuery, searchEnabled, pageSize]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tif (_supportInfiniteLoading) {\n\t\t\t// Reset trigger count when dataList is reset to first page\n\t\t\tif(dataList.length <= pageSize){\n\t\t\t\tsetTriggerCount(0);\n\t\t\t}\n\n\t\t\t// var container = document.querySelector('.page-content-full-height');\n\t\t\t// container.addEventListener(\"scroll\", onScrollHandler);\n\n\t\t\twindow.addEventListener(\"scroll\", onScrollHandler);\n\n\t\t\tconst popUpModalId = document.getElementById('modalBody');\n\n\t\t\tif (popUpModalId) {\n\t\t\t\tpopUpModalId.addEventListener(\"scroll\", onScrollHandlerModal);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener(\"scroll\", onScrollHandler);\n\t\t\t\t// container.removeEventListener(\"scroll\", onScrollHandler);\n\n\t\t\t\tif (popUpModalId) {\n\t\t\t\t\tpopUpModalId.removeEventListener(\"scroll\", onScrollHandlerModal);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}, [dataList, totalRecords, isLoading, pageSize]);\n\n\tuseEffect(() => {\n\t\tcheckTriggerInfiniteLoading('.t3-game-list-box');\n\t}, [triggerCount]);\n\n\tasync function onScrollHandlerModal() {\n\t\tif (isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar popUpModalId = document.getElementById('modalBody');\n\n\t\tconst windowHeight = popUpModalId.clientHeight\n\t\tconst docHeight = Math.max(\n\t\t\tpopUpModalId.scrollHeight,\n\t\t\tpopUpModalId.offsetHeight,\n\t\t\tpopUpModalId.clientHeight,\n\t\t);\n\n\t\tconst windowBottom = windowHeight + Math.ceil(popUpModalId.scrollTop);\n\n\t\tif (autoscrollEnabled && popUpModalId.scrollTop > 0) {\n\t\t\t_dispatch(setY(popUpModalId.scrollTop));\n\t\t}\n\n\t\tif (popUpModalId) {\n\t\t\tconst modalElement = document.getElementById('modalBody');\n\t\t\tconst modalBottom = modalElement.scrollHeight - modalElement.clientHeight;\n\t\t\tconst modalScroll = Math.ceil(modalElement.scrollTop);\n\n\t\t\tif (modalScroll >= modalBottom && !isLoading) {\n\t\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\t\tmodalElement.scrollTo({ top: modalBottom, behavior: 'smooth' });\n\t\t\t\t\tsetIsLoading(true)\n\t\t\t\t\tgetDataList(dataList);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (windowBottom >= docHeight && !isLoading) {\n\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\tsetIsLoading(true)\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function onScrollHandler() {\n\t\tif (isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chris - use this instead\n\t\tcheckTriggerInfiniteLoading('.t3-game-list-box');\n\n\t\tvar container = document.querySelector('.page-content-full-height');\n\n\t\t// const windowHeight =\n\t\t// \t\"innerHeight\" in window\n\t\t// \t\t? window.innerHeight\n\t\t// \t\t: document.documentElement.offsetHeight;\n\t\t// const body = document.body;\n\t\t// const html = document.documentElement;\n\t\t// const docHeight = Math.max(\n\t\t// \tbody.scrollHeight,\n\t\t// \tbody.offsetHeight,\n\t\t// \thtml.clientHeight,\n\t\t// \thtml.scrollHeight,\n\t\t// \thtml.offsetHeight\n\t\t// );\n\n\t\t// const windowBottom = windowHeight + Math.ceil(window.pageYOffset);\n\n\t\tconst windowHeight = container.clientHeight\n\t\tconst docHeight = Math.max(\n\t\t\tcontainer.scrollHeight,\n\t\t\tcontainer.offsetHeight,\n\t\t\tcontainer.clientHeight,\n\t\t);\n\n\t\tconst windowBottom = windowHeight + Math.ceil(container.scrollTop);\n\n\t\tif (autoscrollEnabled && container.scrollTop > 0) {\n\t\t\t_dispatch(setY(container.scrollTop));\n\t\t}\n\n\t\tvar popUpModalId = document.getElementById('t3-custom-modal-withdraw');\n\n\t\tif (popUpModalId) {\n\t\t\tconst modalElement = document.getElementById('popUpModal');\n\n\t\t\tif(modalElement){\n\t\t\tconst modalBottom = modalElement.scrollHeight - modalElement.clientHeight;\n\t\t\tconst modalScroll = Math.ceil(modalElement.scrollTop);\n\n\t\t\t// if (windowBottom >= windowHeight && !isLoading) {\n\t\t\t// \tif (dataList.length < totalRecords) {\n\t\t\t// \t\tgetDataList(dataList);\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t\tif (modalScroll >= modalBottom && !isLoading) {\n\t\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\t\tmodalElement.scrollTo({ top: modalBottom, behavior: 'smooth' });\n\t\t\t\t\tgetDataList();\n\t\t\t\t}\n\t\t\t}\n\t\t }\n\t\t} else if (windowBottom >= docHeight && !isLoading) {\n\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction checkTriggerInfiniteLoading(elem) {\n\t\t// Chris: do not look for the end of the page-content-full-height, we look for the div that contains the content\n\t\tvar listContainer = document.querySelector(elem);\n\t\t\n\t\tif(listContainer){\n\n\t\t\t// Then find the bottom part of that div (Get the height of the div)\n\t\t\tvar triggerHeight = listContainer.offsetHeight + listContainer.offsetTop;\n\n\t\t\t// // Debug - add red line\n\t\t\t// document.querySelectorAll('.red-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'red-line', style: `height: 1px; background-color: red; position: absolute; top: ${triggerHeight}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Add some buffer so that we can lazy load the next page before we hit the red line\n\t\t\tvar bufferTriggerHeight = triggerHeight - 200;\n\n\t\t\t// // Debug - add yellow line\n\t\t\t// document.querySelectorAll('.yellow-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'yellow-line', style: `height: 1px; background-color: yellow; position: absolute; top: ${bufferTriggerHeight}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Now we can track the viewport to see if it cross the red line\n\t\t\tvar viewportTracker = window.scrollY + window.innerHeight - 100;\n\n\t\t\t// // Debug - add green line\n\t\t\t// document.querySelectorAll('.green-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'green-line', style: `height: 1px; background-color: green; position: absolute; top: ${viewportTracker}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Load the next page if we are below the red line\n\t\t\tif (viewportTracker > bufferTriggerHeight\n\t\t\t\t&& dataList.length < totalRecords\n\t\t\t\t&& triggerCount < 3\n\t\t\t\t&& !isLoading\n\t\t\t) {\n\t\t\t\tsetTriggerCount(triggerCount + 1);\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t\t// Chris - infinite load end\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tlatestApiQuery.current = props.apiQuery;\t\n\t}, [props.apiQuery]);\n\n\tuseEffect(() => {\n\t\tgetDataList();\n\t}, [latestApiQuery.current]);\n\n\tasync function getDataList(list, signal) {\n\t\tif(props.abortController){\n\t\t\tif (abortControllerRef.current) {\n\t\t\t\tabortControllerRef.current.abort();\n\t\t\t}\n\t\t}\n\t\t\n\t\tabortControllerRef.current = new AbortController();\n\n\t\tif (!props.apiQuery) return;\n\n\t\tif (searchEnabled && !isLoading) {\n\t\t\tsetIsLoading(true);\n\n\t\t\tvar pageNumber = Math.ceil(dataList.length / pageSize);\n\t\t\tvar isQueryStringAppended = latestApiQuery.current.includes(\"?\");\n\t\t\tvar apiUrl =\n\t\t\t\tlatestApiQuery.current +\n\t\t\t\t(isQueryStringAppended ? \"&\" : \"?\") +\n\t\t\t\t\"count=\" +\n\t\t\t\tpageSize +\n\t\t\t\t\"&start=\" +\n\t\t\t\tpageNumber * pageSize;\n\n\t\t\t// try {\n\t\t\t\tlet responseJson = await ApiEngine.get(apiUrl, { signal: abortControllerRef.current.signal });\n\t\t\t\t// await new Promise(resolve => setTimeout(resolve, 300));\n\t\t\t\t\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\tif (latestApiQuery.current === props.apiQuery) {\n\t\t\t\t\t\tsetDataList([...dataList, ...responseJson[ApiKey._API_DATA_KEY].data]);\n\t\t\t\t\t\tsetTotaRecords(responseJson[ApiKey._API_DATA_KEY].totalCount);\n\t\t\t\t\t\tif (props.onComplete) {\n\t\t\t\t\t\t\tprops.onComplete({\n\t\t\t\t\t\t\t\ttotalDataLoaded: [\n\t\t\t\t\t\t\t\t\t...dataList,\n\t\t\t\t\t\t\t\t\t...responseJson[ApiKey._API_DATA_KEY].data,\n\t\t\t\t\t\t\t\t][\"length\"],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\tvar isQueryStringAppended1 = latestApiQuery.current.includes(\"?\");\n\t\t\t\t\t\tvar currentApiUrl =\n\t\t\t\t\t\t\tlatestApiQuery.current +\n\t\t\t\t\t\t\t(isQueryStringAppended1 ? \"&\" : \"?\") +\n\t\t\t\t\t\t\t\"count=\" +\n\t\t\t\t\t\t\tpageSize +\n\t\t\t\t\t\t\t\"&start=\" +\n\t\t\t\t\t\t\tpageNumber * pageSize;\n\t\t\t\t\t\tlet currentResponseJson = await ApiEngine.get(currentApiUrl, { signal: abortControllerRef.current.signal });\n\t\t\t\t\t\tif (currentResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t\tsetDataList([...dataList, ...currentResponseJson[ApiKey._API_DATA_KEY].data]);\n\t\t\t\t\t\t\tsetTotaRecords(currentResponseJson[ApiKey._API_DATA_KEY].totalCount);\n\t\t\t\t\t\t}\n\t\t\t\t\t} \n\t\t\t\t\tvar container = document.querySelector('.page-content-full-height');\n\n\t\t\t\t\tif (autoscrollEnabled && container.scrollTop == 0 && y > 0) {\n\t\t\t\t\t\twindow.scrollTo(0, y);\n\t\t\t\t\t}\n\t\t\t\t\t// var container2 = document.getElementById('modalBody');\n\n\t\t\t\t\t// if (autoscrollEnabled && container2.scrollTop == 0 && y > 0) { \n\t\t\t\t\t// \twindow.scrollTo(0, y);\n\t\t\t\t\t// }\n\t\t\t\t} else {\n\t\t\t\t\tif(props.abortController == false){\n\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t// } catch (error) {\n\t\t\t// \tconsole.error(\"Error during fetch:\", error);\n\t\t\t// \tsetIsLoading(false);\n\t\t\t// \tif (axios.isCancel(error)) {\n\t\t\t// \t\tconsole.log('Request was cancelled');\n\t\t\t// \t} else {\n\t\t\t// \t\t_dispatch(showResponseMessage(false, t(\"Error loading data\")));\n\t\t\t// \t}\n\t\t\t// }\n\t\t} else {\n\n\t\t\tsetDataList([]);\n\t\t\tsetTotaRecords(\"0\");\n\t\t}\n\t\tsetIsLoading(false);\n\t\t//window.scrollTo(0, 200);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{dataList.length == 0 &&\n\t\t\t\t!isLoading &&\n\t\t\t\tprops[\"type\"] == \"notification\" && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"NO_NOTIFICATIONS\")}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t{dataList.length == 0 &&\n\t\t\t\t!isLoading &&\n\t\t\t\tprops[\"type\"] != \"notification\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!props[\"noDataSecondDesign\"] ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND2\")}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t{dataList.length != 0 && (\n\t\t\t\t<>\n\t\t\t\t\t{dataList.map((data, i) => {\n\t\t\t\t\t\tdata.dataLength = dataList.length;\n\t\t\t\t\t\treturn props.render(data, i);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{isLoading && isTable && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t{isLoading && !isTable && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{dataList \n\t\t\t&& dataList.length > 0 \n\t\t\t&& dataList.length < totalRecords \n\t\t\t&& triggerCount >= 2 \n\t\t\t&& !isLoading \n\t\t\t&& !isTable \n\t\t\t&& (\n\t\t\t\t {\n\t\t\t\t\t\tsetTriggerCount(0);\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{ cursor: \"pointer\", gridColumn: \"1 / -1\", justifySelf: \"center\", marginTop: \"20px\" }}\n\t\t\t\t>\n\t\t\t\t\t{t(\"LOAD_MORE\")}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default DynamicLoadTable;\n","import { createMultiPartFormBody } from \"../util/Util\";\nimport { ApiKey, ApiUrl } from \"../util/Constant\";\nimport {\n\tshowResponseMessage,\n\t_SET_RESET_PASSWORD,\n\t_BIND_MEMBER,\n\t_BIND_MEMBER_WALLET_BALANCE,\n\tuserKeepLogin\n} from \"./AppAction\";\nimport ApiEngine from \"../util/ApiEngine.js\";\nimport { _SAVE_LANGUAGE_ID } from \"./LanguageAction\";\n\nexport const _LOGIN_SUCCESS = \"LoginSuccess\";\nexport const _LOGIN_FAILED = \"LoginFailed\";\nexport const _LOGOUT = \"Logout\";\nexport const _GET_SHOP_CREDIT = \"GetShopCredit\";\nexport const _UPDATE_USER_DATA = \"UpdateUserData\";\nexport const _LOGIN_MODAL = \"LoginModal\";\n\n/// \n/// Author :\n/// expose login action as function to be called from classes\n/// \nexport function performLogin(\n\tusername,\n\tpassword,\n\tselectedLanguage\n) {\n\treturn async (dispatch, getState) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t\tlet params = {\n\t\t\tusername: username,\n\t\t\tpassword: password,\n\t\t\tselectedLanguage: selectedLanguage,\n\t\t};\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_LOGIN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar userData = responseJson[ApiKey._API_DATA_KEY][\"userData\"];\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"login\",\n\t\t\t\t\t\tjwtToken: responseJson[ApiKey._API_DATA_KEY][\"jwtToken\"],\n\t\t\t\t\t\tuserId: userData[\"userId\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tuserData: userData,\n\t\t\t});\n\t\t} else {\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY],\n\t\t\t});\n\t\t\tdispatch(\n\t\t\t\tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport function performLoginReturnMessage(\n\tusername,\n\tpassword,\n\tselectedLanguage,\n\tisKeepedLogin,\n\tisLoginAttemptBlockingEnabled\n) {\n\treturn async (dispatch, getState) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t\tdispatch(userKeepLogin(isKeepedLogin));\n\t\tlet params = {\n\t\t\tusername: username,\n\t\t\tpassword: password,\n\t\t\tisKeepedLogin: isKeepedLogin,\n\t\t\tselectedLanguage: selectedLanguage,\n\t\t\tisLoginAttemptBlockingEnabled: isLoginAttemptBlockingEnabled\n\t\t};\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_LOGIN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar userData = responseJson[ApiKey._API_DATA_KEY][\"userData\"];\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"login\",\n\t\t\t\t\t\tjwtToken: responseJson[ApiKey._API_DATA_KEY][\"jwtToken\"],\n\t\t\t\t\t\tuserId: userData[\"userId\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tuserData: userData,\n\t\t\t});\n\t\t\tdispatch({\n\t\t\t\ttype: _SET_RESET_PASSWORD,\n\t\t\t\tisResetPassword: userData[\"isResetPassword\"],\n\t\t\t});\n\t\t\t\t\n\t\t\treturn {\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tmessage: _LOGIN_SUCCESS\n\t\t\t}\n\t\t} else {\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY],\n\t\t\t});\n\t\t\treturn {\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t}\n\t\t}\n\t};\n}\n/// \n/// Author :\n/// this function is to only update user status to login if it is already considered authenticated in cookie\n/// \nexport const updateLoginUser = (userData) => {\n\treturn {\n\t\ttype: _LOGIN_SUCCESS,\n\t\tuserData: userData,\n\t};\n};\n\nexport const updateWalletBalance = (userData) => {\n\t\n\treturn {\n\t\ttype: _BIND_MEMBER_WALLET_BALANCE,\n\t\twalletBalance: userData.walletBalance + userData.bonusBalance,\n\t\twalletsDetails: {\n\t\t\tcurrentWalletBalance : userData.walletBalance,\n\t\t\tbonusWalletBalance :userData.bonusBalance,\n\t\t\tisPromoCleared :userData.isPromoCleared,\n\t\t\tisBonusWalletRestored : userData.isBonusWalletRestored,\n\t\t\tisValidForPromotion : userData.isAnyTransactionValidForPromo,\n\t\t\tisActivedPromoExist: userData.isActivedPromoExist,\n\t\t\tpromoMaxWithdrawal: userData.promoMaxWithdrawal\n\t\t}\n\t};\n};\n\n\n\n/// \n/// Author :\n/// \nexport const updateUserData = () => {\n\treturn async (dispatch) => {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_UPDATE_USER_DATA);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tdispatch({\n\t\t\t\ttype: _UPDATE_USER_DATA,\n\t\t\t\tuserData: responseJson[ApiKey._API_DATA_KEY],\n\t\t\t});\n\t\t}\n\t};\n};\n\n/// \n/// Author :\n/// expose logout action as function to be called from classes\n/// \nexport const performLogout = () => {\n\treturn async (dispatch) => {\n\t\tvar responseJson = await ApiEngine.post(ApiUrl._API_LOGOUT);\n\n\n\t\tawait responseJson;\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({ message: \"Succesfully logged out.\", code: \"LOGOUT\" })\n\t\t\t);\n\t\t}\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\n\t\tdispatch({\n\t\t\ttype: _BIND_MEMBER,\n\t\t\tmember: [],\n\t\t\twalletBalance: 0,\n\t\t\twalletsDetails: {\n\t\t\t\tcurrentWalletBalance: 0,\n\t\t\t\tbonusWalletBalance: 0,\n\t\t\t\tisPromoCleared: false,\n\t\t\t\tisBonusWalletRestored: false,\n\t\t\t\tisValidForPromotion: false,\n\t\t\t\tisActivedPromoExist: false,\n\t\t\t\tpromoMaxWithdrawal: 0\n\t\t\t},\n\t\t});\n\t};\n};\n\n/// \n/// Author :\n/// this function is to only update user status to logout\n/// \nexport const resetLogin = () => {\n\treturn async (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t};\n};\n\nexport const forceLogout = () => {\n\treturn async (dispatch) => {\n\t\tlocalStorage.removeItem(\"isOnload\");\n\n\t\tdispatch(showResponseMessage(false, \"FORCED_LOGOUT\", true));\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t};\n};\n\n/// \n/// Author : -\n/// \nexport const heartBeat = () => {\n\treturn async (dispatch, getState) => {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_IS_LOGGED_IN); //, createMultiPartFormBody(params));\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tdispatch(updateWalletBalance(responseJson[ApiKey._API_DATA_KEY]));\n\t\t\tdispatch(updateLoginUser(responseJson[ApiKey._API_DATA_KEY]));\n\t\t} else if (\n\t\t\t!responseJson[ApiKey._API_SUCCESS_KEY] &&\n\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY] == \"FORCE_LOGOUT\"\n\t\t) {\n\t\t\tdispatch(forceLogout());\n\t\t} else {\n\t\t\tdispatch(resetLogin());\n\t\t}\n\t};\n};\n\nexport const setToggleLoginModal = (isToggleLoginModal) => {\n\treturn (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _LOGIN_MODAL,\n\t\t\tisToggleLoginModal: isToggleLoginModal,\n\t\t});\n\t};\n};\n","import React from \"react\";\nimport { getValidationMessage, stringIsNullOrEmpty } from \"../../util/Util\";\nimport { useTranslation } from \"react-i18next\";\nimport { ApiKey } from \"../../util/Constant\";\n\n/**\n * Author: -\n */\nconst Input = React.forwardRef((props, ref) => {\n\tconst {\n\t\tname,\n\t\tcontainerClassName = \"\",\n\t\tlabelClassName = \"\",\n\t\tinputClassName = \"\",\n\t\ttype = \"text\",\n\t\tlabel,\n\t\tsmall,\n\t\tplaceholder = \"\",\n\t\terrors,\n\t\tdisabled,\n\t\tinputGroupType,\n\t\tinputGroupContent,\n\t\tonChange,\n\t\tautoComplete,\n\t\t...rest\n\t} = props;\n\tconst { t, i18n } = useTranslation();\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{label && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{inputGroupType ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t{inputGroupType == \"prepend\" && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{inputGroupContent}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{inputGroupType == \"append\" && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{inputGroupContent}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t) : !disabled ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t
{props.value}
\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{small &&
{small}
}\n\t\t\t{errors\n\t\t\t\t? errors[name] && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(errors[name][ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t\t\t\t\t? t(getValidationMessage(errors[name]))\n\t\t\t\t\t\t\t\t\t: t(errors[name][ApiKey._API_MESSAGE_KEY])}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t )\n\t\t\t\t: \"\"}\n\t\t\n\t);\n});\n\nexport default Input;\n","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-home.98146925.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-referral.e441b82d.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-promo.3888b014.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-livechat.5a7c4140.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-account.3093688b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOySURBVHgBnVXPT1xVFP7unTe8YTrlRztDpUBlWki0XTDaxCZGkhIThVZDbTXqwgiNG1etfwFpgm6FhTsjoAsTf8RpYuqG2Ek1miYqY0LpolCg7dAWaGce84CZN/Pu7bmPznR+MED7JZN579xzv3PuOd89j2ELdF9eOs44P8UY723xzde90/JT3caKjEIiKm021tM4GKm0n1Ui5S5thDG06jyNKlcabzVdhN+zWO4s5ZyEvNDT8MXotuQnr8S/JOt59ayIPwx+h91uA9uBQQ69Gfj8M1QiP/FHfIIModx7574IQvX/lhGNznyCZKYWr/j/wjH/33l7xkbk7ecGu8rIcxnrVIIPWr+F+leYWH4e7TUL2Osx8yTXjSNYydTgcO1U2anSGTnUu3/jBA75iSvLfYy5RtRzDTl/fOjrfIaLaz4kUgv49PA4vJrl2PfqJipBSOC+ga7+9sGItmFyDeQjC4+TmYI6erWbVnkTvrr+PoxUBpYQ1NgkBl6+mA9WCE7pVutSJRpkShkuTbuMHcCyBaYeGERuEnm4iHwtA8waPjT5THgo5bsmujTScV8piVJJx57/cNA3TbVPlQSQREry5BbmjSpat+D3AibFGZk5g94D/6B99zUwW5zSOOcdhZtr3Cs4feCHyvJzb/wlKObYzOswLB/Otv3m1FrAg6jRjZVsAL8vtPRyFEhPQclrJ7pWR3+j8SrWbR3fTPfgl9udqNZcztrN1aOqd3W8dFOz9zZ2AkUeCjxE/6FLdEkZ5s1G7PHoTxwk6lRzE3hGqAAdFOBs+yW8UF9FY+JJrqr5XEhZVIOpxzLcKaqoEvt3mWioXs3b1rM2bBpunM4ULnT+P34Uy+kGPA0sG9TEhiJySBZVaglTo8/lFtLUoO9nP8KLtZPw60vOGFA/JctKWE4Fit7vra6DieyYc/1P/hmfpQa0YguoAaYG2WZZX1084khQ4WHKwq3k6lzs9MGg0wEm0Y9tEKVyxdaay+xZARiZwONAwskaUlxQ7w75r531EQYxvF2A8bvdpF+9yKauvaq3LSWmE0lY2exw7EzbqJN0oeNr44sTtbo7tFWAXHlSWSKlqTwRfxWTxjGaKyZdKDtK5Xgp51v2JaIAQ3TTzhVqthTBXZPw8iXcS7fhxso+xJJrsIU9HHu37Xyh36bf0Kafp/sCXu8AnaLV59bK1tXYNahxqnmU7RyzWf+d94KRUr9NyXNo/nH2uGSyT3exkFtzdaiG2UImskIYtDHMJA9vRprDI1YMgSox3y/ZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAjCAYAAADWtVmPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA7uSURBVHgBzVlrjFznWX6+71zmnLnuzO7O3teb2JuLndSJnbgBJbITpRQ1qbhUgRABlVCFUFH5VwkhoSQVP2gkhEShCKgQgaJKMShNAxWt0sSVG8Vp4mLHjh3vru31rvc6O/fLuZ+P58xuIERN7Lio9GiPZnbOme+8l+d53vf9RuD/6XBee3xGi1eOxLG4Q0XRoNARCSmXXCd+wxsxjpfvONb5KOsJ/JQO9Rw0ZL+gY3Yh77e8v48bvU/B96Q2mAVSBuT0PiDwoKIawquVmt92/7jw0Otfvd71JX6CQylIpZ7T+udTH7xW/9r476T9yfZNvma8GvnBo0G3J7WbJyAGBxFV2lBzJ6DW54CNKozxYsk0xV/Vvnffp3Gdh44bPJQ6ouPUTBbyP0YQRGH425+d8H+tfUD0OlbQNZc6sf2t8oNHt+Hx5BGJszKtxfFdKN05G3dPwOyYEJ4DkSnyNBBHPpScBhqXoIsWlCagueoIv/3i9dhzw45gcUZHWpTC0P6MNp55WHSXHqQ1iAIN5oBA0e01ai889EelX3r5r3GM9082Y7Ttpje3GOiFnCGmUwAdUQuX4K00kRlLIcI8UMohNi2orQBavVy5XnNu3JHkcCJdlOUDCo0H/ctbCBa2oNkpxH5I3GsDub1jX228+Oj9q8tlRy61BMzakubrXtDdMqy8i8zuAWhDZWRGylAxcR4q8iQLf3EL7fMV5G4dSV+vKTdM9j60XrolEx9ILcfNSi56cx76YRI2b3FVifjsClS1DowMY+vMev9Jhq4QNARSdgHK3IA9EJNkBiGEPtEj14WIY3idGI6TQ2pvFkGrNTryxNmNa9lzw2S/8EzerleaX0T+UA5+BG18ACKfoyFp+GevQgylITMpaBkLqbSJnNZCtNWEtAQptQG34sNthtAnfXRDD4ETI3QVnLZAva6jJUJmV4PW3VVS1xHwG4LW6j/8wkGvvv4Nv27NhrVlRjOAlBGz5EJ1qzB3Z6Aur0NZFqK1TdgjWXTeWYeWn4SWakO3AohijFiPIYbHkc9XsfRN8iW2GAwLhYN7oCsSft5DXNhVP3YEmjrGOkMgfJBNHzkjla898rimt7+fHuzNZmcJjfXjVBk+ojgGdYXk0GkhbAirCBl3oJdptA2EwQzSUwZU0KQ6hQxxDIOiIPL3MJwBstMmirNZFEsa5OIcWsfnoML0Vu3N013nzj3atey6roz8yZe/9lnDND6pa/r46wM4LLKjCGDBsjKw/BQpIRHSh1MnXtPv/fmfg09XwoS4IZ1orGI6PIrJWyMgPgVSHe6yZAQVcjfRQ+fbEKGDepX8IlcKAbkW9eiwjmazZy+0W7rU4T+9Da+fLCPtZufjnY7/G5Pa4uHVk28gVxhCo9ZEs1pDg4Ru1RpoLZ7FbOMErrz8Akw+sluvorq5iZXVEC+8dQgXKFr+chUip6D1mLhhAT1Bf0qgE49h/cCXsX7oS1jZyqBaU/BzFuyyE0xlNv3yHYX4yQ9x4rodCUK1du9siE9+PIOJtIbK6ibiIGSHQcL2XDhdB7fPuLh1wkImncHq0irrSdAPYTZrs+0w8K8n7sXp3t3oLreBwRgpUyHe8iG6dZxZ+HXUFs7hu0e/AzHCUvKJ+5AbpEi4haUrrUnVXjuprmXjdUErLd3wyD0lLH7vHBYbFmYaV+AGEpEj4ScgkRom97o4te6iHXYwkFmHY6YJOR2amYVlaHBljG/PPwRMdbE/Po+oTnHwFFYWD+Liuo61yjrSqRRSmxuIT1xBFDEAYxPL4+OruPQ2lLhGRq7Lkd9/WLPgdDD/9jyjSDi1j2Mwy4carMBcYmBiiPg7gJ7TRLb3CvRzEUqaiSzh8cNz/Gz8Y+imZsiqAP9++RdR/MQjlFkHRnMOb7QegB8I2MyQdLeQarFpFFQ7OwMvv/ZQJjVSfmzf2pI6CvFhzlzTETaGwvlR/oHGWgXDeYlbZkZRymh0woQUSdQNmDPT6FY7GGLtuLucZgbivhyDteHSf55F9dQ7KI7uQ7V8GNB0ZG5/As/95dcxOHQ/rJSEziyq+ZexfyYFr7wfYXwVpb0mUjJj6/tHL1d7ufXg7zpHryJ6ZuJzp1eEEOojOTL/F3vyjWe1I6k7w/1Oow2bxWwwb8BmQyeEQSfY2PG9PlBE5+wVDOQ0coQ54udSRdhiAbxtIgevZGKtehGZy0uoTj+KuTML2LN7mjwowHnrRRgLx6H5Lgq7pqCm9iE7OIqouwyvJuDYdWTHUqNmzv6Cv7zxm8vPHvplBvc406Ou6Uhv5fEpvdf9U+/i1c+0z9ZTKX4lCnxCJYEAq/jO16TGCxlmhlnp0dGRQgSDn0lNo6Ta6NVXkaUqpRQzOGTDoy5PbP0LVt4Apu//NFv3Yxha+wFkQTIoaYSNDYjNCVSX6yjF64jye9Bt1ZGixBtjGSaTRUpEnwee+gHPD3dEOZ+7Kd6qvNpbvDrmVZpIZe5A0HVpnAHdDGHqzEask+CEjxYiHpqA3+xSvVps/ljhNdYInYXPNeG7IdWJrUrs0Pmg72QuPYB47SWc/+Yq9mIJWbYxih1jxB5LhRbblABx24Nn6ui1NzE0ztAbXDOmCuZM6GsdVtunrg0tf917XDfFWNxowYh3QRDv7VodhdEyXyPourZNORHDt0uwCoNYOTUPU9ZhEv8iNlnMFNxWANOU0BKK6mw9Ykad/VMUK4xnJYr+Ba7Fx7OYxryWjAAqUui2aXC3gy5hNzEj+wVUzo5AMzKITp+Hqnv1H0f6viNq8/NshtZ+1a+0f6934sLH0vtyUNkpyHqetSJGd20V5dtuRmv9VrawyyQ54SfoxORedDnRXbl8BXdMsz6oHE8TiVi2qW4Zi3mgIREdQMJPGr1N0wSidCCpNMkfz1htdwMF/21khzykaZohB2HfySmSPZlqswEumhTP6If4MYeu1v8xE3rfOh5sNe8KN5oI2zHcV+ZQb87Ckk0EKsMHbmDzIluN/XehU2eWCLNMJoP2WhXnT76DPC4gZw1B+RobQRpt2GjVm7BMOhJFjDgHLq7SLwYiaU5k3wGZtPv8T/VbGtYkcig/IGGICJm9NyG7v4ywUoO3WGW2YpjlLPKTuT+rPJ+vD//Ka9/4X45ExdcfFpvqrnC9xhuLrOIk9oUKmut1dKRN7HcZEXa86y+heeAAhscHuaiLjbeXsHRlHWZ3HtPTOXS3uJjkuEosK5P9lMP5whMsbDSUShzRi1ip/+mY+vggNwI6QUf0PFsXcsEas2EVBXKH70ZcuYzw0jJSu0f60ItqLoKNjpUfLn59+Z/uW5v6rRPH3nVE9J479IR+z9g/q54HLRluttrYONlCY4nGRKOobfVoYCJREapOAC+dR0RCgyo2nHIwNZwmiUUfblq/R2XhYcQb9R5hROMj1YeQStLRf5VJKljxJcr3pjA0G8FOkxfMHgoDgHU7YqcEOf4AojNPQ0QUg9sIL5B7bg/hjxbYUefQ2whOvXph5b5P/cGC189I3OhW3ZfOQ7+5BDFagJwaxFCahel0B+0z1HFmKAEwg4UMoaB3G32IpC2O7IRYtxURats4T/xLalXigO9FfeOTTCSubDuy3dqlBkzs/d0itOYm+hDIctTlWqrGwphZoHIeZM/1ne37baqekeZcU4d/+jJSs4NAk+gZHL1rWut97CngJM9Y92vOCaUpNz5XsbDGoWfAhkFJnL493VePdieLykaX1GPhI1kTpdFkUliSvYMIflI3dlrPvkDRqYgtfZzc0HeET+lf274puXfi0ACsnISz4MCaKQO5EmHDQapLnEkHzuI55GbNPiTd+SpixjzDecXaV0LMqTK6TJQcMJnt6JaxgziFk3Sk9IeXmptf2vXF2Mefa3qgJzhls0O5jDA54qFWkuj0Un2IJcjRGXZDi+mQ6hfE/tlXpMRYsf0+4QLzEJGgiRPxjpOSzaUg/qI6I6+NQJ+aYDTIq8UVeJRro1dDEqPWXAvm8ADMWwuwvVW4Fzn/j0xyNuBA5rjQd3NPQvNohxe/y5E+qu99pXkyfyD7vArjLNfJSSXyRLf0nVCFvU7cbuvwQik6XMgPIngBNwh8xZMQ8tGv2B7n9uRaojwh05DUC3fnniA0qEoGFcyEFyW7SD5KrTXIAcKmlGe4U/0gGOUS37MSdBTap1rI7WFAR21ozFa00uL8T9hGHmE3SNLXOldP1J5Zv9yo/NsaYrFNT4i/PQj9lqmZzIaH25QhHpEq3s1QUj/iIr+ec4NUgRIjAl8YnsetDyW0RBGZD+600Q5tG1aSIWVd7HPKi+I+SRPZS0iehE+KWA0VAjx4vy80W4dZtGggizU3KAhxwquHxnIPV9dsDA9nMPIQhWEXCd9KZheukLYRb7ionN76yut/s/Z0Md1uPngMoY4dJVQnEeLmxfZ3eyNnmhqrXiTJfNh6JGxdqLStuzZtsdkrWnE6ygil8lSkAZK5SHsHgkiWwlgWglhl4cmUaxjD1H4vpbpdOicsGqmLKGlcBTcSxZV505q+WZQk647UmNZEzaKQRPeRNhi6sK2uzKmGpDZmxpy0OZp01Mxus1arvNX6ysLz1Weno7Zz6Rh2Suz7jiQ7Rx+DHK5AVIbpytVJzc0FstCNZNqOZKYbab3YMpQepBxDpiOJfKhpA0IZ3G0TBcY0z5YjTXZYMlZaomRMkuIRJwLWr+dRn0picEQWpmeNe3Jj1piZTRU0fhg6vufWvMrFN3vnWyveqm7rTml2yM6McLyrd+c6i/XT7la46ChZs+1a78jO7sqH7he9u5+UDP5P7nx2lO+HjxBrbTaqZW4OamOaXvF0V9lGmDaMKPYNzYp0IzRlkJgOkjIx2323ArPd1JVkoWSilEj+16XS0gWRDSKRCdzQkK4yKQoiKZe6kN1Qqi6z29FMo52Jo87WYMbNddb8I+/ZIvq/+Fnhv6ecnZ0O7H1s+/Ucs3p459ocHT/I10vO9rUsO52NZA+b3LUI/5I1pHUYBD2OjDRdbRNxwhSR4WrJHlNQhBVsltci20H0/WPob0a8t3n8qf0+8t7jA3YOBTfiZD/Tze3KyQ17NVxmpzIM9dhRbGs6drqb938ZP3vH+2265g5KcvwXvxlGOo6N2p0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/trophy-gif.af045908.gif\";","import React, { useCallback, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tTransactionStatus,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { debounce, map, find, filter, upperCase, orderBy } from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst TransactionHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [transactionDetailsActiveTaB, setTransactionDetailsActiveTaB] =\n\t\tuseState(1);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [searchTransactionHistory, setSearchTransactionHistory] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [referralBonus, setReferralBonus] = useState([]);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\n\tconst [noDataBg, setNoDataBg] = useState();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\n\tuseEffect(() => {\n\t\tinit()\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tfunction init() {\n\t\tGetReferralBonus();\n\n\t}\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n\t\tif (noDataBg) {\n\t\t\tsetNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\tasync function GetReferralBonus() {\n\t\tvar response = await ApiEngine.get(ApiUrl._API_GET_MEMBER_REFERRAL_BONUS);\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet temp = response[ApiKey._API_DATA_KEY];\n\t\t\tsetReferralBonus(temp);\n\n\t\t}\n\t\tsetLoadingFlag(false);\n\t}\n\n\tasync function ClaimReferralBonus() {\n\t\t_dispatch(setBusy());\n\t\tsetIsSubmitLoading(true)\n\t\tvar response = await ApiEngine.get(ApiUrl._API_CLAIM_MEMBER_REFERRAL_BONUS);\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet temp = response[ApiKey._API_DATA_KEY];\n\n\t\t}\n\t\tGetReferralBonus()\n\t\t_dispatch(\n\t\t\tshowResponseMessage(\n\t\t\t\tresponse[ApiKey._API_SUCCESS_KEY],\n\t\t\t\tt(response[ApiKey._API_MESSAGE_KEY])\n\t\t\t)\n\t\t);\n\n\t\tsetIsSubmitLoading(false)\n\t\t_dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{referralBonus &&\n\t\t\t\t\t\t\t\treferralBonus.length != 0 ? (\n\t\t\t\t\t\t\t\t\treferralBonus.map((data, index) => {\n\n\t\t\t\t\t\t\t\t\tvar statusHtml = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"isClaimed\"]) {\n\t\t\t\t\t\t\t\t\t\tcase true:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CLAIMED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase false:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"UNCLAIMED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// \t\n\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DOWNLINE\")}{t(\"DATE\")}{t(\"BONUS_AMOUNT\")}{t(\"ROLLOVER_MULTIPLIER\")}{t(\"STATUS\")}{t(\"CLAIMED_TIME\")}{t(\"DEPOSIT_TIME\")}
{data[\"username\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"createdTime\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.bonusAmount), 2)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tx{data[\"rolloverMultiplier\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{statusHtml}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"claimedDate\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"createdTime\"]}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND2\")}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{/*{paginationPageNum > 1 && (*/}\n\t\t\t{/*\t*/}\n\t\t\t{/*)}*/} \n\t\t\t{/* {referralBonus.some(x => !x.isClaimed) &&\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t} */}\n\t\t
\n\t);\n};\n\nexport default TransactionHistory;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal } from \"../../redux/AppAction.js\";\nimport { map, find, debounce, isEmpty } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty, createMultiPartFormBody } from \"../../util/Util.js\";\nimport moment from \"moment\";\nimport DatePicker from \"react-bootstrap-daterangepicker\";\nimport PinInput from \"react-pin-input\";\nimport Skeleton from \"react-loading-skeleton\";\nimport VerifyPhoneNumberModal from \"./VerifyPhoneNumberModal\";\nimport AddPhoneModal from \"./AddPhoneModal\";\n\n\nconst MyProfileModal = ({popout}) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const [alertIcon, setAlertIcon] = useState(\"\");\n const [showAlert, setShowAlert] = useState(false);\n const profileModal = useSelector((state) => state.appState.profileModal)\n\n const memberData = useSelector((state) => state.appState.member);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const isEWalletActive = useSelector((state) => state.appState.isEWalletActive);\n const otpEnabled = useSelector((state) => state.appState.otpEnabled);\n const isBankTransferActive = useSelector((state) => state.appState.isBankTransferActive);\n const [birthDate, setBirthDate] = useState(\n moment().subtract(18, \"years\").format(\"DD-MM-YYYY\")\n );\n\n const maxDate = moment().subtract(18, \"years\");\n const minDate = moment().subtract(100, \"years\");\n\n const [isEditBirthDate, setIsEditBirthDate] = useState(false);\n const [memberBankAccounts, setMemberBankAccounts] = useState({});\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n const [showAddPhoneNumberModal, setShowAddPhoneNumberModal] = useState(false);\n const [otpValue, setOtpValue] = useState(\"\");\n const [showVerifyOtpError, setShowVerifyOtpError] = useState(false);\n const [sentCode, setSentCode] = useState(false);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [attemp, setAttemp] = useState(1);\n const elePin = useRef(null);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const [pinLoading, setPinLoading] = useState(false);\n\n const [formattedPhoneNumber, setFormattedPhoneNumber] = useState(false);\n const [memberEwalletAccounts, setMemberEwalletAccounts] = useState([]);\n const [selectedPhoneNumber, setSelectedPhoneNumber] = useState(\"\");\n const [selectedPhoneNumberId, setSelectedPhoneNumberId] = useState(\"\");\n const [showDeletePhoneNumberModal, setShowDeletePhoneNumberModal] = useState(false);\n const [phoneNumType,setPhoneNumType]=useState(\"\");\n\n const _COUNTDOWN_PERIOD = 120;\n const _TAC_VALID_TIMER = 60000;\n const _SECONDS_IN_MS = 1000;\n const _TAC_TIMEOUT_IN_MINUTES = 1;\n\n const {\n register: completeProfile,\n handleSubmit: completeProfileHandleSubmit,\n errors: completeProfileErrors,\n setError: setCompleteProfileError,\n } = useForm();\n\n const {\n register: ewalletRegister,\n handleSubmit: ewalletHandleSubmit,\n errors: ewalletErrors,\n setError: ewalletError,\n } = useForm();\n\n useEffect(() => {\n if (profileModal) {\n getMemberEwalletAccounts();\n }\n }, [profileModal]);\n\n useEffect(() => {\n // Ensure memberData has content before checking birthdate\n if (memberData && Object.keys(memberData).length > 0) {\n checkBirthDate()\n }\n }, [memberData])\n\n useEffect(() => {\n if (heartBeat) {\n getMemberBankAccount();\n }\n }, [heartBeat]);\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n const getCompanyIcon = async () => {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n }\n\n const submitComplteProfileForm = async (data, e) => {\n let params = {\n // email: email,\n birthDate: moment(birthDate, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n };\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_UPDATE_PROFILE,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n _dispatch(setMyProfileModal(false))\n }\n };\n\n const checkBirthDate = async () => {\n if (\n stringIsNullOrEmpty(memberData.birthDateString) ||\n memberData.birthDateString == \"01-01-0001\"\n ) {\n if (popout) {\n setShowAlert(true)\n }\n \n setIsEditBirthDate(true)\n } else {\n setIsEditBirthDate(false)\n setShowAlert(false)\n }\n }\n\n const getMemberBankAccount = async () => {\n try {\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let bankAccountList = [];\n responseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n bankAccountList.push({\n label: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n value: bankAccount.id,\n bankId: bankAccount.bankId,\n accountHolderName: bankAccount.accountHolderName,\n accNum: bankAccount.accountNumber,\n bankName: bankAccount.bankName,\n isDefault: bankAccount.isDefault,\n });\n });\n // setMemberBankAccounts(bankAccountList);\n // setSearchMemberBankAccount(bankAccountList);\n\n setMemberBankAccounts(bankAccountList?.[0]);\n\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n }\n\n let countdownPeriodTimeOutId,apiTimeOutId;\n\n // OTP functions\n // useEffect(() => {\n // if (countdownPeriod > 0) {\n // countdownPeriodTimeOutId=setTimeout(() => {\n // let tempPeriod = countdownPeriod - 1;\n // setCountdownPeriod(tempPeriod);\n // }, _SECONDS_IN_MS);\n // }\n // }, [countdownPeriod]);\n\n // useEffect(() => {\n // if (TACcountdownPeriod > 0) {\n // setTACtimer(\n // setTimeout(() => {\n // let tempPeriod = TACcountdownPeriod - 1;\n // setTACCountdownPeriod(tempPeriod);\n // }, _SECONDS_IN_MS)\n // );\n // }\n // }, [TACcountdownPeriod]);\n\n // const sendOtp = async () => {\n // const OTP_VIA_SMS = 1;\n // const channelType = OTP_VIA_SMS;\n\n // let params = {\n // phoneNumber: selectedPhoneNumber,\n // languageCode: \"en\",\n // countdown: countdownPeriod,\n // TACExist: !TACtimedOut,\n // type: OTP_VIA_SMS,\n // usage: \"verifyPhoneNumber\",\n // };\n\n // let responseJson = await ApiEngine.post(\n // ApiUrl._API_GENERATE_OTP,\n // createFormBody(params)\n // );\n\n // if (responseJson[ApiKey._API_SUCCESS_KEY]\n // ) {\n // setSentCode(true);\n // setTACtimedOut(false);\n // setCountdownPeriod(0);\n // setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n // setAttemp(attemp + 1);\n // apiTimeOutId=setTimeout(() => {\n // setTACtimedOut(true);\n // }, _TAC_VALID_TIMER);\n // }else{\n // setShowVerifyOtpModal(false);\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n // }\n // }\n\n // const stopTimeout = () => {\n // clearTimeout(countdownPeriodTimeOutId);\n // clearTimeout(apiTimeOutId);\n // };\n\n const handleVerifyOtp = async (data, e) => {\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n\n // Open modal\n setShowVerifyOtpModal(true);\n }\n\n // Old code - from withdrawal, not in use anymore\n // const sendVerificationCode = async () => {\n // await ApiEngine.post(\n // ApiUrl._API_SEND_VERIFICATION_CODE,\n // createMultiPartFormBody({ phoneNumber: selectedPhoneNumber })\n // ).then((response) => {\n // if (response[ApiKey._API_SUCCESS_KEY]) {\n // setSentCode(true);\n // setCountdownPeriod(_COUNTDOWN_PERIOD);\n // }\n // });\n // };\n\n // async function onKeyPress(key, index) {\n // //setAllowPinClick(false);\n // // 1st: have to check currentPinRef\n // // 2nd: have to know which index is currently focused for altering the state.value\n // // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // // let currentIndex = 0;\n // let pinStr = tempPinNumber;\n // let keyLength = key.split(\"\");\n // if (key !== \"{bksp}\" && key !== \" \") {\n // pinStr = key;\n // setTempPinNumber(pinStr);\n // if (keyLength.length !== 6) {\n // } else {\n // setTempPinNumber(\"\");\n // setPinInputDisabled(true);\n // setPinLoading(true);\n\n // await verifyOTP(pinStr);\n\n // setPinLoading(false);\n // setPinInputDisabled(false);\n // }\n // } else {\n // elePin[\"current\"].clear();\n // }\n // }\n\n // const verifyOTP = async (pinstr) => {\n // await ApiEngine.post(\n // ApiUrl._API_VERIFY_MULTIPLE_PHONE_NUMBER,\n // createMultiPartFormBody({\n // verificationCode: pinstr,\n // phoneNum:selectedPhoneNumber,\n // phoneNumType:phoneNumType\n // })\n // ).then((response) => {\n // if (response[ApiKey._API_SUCCESS_KEY]) {\n // setShowVerifyOtpModal(false);\n // getMemberEwalletAccounts();\n\n // if(phoneNumType==\"member\"){\n // memberData.isPhoneVerify=true;\n // }\n // }\n\n // _dispatch(\n // showResponseMessage(\n // response[ApiKey._API_SUCCESS_KEY],\n // response[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n // });\n // };\n \n const handleVerifyOtpCallback = async (response) => {\n setShowVerifyOtpModal(false);\n getMemberEwalletAccounts();\n\n if(phoneNumType==\"member\"){\n memberData.isPhoneVerify=true;\n }\n };\n\n const handleAddPhoneCallback = async (response) => {\n setShowAddPhoneNumberModal(false);\n getMemberEwalletAccounts();\n };\n \n const getMemberEwalletAccounts = async () => {\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_PHONE_NUMBERS);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let memberEwalletAccounts = responseJson[ApiKey._API_DATA_KEY];\n setMemberEwalletAccounts(memberEwalletAccounts);\n }\n }\n\n return (\n
\n {showAlert && (\n
\n \n )}\n customButtons={\n \n
\n setShowAlert(false)}\n >\n {t(\"LATER\")}\n \n { _dispatch(setMyProfileModal(true)); setShowAlert(false); }}\n >\n {t(\"CONTINUE\")}\n \n
\n\n
\n }\n >\n \n {t(\"COMPLETE_PROFILE_INFO\")}\n \n
\n
\n
\n \n
\n
\n

\n {t(\"COMPLETE_PROFILE_DANGER\")}\n

\n
\n
\n
\n \n
\n )}\n\n {\n _dispatch(setMyProfileModal(false))\n }}\n >\n \n
\n {\n // setManageProfileShow(false);\n _dispatch(setMyProfileModal(false))\n\n }}\n >\n \n
\n
{t(\"MY_PROFILE\")}
\n
\n
\n _dispatch(setMyProfileModal(false))}\n >\n \n
\n \n \n \n {memberData ? (\n
\n
\n \n
\n {t(\"GENERAL\")}\n
\n
\n
\n \n
{memberData.username}
\n
\n {\n memberData && !isEmpty(memberData?.userFullName) && (\n
\n \n
{memberData?.userFullName}
\n
\n )\n }\n \n {\n isEditBirthDate ?\n (\n <>\n
\n \n {memberData.birthDateString != \"01-01-0001\" && memberData.birthDateString != \"\" ?\n
{memberData.birthDateString}
\n :\n {\n setBirthDate(\n moment(picker.startDate).format(\"DD-MM-YYYY\")\n );\n }}\n alwaysShowCalendars={true}\n locale={{ \n applyLabel: t(\"APPLY\"),\n cancelLabel: t(\"CANCEL\"),\n }}\n showDropdowns={true}\n opens=\"center\"\n containerStyles={{ height: \"10%\", width: \"100%\", padding: \"0px 15px 0px 0px\" }}\n minDate={minDate}\n maxDate={maxDate}\n startDate={moment().subtract(18, \"years\")}\n >\n \n \n }\n
\n
\n
\n \n
\n
{t(\"FILL_IN_BIRTHDAY_INFO\")}
\n
\n \n ) :\n (\n
\n \n
{memberData.birthDateString}
\n
\n )\n }\n
\n {t(\"CONTACT_DETAILS\")}\n
\n {memberData ? (\n <>\n
\n
\n \n {memberData.phoneNumber ?? \"-\"}\n {!memberData.isPhoneVerify && otpEnabled &&(
{\n setSelectedPhoneNumber(memberData.phoneNumber);\n setPhoneNumType(\"member\");\n handleVerifyOtp();\n }}\n >\n {t(\"VERIFY_OTP\")}\n
\n )}\n
\n
\n \n ) : (\n \n )}\n {\n memberBankAccounts && isBankTransferActive && (\n <>\n
\n {t(\"BANK\")}\n
\n
\n
\n \n
{memberBankAccounts.bankName}
\n
\n\n
\n \n
{memberBankAccounts.accountHolderName}
\n
\n
\n \n
{memberBankAccounts.accNum}
\n
\n\n\n
\n \n )\n }\n {isEWalletActive &&\n
\n\n
\n {t(\"EWALLET_ACCOUNTS\")}\n
\n {/* EWallet Account (Phone Numbers) Section */}\n {memberEwalletAccounts && memberEwalletAccounts.length > 0 && (\n
\n {memberEwalletAccounts.map((item, index) => (\n
\n
\n \n
\n
\n {item.phoneNumber}\n {!item.verified && (\n {\n setSelectedPhoneNumber(item.phoneNumber);\n setPhoneNumType(\"memberEwalletAccounts\");\n handleVerifyOtp();\n }}\n >\n {t(\"VERIFY_OTP\")}\n
\n )}\n
\n
{t(\"ACCOUNT_HOLDER\")}: {item.accountHolderName ? item.accountHolderName : \"-\"}
\n
\n
\n
\n ))}\n
\n )}\n\n {/* Add Phone Number Button */}\n {memberEwalletAccounts && memberEwalletAccounts.length < 3 && (\n
\n \n
\n )}\n
\n }\n \n\n { isEditBirthDate &&\n
\n \n
\n }\n
\n \n
\n \n ) : (\n \n )}\n
\n \n \n setShowAddPhoneNumberModal(false)}\n onCallback={(e) => {\n handleAddPhoneCallback(e)\n }}\n /> \n\n setShowVerifyOtpModal(false)}\n phoneNumber={selectedPhoneNumber}\n phoneNumType={phoneNumType}\n onCallback={(e) => {\n handleVerifyOtpCallback(e)\n }}\n />\n \n\n );\n};\n\nexport default MyProfileModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n map,\n find,\n filter,\n} from \"lodash\";\nimport {\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// LiveTransactions component\nconst LiveTransactions = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n const [transLoading, setTransLoading] = useState();\n const [latestDepositList, setLatestDepositList] = useState();\n const [latestWithdrawalList, setLatestWithdrawalList] = useState();\n const [noDataBg, setNoDataBg] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n\n useEffect(() => {\n getCompanyIcon();\n getWithdrawalDepositTransaction()\n }, []);\n\n const getWithdrawalDepositTransaction = async () => {\n setTransLoading(true)\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_TOP_DEPOSIT_WITHDRAWAL\n );\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n // _dispatch(setBusy());\n const latestDepositData = filter(responseJson2[ApiKey._API_DATA_KEY], {\n transactionTypeId: 1,\n });\n const latestWithdrawalData = filter(responseJson2[ApiKey._API_DATA_KEY], {\n transactionTypeId: 2,\n });\n\n setLatestDepositList(latestDepositData);\n setLatestWithdrawalList(latestWithdrawalData);\n // _dispatch(setIdle());\n } else {\n throw responseJson2[ApiKey._API_MESSAGE_KEY];\n }\n\n setTransLoading(false)\n\n\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n return (\n
\n

\n {t(\"LIVE\")} {t(\"TRANSACTION_UPPER\")}\n

\n
\n
\n
\n
\n
{t(\"DEPOSIT\")}
\n
\n\n {transLoading ?\n
\n \n
:\n latestDepositList && latestDepositList.length > 0 ? (\n map(latestDepositList, (item, index) => {\n return (\n
\n
\n \n {item.username}\n
\n
{item.amount.toFixed(2)}
\n
\n );\n })\n ) : (\n
\n {noDataBg ?\n <>

{t(\"NO_DATA_FOUND\")}

: \n }\n
\n )}\n
\n
\n
\n
\n
\n
{t(\"WITHDRAWAL\")}
\n
\n {transLoading ?\n
\n \n
:\n latestWithdrawalList && latestWithdrawalList.length > 0 ? (\n map(latestWithdrawalList, (item, index) => {\n return (\n
\n
\n \n {item.username}\n
\n
{item.amount.toFixed(2)}
\n
\n );\n })\n ) : (\n
\n {noDataBg ?\n <>

{t(\"NO_DATA_FOUND\")}

: \n }\n
\n )}\n
\n
\n
\n
\n )\n}\n\nexport default LiveTransactions;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n filter,\n} from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport {\n setGameLobbyModal,\n setLoginModal,\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport Slider from \"react-slick\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\n\n\n// RecentBigWin component\nconst RecentBigWin = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [initFlag, setInitFlag] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [bigWinList, setBigWinList] = useState([]);\n const companyCurrencySymbol = useSelector((state) => state.appState.currencySymbol);\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n\n const chunkArray = (arr, chunkSize) => {\n const result = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n result.push(arr.slice(i, i + chunkSize));\n }\n return result;\n };\n\n const itemsPerSlide = 2; // Two columns and three rows\n const slides = chunkArray(bigWinList, itemsPerSlide);\n\n const settings = {\n dots: false,\n infinite: true,\n speed: 500,\n slidesToShow: slides.length > 2 ? 3 : 2, // Show one slide at a time\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: false,\n autoplay: true, // Enable auto-slide\n autoplaySpeed: 3000, // Time in milliseconds between slides\n arrows: false, // Hide navigation arrows\n responsive: [\n {\n\n breakpoint: 768,\n settings: {\n className: \"\",\n\n variableWidth: false,\n\n slidesToShow: 2,\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: false,\n autoplay: true, // Enable auto-slide\n autoplaySpeed: 3000, // Time in milliseconds between slides\n arrows: false, // Hide navigation arrows\n\n },\n }\n ]\n };\n\n useEffect(() => {\n getCompanyIcon()\n getBigWin()\n\n }, []);\n\n\n const getBigWin = async () => {\n var responseJsonBigWin = await ApiEngine.get(\n ApiUrl._API_GET_BIG_WIN\n );\n if (responseJsonBigWin[ApiKey._API_SUCCESS_KEY]) {\n\n var bigWinResult = responseJsonBigWin[ApiKey._API_DATA_KEY];\n\n if (bigWinResult.length % 2 !== 0) {\n bigWinResult.pop();\n }\n setBigWinList(bigWinResult)\n }\n\n setInitFlag(true)\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n \n\n return (\n <>\n {initFlag ? (\n <>\n {bigWinList && bigWinList.length > 0 && (\n
\n
\n

\n {t(\"RECENT\")} {t(\"BIG_WINS\")}\n

\n
\n \n {slides.map((slide, index) => (\n
\n {slide.map((item, index) => (\n
\n \n\n
\n
\n
{t(\"PROVIDER\")}: {item.productName}
\n
{item.username} {t(\"in\")} {item.gameName} {t(\"won\")}
\n
{companyCurrencySymbol}{item.winning.toFixed(2)}
\n
\n
{\n if (heartBeat) {\n setPopupBannerImage(item[\"popupBannerImage\"]);\n if (item[\"gameUm\"] !== true) {\n setIsSupportIframeState(item[\"isSupportIframe\"])\n if (item[\"isSupportIframe\"]) {\n startGame(\n item[\"id\"],\n item[\"hasOwnLobby\"],\n item[\"masterProductId\"],\n item[\"gameName\"],\n item[\"masterProductIsSeamless\"],\n item[\"isApp\"],\n item[\"appUrl\"],\n item[\"appDeepLink\"],\n item[\"isNewWindow\"],\n item[\"packageNameKeyword\"],\n item[\"isSupportIframe\"],\n item[\"categoryTitle\"],\n item[\"providerName\"],\n item[\"popupBannerImage\"]\n );\n } else {\n setSelectedGameName(item[\"gameName\"]);\n setMasterProductId(item[\"masterProductId\"]);\n setIsApp(item[\"isApp\"]);\n setAppDeepLink(item[\"appDeepLink\"]);\n setPackageNameKeyword(item[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(item[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(item[\"isSeamless\"]);\n setIsSupportIframeState(item[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(item[\"appUrl\"]);\n }\n setProductGameId(item[\"id\"]);\n setIsIframeAlert(true)\n }\n\n }\n } else {\n _dispatch(setLoginModal(true));\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 {pageName != \"HOME\" &&\n \n }\n \n )\n}\n\nexport default RecentBigWin;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n setBusy,\n setIdle,\n setLoginModal,\n setDownlineModal,\n setShareReferralModal,\n} from \"../../redux/AppAction.js\";\nimport {\n find,\n} from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\n// ReferralBanner component\nconst ReferralBanner = () => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const [showCodeAlert, setShowCodeAlert] = useState(false);\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [uplineLoading, setUplineLoading] = useState(false);\n var referralDetails = useSelector((state) => state.appState.member.referralCode);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [copy1, setCopy1] = useState(false);\n const [copy2, setCopy2] = useState(false);\n var _codeRef = useRef();\n var _linkRef = useRef();\n const _ALERT_TIMEOUT = 3000;\n const [registerUrl, setRegisterUrl] = useState(\"\");\n const _APPEND_REGISTER_URL = \"/register?code=\";\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n _dispatch(setIdle());\n }\n\n const copyItem = (item) => {\n navigator.clipboard.writeText(item.current.innerText);\n\n setCopy1(true)\n setTimeout(() => setCopy1(false), [_ALERT_TIMEOUT]);\n };\n const copyItem2 = (item) => {\n navigator.clipboard.writeText(item.current.innerText);\n\n setCopy2(true)\n setTimeout(() => setCopy2(false), [_ALERT_TIMEOUT]);\n };\n\n useEffect(() => {\n getCompanyIcon();\n\n }, []);\n\n useEffect(() => {\n setRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + referralDetails);\n }, [referralDetails]);\n\n return (\n <>\n {heartBeat && (\n
\n
\n  \n
\n {showCodeAlert && (\n
\n
\n
\n \n
\n
\n

\n {t(\"COPY_SUCCESS\")}\n

\n
\n
\n
\n )}\n
\n
\n {referralBanner ?\n\n \n :\n \n }\n {referralBannerMobile ?\n\n \n :\n \n }\n
\n
\n
\n {t(\"MY_REFERRAL_CODE\")}\n
\n
\n
\n {/* {referralDetails} */}\n {uplineLoading ? (\n \n ) : (\n referralDetails\n )}\n
\n
\n {copy1 ? t(\"COPIED\") : ( copyItem(_codeRef)}\n className=\"vicon\"\n />)}\n
\n
\n
\n
\n
\n {t(\"MY_REFERRAL_LINK\")}\n
\n
\n
\n {uplineLoading ? (\n \n ) : (\n registerUrl\n )}\n
\n
\n {copy2 ? t(\"COPIED\") : ( copyItem2(_linkRef)}\n className=\"vicon\"\n />)}\n
\n
\n
\n\n
\n {\n if (heartBeat) {\n _dispatch(setShareReferralModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n {t(\"SHARE\")}\n
\n {\n if (heartBeat) {\n _dispatch(setDownlineModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n {t(\"DOWNLINE\")}\n
\n
\n {\n if (heartBeat) {\n _history.push(WebUrl._URL_REFERRAL);\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n {t(\"MORE_INFO\")}\n
\n
\n \n \n \n )}\n \n )\n}\n\nexport default ReferralBanner; ","import React, { useEffect, useRef, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n setBusy,\n setIdle,\n bindGames,\n setGameLobbyModal,\n setLoginModal,\n bindHotGames,\n} from \"../../redux/AppAction.js\";\nimport {\n map,\n find,\n filter,\n includes,\n} from \"lodash\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n\n// ProviderList component\nconst ProviderList = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName , pageName}) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n\n const [gameCategoryActive, setGameCategoryActive] = useState();\n const [gameCategories, setGameCategories] = useState([]);\n const [games, setGames] = useState(\n useSelector((state) => state.appState.games)\n );\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const latestBets = useSelector((state) => state.appState.latestBets);\n const [isLoading, setIsLoading] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [teamBanner, setTeamBanner] = useState();\n const [coinIcon, setCoinIcon] = useState();\n const [logo, setLogo] = useState();\n const [noDataBg, setNoDataBg] = useState();\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [providerName, setProviderName] = useState(\"\");\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [initFlag, setInitFlag] = useState(false);\n const [iframeAlert, setIsIframeAlert] = useState(false);\n\n const [selectedGameCategoryGames, setSelectedGameCategoryGames] = useState([]);\n const [isNewWindow, setIsNewWindow] = useState(false);\n \n const availableProductCategories = useSelector((state) => state.appState.availableProductCategories);\n const [hotGames, setHotgames] = useState(\n useSelector((state) => state.appState.hotGames)\n );\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const isHotGameEnabled = useSelector(\n (state) => state.appState.isHotGameEnabled\n );\n const containerRef = useRef(null);\n\n useEffect(() => {\n getCompanyIcon();\n init()\n }, []);\n\n\n useEffect(() => {\n if(games.length){\n const container = document.getElementById(\"game-category-id\");\n const leftButton = document.querySelector(\".left-scroll\");\n const rightButton = document.querySelector(\".right-scroll\");\n // console.log(container)\n // console.log(leftButton)\n // console.log(rightButton)\n\n if (!container || !leftButton || !rightButton) return;\n\n const scrollAmount = 100; // scroll speed\n\n const scrollLeft = () => {\n // console.log('left-scroll')\n container.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n };\n\n const scrollRight = () => {\n // console.log('right-scroll')\n container.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n };\n\n leftButton.addEventListener(\"click\", scrollLeft);\n rightButton.addEventListener(\"click\", scrollRight);\n\n\n if (containerRef.current) {\n const containerCurr = containerRef.current;\n\n const activeElement = containerRef.current.querySelector(`.t3-game-category-item.active`); // More specific selector\n \n if (activeElement) {\n // Calculate the desired scroll position\n const activeElementLeft = activeElement.offsetLeft;\n const containerLeft = container.offsetLeft;\n // const scrollLeft = container.scrollLeft;\n // const containerWidth = container.offsetWidth;\n // const activeElementWidth = activeElement.offsetWidth;\n \n // Calculate the amount to scroll\n let scrollAmountActive = 0;\n \n \n scrollAmountActive = activeElementLeft - containerLeft;\n \n \n if (scrollAmount !== 0) { // Only scroll if needed\n containerCurr.scrollBy({ left: scrollAmountActive, behavior: \"smooth\" });\n }\n }\n }\n\n return () => {\n leftButton.removeEventListener(\"click\", scrollLeft);\n rightButton.removeEventListener(\"click\", scrollRight);\n };\n }\n \n }, [initFlag, games]);\n\n useEffect(async () => {\n \n if(gameCategoryActive && games.length > 0){\n if (gameCategoryActive.title === \"All\") {\n setSelectedGameCategoryGames(games);\n }\n else if(gameCategoryActive.title === \"Hot Games\"){\n \n if(hotGames.length === 0){\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=HotGames\"\n );\n \n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n const data = responseJson[ApiKey._API_DATA_KEY].isHotGame\n setSelectedGameCategoryGames(data);\n _dispatch(bindHotGames(data));\n \n }\n }else{\n setSelectedGameCategoryGames(hotGames)\n } \n \n }\n else {\n var selectedCategoryGameList = games.filter(game => game[\"categoryTitle\"] === gameCategoryActive.title);\n setSelectedGameCategoryGames(selectedCategoryGameList);\n }\n }\n\n\n }, [gameCategoryActive, games]);\n\n // useEffect(() => {\n // if (games.length) {\n // setSelectedGameCategoryGames(games);\n // }\n // }, [games]);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const gameCategories = [];\n let pathnamesToFilter = [\"/game-list\", \"/sports\", \"/casino\", \"/slots\", \"/keno\", \"/fish\", \"/e-sport\", \"/arcade\", \"/crash\", \"/exchange\"];\n\n if(isHotGameEnabled){\n pathnamesToFilter.push(\"/hot-games\")\n }\n const gameList = filter(companyIcons, item => includes(pathnamesToFilter, item.pathname));\n if (gameList) {\n\n gameList.forEach(function (x) {\n gameCategories.push({\n id: x.iconName == \"All\" ? -1 : x.id,\n title: x.iconName,\n image: x.iconImage||x.defaultImage,\n });\n });\n\n let exchangeCategory = gameCategories.findIndex((x)=> x.title === \"Exchange\")\n\n if(exchangeCategory && exchangeCategory >= 0){\n setGameCategoryActive(gameCategories[exchangeCategory])\n \n } else {\n setGameCategoryActive(gameCategories[0])\n }\n setGameCategories(gameCategories);\n }\n\n const teamBanner = find(companyIcons, { iconCategory: \"team_banner\" });\n if (teamBanner) {\n setTeamBanner(teamBanner.iconImage||teamBanner.defaultImage);\n }\n\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function init() {\n \n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_CATEGORY_GROUP_GAME_DASHBOARD\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setGames(responseJson[ApiKey._API_DATA_KEY]);\n _dispatch(bindGames(responseJson[ApiKey._API_DATA_KEY]));\n /// preload\n responseJson[ApiKey._API_DATA_KEY].map((game, index) => {\n let image = new Image();\n image.src = game[\"image\"];\n\n window[game[\"image\"]] = image;\n });\n } else {\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n setInitFlag(true);\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\" && hasOwnLobby !== true) {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n \n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n setIsIframeAlert(true);\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n \n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setIsLoading(false);\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {games?.length > 0 && (\n <>\n
\n
\n {gameCategories &&\n gameCategories.length > 0 &&\n map(gameCategories, (item, index) => {\n // CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n // Only apply this filtering criteria if availableProductCategories is not empty\n if( item.title !==\"Hot Games\" && availableProductCategories.length > 0) {\n // Call gameCategories to get only the available categories - hide categories that are not available\n let availableProductCategory = availableProductCategories.filter((productCategory) => {\n return productCategory.productCategory.title.trim() == item.title.trim();\n });\n\n if (availableProductCategory.length == 0 ) {\n return null;\n }\n }\n\n return (\n \n setGameCategoryActive({\n id: item.id,\n title: item.title,\n })\n }\n >\n
\n \n
\n
{t(item.title)}
\n
\n );\n })}\n
\n
\n
\n
\n {selectedGameCategoryGames?.length > 0 ? (\n
\n
\n {/* */}\n {games.length == 0 && }\n
\n {selectedGameCategoryGames.map((game, index) => {\n return (\n {\n if (heartBeat) {\n //updateGameDetail()\n setPopupBannerImage(game[\"popupBannerImage\"]);\n if (game[\"gameUm\"] !== true) {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"],\n game[\"gameName\"],\n game[\"popupBannerImage\"]\n );\n //}\n //else {\n // setSelectedGameName(game[\"gameName\"]);\n // setMasterProductId(game[\"masterProductId\"]);\n // setIsApp(game[\"isApp\"]);\n // setAppDeepLink(game[\"appDeepLink\"]);\n // setPackageNameKeyword(game[\"packageNameKeyword\"]);\n // setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n // setSelectedGameIsSeamless(game[\"isSeamless\"]);\n // setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n // if (isApp && !stringIsNullOrEmpty(appUrl)) {\n // setAppUrl(game[\"appUrl\"]);\n // }\n // setProductGameId(game[\"id\"]);\n // setIsIframeAlert(true);\n //}\n }\n /* if (walletsDetails.isValidForPromotion) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: \"Custom,\n content: t(\"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"]\n );\n }\n })\n );\n } else {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"]\n );\n } */\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n
\n
\n
\n \n {game[\"gameUm\"] == true && (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n )}\n
\n {game[\"gameUm\"] == false && (\n
\n \n \n \n \n \n \n \n
\n )}\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n \n \n \n ) : (\n
\n
\n \n
\n
\n {t(\"NO_DATA_FOUND2\")}\n
\n
\n )\n }\n \n )}\n\n {pageName != \"HOME\" &&\n \n }\n \n\n \n )\n}\n\nexport default ProviderList;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport FallBackImage from \"components/template_1/FallBackImage\";\n\nconst RecentPayout = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [payoutList, setPayoutList] = useState([]);\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const companyCurrencySymbol = useSelector((state) => state.appState.currencySymbol);\n\n const payoutSlick = {\n className: \"slider variable-width\",\n dots: false,\n infinite: true,\n // centerMode: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n variableWidth: true,\n draggable: false,\n autoplay: true,\n speed: 1000,\n autoplaySpeed: 3000,\n arrows: false,\n responsive: [\n {\n breakpoint: 900,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 1,\n },\n },\n {\n breakpoint: 768,\n settings: {\n className: \"\",\n variableWidth: false,\n slidesToShow: 3,\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: true,\n draggable: false,\n autoplay: true,\n touchMove: false,\n },\n }\n ]\n };\n\n useEffect(() => {\n getCompanyIcon()\n getRecentPayout();\n }, []);\n\n\n const getRecentPayout = async () => {\n var responseJsonPayout = await ApiEngine.get(\n ApiUrl._API_GET_RECENT_PAYOUT\n );\n if (responseJsonPayout[ApiKey._API_SUCCESS_KEY]) {\n setPayoutList(responseJsonPayout[ApiKey._API_DATA_KEY])\n }\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n \n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n return (\n <>\n {\n payoutList?.length > 0 && (\n
\n
\n

\n {t(\"RECENT\")} {t(\"PAYOUT\")}\n

\n
\n \n {\n map(payoutList, (item, index) => {\n return (\n
\n
\n
\n \n
\n {/* */}\n
\n
{item.game}
\n
{item.username}
\n
{companyCurrencySymbol}{item.winning.toFixed(2)}
\n
\n\n
\n\n
\n )\n })\n }\n\n
\n\n
\n
\n
\n )\n }\n \n )\n}\n\nexport default RecentPayout;","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n bindGamesRecommended,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n isEmpty,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport 'swiper/swiper-bundle.css';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst RecommendedSlots = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const slotSlickRef = React.useRef(null);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const [recommendedSlotGames, setRecommendedSlotGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.slotGames)\n );\n const [recommendedSlotGamesCount, setRecommendedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n const [recommendedCasinoGames, setRecommendedCasinoGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGames)\n );\n const [recommendedCasinoGamesCount, setRecommendedCasinoGamesCount] =\n useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n\n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n\n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n \n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (recommendedCasinoGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Recommended\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n /////get recommended Slots\n const data = responseJson[ApiKey._API_DATA_KEY].recommendedGames.filter(\n (x) => x.categoryTitle === \"Slots\"\n );\n setRecommendedSlotGamesCount(data.length);\n\n let groupedArray = [];\n\n for (let i = 0; i < data.length; i += 12) {\n groupedArray.push(data.slice(i, i + 12));\n }\n setRecommendedSlotGames(groupedArray);\n\n /////get recommended Casino\n const casinoRecommendedGame = responseJson[\n ApiKey._API_DATA_KEY\n ].recommendedGames.filter((x) => x.categoryTitle === \"Casino\");\n\n setRecommendedCasinoGamesCount(casinoRecommendedGame.length);\n let casinoGameGrouped = [];\n\n for (let i = 0; i < casinoRecommendedGame.length; i += 12) {\n casinoGameGrouped.push(casinoRecommendedGame.slice(i, i + 12));\n }\n setRecommendedCasinoGames(casinoGameGrouped);\n setLoadingRecommendedGames(false);\n\n \n\n _dispatch(\n bindGamesRecommended({\n slotGamesCount: data.length,\n slotGames: groupedArray,\n casinoGamesCount: casinoRecommendedGame.length,\n casinoGames: casinoGameGrouped,\n })\n );\n }\n setLoadingRecommendedGames(false);\n }\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {recommendedSlotGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"RECOMMENDED\")} {t(\"SLOTS\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {recommendedSlotGamesCount}{\" \"}\n {t(\"SLOTS\")}\n
\n {slotSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
slotSlickRef?.current?.slickPrev()}>\n \n
\n
slotSlickRef?.current?.slickNext()}>\n \n
\n
\n \n }\n
\n
\n\n
\n {recommendedSlotGames.length == 0 && }\n \n {recommendedSlotGames &&\n recommendedSlotGames.length &&\n map(recommendedSlotGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"]\n );\n }\n else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n {!isEmpty(game.iconImage) || !isEmpty(game.defaultImage) ? (\n \n ) : (\n \"\"\n )}\n\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game.gameName}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default RecommendedSlots","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n bindGamesFeatured,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst FeaturedSlots = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const featuredSlickRef = React.useRef(null);\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const _FIRST_TAB = 1;\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n \n\n const [featuredSlotGames, setFeaturedSlotGames] = useState(\n useSelector((state) => state.appState.gamesFeatured.slotGames)\n );\n\n const [featuredSlotGamesCount, setFeaturedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesFeatured.slotGamesCount)\n );\n \n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n \n\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n \n const [defaultGameIcon, setDefaultGameIcon] = useState();\n \n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const arraySlider = Array(8).fill();\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n \n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n\n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (featuredSlotGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Featured\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n /////get recommended Slots\n const featuredGame = responseJson[\n ApiKey._API_DATA_KEY\n ].isFeaturedGame.filter((x) => x.categoryTitle === \"Slots\");\n\n setFeaturedSlotGamesCount(featuredGame.length);\n\n let featuredGameGrouped = [];\n\n for (let i = 0; i < featuredGame.length; i += 12) {\n featuredGameGrouped.push(featuredGame.slice(i, i + 12));\n }\n setFeaturedSlotGames(featuredGameGrouped);\n\n _dispatch(\n bindGamesFeatured({\n slotGamesCount: featuredGame.length,\n slotGames: featuredGameGrouped,\n }));\n }\n setLoadingRecommendedGames(false);\n\n }\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {featuredSlotGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"FEATURE_BUY_IN\")} {t(\"SLOTS\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {featuredSlotGamesCount} {t(\"SLOTS\")}\n
\n {featuredSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
featuredSlickRef?.current?.slickPrev()}>\n \n
\n
featuredSlickRef?.current?.slickNext()}>\n \n
\n
\n \n }\n
\n
\n
\n {featuredSlotGames && featuredSlotGames.length == 0 && (\n \n )}\n \n {featuredSlotGames &&\n featuredSlotGames.length &&\n map(featuredSlotGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default FeaturedSlots","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport {\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport {\n map,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport ProviderIcon, { ProviderIconDisplay } from \"components/custom/ProviderIcon\";\n\nconst HotProviders = () => {\n var { t } = useTranslation();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n const providerList = useSelector((state) => state.appState.provider);\n \n const [providerSlick, setProviderSlick] = useState({\n slidesToShow: 4,\n dots: false,\n arrows: false,\n swipe: true,\n infinite: true,\n swipeToSlide: true,\n speed: 1000,\n autoplay: true,\n autoplaySpeed: 5000,\n });\n\n return (\n <>\n {providerList?.length > 0 &&\n
\n

{t(\"HOT\")} {t(\"PROVIDERS\")}

\n
\n = 4}>\n {providerList &&\n providerList.length &&\n map(providerList, (item, index) => {\n return (\n item && (\n
\n {/*
\n \n
*/}\n \n
\n )\n );\n })}\n
\n
\n
\n }\n \n )\n\n}\n\nexport default HotProviders","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper-bundle.css';\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n} from \"reactstrap\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n\nconst RecommendedCasino = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const liveSlickRef = React.useRef(null);\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const [recommendedSlotGames, setRecommendedSlotGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.slotGames)\n );\n const [recommendedSlotGamesCount, setRecommendedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n const [recommendedCasinoGames, setRecommendedCasinoGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGames)\n );\n const [recommendedCasinoGamesCount, setRecommendedCasinoGamesCount] =\n useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n\n // const [latestBets, setLatestBets] = useState(\"\");\n const latestBets = useSelector((state) => state.appState.latestBets);\n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n\n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n\n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (recommendedCasinoGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Recommended\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\n /////get recommended Slots\n const data = responseJson[ApiKey._API_DATA_KEY].recommendedGames.filter(\n (x) => x.categoryTitle === \"Slots\"\n );\n setRecommendedSlotGamesCount(data.length);\n\n let groupedArray = [];\n\n for (let i = 0; i < data.length; i += 12) {\n groupedArray.push(data.slice(i, i + 12));\n }\n setRecommendedSlotGames(groupedArray);\n\n /////get recommended Casino\n const casinoRecommendedGame = responseJson[\n ApiKey._API_DATA_KEY\n ].recommendedGames.filter((x) => x.categoryTitle === \"Casino\");\n\n setRecommendedCasinoGamesCount(casinoRecommendedGame.length);\n let casinoGameGrouped = [];\n\n for (let i = 0; i < casinoRecommendedGame.length; i += 12) {\n casinoGameGrouped.push(casinoRecommendedGame.slice(i, i + 12));\n }\n setRecommendedCasinoGames(casinoGameGrouped);\n setLoadingRecommendedGames(false);\n\n\n //_dispatch(\n // bindGamesRecommended({\n // slotGamesCount: data.length,\n // slotGames: groupedArray,\n // casinoGamesCount: casinoRecommendedGame.length,\n // casinoGames: casinoGameGrouped,\n // })\n //);\n }\n setLoadingRecommendedGames(false);\n }\n\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {!loadingRecommendedGames && recommendedCasinoGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"RECOMMENDED\")} {t(\"LIVE\")}{\" \"}{t(\"CASINO\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {recommendedCasinoGamesCount}{\" \"}\n {t(\"CASINO\")}\n
\n {liveSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
liveSlickRef?.current?.slickPrev()}>\n \n
\n
liveSlickRef?.current?.slickNext()}>\n \n
\n
\n }\n
\n
\n {recommendedCasinoGames.length == 0 && (\n
\n \n
\n )}\n
\n \n {recommendedCasinoGames &&\n recommendedCasinoGames.length &&\n map(recommendedCasinoGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default RecommendedCasino","import React from 'react';\nimport '../../assets/css/animation.css'\n\nconst SpeakerIcon = () => {\n return (\n \n \n \n \n \n\n );\n};\n\nexport default SpeakerIcon;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n SessionKey\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport SpeakerIcon from \"components/custom/SpeakerIcon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport parse from \"react-html-parser\";\nimport {\n get,\n} from \"lodash\";\n\n\nconst MarqueAnnoucement = () => {\n var { t } = useTranslation();\n const [content, setContent] = useState(\"\");\n var companyLanguages = useSelector((state) => state.appState.languages);\n const activeLanguageCode = useSelector(\n (state) => state.languageState.languageId\n );\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0].id);\n\n\n\n async function getMarqueeTagContent() {\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM +\n \"?MarqueeTagId=1\" +\n \"&LanguageId=\" +\n ((activeLanguageId == undefined || stringIsNullOrEmpty(activeLanguageId)) ? 0 : activeLanguageId) +\n \"&Platform=\" +\n \"MemberApp\"\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n responseJson[ApiKey._API_DATA_KEY].map((option) => {\n setContent(option[\"content\"]);\n });\n }\n }\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n getMarqueeTagContent()\n }, [companyLanguages, activeLanguageCode]);\n\n return (\n <>\n {content && (\n
\n
\n {/* */}\n \n
\n
\n \n \n {!stringIsNullOrEmpty(content) && parse(content)}\n \n \n
\n
\n )}\n \n )\n\n}\n\nexport default MarqueAnnoucement","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n SessionKey\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport { useDispatch, useSelector } from \"react-redux\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n setBanners,\n setDepositModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper-bundle.css';\nimport {\n map,\n get,\n} from \"lodash\";\n\n\nconst HomePageBanner = () => {\n var { t } = useTranslation();\n var companyLanguages = useSelector((state) => state.appState.languages);\n const activeLanguageCode = useSelector(\n (state) => state.languageState.languageId\n );\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const [bannerLoading, setBannerLoading] = useState(true)\n var { heartBeat } = useSelector((state) => state.authState);\n const [bannersList, setBannersList] = useState(\n useSelector((state) => state.appState.banners)\n );\n var _dispatch = useDispatch();\n\n\n useEffect(() => {\n getBanners()\n\n }, []);\n\n\n const getBanners = async () => {\n setBannerLoading(true)\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_USER_BANNER +\n \"?page=/dashboard\" +\n \"&languagecode=\" +\n activeLanguage\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setBannersList(responseJson[ApiKey._API_DATA_KEY]);\n _dispatch(setBanners(responseJson[ApiKey._API_DATA_KEY]));\n }\n setBannerLoading(false)\n\n };\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n }, [companyLanguages, activeLanguageCode]);\n\n return (\n
\n {!bannerLoading ? (\n {\n // console.log('slide change')\n }}\n onSwiper={(swiper) => {\n // console.log(swiper)\n }}\n loop={bannersList.length > 3}\n autoplay={{\n delay: 4000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true,\n }}\n breakpoints={{\n 1280: {\n slidesPerView: 3,\n spaceBetween: 0,\n },\n 1024: {\n slidesPerView: 3,\n spaceBetween: 0,\n },\n 480: {\n slidesPerView: 2,\n spaceBetween: 0,\n },\n 0: {\n slidesPerView: 1,\n spaceBetween: 0,\n },\n }}\n >\n {bannersList &&\n bannersList.length > 0 ? (\n // Swiper v9.4.1+ => Because of nature of how the loop mode works (it will rearrange slides), total number of slides must be >= slidesPerView * 2\n Array.from({ length: Math.ceil(bannersList.length / 3) }).map((_, i) => (\n map(bannersList, (item, index) => {\n return (\n \n {\n if (item.url && item.url == \"/deposit\") {\n if (heartBeat) {\n _dispatch(setDepositModal(true));\n } else {\n\n _dispatch(setLoginModal(true));\n\n }\n } else {\n if (item.url) {\n window.location.href = `${process.env.REACT_APP_ENDPOINT_URL || \"\"\n }${item.url}`;\n }\n }\n // if (heartBeat) {\n // if (item.url && item.url == \"/deposit\") {\n // _dispatch(setDepositModal(true));\n // } else {\n // window.location.href = `${process.env.REACT_APP_ENDPOINT_URL || \"\"\n // }${item.url}`;\n // }\n // } else {\n // if (item.url == \"/deposit\") {\n // _dispatch(\n // showMessage({\n // custom: true,\n // customIcon: (\n // \n // ),\n // content: t(\"PLEASE_LOGIN_FIRST\"),\n // })\n // );\n // }\n // }\n }}\n >\n \n
\n \n );\n })\n ))\n ) : (\n null\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\nexport default HomePageBanner","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n showResponseMessage,\n setDepositModal,\n setLoginModal,\n setRegisterModal,\n} from \"../../redux/AppAction.js\";\nimport {\n numberWithCurrencyFormat,\n} from \"../../util/Util\";\nimport {\n map,\n} from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst MobileLoginComponent = () => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const [balanceRefresh, setBalanceRefresh] = useState(false);\n const [minimumDeposit, setMinimumDeposit] = useState(0);\n const [minimumWithdrawal, setMinimumWithdrawal] = useState(0);\n const [rolloverWarning, setRolloverWarning] = useState(false);\n const [rolloverData, setRolloverData] = useState([]);\n const membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n var _userData = useSelector((state) => state.authState.userData);\n\n useEffect(() => {\n if (heartBeat) {\n getMinumumDepositWithdrawal()\n }\n\n \n }, []);\n\n useEffect(() => {\n if (heartBeat) {\n getLatestRolloverRecord();\n }\n }, [walletsDetails, heartBeat]);\n\n\n const getMinumumDepositWithdrawal = async () => {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MINIMUM_DEPOSIT_WITHDRAWAL\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setMinimumDeposit(responseJson[ApiKey._API_DATA_KEY]?.minimumDeposit);\n setMinimumWithdrawal(\n responseJson[ApiKey._API_DATA_KEY]?.minimumWithdrawal\n );\n }\n };\n\n async function checkMemberRollover() {\n try {\n getLatestRolloverRecord();\n var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER);\n if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(setDepositModal(true, 2));\n } else {\n setRolloverWarning(true);\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n }\n\n async function getRestore() {\n setBalanceRefresh(true);\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n setBalanceRefresh(false);\n }\n\n async function getLatestRolloverRecord() {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n }\n }\n\n return (\n <>\n {rolloverWarning && (\n
\n {\n setRolloverWarning(false);\n }}\n >\n \n {t(\"ROLLOVER_REQUIREMENT_ERROR\")}\n \n\n
\n
\n
{t(\"LATEST_ROLLOVER_PROGRESS\")}
\n
\n {rolloverData &&\n rolloverData.length > 0 &&\n map(rolloverData, (item, index) => {\n const percentage =\n (item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) == 0 &&\n item[\"rolloverTarget\"] == 0\n ? \"0%\"\n : ((item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) /\n item[\"rolloverTarget\"]) *\n 100;\n return (\n
\n
\n \n = 50\n ? `rotate(180deg)`\n : `rotate(${(percentage / 100) * 180\n }deg)`,\n }}\n >\n \n \n 50\n ? `rotate(${(percentage / 100) * -180\n }deg)`\n : `rotate(-0deg)`,\n }}\n >\n \n
\n {percentage.toFixed(2)}\n %\n
\n
\n\n
\n \n {/* {t(\"LATEST_TOP_UP\")} :{\" \"} */}\n {t(\"LATEST_TOP_UP_AND_BONUS\")} :{\" \"}\n \n \n {numberWithCurrencyFormat(\n parseFloat(item[\"amount\"]),\n 2,\n true\n )}\n \n
{item[\"date\"]}
\n
\n {t(\"YOU_HAVE\")}{\" \"}\n \n {item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]}{\" \"}\n / {item[\"rolloverTarget\"]}\n {\" \"}\n {t(\"TO_GO\")}!\n
\n
\n
\n );\n })}\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n

\n {t(\"ROLLOVER_RED_WARNING\")}\n

\n
\n
\n
\n \n
\n )}\n
\n {heartBeat == false && (\n <>\n
\n {\n _dispatch(setLoginModal(true));\n }}\n >\n {t(\"LOGIN\")}\n
\n {\n _dispatch(setRegisterModal(true));\n }}\n >\n {t(\"REGISTER\")}\n
\n \n \n )}\n {heartBeat && (\n
\n {heartBeat && (\n
\n
{memberData[\"username\"]}
\n {membershipEnabled &&\n
\n {t(\"MEMBERSHIP\")}: {t(_userData.vipName.toUpperCase())}\n \n
\n }\n
\n )}\n
\n
\n
{t(\"BALANCE\")}:
\n
\n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance +\n walletsDetails.bonusWalletBalance,\n 2,\n true\n )}\n
\n
\n {t(\"MIN_DEPOSIT\")}: {minimumDeposit.toFixed(2)}\n
\n
\n {t(\"MIN_WITHDRAWAL\")}:{\" \"}\n {minimumWithdrawal.toFixed(2)}\n
\n
\n
\n
\n {\n if (heartBeat) {\n // _history.push(WebUrl._URL_DEPOSIT)\n _dispatch(setDepositModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n \n {t(\"DEPOSIT\")}\n \n {\n if (heartBeat) {\n checkMemberRollover();\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n \n {t(\"WITHDRAW\")}\n \n {\n if (heartBeat) {\n getRestore();\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n {balanceRefresh ? (\n \n ) : (\n \n )}\n {t(\"REFRESH\")}\n \n
\n
\n
\n\n {rolloverData &&\n rolloverData.length > 0 &&\n map(rolloverData, (item, index) => {\n if (item[\"rolloverTarget\"] === 0) {\n return null; // Skip items with rolloverTarget as 0\n }\n \n const percentage =\n (item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) == 0 &&\n item[\"rolloverTarget\"] == 0\n ? 0\n : ((item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) /\n item[\"rolloverTarget\"]) *\n 100;\n const formattedPercentage = Math.round(percentage);\n return (\n
\n
\n {t(\"YOUR_ROLLOVER_PROGRESS_IS\")}{\" \"}\n \n {item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]}{\" \"}\n / {item[\"rolloverTarget\"]}\n {\".\"}\n
\n
\n
\n \n
\n {formattedPercentage}%\n
\n
\n );\n })}\n
\n )}\n \n \n )\n\n}\n\nexport default MobileLoginComponent","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n SessionKey,\n _MAIN_WALLET_ID,\n TransactionStatus,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n showResponseMessage,\n setBusy,\n setIdle,\n setGameLobbyModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n numberWithCurrencyFormat,\n createFormBody,\n} from \"../../util/Util\";\nimport {\n map,\n find,\n filter,\n get,\n includes,\n forEach,\n} from \"lodash\";\nimport 'swiper/swiper-bundle.css';\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n Modal,\n ModalBody,\n Spinner,\n} from \"reactstrap\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport LoadingPlaceholder from \"components/template_1/LoadingPlaceholder\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\nimport PlaceholderLoading from \"react-placeholder-loading\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport LiveTransactions from \"components/custom/LiveTransactions\";\nimport RecentBigWin from \"components/custom/RecentBigWin\";\nimport ReferralBannerComponent from \"components/custom/ReferralBanner\";\nimport ProviderList from \"components/custom/ProviderList\";\nimport RecentPayout from \"components/custom/RecentPayout\";\nimport RecommendedSlots from \"components/custom/RecommendedSlots\";\nimport FeaturedSlots from \"components/custom/FeaturedSlots\";\nimport HotProviders from \"components/custom/HotProviders\";\nimport RecommendedCasino from \"components/custom/RecommendedCasino\";\nimport MarqueAnnoucement from \"components/custom/MarqueAnnoucement\";\nimport HomePageBanner from \"components/custom/HomePageBanner\";\nimport MobileLoginComponents from \"components/custom/MobileLoginComponents\";\nimport { useMediaQuery } from 'react-responsive';\n\nconst Login = (props) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n\n const memberData = useSelector((state) => state.appState.member);\n\n let isAutoScrolling = false;\n const container = document.getElementById(\"t3-scroll-row\");\n const [isStopScroll, setIsStopScroll] = useState(false);\n const [gameCategoryActive, setGameCategoryActive] = useState({\n id: -1,\n title: \"All\",\n });\n const [gameCategories, setGameCategories] = useState([]);\n const [games, setGames] = useState(\n useSelector((state) => state.appState.games)\n );\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [isNewWindow, setIsNewWindow] = useState(false);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [isTransferSuccess, setIsTransferSuccess] = useState(false);\n const [transferShow, setTransferShow] = useState(false);\n const [toGameAmount, setToGameAmount] = useState(0);\n const [promoId, setPromoId] = useState(\"\");\n const [promoCodeList, setPromoCodeList] = useState([]);\n const [inputValue, setInputValue] = useState(\"\");\n const [promoShow, setPromoShow] = useState(false);\n const [paidAmount, setPaidAmount] = useState();\n const [transferDate, setTransferDate] = useState();\n const openMenu = useSelector((state) => state.appState.openMenu);\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const activeLanguageCode = useSelector(\n (state) => state.languageState.languageId\n );\n const [isLoading, setIsLoading] = useState(false);\n const [transferLoading, setTransferLoading] = useState(false);\n\n const [showDepositSuccess, setShowDepositSuccess] = useState(false);\n const [showDepositFailed, setShowDepositFailed] = useState(false);\n\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n var companyLanguages = useSelector((state) => state.appState.languages);\n const [teamBanner, setTeamBanner] = useState();\n const [coinIcon, setCoinIcon] = useState();\n const _APPEND_REGISTER_URL = \"/register?code=\";\n const [showAnnouncementModal, setShowAnnouncementModal] = useState(false);\n const [logo, setLogo] = useState();\n const [announcementList, setAnnouncementsList] = useState([]);\n const [noDataBg, setNoDataBg] = useState();\n const [registerUrl, setRegisterUrl] = useState(\"\");\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [bigWinList, setBigWinList] = useState([]);\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n\n const [selectedGameCategoryGames, setSelectedGameCategoryGames] = useState([]);\n const [transcactionNumber, setTranscactionNumber] = useState();\n const dashboardComponent = useSelector((state) => state.appState.dashboardComponent);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const isPC = useMediaQuery({ query: '(min-width: 900px)' });\n var { heartBeat } = useSelector((state) => state.authState);\n\n const {\n handleSubmit: handleSubmitPopup,\n register: registerPopup,\n control: controlPopup,\n watch: watchPopup,\n getValues: getValuesPopup,\n setValue: setValuePopup,\n errors: errorsPopup,\n reset: resetPopup,\n } = useForm();\n var referralDetails = useSelector((state) => state.appState.member.referralCode);\n\n\n const [providerSlick, setProviderSlick] = useState({\n slidesToShow: 4,\n dots: false,\n arrows: false,\n swipe: true,\n infinite: true,\n swipeToSlide: true,\n speed: 1000,\n autoplay: true,\n autoplaySpeed: 5000,\n });\n\n // Detect window size\n const handleWindowSizeChange = () => {\n if (window.innerWidth < 900) {\n setProviderSlick({\n ...providerSlick,\n slidesToShow: 2,\n });\n } else {\n setProviderSlick({\n ...providerSlick,\n slidesToShow: 4,\n });\n }\n };\n useEffect(() => {\n handleWindowSizeChange()\n window.addEventListener(\"resize\", handleWindowSizeChange);\n return () => {\n window.removeEventListener(\"resize\", handleWindowSizeChange);\n };\n }, []);\n\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n }, [companyLanguages, activeLanguageCode]);\n\n\n useEffect(() => {\n init();\n //getNewGames();\n // getLatestBets();\n }, []);\n\n useEffect(() => {\n if (activeLanguageId > 0) {\n getAnnouncement();\n }\n }, [activeLanguageId]);\n\n useEffect(() => {\n setRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + referralDetails);\n }, [referralDetails]);\n\n\n useEffect(() => {\n if (announcementList.length > 0) {\n setShowAnnouncementModal(true);\n }\n }, [announcementList]);\n\nuseEffect(() => {\n if (gameCategoryActive.title === \"All\") {\n setSelectedGameCategoryGames(games);\n }\n else {\n var selectedCategoryGameList = games.filter(game => game[\"categoryTitle\"] === gameCategoryActive.title);\n setSelectedGameCategoryGames(selectedCategoryGameList);\n }\n\n}, [gameCategoryActive]);\n\nuseEffect(() => { \n if (games.length) {\n setSelectedGameCategoryGames(games);\n }\n}, [games]);\n\n const closePopUp = () => {\n // setting key \"seenPopUp\" with value true into localStorage\n // localStorage.setItem(\"seenPopUp\", true);\n // setting state to false to not display pop-up\n setShowAnnouncementModal(false);\n };\n\n async function init() {\n // if (heartBeat) {\n // \tbindMember(_dispatch);\n // }\n\n const search = window.location.search;\n const params = new URLSearchParams(search);\n\n if (params.get(\"transactionStatus\")) {\n let transactionStatus = params.get(\"transactionStatus\");\n\n if (transactionStatus == TransactionStatus._APPROVED) {\n setShowDepositSuccess(true);\n } else if (transactionStatus == TransactionStatus._REJECTED) {\n setShowDepositFailed(true);\n }\n // params.get('transactionStatus') == TransactionStatus._APPROVED ? setShowDepositSuccess(true) :\n // \tparams.get('transactionStatus') == TransactionStatus._REJECTED ? setShowDepositFailed(true) : \"\";\n }\n\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n\n const submitPopupForm = async (data, e) => {\n setTransferLoading(true);\n let params = {\n fromWallet: _MAIN_WALLET_ID,\n toWallet: masterProductId,\n amount: toGameAmount,\n promotionProductId: promoId,\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_CREATE_WALLET_TRANSFER_TRANSACTION,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n await updateWalletBalance(\n parseFloat(responseJson[ApiKey._API_DATA_KEY].amount).toFixed(2)\n );\n setPaidAmount(responseJson[ApiKey._API_DATA_KEY].amount);\n setTransferDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n setIsTransferSuccess(true);\n setShowPregamePopup(true);\n setTransferShow(false);\n setTranscactionNumber(responseJson[ApiKey._API_DATA_KEY].transactionId);\n getRolloverProgress(masterProductId);\n e.target.reset();\n } else {\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n setTransferLoading(false);\n };\n\n async function updateWalletBalance() {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let tempFromOptions = [];\n let tempToOptions = [];\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n let gameWalletBalance = parseFloat(product.balance);\n setGameWalletBalanceBeforeTransfer(gameWalletBalance);\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n }\n }\n\n\n useEffect(() => {\n if (container) {\n startAutoScroll();\n }\n }, [container]);\n\n useEffect(() => {\n if (isStopScroll) {\n setTimeout(() => {\n startAutoScroll();\n setIsStopScroll(false);\n }, 500);\n }\n }, [isStopScroll]);\n\n function startAutoScroll() {\n isAutoScrolling = true;\n scrollToBottom();\n container.addEventListener(\"wheel\", () => {\n stopAutoScroll();\n });\n }\n\n function stopAutoScroll() {\n isAutoScrolling = false;\n setIsStopScroll(true);\n }\n\n function scrollToBottom() {\n if (!isAutoScrolling) {\n return;\n }\n\n const start = container.scrollTop;\n const end = container.scrollHeight - container.clientHeight;\n const duration = 15000; // Set the duration in milliseconds\n\n const startTime = performance.now();\n\n function scroll(currentTime) {\n if (!isAutoScrolling) {\n return;\n }\n\n const elapsedTime = currentTime - startTime;\n\n const percentage = Math.min(1, elapsedTime / duration);\n const easeInOut = 0.5 - 0.5 * Math.cos(Math.PI * percentage);\n\n container.scrollTop = start + easeInOut * (end - start);\n\n if (percentage < 1) {\n requestAnimationFrame(scroll);\n }\n }\n\n requestAnimationFrame(scroll);\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const gameCategories = [];\n const pathnamesToFilter = [\"/game-list\", \"/sports\", \"/casino\", \"/slots\", \"/keno\", \"/fish\", \"/e-sport\", \"/arcade\", \"/crash\", \"/exchange\"];\n\n const gameList = filter(companyIcons, item => includes(pathnamesToFilter, item.pathname));\n if (gameList) {\n gameList.forEach(function (x) {\n gameCategories.push({\n id: x.iconName == \"All\" ? -1 : x.id,\n title: x.iconName,\n image: x.iconImage||x.defaultImage,\n });\n });\n setGameCategories(gameCategories);\n }\n\n const teamBanner = find(companyIcons, { iconCategory: \"team_banner\" });\n if (teamBanner) {\n setTeamBanner(teamBanner.iconImage||teamBanner.defaultImage);\n }\n\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n\n const chunkArray = (arr, chunkSize) => {\n const result = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n result.push(arr.slice(i, i + chunkSize));\n }\n return result;\n };\n\n const itemsPerSlide = 2; // Two columns and three rows\n const slides = chunkArray(bigWinList, itemsPerSlide);\n\n\n const updateMasterProductId = (id) => {\n setMasterProductId(id)\n };\n const updateSelectedGameIsSeamless = (bool) => {\n setSelectedGameIsSeamless(bool)\n };\n const updateSelectedGameName = (name) => {\n setSelectedGameName(name)\n };\n const updateProductGameId = (id) => {\n setProductGameId(id)\n };\n const updatePopBannerImage = (url) => {\n setPopupBannerImage(url)\n };\n const updateTitle = (id) => {\n //null\n };\n const updateCategoryTitle = (category) => {\n setCategoryTitle(category)\n };\n const UpdateIsSupportIframe = (bool) => {\n setIsSupportIframeState(bool)\n };\n const updateProviderName = (name) => {\n setProviderName(name)\n };\n\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 899);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const getAnnouncement = async () => {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_ANNOUNCEMENT + \"?languageId=\" + activeLanguageId\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setAnnouncementsList(responseJson[ApiKey._API_DATA_KEY]);\n }\n };\n\n\n return (\n <>\n {/*
*/}\n\n {/* /////////t3 content */}\n
\n {showDepositSuccess && (\n {\n setShowDepositSuccess(false);\n }}\n >\n {t(\"DEPOSIT_SUCCESS\")}\n \n )}\n\n {showDepositFailed && (\n {\n setShowDepositFailed(false);\n }}\n >\n {t(\"DEPOSIT_FAILED\")}\n \n )}\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n ( _dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n\n {/*arrangement set in BO (control by company)*/}\n
\n
\n {dashboardComponent != null && dashboardComponent.filter(x => x.status && isMobile ? x.deviceType == 2 : x.deviceType == 1) !=null &&\n <>\n {dashboardComponent.filter(x => (x.componentStatus && x.userComponentStatus) && (isMobile ? x.deviceType == 2 : x.deviceType == 1)).map((item, index) => {\n\n switch (item.name) {\n case \"Homepage Banner\":\n return ;\n case \"Marque Annoucement\":\n return ;\n case \"Mobile Login Components\":\n return ;\n /*case \"Live Transactions\":\n return ;*/\n case \"Recent BigWin\":\n return ;\n case \"Referral Banner\":\n return ;\n case \"Provider List\":\n return ;\n case \"Recent Payout\":\n return ;\n case \"Recommended Slot\":\n return ;\n case \"Featured Slot\":\n return \n case \"Hot Providers\":\n return ;\n case \"Recommended Casino\":\n return ;\n }\n })}\n \n }\n\n {/*default arrangement set in BO (control by super company)*/}\n {dashboardComponent != null && dashboardComponent.filter(x => x.status && x.deviceType ==3) != null &&\n <>\n {dashboardComponent.filter(x => (x.componentStatus && x.userComponentStatus) && x.deviceType == 3).map((item, index) => {\n switch (item.name) {\n case \"Homepage Banner\":\n return ;\n case \"Marque Annoucement\":\n return ;\n case \"Mobile Login Components\":\n return ;\n /*case \"Live Transactions\":\n return ;*/\n case \"Recent BigWin\":\n return ;\n case \"Referral Banner\":\n return ;\n case \"Provider List\":\n return ;\n case \"Recent Payout\":\n return ;\n case \"Recommended Slot\":\n return ;\n case \"Featured Slot\":\n return \n case \"Hot Providers\":\n return ;\n case \"Recommended Casino\":\n return ;\n }\n })}\n \n }\n\n {/*original arrangement*/}\n {dashboardComponent == null &&\n <>\n \n \n\n \n {\n //\n }\n \n \n\n \n \n \n\n \n\n \n\n \n \n }\n\n {/* {latestBets && latestBets.length > 0 && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{t(\"LATEST\")} {t(\"BETS\")} \n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t(\"GAME\")}\n\t\t\t\t\t\t\t\t\t{t(\"PLAYER\")}\n\t\t\t\t\t\t\t\t\t{t(\"BETS\")}\n\t\t\t\t\t\t\t\t\t{t(\"NET_PROFIT\")}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{latestBets &&\n\t\t\t\t\t\t\t\t\t\tlatestBets.length > 0 &&\n\t\t\t\t\t\t\t\t\t\tmap(latestBets, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.gameName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.player.substring(0, 2) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"*\".repeat(item.player.length - 2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.validTurnover}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t= 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-text-green\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-text-red\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.profit}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)} */}\n
\n
\n\n {/* /////////t3 footer */ }\n {/*
*/ }\n\n {/* ///pregame popup */ }\n \n\n {\n setTransferShow(false);\n }}\n // centered\n >\n \n
\n
\n
\n
{t(\"TRANSFER_BALANCE\")}
\n
\n
\n {\n setTransferShow(false);\n setToGameAmount(0);\n setPromoId(\"\");\n setShowPregamePopup(true);\n }}\n >\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {\n let amount = e.target.value\n .replace(\n /[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$||)]*/g,\n \"\"\n )\n .trim();\n\n let value = Number(parseFloat(amount) / 100).toFixed(2);\n if (\n parseFloat(value) > parseFloat(fromOptions[0].amount)\n ) {\n value = fromOptions[0].amount;\n }\n e.target.setSelectionRange(value.length, value.length);\n setInputValue(value);\n setToGameAmount(value);\n }}\n disabled={\n fromOptions.length > 0 &&\n fromOptions[0].amount >\n numberWithCurrencyFormat(parseFloat(0), 2, true)\n ? \"\"\n : \"disabled\"\n }\n />\n
\n \n {t(\"AVAILABLE_BALANCE\")}\n {fromOptions.length > 0\n ? numberWithCurrencyFormat(fromOptions[0].amount, 2)\n : \"\"}\n \n
\n \n {t(\"Min\")}:{\" \"}\n {promoId != \"\"\n ? numberWithCurrencyFormat(\n promoCodeList.filter(\n (x) => x.id == parseInt(promoId)\n )[0].minDeposit,\n 2,\n true\n )\n : numberWithCurrencyFormat(1, 2, true)}\n \n {\n setPromoShow(true);\n setTransferShow(false);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {promoId == \"\"\n ? t(\"PROMO_CODE\")\n : promoCodeList.filter(\n (x) => x.id == parseInt(promoId)\n )[0].name}\n
\n
\n
\n \n
\n
\n {promoId != null &&\n promoCodeList\n .filter((x) => x.id == parseInt(promoId))\n .map((item, index) => {\n return (\n \n
\n
\n
{t(\"BONUS\")} %
\n
\n
\n \n {\" \"}\n {item.bonus}\n
\n
\n\n
\n
\n
Rollover
\n
\n \n {\" \"}\n x{item.rollover}\n
\n \n \n );\n })}\n\n
\n {bonus > 0 && (\n <>\n \n {t(\"BONUS\")}:{\" \"}\n {numberWithCurrencyFormat(parseFloat(bonus), 2, true)}%\n \n
\n \n )}\n
\n
\n 0\n ? \"t3-custom-light-btn mt-4 mb-4\"\n : \"t3-custom-light-btn mt-4 mb-4 disabled\"\n }\n >\n {t(\"TRANSFER_TO_WALLET\")}\n {transferLoading ? (\n \n ) : (\n \"\"\n )}\n \n
\n \n \n \n \n \n\n {\n setPromoShow(false);\n }}\n centered\n >\n \n
\n
\n
\n
{t(\"PROMO_CODE\")}
\n
\n
\n {\n setPromoShow(false);\n setTransferShow(true);\n }}\n >\n \n
\n
\n
\n
\n
\n
\n \n
\n {\n setPromoId(\"\");\n setPromoShow(false);\n setTransferShow(true);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {t(\"NO_BONUS\")}\n
\n
\n
\n {promoCodeList\n .filter((x) => x.productId == masterProductId)\n .map((promo, index) => {\n return (\n {\n setPromoId(promo.id);\n setPromoShow(false);\n setTransferShow(true);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {selectedGameName} - {promo.name}\n
\n
\n \n );\n })}\n \n \n \n
\n \n\n {\n setShowAnnouncementModal(false);\n }}\n centered\n fullscreen\n >\n \n
\n
\n
\n {logo ? (\n \"logo\"\n ) : (\n \n )}\n
\n setShowModalRegister(!showModalRegister)}\n onClick={() => closePopUp()}\n >\n \n
\n
\n
\n
\n {announcementList &&\n announcementList.length > 0 &&\n map(announcementList, (item, index) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n closePopUp()}\n >\n OK\n \n
\n
\n \n
\n \n\n { isLoading ? : \"\" }\n \n );\n};\n\nexport default Login;\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQLSURBVHgB7ZhNbBtFFMffm92kDcSNYydOnBQUQIhKCKlQ9YJQSCSQCkKFE9xo6I1ycesibiFuD6gQNy4XPg4tomcQolSCA2okhAQSAgSoNAioJT78FbdJ2rR1vTuvb9M6Wdv76a7THvqT7J2ZNzP73503b54NcIfWQAiIcILCXdVcD2zsXs6lN81DALQsbjBZGuPBO3mGJ4Egzk1x06zL/D0Hkn4joZzEpStf5D4cvgQ+8SUunDgbvkvpThDAq1yNeR1HgEsC5KdS7UjlD/VmvY7zLG5gX2mnEPg+EMXhZkA4mJvun/TW1YWxsVPqH9sePsJPvwcCA7OkKuNub9FR3OY3FyP68tWveV22QuBgVkfxfHE68otdD2Fn6Nt9JqRfrH7ZHmEGNKKCfmLwjfMj4FdcZ2/fWzzBdmgjRHAvavopY6NZ2S3FDSaLuwjoNVgXaKRLhFJWliaf27yXunRRPm0MgvVE0Gjundg35ia1sY/E8u6bEcYxcBZJniBUyiv3lKhKkMOI+CDP/gwgRi0HanCAv8fNTU1vLp6cP9uqOPahqfzh/pSdfShZ+onF224wTadHS5nYz7V6nc8N7yuNty6MPnISttIH4BEnu6qIl8z1OnES8AVoEZ20o072ePL/bXxRnPoA0g5ztd7nUG5tNRcQiphrbONlnORd/wQRXubqouskHFON+Dp/dMuFZnGAW6BFCne/V5cmGVkLL2PKeFj08bxqT/QhvvxglFeXtX9PsRt8ZBoNEKRSEgKAXeueWnlVnBpSI3AbIFAP1cqry6pfqVYUVYBPZjl8zFpaVDVLVW1q7aY4wv43AS5IUi40iSuGY6X4xTI7LfWARwxhduHjRjq0ahtK5J8CRZkAFwTQubVyjRSyz1AB2gTng56SVKVD/FUr160jIX4LbQIFbnLtRFD67+3ov7VqfSiR+izP8gp4hP0owcfdBAdP4tT7frPt+g8gPGZqCq+cEY7Ir8y1OnEbZefnFUWrcHEDeIAdPLxyU7K769pR6CbLQJfwiblet6zZTO8CR8wP4FZAlC1mBj4zN4nmPlVDXCAB1Q/8+/ZAY1uTuHw6fprX4F1YTxDn8tPRY43NllG3q0OZ4ssZWAfYFzXSqjusbJbi/j4UWZRSeZGLgfzn4QTvpf35TDxrZbM9rwozkV8l4nOcUCxAmyAUk4V07Iid3fEwLUz3fV+VnduNnQTByqqQlPvZzw469XI96UszPX9WQBllrz0OQUD4O+j4eH5mIO3W1VMacu5w9J9cuu9lFsif1jaK4R6SaO+GUPSxXKb/Ry9jVPABCzTe3vF48vwokbaLM9xnuT5oO4BgSQJ9R5I+vgqXTi5k7mub/1oSe33hgaFk+WlrKwX2z+kd/HANo89mPd81XDsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQcSURBVHgB7ZhfaNtVFMfPuUnblOmWMBxJk2mn/ZOpExHBl7IFofpi9yAY2hS3TvAPgtYNQS1CNweKexARX+aDOucWGvGpqDDBupf5IMN/rK5JatKlbZL9M7I/SZPf7x7P3QikaZr98q8d2z6Q3ntPzrn5cu+593d+BbjDLQjCTULXlzGnaDH3AuonTve7gsq26uI6x+a3ChJvEkFf3iZJ7g772j5eHXFE2DF2ttdE9A4BeJZ+TamQz2EzwwrS8fWFtcKU3UNjyeeQ4EFaxg8RrapdEXH3HknZLGJhGEDjD1qRbhhySv1pqLjNh+cek03mPSTT21nU3YYDCUKqaYg4tz/uIcBRXeUTZzrvU0XxKOq8ch3fU4splRwkhJckwBNQA1LK31Rbs7j2LyLWZovlDfov8Toh2qAOaFmMqbZqcd3+M20ELSPcHeQksRrZON7qY0D4N6IcLud3VWB126rySQfB9xN5+OeajUVRTAixO6fJNSaBB2/gPJ3cYb+iOgIM0h1IPNntT0xIwAkEeopNxoQhfZTNZB4hTXexsENssZT3x0i+W3blVD41tbbu5HtphHTYAJVANMkH49XwgON4lz++V51eg3F/lRXnPjS7XjabXuOFHWZnK1QCwoIk+iDsc+xTw05/Yj837xoNJ9J/LSmu6+jZHhD0opQwwG5NKoUrgmAiC/RCdMARvS4s+R6ngGFh16donl8kzh24uIX07CcE0nNNT4XlAIck+a4dCfvsn6uxZ3TCHO92f8aHZhdUyLpLMycWiZNSex9KVAdGkASfZsy50VnvxotqfH9get2ctuYbfij0QqUQxE6+/HhukTjS08MoLP/yT/WpB7PBqaKSTENh3z3H84aOb2dduGAeZ2GPQhUQij8Lx9fEhQbv+4ebHarfGbjQC3puCAG3srtryQRqDsL9l+7a8GF8O17N27sC552U1X5gYQ9DtfAJXyKukJB3/Y/cqA+4jyb6JOKzHPU0Dx0s7Geh6a9MPe+cKozhi7mdU+MnTtVNUAN86S5dueU47bOPczOuFusB/7xresAZK+WnLmZe0naoFRNECoc1l+mbD59z6GZ9HupANpO2RXdtSuXHhh9fy5HWLvNBwhTUCtFUoTBFzeJ4wgzf6m9zNw01wOVWvNhWszhFyNd2EE3wEHejUCUI4pdiW13EKaa89ojZpG/jKuQrqAZdRopNdROnmPQ6zwT7HTv5vfMtqPDBrIH592JbXcXl4RfiA1yZbIEKtvmK1CaLbQ0Rp+CS6RSYcj28ft8ZcJ/JV7+FNEycIujdOBf02Z+RQHvLe2KwlLWh4vJwNbwPsEUVA9GSDkgnS5lXRJwi2G/7AxZyPXxKji36gmgmS1TypWdV/svUeSQ+BEJs43w8dxlaD8R9a8/DHW4X/ge4ko4BDwqHQgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAP1BMVEUAAAD/SD//Sj//ST//SED/SED/ST7/SkD/ST//SkD/SD//RED/SUD/ST//RUD/SD//ST//RkD/SED/SkL/ST8EMutfAAAAFHRSTlMAb+/fYF+PML+vrxDfgDDfz1AgH0PyfKsAAACTSURBVBjTbZBZDsMgDAUNDglL9sz9z9oIIhpXnR9g9CxsS6W4NMOegnwZPA/a9QjRXSLToLA0t+CdPDjPWGvxk3Qmz3EfSstBy+LLHVR5S4kESQQrHVlmVitPtN/N5a+cucQwsUvCWTmQxRFtuRKk+N/mtY25mjFDXZJdyNJXp+FOny7C2D9UHvzx7iNvsOVQ6usD79AIckf+z48AAAAASUVORK5CYII=\"","import React, { useState, useRef, useEffect } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from 'react-i18next';\nimport DateTime from 'react-datetime';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { useSelector } from \"react-redux\";\n\nconst DateRangeFilter = (props) => {\n let _history = useHistory();\n const { t, i18n } = useTranslation();\n\n const [sDate, setSDate] = useState();\n const [eDate, setEDate] = useState();\n const [selectedOption, setSelectedOption] = useState({});\n //const [openCalendar, setOpenCalendar] = useState(false);\n const[calendarOpen,setCalendarOpen]=useState(\n {\n startCalendar:false,\n endCalendar:false\n }\n );\n const [optionClicked, setOptionClicked] = useState(false);\n const [currMinDate, setCurrMinDate] = useState(moment());\n const [currMaxDate, setCurrMaxDate] = useState(moment());\n const [chgOption, setchgOption] = useState();\n var _dateRef = useRef(null);\n\n const {\n startDate = sDate,\n endDate = eDate,\n setStartDate,\n setEndDate,\n minDate,\n maxDate,\n onStartDateChange,\n onEndDateChange,\n onSave,\n options = false,\n ...rest\n } = props;\n const _PREV_DAY = \"PREV\";\n const _NEXT_DAY = \"NEXT\";\n\n const _DATE_SELECTIONS = [\n // {\n // label: t(\"PREV_DAY\"),\n // from: _PREV_DAY,\n // },\n {\n label: t(\"TODAY\"),\n from: moment().startOf('day'),\n to:moment().endOf('day'),\n //initialType: moment().startOf('day').format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"YESTERDAY\"),\n from: moment().subtract(1, 'day').startOf('day'),\n to: moment().subtract(1, 'day').endOf('day'),\n initialType: moment().subtract(1, 'day').startOf('day').format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, 'day').endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"THIS_WEEK\"),\n from: moment().startOf('isoWeek'),\n to:moment().endOf('day'),\n initialType: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"LAST_WEEK\"),\n from: moment().subtract(1, 'week').startOf('isoWeek'),\n to: moment().subtract(1, 'week').endOf('isoWeek'),\n initialType: moment().subtract(1, \"week\").startOf(\"isoWeek\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, \"week\").endOf(\"isoWeek\").format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"THIS_MONTH\"),\n from: moment().startOf('month'),\n to:moment().endOf('day'),\n initialType: moment().startOf(\"month\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"LAST_MONTH\"),\n from: moment().subtract(1, 'month').startOf('month'),\n to: moment().subtract(1, 'month').endOf('month'),\n initialType: moment().subtract(1, \"month\").startOf(\"month\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, 'month').endOf('month').format(\"DD-MM-YYYY\")\n },\n // {\n // label: t(\"NEXT_DAY\"),\n // from: _NEXT_DAY\n // },\n ];\n\n useEffect(() => {\n\n let tempMinDate = props.minDate;\n let tempMaxDate = props.maxDate;\n if (props.minDate === undefined) {\n tempMinDate = moment().subtract(2, 'months');\n }\n if (props.maxDate === undefined) {\n tempMaxDate = moment();\n }\n setCurrMinDate(tempMinDate);\n setCurrMaxDate(tempMaxDate);\n let startDateMoment;\n let endDateMoment;\n if (selectedOption.from == _PREV_DAY) {\n startDateMoment = moment(startDate).subtract(1, 'day');\n endDateMoment = moment(startDate).subtract(1, 'day');\n\n if(moment(startDate).startOf('day').isSameOrBefore(moment(currMinDate).add(1,'day').startOf('day'))){\n startDateMoment = moment(startDate);\n endDateMoment = moment(startDate);\n }\n } else if (selectedOption.from == _NEXT_DAY) {\n startDateMoment = moment(startDate).add(1, 'day');\n endDateMoment = moment(startDate).add(1, 'day'); \n \n if(moment(startDate).startOf('day').isSameOrAfter(moment(currMaxDate).startOf('day'))){\n startDateMoment = moment(startDate);\n endDateMoment = moment(startDate)\n }\n } else {\n startDateMoment = selectedOption.from ? selectedOption.from : moment();\n endDateMoment = selectedOption.to ? selectedOption.to : moment();\n }\n\n if (startDate === undefined || optionClicked) {\n setSDate(startDateMoment);\n if (typeof (setStartDate) !== \"undefined\") {\n props.setStartDate(startDateMoment);\n }\n }\n else\n setSDate(startDate);\n if (endDate === undefined || optionClicked) {\n setEDate(endDateMoment);\n if (typeof (setEndDate) !== \"undefined\") {\n props.setEndDate(endDateMoment);\n }\n }\n else\n setEDate(endDate);\n\n setOptionClicked(false);\n }, [selectedOption]);\n\n // useEffect(() => {\n // if (openCalendar) {\n // _dateRef.current.openCalendar();\n // }\n // }, [openCalendar])\n\n function handleStartDate(date) {\n date=moment(date).startOf('day');\n if(!checkOptionActive(date))setchgOption(true);\n setSDate(date);\n props.setStartDate(date);\n //setOpenCalendar(true);\n if (onStartDateChange) {\n onStartDateChange(date);\n }\n }\n\n useEffect(() => {\n if (chgOption) {\n var object={};\n object.initialType=\"\";\n setOptionClicked(false);\n setSelectedOption(object.initialType);\n updateTypeOnSelection(object);\n setchgOption(false);\n }\n }, [chgOption]);\n\n function handleEndDate(date) {\n date=moment(date).endOf('day');\n if(!checkOptionActive(date))setchgOption(true); \n setEDate(date);\n props.setEndDate(date);\n if (onEndDateChange) {\n onEndDateChange(date);\n }\n }\n\n function checkOptionActive(date){\n var isActive=false;\n\n // Get the localized \"to\" separator\n const separator = t(\"TO\").trim();\n\n if(props.initialType !== undefined && props.initialType.trim()!==''){\n const [startDateStr, endDateStr] = props.initialType.split(`${separator}`);\n \n var startDate=moment(new Date(startDateStr.split('-').reverse().join('-'))).startOf('day');\n var endDate=moment(new Date(endDateStr.split('-').reverse().join('-'))).startOf('day');\n\n if(\n moment(date).startOf('day').isBetween(startDate, endDate, undefined, '[]')\n ){\n isActive=true; \n }\n\n }\n\n return isActive;\n }\n\n function handleSave() {\n if (onSave) {\n onSave(sDate, eDate);\n }\n }\n var sDateValid = function(current){\n return current.isSameOrAfter(currMinDate) && current.isSameOrBefore(moment(eDate).startOf('day'));\n }\n\n function updateTypeOnSelection(selection) {\n if (props.typeOnSelect != undefined) {\n props.typeOnSelect(selection.initialType);\n }\n }\n var eDateValid = function(current){\n return current.isSameOrAfter(moment(sDate).startOf('day')) && current.isSameOrBefore(currMaxDate);\n }\n\n\n\nconst handleClick = (type) => {\n setCalendarOpen((prevState) => {\n if (type === \"start\") {\n return { ...prevState, startCalendar: true };\n } else {\n return { ...prevState, endCalendar: true };\n }\n });\n};\n\nconst handleTouchStart = (type) => (e) => {\n e.preventDefault();\n\n setCalendarOpen((prevState) => {\n if (type === \"start\") {\n return { ...prevState, startCalendar: true };\n } else {\n return { ...prevState, endCalendar: true };\n }\n });\n};\n\nconst startDateTimeRef = useRef(null);\nconst endDateTimeRef = useRef(null);\n\nuseEffect(() => {\n const handleClickOutside = (e) => {\n if (\n (startDateTimeRef.current && !startDateTimeRef.current.contains(e.target) && calendarOpen.startCalendar) ||\n (endDateTimeRef.current && !endDateTimeRef.current.contains(e.target) && calendarOpen.endCalendar)\n ) {\n setCalendarOpen((prevState) => ({\n startCalendar: false,\n endCalendar: false\n }));\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"touchstart\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchstart\", handleClickOutside);\n };\n}, [calendarOpen]);\n\n return (\n /*
*/\n
\n
\n
\n
\n \n
\n handleClick(\"start\")} // Open calendar on focus\n onClick={() =>handleClick(\"start\")}\n onTouchStart={handleTouchStart(\"start\")} // Also open calendar on click\n inputProps={{ className: \"t3-custom-input-text date\", readOnly: true }}\n name=\"startDate\"\n dateFormat=\"DD-MM-YYYY\"\n closeOnSelect={true}\n value={moment(sDate).format(\"DD-MM-YYYY\")}\n isValidDate={sDateValid}\n timeFormat={false}\n onChange={handleStartDate}\n />\n
\n
\n\n
\n \n
\n handleClick(\"end\")} // Open calendar on focus\n onClick={() =>handleClick(\"end\")}\n onTouchStart={handleTouchStart(\"end\")} // Also open calendar on click\n inputProps={{ className: \"t3-custom-input-text date\", readOnly: true }}\n name=\"endDate\"\n dateFormat=\"DD-MM-YYYY\"\n closeOnSelect={true}\n timeFormat={false}\n value={moment(eDate).format(\"DD-MM-YYYY\")}\n isValidDate={eDateValid}\n //ref={_dateRef}\n onChange={handleEndDate}\n />\n
\n
\n\n \n
\n
    \n {_DATE_SELECTIONS.map((selection, index) => {\n return (\n {\n setOptionClicked(true);\n setSelectedOption(selection);\n updateTypeOnSelection(selection); \n }}\n >\n
    {selection.label}
    \n \n );\n })}\n
\n \n \n
\n\n
\n );\n};\n\nexport default DateRangeFilter;","import React, { useState, useEffect } from \"react\";\n\nconst Pagination = (props) => {\n const { totalPages, retrieveDataRecords, searchKeyword, isResetCurrentPage, setIsChangeTab } = props;\n const [currentPage, setCurrentPage] = useState(1);\n const pageLimit = 5;\n const startPage = Math.max(1, currentPage - Math.floor(pageLimit / 2));\n const endPage = Math.min(totalPages, startPage + pageLimit - 1);\n\n const adjustedStartPage = endPage - startPage + 1 < pageLimit ? Math.max(1, endPage - pageLimit + 1) : startPage;\n\n useEffect(() => {\n if (isResetCurrentPage) {\n resetCurrentPage();\n setIsChangeTab(false);\n }\n }, [isResetCurrentPage]);\n\n const goToPage = (pageNumber) => {\n if (pageNumber >= 1 && pageNumber <= totalPages) {\n setCurrentPage(pageNumber);\n retrieveDataRecords(pageNumber, searchKeyword);\n }\n };\n\n const previousPage = () => {\n if (currentPage > 1) {\n goToPage(currentPage - 1);\n }\n };\n\n const nextPage = () => {\n if (currentPage < totalPages) {\n goToPage(currentPage + 1);\n }\n };\n\n function resetCurrentPage() {\n setCurrentPage(prev => 1);\n }\n\n return (\n
\n \n
\n {[...Array(endPage - adjustedStartPage + 1).keys()].map((_, index) => {\n const pageNumber = adjustedStartPage + index;\n return (\n \n goToPage(pageNumber)}\n >\n {pageNumber}\n \n )\n })}\n
\n \n
\n );\n};\n\nexport default Pagination;","var map = {\n\t\"./template_1/Login\": 345\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 496;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/LiveChat\": [\n\t\t743,\n\t\t27\n\t],\n\t\"./template_1/home/LiveChat\": [\n\t\t382,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 497;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Settings\": [\n\t\t697,\n\t\t0,\n\t\t32\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 498;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Kpi\": [\n\t\t698,\n\t\t50\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 499;\nmodule.exports = webpackAsyncContext;","import { fetch } from 'whatwg-fetch';\nimport { InputValidationKey } from './Constant';\n\n/// \n/// Author : \n/// To Check if it is empty or null string\n/// \nexport function stringIsNullOrEmpty(data) {\n return data == null || data == '';\n}\n\n/// \n/// Author : \n/// Convert array into form that use to post data\n/// \nexport function createFormBody(params) {\n let formBody = [];\n\n for (let property in params) {\n let encodedKey = encodeURIComponent(property);\n let encodedValue = encodeURIComponent(params[property]);\n formBody.push(encodedKey + \"=\" + encodedValue);\n }\n\n formBody = formBody.join(\"&\");\n return formBody;\n}\n\n/// \n/// Author : \n/// Convert array into form that use to post data\n/// \nexport function createMultiPartFormBody(params) {\n var formBody = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n formBody.append(key, value);\n }\n\n return formBody;\n}\n\n/// \n/// Author : \n/// Used to Navigation to certain path\n/// \nexport function navigateTo(history, url, state) {\n if (state !== undefined) {\n history.push({\n pathname: url,\n state: state\n });\n } else {\n history.push(url);\n }\n}\n\n/// \n/// Author : \n/// \nexport const dataTableFilterCaseInsensitive = (filter, row) => {\n const id = filter.pivotId || filter.id;\n if (row[id] !== null && typeof row[id] === 'string') {\n return (\n row[id] !== undefined ?\n String(row[id].toLowerCase()).startsWith(filter.value.toLowerCase()) : true\n )\n } else {\n return (\n String(row[filter.id]) === filter.value\n )\n }\n}\n\n/// \n/// Author: -\n/// \nexport function getValidationMessage(error) {\n var validationMsg = \"\";\n switch (error.type) {\n case InputValidationKey._REQUIRED_KEY:\n validationMsg = \"INPUT_FIELD_REQUIRED\";\n break;\n case InputValidationKey._MAX_LENGTH_KEY:\n validationMsg = \"MAX_LENGTH_EXCEEDED\";\n break;\n case InputValidationKey._MIN_LENGTH_KEY:\n validationMsg = \"MIN_LENGTH_NO_MET\";\n break;\n default:\n validationMsg = error.message\n break;\n }\n return validationMsg;\n}\n\n/// \n/// Author: -\n/// \nexport const capitalize = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n/// \n/// Author: -\n/// \nexport function isObjectEmpty(data) {\n return Object.keys(data).length === 0;\n}\n\n/// \n/// Author : \n/// \nexport async function imagePathToFileObject(imagePath) {\n const response = await fetch(imagePath);\n const blob = await response.blob();\n const file = new File([blob], imagePath);\n return file;\n}\n\n/// \n/// Author : \n/// \nexport function formatNumber(data, decimalPlaces) {\n return parseFloat(data).toLocaleString(undefined, { minimumFractionDigits: decimalPlaces })\n}\n\n/// \n/// Author : \n/// \nexport function arrayGroupByKey(array, key) {\n return array.reduce((result, currentValue) => {\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\n currentValue\n );\n\n return result;\n }, {});\n};\n\n/// \n/// Author : \n/// \nexport function numberWithCurrencyFormat(value, decimal = 2, force = false) {\n const CURRENCY_DECIMAL = 2;\n\n \n if (decimal === 0) {\n return Math.round(value).toString().replace(/\\d(?=(\\d{3})+$)/g, '$&,');\n }\n\n\n var convertedNumber = parseFloat((Math.round(value * Math.pow(10, decimal))) / Math.pow(10, decimal)).toFixed(decimal).toString().replace(/\\d(?=(\\d{3})+\\.)/g, '$&,');\n\n if (decimal > CURRENCY_DECIMAL) {\n let afterDecimalNumber = convertedNumber.split('.');\n let decimalDiff = decimal - CURRENCY_DECIMAL;\n if (afterDecimalNumber.length == 2 && convertedNumber.lastIndexOf('0') == (convertedNumber.length - 1)) {\n let processNumber = afterDecimalNumber[1];\n let beginNumber = !force ? processNumber.length - 1 : processNumber;\n for (let i = beginNumber; (i > 0 && decimalDiff > 0); i--) {\n if (processNumber.charAt(i) == '0') {\n processNumber = processNumber.substr(0, i) + processNumber.substr(i + 1);\n } else {\n break;\n }\n decimalDiff--;\n }\n convertedNumber = afterDecimalNumber[0] + \".\" + processNumber;\n }\n }\n\n return convertedNumber\n}\n\n/// \n/// Author : \n/// \nexport function ignoreDecimal(e) {\n const _KEYCODE_DECIMAL = 190;\n const _KEYCODE_E = 69;\n let keyCode = e.keyCode;\n\n if (keyCode == _KEYCODE_DECIMAL || keyCode == _KEYCODE_E) {\n e.preventDefault();\n }\n}\n\nexport function formatPercent(v) {\n return `${v}%`\n}\n\n// CHRIS_LOCALE: Add locale definitions and functions\nconst VALID_LOCALES = [ 'ab' , 'aa' , 'af' , 'ak' , 'sq' , 'am' , 'ar' , 'an' , 'hy' , 'as' , 'av' , 'ae' , 'ay' , 'az' , 'bm' , 'ba' , 'eu' , 'be' , 'bn' , 'bh' , 'bi' , 'bs' , 'br' , 'bg' , 'my' , 'ca' , 'km' , 'ch' , 'ce' , 'ny' , 'zh', 'zk', 'cu' , 'cv' , 'kw' , 'co' , 'cr' , 'hr' , 'cs' , 'da' , 'dv' , 'nl' , 'dz' , 'en' , 'eo' , 'et' , 'ee' , 'fo' , 'fj' , 'fi' , 'fr' , 'ff' , 'gd' , 'gl' , 'lg' , 'ka' , 'de' , 'ki' , 'el' , 'kl' , 'gn' , 'gu' , 'ht' , 'ha' , 'he' , 'hz' , 'hi' , 'ho' , 'hu' , 'is' , 'io' , 'ig' , 'id' , 'ia' , 'ie' , 'iu' , 'ik' , 'ga' , 'it' , 'ja' , 'jv' , 'kn' , 'kr' , 'ks' , 'kk' , 'rw' , 'kv' , 'kg' , 'ko' , 'kj' , 'ku' , 'ky' , 'lo' , 'la' , 'lv' , 'lb' , 'li' , 'ln' , 'lt' , 'lu' , 'mk' , 'mg' , 'ms' , 'ml' , 'mt' , 'gv' , 'mi' , 'mr' , 'mh' , 'ro' , 'mn' , 'na' , 'nv' , 'nd' , 'ng' , 'ne' , 'se' , 'no' , 'nb' , 'nn' , 'ii' , 'oc' , 'oj' , 'or' , 'om' , 'os' , 'pi' , 'pa' , 'ps' , 'fa' , 'pl' , 'pt' , 'qu' , 'rm' , 'rn' , 'ru' , 'sm' , 'sg' , 'sa' , 'sc' , 'sr' , 'sn' , 'sd' , 'si' , 'sk' , 'sl' , 'so' , 'st' , 'nr' , 'es' , 'su' , 'sw' , 'ss' , 'sv' , 'tl' , 'ty' , 'tg' , 'ta' , 'tt' , 'te' , 'th' , 'bo' , 'ti' , 'to' , 'ts' , 'tn' , 'tr' , 'tk' , 'tw' , 'ug' , 'uk' , 'ur' , 'uz' , 've' , 'vi' , 'vo' , 'wa' , 'cy' , 'fy' , 'wo' , 'xh' , 'yi' , 'yo' , 'za' , 'zu', 'tpi']; // ISO 639-1\n\nexport function isValidLocale(locale) {\n return VALID_LOCALES.includes(locale);\n}\n\n// Checks if url has valid locale\nexport function hasValidLocale(pathname) {\n // Get locale from browser url\n const browserLocale = extractLocaleFromPathname(pathname);\n const regex = new RegExp(`^/${browserLocale}$`);\n \n // For condition where url ends with locale\n if(isValidLocale(browserLocale) && pathname.endsWith(`/${browserLocale}`) && pathname.match(regex)) {\n return `${browserLocale}`\n }\n\n // For condition where url contains locale\n const regex2 = new RegExp(`^/${browserLocale}(/|$)`)\n if(isValidLocale(browserLocale) && pathname.startsWith(`/${browserLocale}`) && pathname.match(regex2)) {\n return `${browserLocale}`\n } else {\n return false\n }\n}\n\nexport function extractLocaleFromPathname(pathname) {\n // Split the pathname by slashes and filter out empty strings\n const pathSegments = pathname.split('/').filter(segment => segment.trim() !== '');\n // Check if there's at least one segment that could be the locale\n if (pathSegments.length > 0) {\n return pathSegments[0];\n } else {\n return null; // or a default locale, depending on your application's needs\n }\n}\n\nexport function abbreviateNumber(number) {\n //parse the number just incase got \",\" or any symbols - john\n const parsedNumber = parseInt(number.replace(/[^0-9.-]+/g, \"\"));\n\n if (parsedNumber >= 1_000_000_000) {\n return (parsedNumber / 1_000_000_000).toFixed(1).replace(/\\.0$/, '') + 'b';\n } else if (parsedNumber >= 1_000_000) {\n return (parsedNumber / 1_000_000).toFixed(1).replace(/\\.0$/, '') + 'm';\n } else if (parsedNumber >= 1_000) {\n return (parsedNumber / 1_000).toFixed(1).replace(/\\.0$/, '') + 'k';\n }\n return parsedNumber.toString();\n}\n\n// Utility function to adjust the font size\nexport const adjustFontSizeToFit = () => {\n // Select all the elements you want to adjust (you can customize this selector)\n const elements = document.querySelectorAll(\".adjust-font-size\");\n\n elements.forEach(element => {\n //console.log(element);\n const maxWidth = element.clientWidth;\n const maxHeight = element.clientHeight;\n let fontSize = parseInt(window.getComputedStyle(element).fontSize, 10);\n //console.log(\"element.scrollWidth\", element.scrollWidth, \" > \", maxWidth, \" | \", element.scrollHeight , \" > \" , maxHeight)\n\n // Decrease font size until the element fits within the container\n while (\n (element.scrollWidth > maxWidth || element.scrollHeight > maxHeight) &&\n fontSize > 10\n ) {\n //console.log(fontSize)\n fontSize -= 1;\n element.style.fontSize = `${fontSize}px`;\n }\n });\n};","var map = {\n\t\"./template_1/home/News\": [\n\t\t699,\n\t\t51\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 500;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/NewsDetails\": [\n\t\t700,\n\t\t52\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 501;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameLobby\": [\n\t\t741,\n\t\t22\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 502;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/UnderMaintenance\": [\n\t\t701,\n\t\t31\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 503;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/report/GameDetails\": [\n\t\t702,\n\t\t30\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 504;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/ContactForm\": [\n\t\t703,\n\t\t29\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 505;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/LiveChat\": [\n\t\t382,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 506;\nmodule.exports = webpackAsyncContext;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 507;","var map = {\n\t\"./template_1/home/Promotion\": [\n\t\t704,\n\t\t53\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 508;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/PromotionInfo\": [\n\t\t705,\n\t\t54\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 509;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/CustomPage\": [\n\t\t706,\n\t\t49\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 510;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameList\": [\n\t\t746,\n\t\t23\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 511;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Referral.js\": [\n\t\t745,\n\t\t0,\n\t\t19\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 512;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Vip.js\": [\n\t\t742,\n\t\t21\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 513;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Rebate.js\": [\n\t\t707,\n\t\t28\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 514;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/RecentGames.js\": [\n\t\t708,\n\t\t26\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 515;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/HotGames.js\": [\n\t\t709,\n\t\t25\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 516;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/NotFound.js\": 220\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 517;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GamePage2\": [\n\t\t744,\n\t\t20\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 518;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/profile/SpinWheelList\": [\n\t\t710,\n\t\t0,\n\t\t24\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 519;\nmodule.exports = webpackAsyncContext;","import React, { useState } from 'react';\n\nconst FallbackImage = ({ src, alt, fallbackSrc }) => {\n const [imageLoaded, setImageLoaded] = useState(true);\n const [imageError, setImageError] = useState(false);\n\n const handleLoad = () => {\n // console.log(\"Load\")\n setImageLoaded(true);\n setImageError(false);\n };\n\n const handleError = () => {\n console.log(\"Error\")\n setImageLoaded(false);\n setImageError(true);\n };\n\n return (\n <>\n {imageLoaded && !imageError && src ? (\n \n ) : (\n \"Fallback\n )}\n \n );\n};\n\nexport default FallbackImage;\n","module.exports = __webpack_public_path__ + \"static/media/spin-wheel-btn.aeb00e2d.svg\";","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport { Language, SessionKey } from \"../util/Constant\";\n\nimport common_en from \"./en/common.json\";\nimport common_kh from \"./kh/common.json\";\nimport common_cn from \"./zh/common.json\";\nimport common_vi from \"./vi/common.json\";\nimport common_id from \"./id/common.json\";\nimport common_pt from \"./pt/common.json\";\nimport common_bn from \"./bn/common.json\";\nimport common_zh_hk from \"./zh-HK/common.json\";\nimport common_ur from \"./ur/common.json\";\nimport common_ne from \"./ne/common.json\";\nimport common_tpi from \"./tpi/common.json\";\nimport common_ho from \"./ho/common.json\";\n\n/// \n/// Author: -\n/// \nconst _resources = {};\n_resources[Language._ENGLISH] = { common: common_en };\n_resources[Language._KHMER] = { common: common_kh };\n_resources[Language._CHINESE] = { common: common_cn };\n_resources[Language._VIETNAMESE] = { common: common_vi };\n_resources[Language._INDON] = { common: common_id };\n_resources[Language._PORTUGUESE] = { common: common_pt };\n_resources[Language._BENGALI] = { common: common_bn };\n_resources[Language._TRADITIONAL_CHINESE] = { common: common_zh_hk };\n_resources[Language._URDU] = { common: common_ur };\n_resources[Language._NEPALI] = { common: common_ne };\n_resources[Language._TOK_PISIN] = { common: common_tpi };\n_resources[Language._HIRI_MOTU] = { common: common_ho };\n\n\nif (window.ReactNativeWebView) {\n\twindow.ReactNativeWebView.postMessage(\n\t\tJSON.stringify({\n\t\t\taction: \"language\",\n\t\t\tlanguage: localStorage.getItem(SessionKey._LANGUAGE) || Language._ENGLISH,\n\t\t})\n\t);\n}\n\ni18n.use(initReactI18next).init({\n\tdefaultNS: \"common\",\n\tdebug: false,\n\tresources: _resources,\n\tlng: localStorage.getItem(SessionKey._LANGUAGE) || Language._ENGLISH,\n\tfallbackLng: [Language._ENGLISH, Language._KHMER],\n\tkeySeparator: false,\n\tinterpolation: {\n\t\tescapeValue: false, // react already safes from xss\n\t},\n});\n\nexport default i18n;\n","/// \n/// Author: -\n/// \nimport axios from \"axios\";\nimport { ApiKey } from \"./Constant.js\";\nimport * as AppActions from \"../redux/AppAction\";\nimport * as AuthActions from \"../redux/AuthAction\";\nimport store from \"../ApplicationStore\";\nimport i18n from \"i18next\";\n\nconst _HTTP_CODE_UNAUTHORIZED = 401;\nconst _HTTP_CODE_FORBIDDEN = 403;\n\n/// \n/// Author: -\n/// \nasync function interceptRequest(requestConfig) {\n //store.dispatch(AppActions.setBusy());\n return requestConfig;\n}\n\n/// \n/// Author: -\n/// \nfunction interceptResponse(response) {\n store.dispatch(\n AppActions.setPerformApiCall(\n response.data[ApiKey._API_SUCCESS_KEY],\n response.config.url\n )\n );\n\n //store.dispatch(AppActions.setIdle());\n return response.data;\n}\n\n/// \n/// Author: -\n/// \nfunction interceptError(error) {\n var returnData = {};\n\n store.dispatch(AppActions.setIdle());\n if (error && error.response) {\n if (\n error.response.status == _HTTP_CODE_UNAUTHORIZED ||\n error.response.status == _HTTP_CODE_FORBIDDEN\n ) {\n store.dispatch(AuthActions.performLogout());\n store.dispatch(\n AppActions.showResponseMessage(false, i18n.t(\"SESSION_EXPIRED\"))\n );\n returnData = {\n success: false,\n message: i18n.t(\"SESSION_EXPIRED\"),\n };\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(error.response));\n }\n }\n }\n\n // if (!store.getState().authState.heartBeat) {\n // store.dispatch(AuthActions.setToggleLoginModal(true));\n // }\n return returnData;\n}\n\n//const baseURL = \"https://staging.riocity9.com\";\nconst baseURL = \"\";\n\nconst ApiEngine = axios.create({\n baseURL,\n withCredentials: true,\n headers: {\n \"X-Requested-With\": ApiKey._API_XML_HTTP_REQUEST_KEY,\n },\n});\n\nApiEngine.interceptors.request.use(\n (config) => interceptRequest(config),\n (error) => interceptError(error)\n);\n\nApiEngine.interceptors.response.use(\n (response) => interceptResponse(response),\n (error) => interceptError(error)\n);\n\nexport default ApiEngine;\nexport { baseURL };\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAOVBMVEUAAAD/tgD/tgD/tgD/tgD/tQD/tgD/tQD/tgD/rwD/tgD/tgD/tQD/sgD/twD/tQD/twD/tQD/tgC3MNVUAAAAEnRSTlMA32/vr2BfMI8Qv8+AUCAfv3+ARKcuAAAAjklEQVQY022QWQ7DIAwFvQVCmqWd+x+2KEQ0VJkfzOhZGMtJsVB4RZIfk3OhXc+w2CGSJ4W1uRU3uTBnPnvxLJ3sbPVQWg5aFi81qHKXspAkSKM0QpQ8yh3t9b14lsohA5mXBDbKiRBjGduVJMX/h9eHb7a553Ehn746TTW92xvm/qBy4dt9jqheI5Xz9gUbIgdk90m2kQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/img_404_dark.d07cad8d.png\";","module.exports = __webpack_public_path__ + \"static/media/referral-banner.ba3c75f0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/referral-banner-mobile.d735fe75.jpg\";","var map = {\n\t\"./9loonbet.css\": [\n\t\t725,\n\t\t33\n\t],\n\t\"./blue.min.css\": [\n\t\t726,\n\t\t34\n\t],\n\t\"./dhakacity.css\": [\n\t\t727,\n\t\t35\n\t],\n\t\"./el77.css\": [\n\t\t728,\n\t\t36\n\t],\n\t\"./fengshuibet.css\": [\n\t\t729,\n\t\t37\n\t],\n\t\"./joyi8.css\": [\n\t\t730,\n\t\t38\n\t],\n\t\"./kantipur.css\": [\n\t\t731,\n\t\t39\n\t],\n\t\"./kantipur777.css\": [\n\t\t732,\n\t\t40\n\t],\n\t\"./pkspin.css\": [\n\t\t733,\n\t\t41\n\t],\n\t\"./pkspinbase.css\": [\n\t\t734,\n\t\t42\n\t],\n\t\"./root.css\": [\n\t\t735,\n\t\t43\n\t],\n\t\"./root9loonbet.css\": [\n\t\t736,\n\t\t44\n\t],\n\t\"./rootHk.css\": [\n\t\t737,\n\t\t45\n\t],\n\t\"./rootIndia.css\": [\n\t\t738,\n\t\t46\n\t],\n\t\"./rootbase.css\": [\n\t\t739,\n\t\t47\n\t],\n\t\"./rootbaseS8.css\": [\n\t\t740,\n\t\t48\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 676;\nmodule.exports = webpackAsyncContext;","module.exports = \"data:image/png;base64,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\"","import React from 'react';\n\nexport const PageSettings = React.createContext();","import React, { lazy, Suspense } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { BaseWebUrl as WebUrl } from \"../util/Constant\";\n\n// export const _LOGIN_ROUTE2 = {\n// path: WebUrl._URL_MAIN,\n// exact: false,\n// authRequired: false,\n// component: ,\n// };\n\nexport async function fetchRoute(themeVar, type) {\n // CHRIS_LOCALE: Redirect if trailing slash detected\n if (window.location.pathname !== null && window.location.pathname !== \"/\" && window.location.pathname.endsWith(\"/\")) {\n // // CHRIS TODO: Send 301 redirect for SEO\n // Replace isn't ideal inside react router because it will cause rerender\n // window.location.replace(window.location.pathname.slice(0, -1) + window.location.search);\n\n window.location.href = window.location.pathname.slice(0, -1);\n\n // doesn't work\n // return ;\n }\n\n // Use the variable to fetch data or perform some logic\n // (`Fetching data for variable: ${themeVar}`);\n\n // const Welcome = lazy(async () => await import(`pages/${themeVar}/Welcome`));\n const Login = lazy(async () => await import(`pages/${themeVar}/Login`));\n const LiveChat = lazy(async () => await import(`pages/${themeVar}/LiveChat`));\n // const Register = lazy(async () => await import(`pages/${themeVar}/Register`));\n // const Forgot = lazy(async () => await import(`pages/${themeVar}/Forgot`));\n // const Dashboard = lazy(\n // async () => await import(`pages/${themeVar}/home/Dashboard`)\n // );\n // const Transaction = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Transaction`)\n // );\n // const TransferSuccessful = lazy(\n // async () => await import(`pages/${themeVar}/transaction/TransferSuccessful`)\n // );\n // const Withdrawal = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMobile`)\n // );\n // const WithdrawalRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalRecord`)\n // );\n // const Deposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Deposit`)\n // );\n // const DepositRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/DepositRecord`)\n // );\n // const Downline = lazy(\n // async () => await import(`pages/${themeVar}/home/Downline`)\n // );\n // const MyDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/MyDownline`)\n // );\n // const DownlineDetails = lazy(\n // async () => await import(`pages/${themeVar}/home/DownlineDetails`)\n // );\n // const EditDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/EditDownline`)\n // );\n const Settings = lazy(() => import(`pages/${themeVar}/home/Settings`));\n const Kpi = lazy(async () => await import(`pages/${themeVar}/home/Kpi`));\n const News = lazy(async () => await import(`pages/${themeVar}/home/News`));\n const NewsDetails = lazy(\n async () => await import(`pages/${themeVar}/home/NewsDetails`)\n );\n\n // const PoolResult = lazy(\n // async () => await import(`pages/${themeVar}/game/PoolResult`)\n // );\n const GameLobby = lazy(\n async () => await import(`pages/${themeVar}/game/GameLobby`)\n );\n const UnderMaintenance = lazy(\n async () => await import(`pages/${themeVar}/game/UnderMaintenance`)\n );\n\n // const ReportMenu = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportMenu`)\n // );\n // const WalletHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistory`)\n // );\n // const WalletHistoryMobile = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistoryMobile`)\n // );\n // const CommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/CommissionHistory`)\n // );\n // const BonusHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/BonusHistory`)\n // );\n // const InternaTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/InternaTransferHistory`)\n // );\n // const RolloverStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/RolloverStatement`)\n // );\n // const TransactionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/TransactionHistory`)\n // );\n // const GameHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/GameHistory`)\n // );\n const GameDetails = lazy(\n async () => await import(`pages/${themeVar}/report/GameDetails`)\n );\n // const MembersTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/MembersTransfer`)\n // );\n // const GameWalletTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/GameWalletTransfer`)\n // );\n // const ReportsOverview = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportsOverview`)\n // );\n // const ForgetPin = lazy(\n // async () => await import(`pages/${themeVar}/member/ForgetPin`)\n // );\n\n // const DownlineGroupDetail = lazy(\n // async () => await import(`pages/${themeVar}/member/DownlineGroupDetail`)\n // );\n\n // const UnclaimCommissionHistory = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/UnclaimCommissionHistory`)\n // );\n\n // const Maintenance = lazy(\n // async () => await import(`pages/${themeVar}/Maintenance`)\n // );\n const ContactUs = lazy(\n async () => await import(`pages/${themeVar}/home/ContactForm`)\n );\n const LiveChatPage = lazy(\n async () => await import(`pages/${themeVar}/home/LiveChat`)\n );\n\n // const Shareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/Shareholder`)\n // );\n // const ShareholderDetails = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ShareholderDetails`)\n // );\n // const EditShareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/EditShareholder`)\n // );\n // const RewardsTnC = lazy(\n // async () => await import(`pages/${themeVar}/home/RewardsTnC`)\n // );\n // const ClaimRecord = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ClaimRecord`)\n // );\n // const SummaryDownlineSales = lazy(\n // async () =>\n // await import(`pages/${themeVar}/shareholder/SummaryDownlineSales`)\n // );\n // const DownlineProductRateDetail = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/DownlineProductRateDetail`)\n // );\n\n // const Rewards = lazy(\n // async () => await import(`pages/${themeVar}/home/Rewards`)\n // );\n // const RewardsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsHistory`)\n // );\n // const RewardsDetail = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsDetail`)\n // );\n // const GamePage = lazy(\n // async () => await import(`pages/${themeVar}/home/GamePage`)\n // );\n // const WalletTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletTransferHistory`)\n // );\n // const WalletStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletStatement`)\n // );\n\n // const TouchnGO = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadTnG`)\n // );\n // const ReloadBank = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadBank`)\n // );\n // const UploadReloadReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadReloadReceipt`)\n // );\n // const ReloadDone = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadDone`)\n // );\n // const MainWallet = lazy(\n // async () => await import(`pages/${themeVar}/transaction/MainWallet`)\n // );\n // const GameReload = lazy(\n // async () => await import(`pages/${themeVar}/game/GameReload`)\n // );\n // const WithdrawalMethods = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMethods`)\n // );\n // const ScanQR = lazy(async () => await import(`pages/${themeVar}/qr/ScanQR`));\n // const CreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreateAccount`)\n // );\n // const VerifyCreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/Verify`)\n // );\n // const CreatePassword = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreatePassword`)\n // );\n // const CreateAccountSuccess = lazy(\n // async () => await import(`pages/${themeVar}/qr/Success`)\n // );\n // const CreateAccountByReferralCode = lazy(\n // async () => await import(`pages/${themeVar}/qr/Referral`)\n // );\n // const WithdrawalInProgress = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/WithdrawalInProgress`)\n // );\n // const Commission = lazy(\n // async () => await import(`pages/${themeVar}/home/Commission`)\n // );\n const Transfer = lazy(\n async () => await import(`pages/${themeVar}/transaction/Transfer`)\n );\n // const VipBenefits = lazy(\n // async () => await import(`pages/${themeVar}/home/VipBenefits`)\n // );\n const Promotion = lazy(\n async () => await import(`pages/${themeVar}/home/Promotion`)\n );\n const PromotionInfo = lazy(\n async () => await import(`pages/${themeVar}/home/PromotionInfo`)\n );\n const CustomPage = lazy(\n async () => await import(`pages/${themeVar}/home/CustomPage`)\n );\n // const Home = lazy(async () => await import(`pages/${themeVar}/home/Home`));\n // const Giftpace = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Giftpace`)\n // );\n // const CommissionsInfo = lazy(\n // async () => await import(`pages/${themeVar}/home/CommissionsInfo`)\n // );\n // const Topkash = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Topkash`)\n // );\n // const DailyCheckIn = lazy(\n // async () => await import(`pages/${themeVar}/home/DailyCheckIn`)\n // );\n // const DCRedemption = lazy(\n // async () => await import(`pages/${themeVar}/home/DCRedemption`)\n // );\n // const DCRedemptionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCRedemptionHistory`)\n // );\n // const UnclaimDCPoints = lazy(\n // async () => await import(`pages/${themeVar}/member/UnclaimDCPoints`)\n // );\n // const DCPointsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCPointsHistory`)\n // );\n // const VipCommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/VipCommissionHistory`)\n // );\n\n // const HuiOneDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/HuiOneDeposit`)\n // );\n // const CryptoWalletsDeposit = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/CryptoWalletsDeposit`)\n // );\n\n // const CryptoDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/CryptoDeposit`)\n // );\n\n ///template 3\n const GameList = lazy(\n async () => await import(`pages/${themeVar}/game/GameList`)\n );\n const Referral = lazy(async () => await import(`pages/${themeVar}/home/Referral.js`));\n const Vip = lazy(async () => await import(`pages/${themeVar}/home/Vip.js`));\n const Rebate = lazy(async () => await import(`pages/${themeVar}/home/Rebate.js`));\n \n const RecentGames = lazy(async () => await import(`pages/${themeVar}/game/RecentGames.js`));\n const HotGames = lazy(async () => await import(`pages/${themeVar}/game/HotGames.js`));\n\n const NotFound = lazy(async () => await import(`pages/${themeVar}/NotFound.js`));\n // const WingWeiluyDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WingWeiluyDeposit`)\n // );\n // const UploadWingWeiluyReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadWingWeiluyReceipt`)\n // );\n\n // Add your data fetching logic here\n\n // const _LOGIN_ROUTE = {\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n // };\n const IframeGamePage = lazy(\n async () => await import(`pages/${themeVar}/game/GamePage2`)\n );\n const SpinWheelList = lazy(\n async () => await import(`pages/${themeVar}/profile/SpinWheelList`)\n );\n\n const _LOGIN_ROUTE3 = [{\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n }];\n\n const _ROUTES = [\n {\n path: WebUrl._URL_NOT_FOUND,\n exact: true,\n title: \"404 Not Found\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_LIVECHAT,\n exact: true,\n title: \"LiveChat\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_UNDER_MAINTENANCE,\n exact: true,\n title: \"Under Maintenance\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_SETTINGS,\n exact: true,\n title: \"Settings\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_REGISTER,\n exact: true,\n title: \"Register\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LOBBY,\n exact: true,\n title: \"Game Lobby\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS,\n exact: true,\n title: \"News\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS_DETAILS,\n exact: true,\n title: \"Detail\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_CONTACT_US,\n exact: true,\n title: \"Contact Us\",\n component: ,\n },\n {\n path: WebUrl._URL_LIVE_CHAT,\n exact: true,\n title: \"Live Chat\",\n component: ,\n },\n // {\n // path: WebUrl._URL_GAME_PAGE,\n // exact: true,\n // title: \"Game\",\n // authRequired: true,\n // component: ,\n // },\n {\n path: WebUrl._URL_PROMOTION,\n exact: true,\n title: \"Promotion\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_PROMOTION_INFO,\n exact: true,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST,\n exact: true,\n title: \"Game List\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REFERRAL,\n exact: true,\n title: \"Referral\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_VIP,\n exact: true,\n title: \"Vip\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REBATE,\n exact: true,\n title: \"Rebate\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_RECENT_GAMES,\n exact: true,\n title: \"Recent Games\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SPORTS,\n exact: true,\n title: \"Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SLOTS,\n exact: true,\n title: \"Slots\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CASINO,\n exact: true,\n title: \"Casino\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_FISHHUNT,\n exact: true,\n title: \"Fish Hunt\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_KENO,\n exact: true,\n title: \"Keno\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_ARCADE,\n exact: true,\n title: \"Arcade\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CRASH,\n exact: true,\n title: \"Crash\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_EXCHANGE,\n exact: true,\n title: \"Exchange\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_POKER,\n exact: true,\n title: \"Poker\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/promo/:slug\",\n exact: false,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/pages/:slug\",\n exact: false,\n title: \"Custom Pages\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_E_SPORT,\n exact: true,\n title: \"E-Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_IFRAME_GAME_PAGE,\n exact: true,\n title: \"Game Page\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOT_GAMES,\n exact: true,\n title: \"Hot Games\",\n authRequired: false,\n component: ,\n },\n // {\n // path: WebUrl._URL_SPIN_WHEEL_LIST,\n // exact: true,\n // title: \"Spin Wheel\",\n // authRequired: true,\n // component: ,\n // },\n ];\n\n // const createRoutesWithTrailingSlashRedirects = (routes) => {\n // return routes.reduce((acc, route) => {\n // const { path, title, exact, authRequired, component } = route;\n\n // // Skip wildcard path '*' since it should not have a trailing slash redirect\n // if (path === '*') {\n // return acc.concat(route);\n // }\n\n // const routesWithRedirect = [\n // {\n // path: `${path}/`,\n // exact: true,\n // title: title,\n // authRequired: false, // No auth required for redirects\n // component: ,\n // },\n // route,\n // ];\n\n // return acc.concat(routesWithRedirect);\n // }, []);\n // };\n\n // const locales = ['en', 'bn']; // Example locales\n\n // const generateLocaleRoutes = (routes) => {\n // // return locales.flatMap(locale =>\n // // routes.map(route => ({\n // // ...route,\n // // path: `/${locale}${route.path}`,\n // // }))\n // // );\n // return routes\n // };\n\n // Do not need this anymore - better to do directly\n // const _SANITISED_ROUTES = createRoutesWithTrailingSlashRedirects(generateLocaleRoutes(_ROUTES));\n\n switch (type) {\n case \"login\":\n return ConvertToLocalePath(_LOGIN_ROUTE3);\n // if (themeVar == \"template_1\") return _LOGIN_ROUTE3;\n // else return _LOGIN_ROUTE;\n break;\n default:\n // return _ROUTES;\n return ConvertToLocalePath(_ROUTES);\n break;\n }\n}\n\nfunction ConvertToLocalePath(routes) {\n // CHRIS_LOCALE: Prepend locale to each path\n // Add :locale to all route paths to accommodate for example.com/:locale/pathname\n\n let _LOCALED_ROUTES = [];\n try {\n _LOCALED_ROUTES = routes.map((route) => {\n const { path } = route;\n const localePath = path.startsWith('/') ? `/:locale${path}` : `:locale${path}`;\n return {\n ...route,\n path: localePath,\n }\n });\n } catch (error) {\n console.error(error)\n throw error\n }\n\n return _LOCALED_ROUTES;\n}","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tWebUrl,\n\tApiUrl,\n\tApiKey,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tSessionKey,\n} from \"../../../util/Constant\";\nimport { map, isNumber, debounce, toString } from \"lodash\";\nimport {\n\tnumberWithCurrencyFormat,\n\tstringIsNullOrEmpty,\n\tcreateMultiPartFormBody,\n\tabbreviateNumber,\n} from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetDepositModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetBusyLoading,\n} from \"../../../redux/AppAction\";\nimport moment from \"moment\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Modal, ModalBody, Alert } from \"reactstrap\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\n\n/// \n/// Author: -\n/// \nconst UploadReloadReceipt = (props) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tconst [file, setFile] = useState();\n\tlet _dispatch = useDispatch();\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst [receiptReference, setReceiptReference] = useState(\"\");\n\tconst [selected, setSelected] = useState(0);\n\tconst [amount, setAmount] = useState(0.0);\n\tconst [paidAmount, setPaidAmount] = useState(0);\n\tconst [isReloadSuccess, setIsReloadSuccess] = useState(false);\n\tconst [reloadDate, setReloadDate] = useState();\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst [bankAccountId, setBankAccountId] = useState(props.selectedBank);\n\tconst [isDisabled, setIsDisabled] = useState(false);\n\tconst [bankName, setBankName] = useState(\"\");\n\tconst [accNumber, setAccNumber] = useState(\"\");\n\tconst [label, setLabel] = useState(\"\");\n\tconst [bankref, setBankRef] = useState(\"\");\n\tconst [showCodeAlert, setShowCodeAlert] = useState(false);\n\tconst [bonusDeposit, setBonusDeposit] = useState(\"\");\n\tconst [bankAccountOption, setBankAccountOption] = useState([]);\n\tconst companyCurrency = useSelector(\n\t\t(state) => state.appState.companyCurrency\n\t);\n\tconst depositPresetAmt = useSelector(\n\t\t(state) => state.appState.depositPresetAmt\n\t);\n\tconst amountState = [\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t];\n\tconst [addAmountList, setAddAmountList] = useState(amountState);\n\n\tconst _ALERT_TIMEOUT = 1600;\n\tvar _accNumberRef = useRef();\n\tvar _labelRef = useRef();\n\tvar _bankRef = useRef();\n\tconst [copied, setCopied] = useState(\"\");\n\tconst [toobj, setToobj] = useState(null);\n\tconst memberData = useSelector((state) => state.appState.member);\n\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [loadingSpinner, setLoadingSpinner] = useState(true);\n\tconst [bankLogo, setBankLogo] = useState(\"\");\n\tconst [collapse, setCollapse] = useState(false);\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [refError, setRefError] = useState(false);\n\tconst [fileError, setFileError] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tconst _SECONDS_IN_MS = 1000;\n\n\tuseEffect(() => {\n\t\tconst depositPresetAmtArray = depositPresetAmt.split(\",\");\n\n\t\tconst updatedData = addAmountList.map((item, index) => {\n\t\t\treturn { ...item, amount: depositPresetAmtArray[index] || \"\" };\n\t\t});\n\t\tsetAddAmountList(updatedData);\n\t}, [depositPresetAmt]);\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0) {\n\t\t\tgetBankAccInfo();\n\t\t}\n\t}, [bankAccountId]);\n\n\tuseEffect(() => {\n\t\tsetSelected(amount.toString());\n\t}, [amount]);\n\n\tasync function init() {\n\t\tvar pendingTransactionJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t);\n\t\tif (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(\n\t\t\t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t\t);\n\t\t\t\tsetTransType(pendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\t// oktocont = false;\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t} else {\n\t\t\t\tif (props.bankOptions.length>0) {\n\t\t\t\t\tlet bankAccountList = [];\n\t\t\t\t\tprops.bankOptions.forEach(function (bankAccount) {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.accountHolderName,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\taccNumber: bankAccount.accountNumber,\n\t\t\t\t\t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t\t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tsetBankAccountOption(bankAccountList);\n\t\t\t\t} else {\n\t\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t \tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t\t\t );\n\t\t\t\t if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t let bankAccountList = [];\n\t\t\t\t \tresponseJson[ApiKey._API_DATA_KEY].forEach(function (bankAccount) {\n\t\t\t\t \t\tbankAccountList.push({\n\t\t\t\t \t\t\tlabel: bankAccount.accountHolderName,\n\t\t\t\t \t\t\tvalue: bankAccount.id,\n\t\t\t\t \t\t\taccNumber: bankAccount.accountNumber,\n\t\t\t\t \t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t \t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t \t\t\tbankName: bankAccount.bankName,\n\t\t\t\t \t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t \t\t});\n\t\t\t\t \t});\n\n\t\t\t\t \tsetBankAccountOption(bankAccountList);\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tsetLoadingSpinner(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tfalse,\n\t\t\t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tconst debouncedAmount = useCallback(\n\t\tdebounce((value) => {\n\t\t\tsetSelected(value);\n\t\t}, 500), // 500ms debounce time\n\t\t[]\n\t);\n\n\tasync function enterAmount(e) {\n\t\tlet amount = e.target.value\n\t\t\t.replace(/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g, \"\")\n\t\t\t.trim();\n\n\t\tif (amount == \"\") {\n\t\t\tamount = 0;\n\t\t}\n\t\tlet value = 0;\n\t\tif (companyCurrency === \"PKR\") {\n\t\t\tvalue = Number(parseFloat(amount) / 1).toFixed(0);\n\t\t} else {\n\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t}\n\n\t\tif (parseFloat(value) > max) {\n\t\t\tvalue = max;\n\t\t}\n\t\te.target.setSelectionRange(value.length, value.length);\n\t\tsetAmount(value);\n\t\tif (value || !isNaN(value) || Number(value) >= min) {\n\t\t\tsetAmountError(false);\n\t\t}\n\t\tdebouncedAmount(toString(parseInt(value)));\n\t}\n\n\tconst generateReferenceReceipt = async () => {\n\t\tlet receiptReference = `INV${Math.floor(100000 + Math.random() * 900000)}`;\n\t\tsetBankRef(receiptReference);\n\t};\n\n\tasync function getBankAccInfo() {\n\t\t_dispatch(setBusy());\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_BY_BANK_ID + \"?bankId=\" + bankAccountId\n\t\t);\n\n\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\n\t\tsetMin(responseJson[ApiKey._API_DATA_KEY][0][\"minimumDeposit\"]);\n\t\tsetMax(responseJson[ApiKey._API_DATA_KEY][0][\"maximumDeposit\"]);\n\t\tsetBankName(responseJson[ApiKey._API_DATA_KEY][0][\"bankName\"]);\n\t\tsetAccNumber(responseJson[ApiKey._API_DATA_KEY][0][\"accountNumber\"]);\n\t\tsetLabel(responseJson[ApiKey._API_DATA_KEY][0][\"accountHolderName\"]);\n\t\tsetBankLogo(responseJson[ApiKey._API_DATA_KEY][0][\"bankLogo\"])\n\t\t// generateReferenceReceipt();\n\t\t//setBankRef(Math.floor(Math.random() * 9000 + 1000));\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst truncate_text = (text) => {\n\t\tif (text.length > 15) {\n\t\t\treturn text.slice(0, 15) + \" . . .\";\n\t\t}\n\t\treturn text;\n\t};\n\n\tconst formatBytes = (bytes, decimals = 2) => {\n\t\tif (!+bytes) return \"0 Bytes\";\n\n\t\tconst k = 1024;\n\t\tconst dm = decimals < 0 ? 0 : decimals;\n\t\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\t\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n\t};\n\n\tconst handleClick = (item) => {\n\t\tlet total = parseFloat(item);\n\t\tif (min > total) {\n\t\t\ttotal = min;\n\t\t}\n\t\tif (max > 0) {\n\t\t\tif (total > max) {\n\t\t\t\t// setSelected(0);\n\t\t\t\ttotal = max;\n\t\t\t} else {\n\t\t\t\t// setSelected(item);\n\t\t\t}\n\t\t\tsetAmount(total);\n\t\t\tif (total || !isNaN(total) || Number(total) >= min) {\n\t\t\t\tsetAmountError(false);\n\t\t\t}\n\t\t} else {\n\t\t\t_dispatch(showResponseMessage(false, \"PLEASE_SELECT_BANK\"));\n\t\t}\n\t};\n\n\tasync function handleRedirect() {\n\t\tif (stringIsNullOrEmpty(bankAccountId)) {\n\t\t\tsetBankError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t!amount ||\n\t\t\tisNaN(amount) ||\n\t\t\tNumber(amount) <= 0 ||\n\t\t\tNumber(amount) < min\n\t\t) {\n\t\t\tsetAmountError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (stringIsNullOrEmpty(bankref)) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"REFERENCE_NUMBER_REQUIRED\");\n\t\t\treturn;\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(errorMessage)) {\n\t\t\t\tsetRefError(true);\n\t\t\t\tsetErrorMessage(errorMessage);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!file) {\n\t\t\tsetFileError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tlet params = {\n\t\t\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t\tamount: parseFloat(amount),\n\t\t\tchannel: BankingChannel._CHANNEL_OFFLINE_BANKING,\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountId: bankAccountId,\n\t\t\treceiptReference: bankref,\n\t\t};\n\n\t\tif (!stringIsNullOrEmpty(bankAccountId)) {\n\t\t\tparams[\"bankAccountId\"] = bankAccountId;\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(file)) {\n\t\t\tparams[\"receipt\"] = file;\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(bonusDeposit) && bonusDeposit != \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = bonusDeposit;\n\t\t} else if (bonusDeposit === \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = \"\";\n\t\t}\n\t\t_dispatch(setBusyLoading(true));\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetPaidAmount(params.amount);\n\t\t\tsetIsReloadSuccess(true);\n\t\t\tsetReloadDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t_dispatch(setBusyLoading(false));\n\n\t\t\t_dispatch(setDepositModal(false));\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\tcustom: true,\n\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcontent: t(\"WE_ARE_VERIFYING_YOUR_PAYMENT\"),\n\t\t\t\t})\n\t\t\t);\n\n\t\t\t// Check if FB Pixel exists and has valid Pixel ID\n\t\t\tif (window.fbq !== undefined && window.fbq.getState().pixels.length > 0) {\n\t\t\t\twindow.fbq('track', 'Purchase', {\n\t\t\t\t\tvalue: params.amount,\n\t\t\t\t\tcurrency: companyCurrency,\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tsetIsDisabled(false);\n\t\t\tsetAmount(0);\n\t\t\tsetSelected(0);\n\t\t\tsetFile();\n\t\t\tsetReceiptReference(\"\");\n\t\t\t_dispatch(setBusyLoading(false));\n\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tconst copyItem = (ref, type) => {\n\t\tif (!ref.current) return; // Prevent errors if ref is null\n\n\t\tlet textToCopy =\n\t\t\tref.current.tagName === \"INPUT\"\n\t\t\t\t? ref.current.value\n\t\t\t\t: ref.current.innerText;\n\n\t\tnavigator.clipboard\n\t\t\t.writeText(textToCopy)\n\t\t\t.then(() => {\n\t\t\t\tsetCopied(type);\n\n\t\t\t\tsetShowCodeAlert(true);\n\n\t\t\t\tif (toobj) clearTimeout(toobj);\n\n\t\t\t\tsetToobj(\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetCopied(\"\");\n\t\t\t\t\t}, _ALERT_TIMEOUT)\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((err) => console.error(\"Copy failed:\", err));\n\t};\n\n\tconst handleFileChange = (e) => {\n\t\tconst selectedFile = e.target.files[0];\n\t\tconst validImageTypes = [\"image/png\", \"image/jpeg\", \"image/jpg\"];\n\n\t\t// Check if the file exists and is an image\n\t\tif (selectedFile && validImageTypes.includes(selectedFile.type)) {\n\t\t\tsetFile(selectedFile);\n\t\t\tsetFileError(false);\n\t\t} else {\n\t\t\tsetFile(null);\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, t(\"PLEASE_UPLOAD_A_VALID_IMAGE_FILE\"))\n\t\t\t);\n\t\t}\n\t};\n\n\tconst handleBankRef = (e) => {\n\t\tlet value = e.target.value;\n\t\tconst sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, \"\"); // Remove special characters\n\n\t\tif (sanitizedValue.length > 30) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"MAXIMUM_30_ALPHANUMERIC_CHARACTERS\");\n\t\t} else {\n\t\t\tsetRefError(false);\n\t\t\tsetErrorMessage(\"\");\n\t\t}\n\n\t\tsetBankRef(sanitizedValue);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{loadingSpinner && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!loadingSpinner && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t countdownStr +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t (transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!loadingSpinner && !hasPendingTxn && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\twalletsDetails.currentWalletBalance,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_DEPOSIT\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {numberWithCurrencyFormat(min, 2, true)} */}\n\t\t\t\t\t\t\t\t{min ? numberWithCurrencyFormat(min, 0, true) : \"-\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{memberData.isActivedPromoExist && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"NEW_TRANSACTION_NOT_QUALIFY_FOR_PROMO\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.target.className =\n\t\t\t\t\t\t\t\t\t\te.target.options[e.target.selectedIndex].className;\n\t\t\t\t\t\t\t\t\tsetBankAccountId(e.target.value);\n\t\t\t\t\t\t\t\t\tsetAmount(0.0);\n\t\t\t\t\t\t\t\t\tsetSelected(0);\n\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{bankAccountOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{option.bankName}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbankAccountOption.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetBankAccountId(bank.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(0.0)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(0)\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.min} - {bank.max}
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{addAmountList &&\n\t\t\t\t\t\t\t\t\taddAmountList.length &&\n\t\t\t\t\t\t\t\t\tmap(addAmountList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\tif (item.amount != \"\") {\n\t\t\t\t\t\t\t\t\t\t\tconst formattedCurrency = numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\titem.amount,\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t max || min > item.amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"disabled \"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item.amount === selected ? \"active\" : \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleClick(item.amount)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// style={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{abbreviateNumber(formattedCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={enterAmount}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{amount <= 0\n\t\t\t\t\t\t\t\t\t\t\t? t(\"AMOUNT_IS_REQUIRED\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"VALUE_LESS_THAN_MINIMUM\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{min > 0 && max > 0 ? (\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmin +\n\t\t\t\t\t\t\t\t\t\t\" - \" +\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmax\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<> \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*{ showCodeAlert &&
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPY_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
}*/}\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"BANK_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

{bankName}

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{accNumber}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_accNumberRef, \"acc\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"acc\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_HOLDER_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_labelRef, \"label\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"label\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REFERENCE_TRANSACTION_ID\")} *\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{refError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errorMessage)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_bankRef, \"ref\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"ref\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\n\t\t\t\t\t\t\t\t\t{!file && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{file && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{truncate_text(file.name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatBytes(file.size)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t setFile()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fileError && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PAYMENT_RECEIPT_REQUIRED\")}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"CANCEL\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!isDisabled && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\thandleRedirect();\n\t\t\t\t\t\t\t\t\t\t// setIsDisabled(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{isDisabled && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default UploadReloadReceipt;\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tWebUrl,\n\tApiUrl,\n\tApiKey,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tSessionKey,\n} from \"../../../util/Constant\";\nimport { map, isNumber, debounce, toString, includes } from \"lodash\";\nimport {\n\tnumberWithCurrencyFormat,\n\tstringIsNullOrEmpty,\n\tcreateMultiPartFormBody,\n\tabbreviateNumber,\n} from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetDepositModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetBusyLoading,\n\tsetMyProfileModal,\n} from \"../../../redux/AppAction\";\nimport moment from \"moment\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Modal, ModalBody, Alert } from \"reactstrap\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\n\n/// \n/// Author: -\n/// \nconst InstantPayDeposit = (props) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tconst [file, setFile] = useState();\n\tlet _dispatch = useDispatch();\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst [receiptReference, setReceiptReference] = useState(\"\");\n\tconst [selected, setSelected] = useState(0);\n\tconst [amount, setAmount] = useState(0.0);\n\tconst [paidAmount, setPaidAmount] = useState(0);\n\tconst [isReloadSuccess, setIsReloadSuccess] = useState(false);\n\tconst [reloadDate, setReloadDate] = useState();\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst [bankAccountId, setBankAccountId] = useState();\n\tconst [isDisabled, setIsDisabled] = useState(false);\n\tconst [bankName, setBankName] = useState(\"\");\n\tconst [accNumber, setAccNumber] = useState(\"\");\n\tconst [label, setLabel] = useState(\"\");\n\tconst [bankref, setBankRef] = useState(\"\");\n\tconst [showCodeAlert, setShowCodeAlert] = useState(false);\n\tconst [bonusDeposit, setBonusDeposit] = useState(\"\");\n\tconst [bankAccountOption, setBankAccountOption] = useState([]);\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [isDirect, setIsDirect] = useState(true);\n\tconst [displayNotes, setDisplayNotes] = useState(false);\n\n\tconst companyCurrency = useSelector(\n\t\t(state) => state.appState.companyCurrency\n\t);\n\tconst depositPresetAmt = useSelector(\n\t\t(state) => state.appState.depositPresetAmt\n\t);\n\tconst amountState = [\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t];\n\tconst [addAmountList, setAddAmountList] = useState(amountState);\n\n\tconst walletOption = [\n\t\t{\n\t\t\tvalue: \"bkash\",\n\t\t\tlabel: \"Bkash\",\n\t\t},\n\t\t{\n\t\t\tvalue: \"rocket\",\n\t\t\tlabel: \"Rocket\",\n\t\t},\n\t\t{\n\t\t\tvalue: \"nagad\",\n\t\t\tlabel: \"Nagad\",\n\t\t},\n\t];\n\n\tconst _ALERT_TIMEOUT = 1600;\n\tvar _accNumberRef = useRef();\n\tvar _labelRef = useRef();\n\tvar _bankRef = useRef();\n\tconst [copied, setCopied] = useState(\"\");\n\tconst [toobj, setToobj] = useState(null);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tconst [instantBankSetting, setInstantBankSetting] = useState();\n\tconst [instantPayGatewayId, setinstantPayGatewayId] = useState();\n\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [loadingSpinner, setLoadingSpinner] = useState(true);\n\tconst [phoneNumber, setSelectedPhoneNumber] = useState();\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [requirePhone, setRequirePhone] = useState(false);\n\tconst PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n\tconst [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n\tconst [phone, setPhone] = useState(\"\");\n\tconst [errorPhone, setErrorPhone] = useState(\"\");\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [refError, setRefError] = useState(false);\n\tconst [fileError, setFileError] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tconst depositPresetAmtArray = depositPresetAmt.split(\",\");\n\n\t\tconst updatedData = addAmountList.map((item, index) => {\n\t\t\treturn { ...item, amount: depositPresetAmtArray[index] || \"\" };\n\t\t});\n\t\tsetAddAmountList(updatedData);\n\t}, [depositPresetAmt]);\n\n\tuseEffect(() => {\n\t\tinit();\n\t\t// getMemberEwalletAccounts();\n\t}, []);\n\n\tuseEffect(() => {\n\t\t// if(props.instantBankSetting){\n\t\t// setBankAccountOption(props.instantBankSetting.instantBankSettingModel)\n\t\t// }\n\t}, props);\n\tuseEffect(() => {\n\t\tif (instantBankSetting) {\n\t\t\tif (\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"Ewallet\") ||\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"ewallet\")\n\t\t\t) {\n\t\t\t\tsetIsDirect(false);\n\t\t\t\tsetRequirePhone(false);\n\t\t\t} else if (\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"FPay\") ||\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"fpay\")\n\t\t\t) {\n\t\t\t\tsetIsDirect(true);\n\t\t\t\tsetRequirePhone(true);\n\t\t\t} else {\n\t\t\t\tsetIsDirect(true);\n\t\t\t\tsetSelectedEwallet(\"bkash\");\n\t\t\t\tsetRequirePhone(false);\n\t\t\t}\n\t\t}\n\t}, [instantBankSetting]);\n\n\t// useEffect(() => {\n\t// \tif (!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0) {\n\t// \t\tgetBankAccInfo();\n\t// \t}\n\t// }, [bankAccountId]);\n\n\tasync function init() {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_PENDING_TRANSACTION);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(responseJson[ApiKey._API_DATA_KEY][\"timeSpan\"]);\n\t\t\t\tsetTransType(responseJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t} else {\n\t\t\t\tconst instantBankSettingModelList =\n\t\t\t\t\tprops.instantBankSetting?.instantBankSettingModel;\n\t\t\t\tlet bankAccountList = [];\n\t\t\t\tconst instantBankSettingModel =\n\t\t\t\t\tprops.instantBankSetting?.instantBankSettingModel[0];\n\n\t\t\t\tif (instantBankSettingModelList) {\n\t\t\t\t\tinstantBankSettingModelList.forEach(function (bankAccount) {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.name,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\t// accNumber: bankAccount.accountNumber,\n\t\t\t\t\t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t\t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t\t\t\tbankName: bankAccount.name,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tsetBankAccountOption(bankAccountList);\n\n\t\t\t\t\tsetMin(instantBankSettingModel.minimumDeposit);\n\t\t\t\t\tsetMax(instantBankSettingModel.maximumDeposit);\n\t\t\t\t\tsetBankName(instantBankSettingModel.name);\n\n\t\t\t\t\t// generateReferenceReceipt();\n\n\t\t\t\t\tsetDisplayNotes(props.instantPayGatewayNotes ? true : false);\n\n\t\t\t\t\tsetBankAccountId(instantBankSettingModel.bankId);\n\n\t\t\t\t\tsetInstantBankSetting(instantBankSettingModel);\n\t\t\t\t\tsetinstantPayGatewayId(props.instantBankSetting.instantPayGatewayId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetLoadingSpinner(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t);\n\t\t}\n\n\t\t// let res = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_PAYMENT_GATEWAY_INFO_BY_ID + \"?id=\" + props.instantBankSettingId\n\t\t// );\n\t\t// console.log(res);\n\n\t\t// if (!res[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tthrow res[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t\t// let responseJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t// );\n\t\t// if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tlet bankAccountList = [];\n\t\t// \tresponseJson[ApiKey._API_DATA_KEY].forEach(function (bankAccount) {\n\t\t// \t\tbankAccountList.push({\n\t\t// \t\t\tlabel: bankAccount.accountHolderName,\n\t\t// \t\t\tvalue: bankAccount.id,\n\t\t// \t\t\taccNumber: bankAccount.accountNumber,\n\t\t// \t\t\tmin: bankAccount.minimumDeposit,\n\t\t// \t\t\tmax: bankAccount.maximumDeposit,\n\t\t// \t\t\tbankName: bankAccount.bankName,\n\t\t// \t\t});\n\t\t// \t});\n\t\t// console.log(bankAccountList)\n\t\t// \tsetBankAccountOption(bankAccountList);\n\t\t// }\n\t}\n\n\tconst debouncedAmount = useCallback(\n\t\tdebounce((value) => {\n\t\t\tsetSelected(value);\n\t\t}, 500), // 500ms debounce time\n\t\t[]\n\t);\n\n\tasync function enterAmount(e) {\n\t\tlet amount = e.target.value\n\t\t\t.replace(/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g, \"\")\n\t\t\t.trim();\n\n\t\tif (amount == \"\") {\n\t\t\tamount = 0;\n\t\t}\n\n\t\tlet value = 0;\n\t\tif (companyCurrency === \"PKR\") {\n\t\t\tvalue = Number(parseFloat(amount)).toFixed(0);\n\t\t} else {\n\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t}\n\n\t\t// let value = Number(parseFloat(amount) / 100).toFixed(2);\n\n\t\tif (parseFloat(value) > max) {\n\t\t\tvalue = max;\n\t\t}\n\t\te.target.setSelectionRange(value.length, value.length);\n\t\tsetAmount(value);\n\t\tif (value || !isNaN(value) || Number(value) >= min) {\n\t\t\tsetAmountError(false);\n\t\t}\n\t\tdebouncedAmount(toString(parseInt(value)));\n\t}\n\n\tasync function getBankAccInfo() {\n\t\t_dispatch(setBusy());\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_BY_BANK_ID + \"?bankId=\" + bankAccountId\n\t\t);\n\n\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\n\t\tsetMin(responseJson[ApiKey._API_DATA_KEY][0][\"minimumDeposit\"]);\n\t\tsetMax(responseJson[ApiKey._API_DATA_KEY][0][\"maximumDeposit\"]);\n\t\tsetBankName(responseJson[ApiKey._API_DATA_KEY][0][\"bankName\"]);\n\t\tsetAccNumber(responseJson[ApiKey._API_DATA_KEY][0][\"accountNumber\"]);\n\t\tsetLabel(responseJson[ApiKey._API_DATA_KEY][0][\"accountHolderName\"]);\n\t\t//setBankRef(Math.floor(Math.random() * 9000 + 1000));\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst truncate_text = (text) => {\n\t\tif (text.length > 15) {\n\t\t\treturn text.slice(0, 15) + \" . . .\";\n\t\t}\n\t\treturn text;\n\t};\n\n\tconst formatBytes = (bytes, decimals = 2) => {\n\t\tif (!+bytes) return \"0 Bytes\";\n\n\t\tconst k = 1024;\n\t\tconst dm = decimals < 0 ? 0 : decimals;\n\t\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\t\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n\t};\n\n\tconst handleClick = (item) => {\n\t\tlet total = parseFloat(item);\n\t\tif (min > total) {\n\t\t\ttotal = min;\n\t\t}\n\t\tif (max > 0) {\n\t\t\tif (total > max) {\n\t\t\t\tsetSelected(0);\n\t\t\t\ttotal = max;\n\t\t\t} else {\n\t\t\t\tsetSelected(item);\n\t\t\t}\n\t\t\tsetAmount(total);\n\t\t\tif (total || !isNaN(total) || Number(total) >= min) {\n\t\t\t\tsetAmountError(false);\n\t\t\t}\n\t\t} else {\n\t\t\t_dispatch(showResponseMessage(false, \"PLEASE_SELECT_BANK\"));\n\t\t}\n\t};\n\n\tasync function handleRedirect() {\n\t\tif (stringIsNullOrEmpty(selectedEwallet) && !requirePhone) {\n\t\t\tsetBankError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (requirePhone) {\n\t\t\tif (stringIsNullOrEmpty(phone)) {\n\t\t\t\tsetErrorPhone(t(\"ENTER_PHONE_NUMBER\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t!amount ||\n\t\t\tisNaN(amount) ||\n\t\t\tNumber(amount) <= 0 ||\n\t\t\tNumber(amount) < min\n\t\t) {\n\t\t\tsetAmountError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (stringIsNullOrEmpty(bankref)) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"REFERENCE_NUMBER_REQUIRED\");\n\t\t\treturn;\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(errorMessage)) {\n\t\t\t\tsetRefError(true);\n\t\t\t\tsetErrorMessage(errorMessage);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet params = {\n\t\t\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t\tbankId: instantBankSetting.bankId,\n\t\t\tamount: parseFloat(amount),\n\t\t\tbankCode: selectedEwallet,\n\t\t\tchannel: instantPayGatewayId,\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tinstantPayBankSettingId: instantBankSetting.id,\n\t\t\tcurrency: instantBankSetting.currency,\n\t\t\tinstantPay: true,\n\t\t\treceiptReference: bankref,\n\t\t\tbankAccountId: bankAccountId,\n\t\t};\n\n\t\tif (requirePhone) {\n\t\t\tif (!stringIsNullOrEmpty(phone)) {\n\t\t\t\tparams[\"phoneNumber\"] =\n\t\t\t\t\t(selectedPhonePrefix == \"\"\n\t\t\t\t\t\t? PhoneNumberPrefix[0].value\n\t\t\t\t\t\t: selectedPhonePrefix) + phone;\n\t\t\t}\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(bonusDeposit) && bonusDeposit != \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = bonusDeposit;\n\t\t} else if (bonusDeposit === \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = \"\";\n\t\t}\n\n\t\t_dispatch(setBusyLoading(true));\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetPaidAmount(params.amount);\n\t\t\tsetIsReloadSuccess(true);\n\t\t\tsetReloadDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"payment\",\n\t\t\t\t\t\turl: responseJson[ApiKey._API_DATA_KEY][\"redirectUrl\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow.location.href =\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][\"redirectUrl\"];\n\t\t\t}\n\n\t\t\t// console.log(responseJson)\n\t\t\t// _dispatch(setDepositModal(false));\n\t\t\t// _dispatch(\n\t\t\t// \tshowMessage({\n\t\t\t// \t\tcustom: true,\n\t\t\t// \t\tcustomIcon: (\n\t\t\t// \t\t\t\n\t\t\t// \t\t),\n\t\t\t// \t\tcontent: t(\"WE_ARE_VERIFYING_YOUR_PAYMENT\"),\n\t\t\t// \t})\n\t\t\t// );\n\n\t\t\t// Check if FB Pixel exists and has valid Pixel ID\n\t\t\tif (window.fbq !== undefined && window.fbq.getState().pixels.length > 0) {\n\t\t\t\twindow.fbq('track', 'Purchase', {\n\t\t\t\t\tvalue: params.amount,\n\t\t\t\t\tcurrency: companyCurrency\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tsetIsDisabled(false);\n\t\t\tsetAmount(0);\n\t\t\tsetSelected(0);\n\t\t\tsetFile();\n\t\t\tsetReceiptReference(\"\");\n\t\t\t// _dispatch(setBusyLoading(false))\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t_dispatch(setBusyLoading(false));\n\t}\n\n\tconst copyItem = (ref, type) => {\n\t\tif (!ref.current) return; // Prevent errors if ref is null\n\n\t\tlet textToCopy =\n\t\t\tref.current.tagName === \"INPUT\"\n\t\t\t\t? ref.current.value\n\t\t\t\t: ref.current.innerText;\n\n\t\tnavigator.clipboard\n\t\t\t.writeText(textToCopy)\n\t\t\t.then(() => {\n\t\t\t\tsetCopied(type);\n\n\t\t\t\tsetShowCodeAlert(true);\n\n\t\t\t\tif (toobj) clearTimeout(toobj);\n\n\t\t\t\tsetToobj(\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetCopied(\"\");\n\t\t\t\t\t}, _ALERT_TIMEOUT)\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((err) => console.error(\"Copy failed:\", err));\n\t};\n\n\tconst generateReferenceReceipt = async () => {\n\t\tlet receiptReference = `INV${Math.floor(100000 + Math.random() * 900000)}`;\n\t\tsetBankRef(receiptReference);\n\t};\n\n\t// async function getMemberEwalletAccounts() {\n\t// \tlet responseJson = await ApiEngine.get(\n\t// \t\t// ApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t// \t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS\n\t// \t);\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tconsole.log(responseJson)\n\t// \t\tlet phoneNumberList = [];\n\t// \t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t// \t\t\tphoneNumberList.push({\n\t// \t\t\t\tlabel: phoneNumber.phoneNumber,\n\t// \t\t\t\tvalue: phoneNumber.id,\n\t// \t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t// \t\t\t\tverified: phoneNumber.verified,\n\t// \t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t// \t\t\t\taccountHolderName: phoneNumber.accountHolderName\n\t// \t\t\t});\n\t// \t\t});\n\t// \t\tsetPhoneOption(phoneNumberList);\n\t// \t} else {\n\t// \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t}\n\t// }\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t// setValue(value);\n\t}\n\n\tconst validatePhone = (value) => {\n\t\tif (value.length < 8) {\n\t\t\treturn t(\"MIN_CHARACTERS\", { length: 8 });\n\t\t}\n\t\tif (value.length > 11) {\n\t\t\treturn t(\"MAX_CHARACTERS\", { length: 11 });\n\t\t}\n\t\tif (!/^[0-9]+$/.test(value)) {\n\t\t\treturn (\n\t\t\t\tt(\"MIN_CHARACTERS\", { length: 8 }) +\n\t\t\t\t\" \" +\n\t\t\t\tt(\"AND\") +\n\t\t\t\t\" \" +\n\t\t\t\tt(\"ONLY_NUMBERS\")\n\t\t\t);\n\t\t}\n\t\treturn \"\";\n\t};\n\n\tconst handleChange = (e) => {\n\t\tlet value = e.target.value;\n\t\t// Remove all leading zeros\n\t\tvalue = value.replace(/^0+/, \"\");\n\t\t// Update the input field with the modified value\n\t\te.target.value = value;\n\n\t\tconst validationError = validatePhone(value);\n\t\tsetErrorPhone(validationError);\n\t\t// setIsDisabled(true)\n\t\tif (!validationError) {\n\t\t\tsetPhone(value);\n\t\t\t// setIsDisabled(false)\n\t\t}\n\t};\n\n\tconst handleBankRef = (e) => {\n\t\tlet value = e.target.value;\n\t\tconst sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, \"\"); // Remove special characters\n\n\t\tif (sanitizedValue.length > 30) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"MAXIMUM_30_ALPHANUMERIC_CHARACTERS\");\n\t\t} else {\n\t\t\tsetRefError(false);\n\t\t\tsetErrorMessage(\"\");\n\t\t}\n\n\t\tsetBankRef(sanitizedValue);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{loadingSpinner && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{!loadingSpinner && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t countdownStr +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t (transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!loadingSpinner && !hasPendingTxn && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\twalletsDetails.currentWalletBalance,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_DEPOSIT\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {numberWithCurrencyFormat(min, 2, true)} */}\n\t\t\t\t\t\t\t\t{min ? numberWithCurrencyFormat(min, 0, true) : \"-\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{displayNotes && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t{memberData.isActivedPromoExist && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"NEW_TRANSACTION_NOT_QUALIFY_FOR_PROMO\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!isDirect && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_EWALLET\")}\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{walletOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bankError && (\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_EWALLET\")}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\trequirePhone && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true) \n\t\t\t\t\t\t\t\t\t// \t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t// \t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t// \t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t// ref={register({\n\t\t\t\t\t\t\t\t\t// \trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t// })}\n\t\t\t\t\t\t\t\t\tdefaultValue={phoneNumber}\n\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t// setValue(\"phoneNumber\",e.target.value)\n\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t// clearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tphoneOption.length < 3 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} */}\n\t\t\t\t\t\t{requirePhone && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedPhonePrefix(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ height: \"45px\", width: \"95px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{PhoneNumberPrefix.map((prefix, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{prefix.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\tif (!/[0-9]/.test(key) && !allowedKeys.includes(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Prevent '0' as the first character\n\t\t\t\t\t\t\t\t\t\t\tconst inputValue = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\tif (inputValue.length === 0 && key === \"0\") {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{errorPhone && (\n\t\t\t\t\t\t\t\t\t\t{errorPhone}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{addAmountList &&\n\t\t\t\t\t\t\t\t\taddAmountList.length &&\n\t\t\t\t\t\t\t\t\tmap(addAmountList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\tif (item.amount != \"\") {\n\t\t\t\t\t\t\t\t\t\t\tconst formattedCurrency = numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\titem.amount,\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t max || min > item.amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"disabled \"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item.amount === selected ? \"active\" : \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleClick(item.amount)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// style={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{abbreviateNumber(formattedCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={enterAmount}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{amount <= 0\n\t\t\t\t\t\t\t\t\t\t\t? t(\"AMOUNT_IS_REQUIRED\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"VALUE_LESS_THAN_MINIMUM\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{min > 0 && max > 0 ? (\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmin +\n\t\t\t\t\t\t\t\t\t\t\" - \" +\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmax\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<> \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*{ showCodeAlert &&
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPY_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
}*/}\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"BANK_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

{bankName}

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{accNumber}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t copyItem(_accNumberRef, \"acc\")}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{(copied === \"acc\" ? \"Copied\" : \"\")} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_HOLDER_NAME\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t copyItem(_labelRef, \"label\")}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{(copied === \"label\" ? \"Copied\" : \"\")} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REFERENCE_TRANSACTION_ID\")} *\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{refError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errorMessage)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_bankRef, \"ref\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"ref\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\n\t\t\t\t\t\t\t{!file && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{file && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{truncate_text(file.name)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{formatBytes(file.size)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setFile()}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t setFile(e.target.files[0])}\n\t\t\t\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t\t\t\taccept=\"image/png, image/jpeg,image/jpg\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"CANCEL\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!isDisabled && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\thandleRedirect();\n\t\t\t\t\t\t\t\t\t\t// setIsDisabled(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{isDisabled && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default InstantPayDeposit;\n","import React, { useState, useEffect } from \"react\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport { Link, Redirect, useHistory } from \"react-router-dom\";\nimport moment from \"moment\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useAccordionButton } from \"react-bootstrap/AccordionButton\";\nimport { stringIsNullOrEmpty, createFormBody } from \"../../../util/Util\";\nimport {\n\tshowResponseMessage,\n\tshowResponseMessageWithoutT,\n\tsetPaymentList,\n} from \"../../../redux/AppAction\";\nimport { find, isEmpty, map } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport UploadReloadReceipt from \"../transaction/UploadReloadReceipt\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport InstantPayDeposit from \"./InstantPayDeposit\";\n\n// function CustomToggle({ children, eventKey }) {\n// \tconst wrapOnClick = useAccordionButton(eventKey, () =>\n// \t\tconsole.log(\"totally custom!\")\n// \t);\n\n// \treturn
{children}
;\n// }\n\n/// \n/// Author: -\n/// \nconst Deposit = (props) => {\n\tconst { t, i18n } = useTranslation();\n\tconst _history = useHistory();\n\tconst _dispatch = useDispatch();\n\tconst { handleSubmit, control, setValue } = useForm();\n\t\n\tconst _NORMAL_DEPOSIT = -1;\n\tconst _INSTANT_PAYMENT = 1;\n\tconst [instantPayOption, setInstantPayOption] = useState([]);\n\tconst [paymentOptionList, setPaymentOptionList] = useState(\n\t\tuseSelector((state) => state.appState.payments)\n\t);\n\tconst [paymentOption, setPaymentOption] = useState(_NORMAL_DEPOSIT);\n\tconst [activeTab, setActiveTab] = useState(_INSTANT_PAYMENT);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\tconst [memberId, setMemberId] = useState(\"\");\n\tconst [activePaymentOption, setActivePaymentOption] = useState(\"\");\n\t\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [showConfirmation, setShowConfirmation] = useState(false);\n\tconst [loadingSpinner, setLoadingSpinner] = useState(false);\n\tconst [selected, setSelected] = useState(\"\");\n\tconst [showBankOptions, setShowBankOptions] = useState(true);\n\tconst [showBackward, setShowBackward] = useState(false)\n\tconst [isNormalDepositEnable, setIsNormalDepositEnable] = useState(\n\t\tuseSelector((state) => state.appState.isNormalDepositEnable)\n\t);\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\tconst [selectedBank, setSelectedBank] = useState(\"\");\n\tconst [filterBankOptions, setFilterBankOptions] = useState([])\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\t// useEffect(() => {\n\t// \tif (countdownPeriod > 0) {\n\t// \t\tclearTimeout(countdownTime);\n\t// \t\tsetCountdownTime(\n\t// \t\t\tsetTimeout(() => {\n\t// \t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t// \t\t\t\tsetCountdownPeriod(tempPeriod);\n\t// \t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t// \t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t// \t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t// \t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t// \t\t\t\tlet tempStr =\n\t// \t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\tt(\"MINUTES\") +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\tt(\"SECOND\");\n\t// \t\t\t\tsetCountdownStr(tempStr);\n\t// \t\t\t}, _SECONDS_IN_MS)\n\t// \t\t);\n\t// \t}\n\t// }, [countdownPeriod]);\n\n\tuseEffect(()=>{\n\n\t\tif(paymentOptionList.length > 0){\n\t\t\tconst normalOptions = paymentOptionList.filter(item => item.value === 'Normal');\n\t\t\tconst isOnlyOne = paymentOptionList.length === 1;\n\t\t\t\n\t\t\tif (isOnlyOne) {\n\t\t\t\tif(normalOptions.length === 1){\n\t\t\t\t\tsetSelected(normalOptions.length === 1 ? \"Normal\" : paymentOptionList[0].label);\n\t\t\t\t\tsetShowBackward(false);\n\t\t\t\t}else if(paymentOptionList[0].label){\n\t\t\t\t\tsetSelected(paymentOptionList[0].label);\n\t\t\t\t\tsetShowBackward(false);\n\t\t\t\t}else{\n\t\t\t\t\tsetSelected(\"\");\n\t\t\t\t\tsetShowBackward(true)\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tsetSelected(\"\");\n\t\t\t\tsetShowBackward(true)\n\n\t\t\t}\n\n\t\t}\n\t},[paymentOptionList])\n\n\tasync function init() {\n\t\tvar oktocont = true;\n\t\tsetLoadingSpinner(true);\n\t\t_dispatch(heartBeat());\n\t\t(async function () {\n\t\t\t//KT: NO POINT HAVING THIS, WE ARE NOT REQUIRING FULL NAME TO DEPOSIT\n\t\t\t/*let memberJson = await ApiEngine.get(ApiUrl._API_GET_USER_FULLNAME);\n\t\t\tif (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// setMemberId(memberJson[ApiKey._API_DATA_KEY][\"memberId\"]);\n\t\t\t\tif (\n\t\t\t\t\tstringIsNullOrEmpty(memberJson[ApiKey._API_DATA_KEY][\"userFullName\"])\n\t\t\t\t) {\n\t\t\t\t\tsetShowFullnamePopup(true);\n\t\t\t\t}\n\t\t\t}*/\n\n\t\t\t// Check if redux already has the payment option list saved\n\t\t\tif (paymentOptionList.length > 0) {\n\t\t\t\tinitOptions(paymentOptionList);\n\t\t\t} else {\n\t\t\t\t//payment gateway list\n\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_USER_PAYMENT_GATEWAY_INFO\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t// Save payment list into redux to avoid calling API again if unnecessary\n\t\t\t\t\t_dispatch(setPaymentList(responseJson[ApiKey._API_DATA_KEY]));\n\n\t\t\t\t\tinitOptions(responseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//-------------------------------------------------------------------\n\n\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t//KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\tif (oktocont) {\n\t\t\t\tawait getRestore();\n\t\t\t\t//await getMultipleTap();\n\t\t\t}\n\n\t\t\t//KT this is very slow, we're not going to use Payment Gateway for AUD, might as well dont check and waste time\n\t\t\t// setSelected(\"Normal\");\n\t\t\tsetLoadingSpinner(false);\n\t\t})();\n\t}\n\n\tasync function initOptions(responseJsonData) {\n\t\tsetInstantPayOption(responseJsonData);\n\t\tlet tempOptions = [];\n\n\t\tlet responseJsonBank = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t);\n\t\tif (responseJsonBank[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankAccountList = responseJsonBank[ApiKey._API_DATA_KEY]\n\n\t\t\tconst hasEwallet = bankAccountList.some(bank => bank.isEwallet);\n\t\t\tconst hasNormalBank = bankAccountList.some(bank => !bank.isEwallet);\n\n\n\t\t\tif(hasNormalBank){\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: _NORMAL_DEPOSIT,\n\t\t\t\t\tvalue: _NORMAL_DEPOSIT,\n\t\t\t\t\tlabel: \"Normal\",\n\t\t\t\t\timage: null,\n\t\t\t\t\tpaymentType: t(\"NORMAL_DEPOSIT\"),\n\t\t\t\t\tfee: 0,\n\t\t\t\t\tremark: t(\"NORMAL_BANK_TRANSFER\"),\n\t\t\t\t\tbankOptions:bankAccountList.filter(account => account.isEwallet === false)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\n\t\t\tif(hasEwallet){\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: _NORMAL_DEPOSIT,\n\t\t\t\t\tvalue: _NORMAL_DEPOSIT,\n\t\t\t\t\tlabel: \"E-wallet\",\n\t\t\t\t\timage: null,\n\t\t\t\t\tpaymentType: t(\"EWALLET\"),\n\t\t\t\t\tfee: 0,\n\t\t\t\t\tremark: t(\"EWALLET_MANUAL\"),\n\t\t\t\t\tbankOptions:bankAccountList.filter(account => account.isEwallet === true)\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\t\t\n\n\t\tlet temp = responseJsonData.findIndex(\n\t\t\t(x) => x.instantPayGatewayString === activePaymentOption\n\t\t);\n\n\t\tsetPaymentOption(temp);\n\t\tresponseJsonData.map((option, index) => {\n\t\t\toption[\"status\"] === true &&\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: index,\n\t\t\t\t\tvalue: option.id,\n\t\t\t\t\tlabel: option.instantPayGatewayString,\n\t\t\t\t\timage: option.image,\n\t\t\t\t\tfee: option.serviceCharge,\n\t\t\t\t\tpaymentType:\n\t\t\t\t\t\toption.instantPayGatewayString.endsWith(\" QR\") ||\n\t\t\t\t\t\toption.instantPayGatewayString == \"TruePay\"\n\t\t\t\t\t\t\t? t(\"DUIT_NOW\")\n\t\t\t\t\t\t\t: t(\"INSTANT_PAYMENT\"),\n\t\t\t\t\tremark: option.remarks,\n\t\t\t\t\tnotes:option.notes\n\t\t\t\t});\n\t\t});\n\n\t\tif (\n\t\t\ttempOptions.filter((x) => x.paymentType === t(\"INSTANT_PAYMENT\"))\n\t\t\t\t.length <= 0\n\t\t) {\n\t\t\tsetActiveTab(_NORMAL_DEPOSIT);\n\t\t}\n\t\tsetValue(\"paymentMethod\", tempOptions[0].value);\n\t\tsetPaymentOptionList(tempOptions);\n\t}\n\n\tasync function getRestore() {\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\t}\n\n\n\treturn (\n\t\t
\n\t\t\t{showBankOptions && selected === \"\" && (\n\t\t\t\t<>\n\t\t\t\t\t{showConfirmation && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowConfirmation(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"#05102F\",\n\t\t\t\t\t\t\t\tborderColor: \"white !important\",\n\t\t\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\tmarginTop: \"68%\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcancelBtnBsStyle=\"#45ff8b\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\"PLEASE_WAIT_FOR_PREVIOUS_TRANSACTION_APPROVAL_OR_CONTACT_CUSTOMER_SERVICE\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!loadingSpinner && paymentOptionList.length > 1 &&
\n\t\t\t\t\t\t
{t(\"SELECT_A_RELOAD_OPTION\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\n\t\t\t\t\t{\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{loadingSpinner ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tpaymentOptionList.map((option, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(option.bankOptions){\n\t\t\t\t\t\t\t\t\t\t\t\t setActiveIndex(activeIndex === index ? null : index) \n\n\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t // if (hasPendingTxn) {\n\t\t\t\t\t\t\t\t\t\t\t // \tsetShowConfirmation(true);\n\t\t\t\t\t\t\t\t\t\t\t // } else {\n\t\t\t\t\t\t\t\t\t\t\t // \tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t // \tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t // }\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option[\"label\"] == \"Normal\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? t(\"BANK\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: option[\"label\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option[\"remark\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\toption.bankOptions \n\t\t\t\t\t\t\t\t\t\t\t\t\t? option.bankOptions.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank.id);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFilterBankOptions(option.bankOptions);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.minimumDeposit} - {bank.maximumDeposit}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\n\t\t\t)}\n\n\n\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\n\n\t\t\t{!showBankOptions && showBackward && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
{selected === \"Normal\" ? t(\"NORMAL_BANK_TRANSFER\") : t(`${selected}`)}
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t\n\n\t\t\t{ selected === \"Normal\" || selected === \"E-wallet\" ? (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : selected === \"\" ? (\n\t\t\t\t\"\"\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{/* x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0]\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t/> */}\n\t\t\t\t\t x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].id\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbankId={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].instantBankSettingModel[0].bankId\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinstantBankSetting={find(instantPayOption, {instantPayGatewayString : selected})}\n\t\t\t\t\t\tinstantPayGatewayId={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].instantPayGatewayId\n\t\t\t\t\t\t}\n\t\t\t\t\t\t instantPayGatewayNotes={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].notes\n\t\t\t\t\t\t }\n\t\t\t\t\t\t\n\t\t\t\t\t/>\n\t\t\t\t\t {/* */}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Deposit;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal, setCompleteInfoModal } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\n\n\nconst CompleteInfoModal = ({member}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const completeInfoModal = useSelector((state) => state.appState.completeInfoModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState(\"\");\n const memberData = useSelector((state) => state.appState.member);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false)\n const priorityModalType = useSelector((state) => state.appState.priorityModalTypeId)\n\tconst customerServiceUrl = \"/livechat\";\n\n const {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\n useEffect(()=>{\n getCompanyIcon();\n },[])\n\n\n async function getCompanyIcon() {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n \n \n }\n\n async function onSubmit(data){\n setIsSubmitLoading(true)\n let params = {};\n\n if(data.phone){\n params['phoneNumber'] = data.phone\n }\n\n // if(data.email){\n // params['email'] = data.email\n // }\n\n if(data.fullName){\n params['userFullName'] = data.fullName\n }\n\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_UPDATE_PROFILE,\n createFormBody(params)\n );\n \n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n await bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n setIsSubmitLoading(false)\n\n _dispatch(setCompleteInfoModal(false))\n }\n else{\n setIsSubmitLoading(false)\n\n }\n\n \n }\n\n const closeBtn = (\n\t\t _dispatch(setCompleteInfoModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n return (\n {\n _dispatch(setCompleteInfoModal(!completeInfoModal))\n }}\n centered\n >\n \t\n Notice\n \n \n
\n
\n
\n \n
{t(\"OOPS\")}
\n
{t(\"COMPLETE_REQUIRED\")}
\n
\n
\n
\n {\n !memberData?.userFullName && isEmpty(memberData?.userFullName) && (\n
\n \n
\n \n \n {errors.fullName && (\n
\n {t(errors.fullName.message)}\n
\n )}\n
\n
\n
\n
\n \n
\n
\n

\n {/* {t('ACCOUNT_BALANCE_ZERO')} */}\n {t('ENSURE_FULL_NAME')}\n

\n
\n
\n
\n
\n )\n }\n {\n !isEmpty(memberData) && !memberData?.phoneNumber && isEmpty(memberData?.phoneNumber) &&\n (\n
\n \n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n \n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n \n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n \n // Update the input field with the modified value\n e.target.value = newValue;\n }}\n />\n \n {errors.phone && (\n
\n {t(errors.phone.message)}\n
\n )}\n
\n
\n )\n }\n {/* {\n !memberData?.email && isEmpty(memberData?.email) && (\n
\n \n
\n \n {errors.email && (\n
\n {t(errors.email.message)}\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\nexport default CompleteInfoModal;","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { map, debounce, find, filter, upperCase, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\n\nconst WithdrawByBankTransfer = ({onRenderComplete,onAfterHandleCheck}) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountNumber, setAccountNumber] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n\t// ROSE START HERE\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [memberBankAccounts, setMemberBankAccounts] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst [showPinEntry, setShowPinEntry] = useState(false);\n\tconst [showVerifyPhone, setShowVerifyPhone] = useState(false);\n\tconst [changePinShow, setChangePinShow] = useState(false);\n\tconst _COUNTDOWN_PERIOD = 120;\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [pinEntered, setPinEntered] = useState(false);\n\t\n\tconst [pinNumberFinal, setPinNumberFinal] = useState(\"\");\n\tconst [enteredPinNumberFinal, setEnteredPinNumberFinal] = useState(\"\");\n\tconst [pinNumberFinalFocused, setPinNumberFinalFocused] = useState(0);\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\tconst [memberEmail,setMemberEmail] = useState()\n\n\tconst [memberPhone,setMemberPhone] = useState()\n\n\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst verifyState = {\n\t\tbutton: \"1\",\n\t};\n\n\n\n\tconst [transactionData, setTransactionData] = useState([]);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\n\t\n\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [displayDataIndex, setDisplayDataIndex] = useState(-1);\n\tconst [min, setMin] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null); \n\n const [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t if (specificElementRef.current) {\n\t\t\tonRenderComplete();\n\t\t }\n\t\t};\n\t\n\t\tcheckElementRendered();\n\t }, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tgetMemberBankAccount();\n\t\tgetBankList();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t\t\tif (!stringIsNullOrEmpty(selectedBank)) {\n\t\t\t\tconst bankInfo = bankOption.filter(\n\t\t\t\t\t(x) => x.value == value\n\t\t\t\t)[0];\n\n\t\t\t\tif(bankInfo){\n\t\t\t\t\tsetMin(bankInfo[\"min\"]);\n\n\t\t\t\t}\n\t\t\t\t// console.log(bankInfo)\n\t\t\t}\n\t\t}\n\t}, [bankOption, value]);\n\n\tuseEffect(() => {\n\t\tif(!isEmpty(member)){\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount >0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\n\t\t}\n\t\t\n\t}, [totalWithdrawCountToday,totalWithdrawAmountToday,member, amount]);\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\t// CHRIS 20241206 - Removing check for pending transaction because WithdrawalMethod already has it\n\t\t\t// var oktocont = true;\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t// //KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\t// if (!oktocont) {\n\t\t\t// \treturn false;\n\t\t\t// }\n\n\t\t\t// let tempMemberData = {};\n\t\t\tgetLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t// var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER); //KT: AND CALL THIS? \n\t\t\tgetMemberDetails();\n\t\t\t// if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// var memberJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t\t\t// );\n\n\t\t\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t\t\t// \tsetTempPhoneNum(\n\t\t\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t\t\t// \t\t\t\t3,\n\t\t\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t\t\t// \t\t\t),\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t// \t\t)\n\t\t\t\t// \t);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\t///get total withdrawal\n\t\t\t\tlet tempWithdData = {};\n\t\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t\t);\n\n\t\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\n\t\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\t\tif(transactionsToday){\n\t\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\n\t\t\t\t\n\n\n\t\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tlet bankList = [];\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t\t\tbankList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tsetBankOption(bankList);\n\t\t\t\t} else {\n\t\t\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\t\t\t\tgetMemberBankAccount();\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\n\t\t\n\t\t// let tempMemberData = {};\n\n\t\t// var memberJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t// );\n\n\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t// \tsetTempPhoneNum(\n\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t// \t\t\t\t3,\n\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t// \t\t\t),\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t// \t\t)\n\t\t// \t);\n\t\t// } else {\n\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t}\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetTransactionData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t}\n\t}\n\n\tasync function getMemberBankAccount() {\n\t\ttry {\n\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n\t\t\t);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tconst data = responseJson[ApiKey._API_DATA_KEY]?.[0];\n\n\t\t\t\tif (!stringIsNullOrEmpty(data)) {\n\t\t\t\t\tsetAccountNumber(data[\"accountNumber\"]);\n\t\t\t\t\t// setValue('addAccountNumber')\n\t\t\t\t\tsetValue(data[\"bankId\"]);\n\n\t\t\t\t\tlet bankAccountList = [];\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\tbankId: bankAccount.bankId,\n\t\t\t\t\t\t\taccountHolderName: bankAccount.accountHolderName,\n\t\t\t\t\t\t\taccNum: bankAccount.accountNumber,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\t\t\tisDefault: bankAccount.isDefault,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tsetSelectedBank(bankAccountList?.[0]);\n\t\t\t\t\tsetMemberBankAccounts(bankAccountList);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t}\n\n\tasync function submitWithdrawal() {\n\t\t// _dispatch(setBusy());\n\t\t// console.log(memberBankAccounts)\n\t\t_dispatch(setBusyLoading(true))\n\n\t\tsetIsWithdrawLoading(true)\n\t\tawait getMemberDetails();\n\n\t\t// if(isEmpty(member.email) || isEmpty(member.phoneNumber))\n\t\tif(isEmpty(member.phoneNumber))\n\t\t{\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\n\t\t\tsetIsWithdrawLoading(false)\n\t\t\t\t\t_dispatch(setBusyLoading(false))\n\n\n\t\t\treturn false\n\t\t}\n\n\t\t\t// return false\n\n\n\t\t// _dispatch(setBusyLoading(true))\n\n\t\tif (stringIsNullOrEmpty(memberBankAccounts)) {\n\t\t\tlet createAccParams = {\n\t\t\t\tbankId: value,\n\t\t\t\taccountNumber: accountNumber,\n\t\t\t\taccountHolderName: accountHolderName,\n\t\t\t};\n\n\n\t\t\tlet params = {\n\t\t\t\tuserFullName: accountHolderName,\n\t\t\t};\n\n\t\t\t\n\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t\t\tcreateFormBody(params)\n\t\t\t);\n\n\t\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet createAccResponseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT,\n\t\t\t\tcreateMultiPartFormBody(createAccParams)\n\t\t\t);\n\n\t\t\tif (createAccResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tlet createTransParams = {\n\t\t\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\t\t\tamount: amount,\n\t\t\t\t\tchannel: \"Bank Transfer\",\n\t\t\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\t\t\tbankAccountNumber: accountNumber,\n\t\t\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\t\t\tbankName: selectedBank.bankName,\n\t\t\t\t\tbankCode: selectedBank.bankCode,\n\t\t\t\t};\n\n\t\t\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\t\t\tcreateFormBody(createTransParams)\n\t\t\t\t);\n\n\t\t\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tsetShowPinEntry(false);\n\t\t\t\t\tsetWithdrawalAmount(amount);\n\t\t\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t\t_dispatch(heartBeat());\n\t\t\t\t\tinit();\n\t\t\t\t} else {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tsetPinEntered(false);\n\t\t\t\tsetPinNumberFinal(\"\");\n\t\t\t\tsetEnteredPinNumberFinal(\"\");\n\t\t\t\tsetPinNumberFinalFocused(0);\n\t\t\t\tsetShowPinEntry(false);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tcreateAccResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tcreateAccResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\n\t\t\tlet createTransParams2 = {\n\t\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\t\tamount: amount,\n\t\t\t\tchannel: \"Bank Transfer\",\n\t\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\t\tbankAccountNumber: accountNumber,\n\t\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\t\tbankName: selectedBank.bankName,\n\t\t\t\tbankCode: selectedBank.bankCode,\n\t\t\t};\n\n\t\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\t\tcreateFormBody(createTransParams2)\n\t\t\t);\n\n\t\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetShowPinEntry(false);\n\t\t\t\tsetWithdrawalAmount(amount);\n\t\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tsetPinEntered(false);\n\t\t\tsetPinNumberFinal(\"\");\n\t\t\tsetEnteredPinNumberFinal(\"\");\n\t\t\tsetPinNumberFinalFocused(0);\n\t\t\tsetShowPinEntry(false);\n\t\t}\n\n\t\tgetMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\t\ttriggerParentFunction();\n\t}\n\tconst triggerParentFunction = () => {\n if (onAfterHandleCheck) {\n onAfterHandleCheck(); // Call the first parent function\n }\n };\n\n\tasync function onSubmit(data, e) {\n\t\tsubmitWithdrawal();\n\t\t// setShowPinEntry(true);\n\t}\n\n\tconst getBankList = async () => {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\tbankList.push({\n\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetBankOption(bankList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t};\n\n\tasync function submitFullName(data) {\n\t\tlet params = {\n\t\t\tuserFullName: data.userFullName,\n\t\t};\n\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t\tcreateFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t\tsetShowFullnamePopup(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t// init();\n\t}\n\n\tconst handleDownlineOnClick = async (index, e) => {\n\t\t_dispatch(setBusy());\n\t\te.preventDefault();\n\t\tif (displayDataIndex === index) {\n\t\t\tsetDisplayDataIndex(-1);\n\t\t} else {\n\t\t\tsetDisplayDataIndex(index);\n\t\t}\n\t\t_dispatch(setIdle());\n\t};\n\n\tfunction handleSelectedBank(value) {\n\t\tconst bank = bankOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedBank(bank);\n\t\tsetValue(value);\n\t}\n\n\n\n\treturn (\n\t\t<>\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES\") + \".\"}

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"BANK_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"bank\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"bank\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedBank(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"bank\");\n\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t// !hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{bankOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.bank&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.bank.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t setAccountHolderName(e.target.value)}\n\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountHolderName&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountHolderName.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t_userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{ stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { pointerEvents: \"none\" }\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setAccountNumber(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts) &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountNumber&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"ENTER_THE_AMOUNT\") + \" (\" + companyCurrency + \" \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(1), 2, true) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// let value = Number(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tparseFloat(amount) / 100\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(value) >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(_userData.walletBalance)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAW_LIMIT_ERROR\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tremainingWithdrawalLimit: remainingWithdrawalLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit: memberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {transactionData &&\n\t\t\t\t\t\t\ttransactionData.length > 0 &&\n\t\t\t\t\t\t\tmap(transactionData, (item, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleDownlineOnClick(index, e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"date\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{displayDataIndex === index ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})} */}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{ !hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t{/* */}\n\n\t\t\n\t);\n};\n\nexport default WithdrawByBankTransfer;\n","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { includes, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\nimport VerifyPhoneNumberModal from \"components/template_1/VerifyPhoneNumberModal\";\n\nconst WithdrawByPhoneNumber = ({type, onRenderComplete, instantBankSetting, instantPayGatewayId, ...props}) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [selectedPhoneNumber, setSelectedPhoneNumber] = useState(null);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountNumber, setAccountNumber] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n\t// ROSE START HERE\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [memberBankAccounts, setMemberBankAccounts] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst [showPinEntry, setShowPinEntry] = useState(false);\n\tconst [showVerifyPhone, setShowVerifyPhone] = useState(false);\n\tconst [changePinShow, setChangePinShow] = useState(false);\n\tconst _COUNTDOWN_PERIOD = 120;\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [pinEntered, setPinEntered] = useState(false);\n\t\n\tconst [pinNumberFinal, setPinNumberFinal] = useState(\"\");\n\tconst [enteredPinNumberFinal, setEnteredPinNumberFinal] = useState(\"\");\n\tconst [pinNumberFinalFocused, setPinNumberFinalFocused] = useState(0);\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\tconst [memberEmail,setMemberEmail] = useState()\n\n\tconst [memberPhone,setMemberPhone] = useState()\n\n\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst verifyState = {\n\t\tbutton: \"1\",\n\t};\n\n\tconst walletOption = [\n\t\t{\n\t\t\tvalue: \"bkash\",\n\t\t\tlabel: \"Bkash\"\n\t\t},\n\t\t{\n\t\t\tvalue: \"rocket\",\n\t\t\tlabel: \"Rocket\"\n\t\t},\n\t\t{\n\t\t\tvalue: \"nagad\",\n\t\t\tlabel: \"Nagad\"\n\t\t},\n\t];\n\n\tconst [transactionData, setTransactionData] = useState([]);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\n\t\n\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [displayDataIndex, setDisplayDataIndex] = useState(-1);\n\tconst [min, setMin] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null); \n\n const [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [isDirect, setIsDirect] = useState(true);\n\tconst [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n\tconst [phoneNumType, setPhoneNumType] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t if (specificElementRef.current) {\n\t\t\tonRenderComplete();\n\t\t }\n\t\t};\n\t\n\t\tcheckElementRendered();\n\t}, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// getMemberBankAccount();\n\t\t// getBankList();\n\t}, []);\n\n\tuseEffect(()=>{\n\t\tconsole.log(member)\n\t},[member])\n\n\t// useEffect(() => {\n\t// \tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t// \t\tif (!stringIsNullOrEmpty(selectedBank)) {\n\t// \t\t\tconst bankInfo = bankOption.filter(\n\t// \t\t\t\t(x) => x.value == value\n\t// \t\t\t)[0];\n\t// \t\t\tconsole.log(bankOption)\n\t// \t\t\tconsole.log(value)\n\n\t// \t\t\tif(bankInfo){\n\t// \t\t\t\tsetMin(bankInfo[\"min\"]);\n\n\t// \t\t\t}\n\t// \t\t\t// console.log(bankInfo)\n\t// \t\t}\n\t// \t}\n\t// }, [bankOption, value]);\n\n\tuseEffect(() => {\n\t\tif(member && member.membership && member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalCount){\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount >0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [totalWithdrawCountToday, totalWithdrawAmountToday, member, amount]);\n\n\tuseEffect(()=>{\n\t\tif(instantBankSetting){\n\t\t\tconsole.log('instantBankSetting', instantBankSetting)\n\t\t\tif (includes(instantBankSetting?.instantBankSettingModel[0]?.bankCode,'Ewallet') || includes(instantBankSetting?.instantBankSettingModel[0]?.bankCode,'ewallet')) {\n\t\t\t\tsetIsDirect(false)\n\t\t\t\t// DEBUG THIS\n\t\t\t} else {\n\t\t\t\tsetIsDirect(true)\n\t\t\t\tsetSelectedEwallet('bkash')\n\t\t\t}\n\t\t}\n\t}, [instantBankSetting])\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\t// Set min based on instant pay settings\n\t\t\tconst instantBankSettingModel = instantBankSetting?.instantBankSettingModel[0]\n\t\t\tsetMin(instantBankSettingModel?.minimumWithdrawal);\n\n\t\t\t// CHRIS 20241206 - Removing check for pending transaction because WithdrawalMethod already has it\n\t\t\t// var oktocont = true;\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t// //KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\t// if (!oktocont) {\n\t\t\t// \treturn false;\n\t\t\t// }\n\n\t\t\t// let tempMemberData = {};\n\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t// var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER); //KT: AND CALL THIS? \n\t\t\tgetMemberDetails();\n\t\t\t// if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// var memberJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t\t\t// );\n\n\t\t\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t\t\t// \tsetTempPhoneNum(\n\t\t\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t\t\t// \t\t\t\t3,\n\t\t\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t\t\t// \t\t\t),\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t// \t\t)\n\t\t\t\t// \t);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\t///get total withdrawal\n\t\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t\t);\n\n\t\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\n\t\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\t\tif(transactionsToday){\n\t\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\t\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\n\t\t\t\t// let responseJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t\t\t// );\n\t\t\t\t// if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tlet bankList = [];\n\t\t\t\t// \tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t// \t\tbankList.push({\n\t\t\t\t// \t\t\tlabel: bankAccount.bankName,\n\t\t\t\t// \t\t\tvalue: bankAccount.id,\n\t\t\t\t// \t\t\tbankName: bankAccount.bankName,\n\t\t\t\t// \t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t// \t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t// \t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t// \t\t});\n\t\t\t\t// \t});\n\t\t\t\t// \tsetBankOption(bankList);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\tgetMemberEwalletAccounts();\n\n\t\t\t\t// getMemberBankAccount();\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberEwalletAccounts() {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet phoneNumberList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t\t\t\tphoneNumberList.push({\n\t\t\t\t\tlabel: phoneNumber.phoneNumber,\n\t\t\t\t\tvalue: phoneNumber.id,\n\t\t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t\t\t\t\tverified: phoneNumber.verified,\n\t\t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetPhoneOption(phoneNumberList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\n\t\t// let tempMemberData = {};\n\n\t\t// var memberJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t// );\n\n\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t// \tsetTempPhoneNum(\n\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t// \t\t\t\t3,\n\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t// \t\t\t),\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t// \t\t)\n\t\t// \t);\n\t\t// } else {\n\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t}\n\n\t// Chris 20241205: Disabled because not in use\n\t// async function getLatestRolloverRecord() {\n\t// \tvar responseJson = await ApiEngine.get(\n\t// \t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t// \t);\n\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tsetTransactionData(responseJson[ApiKey._API_DATA_KEY]);\n\t// \t}\n\t// }\n\n\t// async function getMemberBankAccount() {\n\t// \ttry {\n\t// \t\tlet responseJson = await ApiEngine.get(\n\t// \t\t\tApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n\t// \t\t);\n\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tconst data = responseJson[ApiKey._API_DATA_KEY]?.[0];\n\n\t// \t\t\tif (!stringIsNullOrEmpty(data)) {\n\t// \t\t\t\tsetAccountNumber(data[\"accountNumber\"]);\n\t// \t\t\t\t// setValue('addAccountNumber')\n\t// \t\t\t\tsetValue(data[\"bankId\"]);\n\n\t// \t\t\t\tlet bankAccountList = [];\n\t// \t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t// \t\t\t\t\tbankAccountList.push({\n\t// \t\t\t\t\t\tlabel: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n\t// \t\t\t\t\t\tvalue: bankAccount.id,\n\t// \t\t\t\t\t\tbankId: bankAccount.bankId,\n\t// \t\t\t\t\t\taccountHolderName: bankAccount.accountHolderName,\n\t// \t\t\t\t\t\taccNum: bankAccount.accountNumber,\n\t// \t\t\t\t\t\tbankName: bankAccount.bankName,\n\t// \t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t// \t\t\t\t\t\tisDefault: bankAccount.isDefault,\n\t// \t\t\t\t\t});\n\t// \t\t\t\t});\n\n\t// \t\t\t\tsetSelectedBank(bankAccountList?.[0]);\n\t// \t\t\t\tsetMemberBankAccounts(bankAccountList);\n\t// \t\t\t}\n\t// \t\t} else {\n\t// \t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t\t}\n\t// \t} catch (err) {\n\t// \t\t_dispatch(showResponseMessage(false, err));\n\t// \t}\n\t// }\n\n\tasync function submitWithdrawal() {\n\t\t_dispatch(setBusyLoading(true))\n\n\t\tsetIsWithdrawLoading(true)\n\n\t\tawait getMemberDetails();\n\n\t\tif(isEmpty(member.phoneNumber))\n\t\t{\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\t\t\t_dispatch(setBusyLoading(false))\n\t\t\tsetIsWithdrawLoading(false)\n\n\t\t\treturn false\n\t\t}\n\n\t\t// if (stringIsNullOrEmpty(memberBankAccounts)) {\n\t\t// \tlet createAccParams = {\n\t\t// \t\tbankId: value,\n\t\t// \t\taccountNumber: accountNumber,\n\t\t// \t\taccountHolderName: accountHolderName,\n\t\t// \t};\n\n\t\t// \tlet params = {\n\t\t// \t\tuserFullName: accountHolderName,\n\t\t// \t};\n\t\t\t\n\t\t// \tlet responseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t// \t\tcreateFormBody(params)\n\t\t// \t);\n\n\t\t// \tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t\treturn false\n\t\t// \t}\n\n\t\t// \tlet createAccResponseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT,\n\t\t// \t\tcreateMultiPartFormBody(createAccParams)\n\t\t// \t);\n\n\t\t// \tif (createAccResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\tlet createTransParams = {\n\t\t// \t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t// \t\t\tamount: amount,\n\t\t// \t\t\tchannel: \"\",\n\t\t// \t\t\tpanel: PanelType._MEMBERSITE,\n\t\t// \t\t\tbankAccountNumber: accountNumber,\n\t\t// \t\t\tbankAccountHolderName: accountHolderName,\n\t\t// \t\t\tbankName: selectedBank.bankName,\n\t\t// \t\t\tbankCode: selectedBank.bankCode,\n\t\t// \t\t};\n\n\t\t// \t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t// \t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t// \t\t\tcreateFormBody(createTransParams)\n\t\t// \t\t);\n\n\t\t// \t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\t\tsetShowPinEntry(false);\n\t\t// \t\t\tsetWithdrawalAmount(amount);\n\t\t// \t\t\tsetIsWithdrawalSuccess(true);\n\t\t// \t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t// \t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t// \t\t\t_dispatch(heartBeat());\n\t\t// \t\t\tinit();\n\t\t// \t\t} else {\n\t\t// \t\t\t_dispatch(\n\t\t// \t\t\t\tshowResponseMessage(\n\t\t// \t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t\t)\n\t\t// \t\t\t);\n\t\t// \t\t}\n\t\t// \t\tsetPinEntered(false);\n\t\t// \t\tsetPinNumberFinal(\"\");\n\t\t// \t\tsetEnteredPinNumberFinal(\"\");\n\t\t// \t\tsetPinNumberFinalFocused(0);\n\t\t// \t\tsetShowPinEntry(false);\n\t\t// \t} else {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tcreateAccResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tcreateAccResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t}\n\t\t// } else {\n\t\t// \tlet createTransParams2 = {\n\t\t// \t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t// \t\tamount: amount,\n\t\t// \t\tchannel: \"\",\n\t\t// \t\tpanel: PanelType._MEMBERSITE,\n\t\t// \t\tbankAccountNumber: accountNumber,\n\t\t// \t\tbankAccountHolderName: accountHolderName,\n\t\t// \t\tbankName: selectedBank.bankName,\n\t\t// \t\tbankCode: selectedBank.bankCode,\n\t\t// \t};\n\n\t\t// \tlet createTransResponseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t// \t\tcreateFormBody(createTransParams2)\n\t\t// \t);\n\n\t\t// \tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\tsetShowPinEntry(false);\n\t\t// \t\tsetWithdrawalAmount(amount);\n\t\t// \t\tsetIsWithdrawalSuccess(true);\n\t\t// \t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t// \t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t// \t\t_dispatch(heartBeat());\n\t\t// \t\tinit();\n\t\t// \t} else {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t}\n\t\t// \tsetPinEntered(false);\n\t\t// \tsetPinNumberFinal(\"\");\n\t\t// \tsetEnteredPinNumberFinal(\"\");\n\t\t// \tsetPinNumberFinalFocused(0);\n\t\t// \tsetShowPinEntry(false);\n\t\t// }\n\n\t\t//let createTransParams = {\n\t\t//\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t//\tbankId: instantBankSetting.bankId,\n\t\t//\tamount: parseFloat(amount),\n\t\t//\tbankCode: selectedEwallet,\n\t\t//\tchannel: instantPayGatewayId,\n\t\t//\tpanel: PanelType._MEMBERSITE,\n\t\t//\tinstantPayBankSettingId:instantBankSetting.id,\n\t\t//\tcurrency: instantBankSetting.currency,\n\t\t//\tinstantPay: true,\n\t\t//\t// receiptReference: bankref,\n\t\t//\tbankAccountId: instantBankSetting.bankId,\n\t\t//\tphoneNumberId: selectedPhoneNumber.id\n\t\t//};\n\n\t\tlet createTransParams = {\n\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\tamount: amount,\n\t\t\tchannel: \"\",\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountNumber: accountNumber,\n\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\tbankName: selectedBank.bankName,\n\t\t\tbankCode: selectedBank.bankCode,\n\t\t};\n\nconsole.log('createTransParams', createTransParams)\n\n\t\t let createTransResponseJson = await ApiEngine.post(\n\t\t \tApiUrl._API_CREATE_TRANSACTION,\n\t\t \tcreateFormBody(createTransParams)\n\t\t );\n\n\t\t if (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t \tsetWithdrawalAmount(amount);\n\t\t \tsetIsWithdrawalSuccess(true);\n\t\t \tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t \tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t \t_dispatch(heartBeat());\n\t\t \tinit();\n\t\t } else {\n\t\t \t_dispatch(\n\t\t \t\tshowResponseMessage(\n\t\t \t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t \t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t \t\t)\n\t\t \t);\n\t\t }\n\n\t\t// getMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\n\t}\n\n\tasync function onSubmit(data, e) {\n\t\tsubmitWithdrawal();\n\t}\n\n\t// const getBankList = async () => {\n\t// \tlet responseJson = await ApiEngine.get(\n\t// \t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t// \t);\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tlet bankList = [];\n\t// \t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t// \t\t\tbankList.push({\n\t// \t\t\t\tlabel: bankAccount.bankName,\n\t// \t\t\t\tvalue: bankAccount.id,\n\t// \t\t\t\tbankName: bankAccount.bankName,\n\t// \t\t\t\tbankCode: bankAccount.bankCode,\n\t// \t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t// \t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t// \t\t\t});\n\t// \t\t});\n\t// \t\tsetBankOption(bankList);\n\t// \t} else {\n\t// \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t}\n\t// };\n\n\t// function handleSelectedBank(value) {\n\t// \tconst bank = bankOption.filter((x) => x.value == value)[0];\n\n\t// \tsetSelectedBank(bank);\n\t// \tsetValue(value);\n\t// }\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\tsetValue(value);\n\t}\n\n\tconst handleVerifyOtp = async (data, e) => {\n\t\t// Open modal\n\t\tsetShowVerifyOtpModal(true);\n\t}\n\n\tuseEffect(() => {\n\t\tif (phoneOption.length > 0 && selectedPhoneNumber) {\n\t\t\tconst phoneNumberData = phoneOption.filter(\n\t\t\t\t(x) => x.value === selectedPhoneNumber.id\n\t\t\t)[0];\n\t\n\t\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t\tsetValue(value);\n\t\t}\n\t}, [phoneOption]); // Runs whenever phoneOption updates after handleVerifyOtpCallback\n\n\tconst handleVerifyOtpCallback = async (response) => {\n\t\tif(response[ApiKey._API_SUCCESS_KEY]){\n\t\t\t// Close modal\n\t\t\tsetShowVerifyOtpModal(false);\n\n\t\t\t// Refresh member phone numbers list\n\t\t\tawait getMemberEwalletAccounts();\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{\n\t\t\t// !hasPendingTxn && \n\t\t\t!showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES_EWALLET\") + \".\"}

\n\t\t\t\t\t\t\t{/*

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

*/}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!isDirect && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(e.target.value)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{walletOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"EWALLET_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true) \n\t\t\t\t\t\t\t\t\t\t\t\t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"phoneNumber\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.phoneNumber && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.phoneNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t{/* Show error when phone number is not yet verified */}\n\t\t\t\t\t\t\t\t{ selectedPhoneNumber && !selectedPhoneNumber.verified &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPhoneNumType(\"member\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleVerifyOtp();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>{t(\"VERIFY_OTP\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"bank\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"bank\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedBank(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"bank\");\n\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t// !hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{bankOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.bank&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.bank.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n{/* \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t setAccountHolderName(e.target.value)}\n\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountHolderName&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountHolderName.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t\t\t{ _userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{ stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { pointerEvents: \"none\" }\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setAccountNumber(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts) &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountNumber&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"ENTER_THE_AMOUNT\") + \" (\" + companyCurrency + \" \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(1), 2, true) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(amount > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, we show error to user to alert them, allow them to have agency to correct their amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (parseFloat(value) > parseFloat(_userData.walletBalance)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, allow user to have agency to manage their own cursor position\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// e.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAW_LIMIT_ERROR\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tremainingWithdrawalLimit: remainingWithdrawalLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit: memberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {transactionData &&\n\t\t\t\t\t\t\ttransactionData.length > 0 &&\n\t\t\t\t\t\t\tmap(transactionData, (item, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleDownlineOnClick(index, e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"date\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{displayDataIndex === index ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})} */}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{ !hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t\n\n\t\t\t setShowVerifyOtpModal(false)}\n\t\t\t\tphoneNumber={selectedPhoneNumber?.label}\n\t\t\t\tphoneNumType={selectedPhoneNumber?.phoneNumType}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleVerifyOtpCallback(e)\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default WithdrawByPhoneNumber;\n","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { includes, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetMyProfileModal,\n\tsetDepositModal\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\nimport VerifyPhoneNumberModal from \"components/template_1/VerifyPhoneNumberModal\";\nimport AddPhoneModal from \"components/template_1/AddPhoneModal\";\n\nconst WithdrawByPhoneNumber = ({ onRenderComplete,selectedBankCode,onAfterHandleCheck }) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tconst membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [selectedPhoneNumber, setSelectedPhoneNumber] = useState(null);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\tconst [showAddPhoneNumberModal, setShowAddPhoneNumberModal] = useState(false);\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [eWalletError, setEWalletError] = useState(false);\n\tconst eWalletOTPEnabled = useSelector((state) => state.appState.eWalletOTPEnabled );\n\n\tconst profileModal = useSelector(\n\t\t(state) => state.appState.profileModal\n\t);\n\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\terrors,\n\t\ttrigger,\n\t\tclearErrors,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null);\n\n\tconst [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n\tconst [phoneNumType, setPhoneNumType] = useState(\"\");\n\tconst [collapse, setCollapse] = useState(false);\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t\tif (specificElementRef.current) {\n\t\t\t\tonRenderComplete();\n\t\t\t}\n\t\t};\n\n\t\tcheckElementRendered();\n\t}, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// getMemberBankAccount();\n\t\t// getBankList();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tgetMemberEwalletAccounts();\n\t}, [profileModal])\n\n\tuseEffect(() => {\n\t\tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t\t\tlet test = bankOption.find(x => x.bankCode == selectedBankCode)\n\t\t\tsetSelectedBank(bankOption.find(x => x.bankCode == selectedBankCode))\n\t\t\tsetSelectedEwallet(selectedBankCode)\n\t\t}\n\t}, [bankOption]);\n\n\tuseEffect(() => {\n\t\tif (member && member.membership && member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalCount) {\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0) {\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount > 0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0) {\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [totalWithdrawCountToday, totalWithdrawAmountToday, member, amount]);\n\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\tgetMemberDetails();\n\t\t\t\n\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t);\n\n\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\n\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\tif (transactionsToday) {\n\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t}, 0);\n\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t}\n\n\t\t\tgetBankList();\n\t\t\tgetMemberEwalletAccounts();\n\n\t\t\t// getMemberBankAccount();\n\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberEwalletAccounts() {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\t// ApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t\t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet phoneNumberList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t\t\t\tphoneNumberList.push({\n\t\t\t\t\tlabel: phoneNumber.phoneNumber,\n\t\t\t\t\tvalue: phoneNumber.id,\n\t\t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t\t\t\t\tverified: phoneNumber.verified,\n\t\t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t\t\t\t\taccountHolderName: phoneNumber.accountHolderName\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetPhoneOption(phoneNumberList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\t}\n\n\t\n\n\tasync function submitWithdrawal() {\n\t\t_dispatch(setBusyLoading(true))\n\t\tsetIsWithdrawLoading(true)\n\n\t\tawait getMemberDetails();\n\n\t\tif (isEmpty(member.phoneNumber)) {\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\t\t\t_dispatch(setBusyLoading(false))\n\t\t\tsetIsWithdrawLoading(false)\n\n\t\t\treturn false\n\t\t}\n\n\t\tlet createTransParams = {\n\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\tamount: amount,\n\t\t\tchannel: \"E-Wallet\",\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountNumber: selectedPhoneNumber.label,\n\t\t\tbankAccountHolderName: selectedPhoneNumber.accountHolderName,\n\t\t\tbankName: selectedBank.bankName,\n\t\t\tbankCode: selectedBank.bankCode,\n\t\t};\n\n\n\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateFormBody(createTransParams)\n\t\t);\n\n\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetWithdrawalAmount(amount);\n\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t_dispatch(heartBeat());\n\t\t\tinit();\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// getMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\n\t}\n\n\tasync function onSubmit(data, e) {\n\t\tsetBankError(false);\n\t\tsetAmountError(false);\n\t\tsetEWalletError(false);\n\t\tlet error = false;\n\t\tif (stringIsNullOrEmpty(selectedEwallet)) {\n\t\t\ttrigger(\"ewallet\");\n\t\t\tsetBankError(true);\n\t\t\terror = true;\n\t\t}\n\n\t\tif (\n\t\t\t!data.amount ||\n\t\t\tisNaN(data.amount) ||\n\t\t\tNumber(data.amount) <= 0 ||\n\t\t\tNumber(data.amount) < min\n\t\t) {\n\t\t\ttrigger(\"amount\");\n\t\t\tsetAmountError(true);\n\t\t\terror = true;\n\t\t}\n\n\t\tif (stringIsNullOrEmpty(data.phoneNumber)) {\n\t\t\ttrigger(\"phoneNumber\");\n\t\t\tsetEWalletError(true);\n\t\t\terror = true;\n\t\t} \n\n\t\tif(!error)\n\t\t{\n\t\t\tsubmitWithdrawal();\n\t\t}\n\n\t}\n\n\t const getBankList = async () => {\n\t \tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_USER_E_WALLET + \"?type=WITHDRAWAL\"\n\t \t);\n\t \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t \t\tlet bankList = [];\n\t \t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t \t\t\tbankList.push({\n\t \t\t\t\tlabel: bankAccount.bankName,\n\t \t\t\t\tvalue: bankAccount.id,\n\t \t\t\t\tbankName: bankAccount.bankName,\n\t \t\t\t\tbankCode: bankAccount.bankCode,\n\t \t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t \t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\tbankLogo: bankAccount.bankLogo\n\t \t\t\t});\n\t \t\t});\n\t \t\tsetBankOption(bankList);\n\t \t} else {\n\t \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t \t}\n\t };\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\tsetValue(value);\n\n\t}\n\n\tconst handleVerifyOtp = async (data, e) => {\n\t\t// Open modal\n\t\tsetShowVerifyOtpModal(true);\n\t}\n\n\tuseEffect(() => {\n\t\tif (phoneOption.length > 0 && selectedPhoneNumber) {\n\t\t\tconst phoneNumberData = phoneOption.filter(\n\t\t\t\t(x) => x.value === selectedPhoneNumber.id\n\t\t\t)[0];\n\n\t\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t\tsetValue(value);\n\t\t}\n\t}, [phoneOption]); // Runs whenever phoneOption updates after handleVerifyOtpCallback\n\n\tconst handleAddPhoneCallback = async (response) => {\n\t\tsetShowAddPhoneNumberModal(false);\n\t\tgetMemberEwalletAccounts();\n\t};\n\n\tconst handleVerifyOtpCallback = async (response) => {\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// Close modal\n\t\t\tsetShowVerifyOtpModal(false);\n\n\t\t\t// Refresh member phone numbers list\n\t\t\tawait getMemberEwalletAccounts();\n\t\t}\n\t};\n\tconst triggerParentFunction = () => {\n if (onAfterHandleCheck) {\n onAfterHandleCheck(); // Call the first parent function\n }\n };\n\treturn (\n\t\t<>\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{\n\t\t\t\t// !hasPendingTxn && \n\t\t\t\t!showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{memberWithdrawalAmountLimit > 0 && (
\n\t\t\t\t\t\t\t\t{t(\"MEMBERSHIP_DAILY_WITHDRAWAL_LIMIT\")}
\n\t\t\t\t\t\t\t\t{membershipEnabled && _userData.vipName != null &&\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t({t(\"MEMBERSHIP\")}: {t(_userData.vipName.toUpperCase())})\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
)}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES_EWALLET\") + \".\"}

\n\t\t\t\t\t\t\t\t{/*

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

*/}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbankOption.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(bank.bankCode)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetMin(bank.min);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetMax(bank.max);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{
{bank.min} - {bank.max}
}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{bankError && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
{t(\"EWALLET_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"phoneNumber\", e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.accountHolderName} - {option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{errors.phoneNumber && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.phoneNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/* Show error when phone number is not yet verified */}\n\t\t\t\t\t\t\t\t\t{ eWalletOTPEnabled && selectedPhoneNumber && !selectedPhoneNumber.verified &&\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPhoneNumType(\"member\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleVerifyOtp();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{t(\"VERIFY_OTP\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{phoneOption.length < 3 && (
\n { setShowAddPhoneNumberModal(true); }}>{t(\"ADD_E_WALLET\")}\n\t\t\t\t\t\t\t\t\t
)}\n\n\t\t\t\t\t\t\t\t\t{_userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"ENTER_THE_AMOUNT\") + \" (\" + companyCurrency + \" \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(1), 2, true) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (amount > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmountError(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, we show error to user to alert them, allow them to have agency to correct their amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (parseFloat(value) > parseFloat(_userData.walletBalance)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, allow user to have agency to manage their own cursor position\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// e.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{amount <= 0 && ()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(amount < min || amount > max) && ()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t 0.99 && isWithdrawalLimitError == 0 && (!eWalletOTPEnabled || selectedPhoneNumber?.verified) ? \"\" : \"disabled\" || hasRolloverBal || isWithdrawLoading}\n\t\t\t\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\t\t\tt3-custom-light-btn \n\t\t\t\t\t\t\t\t\t${amount > 0.99 && isWithdrawalLimitError == 0 && (!eWalletOTPEnabled || selectedPhoneNumber?.verified) ? \"\" : \"disabled\"}\n\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isWithdrawLoading ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tt(\"WITHDRAW\")\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tbackdrop={\"static\"}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t\ttriggerParentFunction();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\n\t\t\t setShowAddPhoneNumberModal(false)}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleAddPhoneCallback(e)\n\t\t\t\t}}\n\t\t\t/> \n\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t\n\t\t\t setShowVerifyOtpModal(false)}\n\t\t\t\tphoneNumber={selectedPhoneNumber?.label}\n\t\t\t\tphoneNumType={selectedPhoneNumber?.phoneNumType}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleVerifyOtpCallback(e)\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default WithdrawByPhoneNumber;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n} from \"../../../util/Constant\";\nimport Input from \"../../../components/custom/Input\";\nimport { find, map } from \"lodash\";\nimport { Link } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { numberWithCurrencyFormat } from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport moment from \"moment\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { setThemeName, setPaymentList } from \"../../../redux/AppAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport WithdrawByBankTransfer from \"../transaction/WithdrawByBankTransfer\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport WithdrawByPhoneNumber from \"../transaction/WithdrawByPhoneNumber\";\nimport WithdrawByEWallet from \"../transaction/WithdrawByEWallet\";\n\n/// \n/// Author: -\n/// \nconst WithdrawalMethods = ({isHidden}) => {\n\tvar { t, i18n } = useTranslation();\n\tconst _dispatch = useDispatch();\n\tvar _history = useHistory();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst [showConfirmation, setShowConfirmation] = useState(false);\n\tconst [showWithdrawBankTransfer, setShowWithdrawBankTransfer] = useState(false);\n\tconst [showWithdrawTopkash, setShowWithdrawTopkash] = useState(false);\n\tconst [showWithdrawMethods, setShowWithdrawMethods] = useState(true);\n\tconst [showWithdrawBCPay, setShowWithdrawBCPay] = useState(false);\n\tconst [instantPayOption, setInstantPayOption] = useState([]);\n\tconst [isInitFinished, setIsInitFinished] = useState(false); // used to ensure RestoreAllWallet is done\n\tconst [isWithdrawEleReady, setIsWithdrawEleReady] = useState(false); \n\tconst [showWithdrawByPhoneNumber1, setShowWithdrawByPhoneNumber1] = useState(false);\n\tconst [showWithdrawByPhoneNumber2, setShowWithdrawByPhoneNumber2] = useState(false);\n\tconst [showWithdrawByEWallet, setShowWithdrawByEWallet] = useState(false);\n\tconst [paymentOptionList, setPaymentOptionList] = useState(\n\t\tuseSelector((state) => state.appState.payments)\n\t);\n\tconst [withdrawMethods, setWithdrawMethods] = useState([\n\t]);\n\tconst [isNormalWithdrawalEnable, setIsNormalWithdrawalEnable] = useState(\n\t\tuseSelector((state) => state.appState.isNormalWithdrawalEnable)\n\t);\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [showBackward, setShowBackward] = useState(false);\n\tconst [selectedWithdrawMethod, setSelectedWithdrawMethod] = useState([]);\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\tconst [selectedBank, setSelectedBank] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (isWithdrawEleReady) {\n\t\t\tisHidden();\n\t\t}\n\t}, [isWithdrawEleReady]);\n\n\tconst handleChildRenderComplete = () => {\n\t\tsetIsInitFinished(true);\n\t\tsetIsWithdrawEleReady(true);\n\t\tsetIsLoading(false);\n\t};\n\tconst afterHandleCheck = () => {\n\t\tsetSelectedWithdrawMethod([]);\n\t\tsetShowWithdrawMethods(true);\n\t\tsetShowBackward(false);\n\n\t\t// hide all the child components\n\t\tsetShowWithdrawBankTransfer(false);\n\t\tsetShowWithdrawByPhoneNumber1(false);\n\t\tsetShowWithdrawByPhoneNumber2(false);\n\t\tsetShowWithdrawByEWallet(false);\n\t\tsetIsWithdrawEleReady(false);\n\n\t\tsetIsInitFinished(false);\n\t\tsetIsWithdrawEleReady(false);\n\t\tsetIsLoading(false);\n\t\t\n\t\tinit();\n\t\t\n\t};\n\n\n\tasync function init() {\n\t\t_dispatch(heartBeat());\n\t\tsetIsLoading(true);\n\n\t\tsetHeaderMsg(\"\");\n\t\t// setWithdrawMethods([])\n\t\tlet withdrawList = []\n\t\tif (isNormalWithdrawalEnable) {\n\n\n\t\t\twithdrawList = [\n ...withdrawList,\n {\n title: \"BANK_TRANSFER\",\n handle: \"BANK_TRANSFER\",\n remark: t(\"NORMAL_BANK_TRANSFER\"),\n },\n ];\n\t\t\t// setWithdrawMethods((withdrawMethods) => [\n\t\t\t// \t...withdrawMethods,\n\t\t\t// \t{\n\t\t\t// \t\t// image: require(\"../../../assets/img/new_icons/bank.png\"),\n\t\t\t// \t\ttitle: \"BANK_TRANSFER\",\n\t\t\t// \t\thandle: \"BANK_TRANSFER\",\n\t\t\t// \t\tremark: t(\"NORMAL_BANK_TRANSFER\"),\n\t\t\t// \t\t// link: WebUrl._URL_WITHDRWAL_BY_BANK_TRANSFER,\n\t\t\t// \t}\n\t\t\t// ]);\n\n\t\t\tsetWithdrawMethods(withdrawList)\n\t\t}\n\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_PENDING_TRANSACTION);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(responseJson[ApiKey._API_DATA_KEY][\"timeSpan\"]);\n\t\t\t\tsetTransType(responseJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tawait getRestore();\n\t\t\t}\n\t\t}\n\n\t\t//KT this is very slow, we're not going to use Payment Gateway for AUD, might as well dont check and waste time\n\n\t\tvar responseJson3 = await ApiEngine.get(ApiUrl._API_GET_EWALLET_STATUS);\n\t\tif (responseJson3[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson3[ApiKey._API_DATA_KEY]) {\n\n\t\t\t\tlet ewalletlList = await getBankEwallet();\n\t\t\t\tsetWithdrawMethods((withdrawMethods) => [\n\t\t\t\t\t...withdrawMethods,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: t(\"E_WALLET\"),\n\t\t\t\t\t\thandle: \"E_WALLET\",\n\t\t\t\t\t\tremark: \"\",\n\t\t\t\t\t\tbankOptions: ewalletlList\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\t// Check if redux already has the payment option list saved\n\t\t// we dont have payment gateway for withdrawal yet. so comment first (JW)\n\t\t//if (paymentOptionList.length > 0) {\n\t\t//\tinitOptions(paymentOptionList);\n\t\t//} else {\n\t\t//\tlet responseJson2 = await ApiEngine.get(\n\t\t//\t\tApiUrl._API_GET_USER_PAYMENT_GATEWAY_INFO\n\t\t//\t);\n\t\t//\tif (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n\t\t//\t\t// Save payment list into redux to avoid calling API again if unnecessary\n\t\t//\t\t_dispatch(setPaymentList(responseJson2[ApiKey._API_DATA_KEY]));\n\n\t\t//\t\tinitOptions(responseJson2[ApiKey._API_DATA_KEY]);\n\t\t//\t}\n\t\t//}\n\n\t\tsetIsInitFinished(true);\n\t\tsetIsLoading(false);\n\t}\n\n\tfunction initOptions(responseJsonData) {\n\t\tif(responseJsonData) {\n\t\t\tsetInstantPayOption(responseJsonData);\n\n\t\t\tresponseJsonData.forEach((item) => {\n\t\t\t\tsetWithdrawMethods((withdrawMethods) => [\n\t\t\t\t\t...withdrawMethods,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: item.instantPayGatewayString,\n\t\t\t\t\t\thandle: item.instantPayGatewayString.toUpperCase().replace(/ /g, \"_\"),\n\t\t\t\t\t\tremark: item.remarks\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t})\n\n\t\t\tif (withdrawMethods.length === 1 && responseJsonData.length == 0) {\n\t\t\t\tsetShowWithdrawBankTransfer(true);\n\t\t\t\tsetShowBackward(false);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function getRestore() {\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\t}\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tconst getBankEwallet = async () => {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\t ApiUrl._API_GET_USER_E_WALLET + \"?type=WITHDRAWAL\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\tbankList.push({\n\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t});\n\t\t\t});\n\t\t\t// setBankOption(bankList);\n\t\t\treturn bankList;\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{ !isLoading && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!hasPendingTxn && showWithdrawMethods && (\n\t\t\t\t<>\n\t\t\t\t\t{showConfirmation && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowConfirmation(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"#05102F\",\n\t\t\t\t\t\t\t\tborderColor: \"white !important\",\n\t\t\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\tmarginTop: \"68%\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcancelBtnBsStyle=\"#45ff8b\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\"PLEASE_WAIT_FOR_PREVIOUS_TRANSACTION_APPROVAL_OR_CONTACT_CUSTOMER_SERVICE\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* {isInsufficientAmount && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"AMOUNT_TOO_LESS\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)} */}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{isInitFinished && withdrawMethods && withdrawMethods.length > 1 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t? \"font14 f-weight-500 mb-3\"\n\t\t\t\t\t\t\t\t\t\t\t: \"font14 f-weight-500 mb-3 disabled-action\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"CHOOSE_ONE_FROM_THE_AVAILABLE_OPTIONS\") }\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmap(withdrawMethods, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (hasPendingTxn) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmation(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}else if (item.handle == \"E_WALLET\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetActiveIndex(index);\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawMethods(false);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item.handle == \"BANK_TRANSFER\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawBankTransfer(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"BCPAY\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawBCPay(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"TAKAPAY_EWALLET\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber1(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"TAKAPAY_DIRECT\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber2(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// else if (item.handle == \"E_WALLET\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tsetShowWithdrawByEWallet(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBackward(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWithdrawMethod(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"title disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(item.title)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"remark\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.bankOptions && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.bankOptions.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawMethods(false);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByEWallet(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBackward(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWithdrawMethod(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank.bankCode)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
{bank.min} - {bank.max}
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{isInitFinished && withdrawMethods && withdrawMethods.length == 1 && withdrawMethods[0].title ==\"BANK_TRANSFER\" && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t)}\n\t\t\t{withdrawMethods.length == 1 && withdrawMethods[0].handle == \"E_WALLET\" && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{showBackward && (\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetSelectedWithdrawMethod([]);\n\t\t\t\t\t\t\tsetShowWithdrawMethods(true);\n\t\t\t\t\t\t\tsetShowBackward(false);\n\n\t\t\t\t\t\t\t// hide all the child components\n\t\t\t\t\t\t\tsetShowWithdrawBankTransfer(false);\n\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber1(false);\n\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber2(false);\n\t\t\t\t\t\t\tsetShowWithdrawByEWallet(false);\n\t\t\t\t\t\t\tsetIsWithdrawEleReady(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{selectedWithdrawMethod.handle === \"BANK_TRANSFER\" \n\t\t\t\t\t\t\t? t(\"NORMAL_BANK_TRANSFER\") \n\t\t\t\t\t\t\t: t(`${selectedWithdrawMethod.handle}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{showWithdrawBankTransfer && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{/*We don't have payment gateway for withdrawal yet*/}\n\n\t\t\t{/*{showWithdrawByPhoneNumber1 && (*/}\n\t\t\t{/*\t
*/}\n\t\t\t{/*\t\t
*/}\n\t\t\t{/*)}*/}\n\n\t\t\t{/*We don't have payment gateway for withdrawal yet*/}\n\n\t\t\t{/*{showWithdrawByPhoneNumber2 && (*/}\n\t\t\t{/*\t
*/}\n\t\t\t{/*\t\t
*/}\n\t\t\t{/*)}*/}\n\n\t\t\t{showWithdrawByEWallet && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{/* x.instantPayGatewayString === \"BCPay\")[0].id} \n\t\t\t\tbankId={instantPayOption.filter((x) => x.instantPayGatewayString === \"BCPay\")[0].instantBankSettingModel[0].bankId}\n\t\t\t\tinstantPayGatewayId={instantPayOption.filter((x) => x.instantPayGatewayString === \"BCPay\")[0].instantPayGatewayId}\n\t\t\t/> */}\n\n\t\t\t{isLoading && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default WithdrawalMethods;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setDepositModal, setDepositTab } from \"redux/AppAction\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage } from \"../../redux/AppAction.js\";\nimport { numberWithCurrencyFormat } from \"../../util/Util\";\nimport { map } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst DepositWithdrawalModal = (props) => {\n\tvar { t } = useTranslation();\n\tconst isDepositModal = useSelector((state) => state.appState.depositModal);\n\tconst depositAndWithdrawActive = useSelector(\n\t\t(state) => state.appState.depositTab\n\t);\n\tvar _dispatch = useDispatch();\n\tconst [rolloverWarning, setRolloverWarning] = useState(false);\n\tconst [rolloverData, setRolloverData] = useState([]);\n\tconst modalRef = useRef(null);\n\n\tconst handleWithdrawalMethodsModal = () => {\t\n\t\tif ( modalRef.current) {\n\t\t\tmodalRef.current.scrollIntoView();\n\t\t}\n\t};\n\n\tasync function checkMemberRollover() {\n\t\ttry {\n\t\t\tgetLatestRolloverRecord();\n\t\t\tvar rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER);\n\t\t\tif (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t_dispatch(setDepositModal(true, 2));\n\t\t\t} else {\n\t\t\t\tsetRolloverWarning(true);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t}\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t}\n\t}\n\tconst closeBtn = (\n\t\t _dispatch(setDepositModal(!isDepositModal))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n\n\treturn (\n\t\t {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t}}\n\t\t\tfullscreen={\"true\" }\n\t\t\t// centered\n\t\t>
\n\t\t\t{/* {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t}}>Modal title */}\n\t\t\t\t\n\t\t\t\t{depositAndWithdrawActive == 1 ? t(\"DEPOSIT\") : t(\"WITHDRAWAL\")}\n\t\t\t\n\t\t\t\n\t\t\t\t{rolloverWarning && (\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetRolloverWarning(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(\"ROLLOVER_REQUIREMENT_ERROR\")}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"LATEST_ROLLOVER_PROGRESS\")}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{rolloverData &&\n\t\t\t\t\t\t\t\t\t\t\trolloverData.length > 0 &&\n\t\t\t\t\t\t\t\t\t\t\tmap(rolloverData, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst percentage =\n\t\t\t\t\t\t\t\t\t\t\t\t\t(item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]) == 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"rolloverTarget\"] == 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"0%\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ((item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]) /\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"rolloverTarget\"]) *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t 100;\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t= 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `rotate(180deg)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `rotate(${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(percentage / 100) * 180\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t }deg)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `rotate(${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(34 / 100) * -180\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t }deg)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `rotate(-0deg)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{percentage.toFixed(2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {t(\"LATEST_TOP_UP\")} :{\" \"} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")} :{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{item[\"date\"]}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"YOU_HAVE\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? numberWithCurrencyFormat(item[\"rolloverProgress\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: numberWithCurrencyFormat(item[\"rolloverTarget\"])}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {numberWithCurrencyFormat(item[\"rolloverTarget\"])}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TO_GO\")}!\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER_RED_WARNING\")}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_dispatch(setDepositTab(1));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tcheckMemberRollover();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(\"WITHDRAWAL\")}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{depositAndWithdrawActive == 1 && }\n\t\t\t\t\t\t{depositAndWithdrawActive == 2 && }\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t{/*
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{depositAndWithdrawActive == 1 ? t(\"DEPOSIT\") : t(\"WITHDRAWAL\")}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t_dispatch(setDepositTab(1));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tcheckMemberRollover();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
{t(\"WITHDRAWAL\")}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{depositAndWithdrawActive == 1 && }\n\t\t\t\t\t{depositAndWithdrawActive == 2 && }\n\t\t\t\t */}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DepositWithdrawalModal;\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { WebUrl, ApiUrl, ApiKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n Modal,\n ModalBody,\n ModalHeader,\n Nav,\n NavItem,\n NavLink,\n TabContent,\n TabPane,\n} from \"reactstrap\";\nimport {\n showResponseMessage,\n setBusy,\n setIdle,\n setY,\n setPageSize,\n} from \"../../../redux/AppAction\";\nimport { stringIsNullOrEmpty, numberWithCurrencyFormat } from \"../../../util/Util\";\nimport { map } from \"lodash\";\nimport Input from \"../../../components/custom/Input\";\nimport classnames from \"classnames\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport { Spinner } from \"reactstrap\";\n\nconst DownlineDetails = (props) => {\n const { username, setShowDownlineDetail, showDownlineDetail, setShowDownlineList, setShowDownlineDetailTab } = props;\n var _history = useHistory();\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const [activeTab, setActiveTab] = useState(0);\n const [downlineData, setDownlineData] = useState({});\n const [referralUsed, setReferralUsed] = useState(\"\");\n const [categories, setCategories] = useState([]);\n const [products, setProducts] = useState([]);\n const [nickname, setNickname] = useState(\"\");\n const [referralCodeDetail, setReferralCodeDetail] = useState([]);\n const [referralGroupOptions, setReferralGroupOptions] = useState([]);\n const [selectedReferralGroup, setSelectedReferralGroup] = useState(\"\");\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [productCommRate, setProductCommRate] = useState([]);\n const [loadingDetails, setLoadingDetails] = useState(true);\n\n const [editDownlineShow, setEditDownlineShow] = useState(false);\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n const {\n register: registerNickname,\n handleSubmit: handleSubmitNickname,\n errors: errorsNickname,\n setValue: setValueNickname,\n watch: watchNickname,\n control: controlNickname,\n trigger: triggerNickname,\n } = useForm();\n\n useEffect(() => {\n if (username) {\n init();\n _dispatch(setPageSize(_location[\"scrollIndex\"]));\n } else {\n _history.goBack();\n }\n }, [username]);\n\n const toggleTab = (tab) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n async function init() {\n _dispatch(setBusy());\n try {\n var responseJson = await ApiEngine.get(\n `${ApiUrl._API_GET_MEMBER_DETAILS}?memberdownline=${username}`\n );\n\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n setDownlineData(responseJson[ApiKey._API_DATA_KEY]);\n setLoadingDetails(false);\n setNickname(responseJson[ApiKey._API_DATA_KEY].referralNickname);\n\n //const referralCodeId = responseJson[ApiKey._API_DATA_KEY].referralCodeId;\n //getReferralDetail(referralCodeId);\n\n // var responseCatJson = await ApiEngine.get(\n // ApiUrl._API_GET_PRODUCT_CATEGORY\n // );\n // if (responseCatJson[ApiKey._API_SUCCESS_KEY]) {\n // let categoryData = responseCatJson[ApiKey._API_DATA_KEY];\n // setCategories(categoryData);\n // setActiveTab(categoryData[0][\"id\"]);\n // }\n\n //let tempProducts = [];\n\n //getProductComRate();\n\n //var responseProductJson = await ApiEngine.get(\n //\tApiUrl._API_GET_PRODUCT_WITH_MAX_RATE\n //);\n\n //if (responseProductJson[ApiKey._API_SUCCESS_KEY]) {\n //\tlet productData = responseProductJson[ApiKey._API_DATA_KEY];\n\n //\tproductData.map((product) => {\n //\t\ttempProducts.push({\n //\t\t\tproductId: product.productId,\n //\t\t\tproductName: product.productName,\n //\t\t\ttitle: product.productName,\n //\t\t\tcategoryName: product.categoryName,\n //\t\t\tmaxBonus: product.maxBonus,\n //\t\t\tmaxClubFee: product.maxClubFee,\n //\t\t\tmaxCommission: product.maxCommission,\n //\t\t});\n //\t});\n\n //\tsetProducts(tempProducts);\n //}\n } catch (errorMessage) {\n _dispatch(\n showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n );\n } finally {\n _dispatch(setIdle());\n }\n }\n\n async function getReferralDetail(id) {\n let apiUrl = ApiUrl._API_GET_MEMBER_REFERRAL_CODES;\n\n if (!stringIsNullOrEmpty(id)) {\n apiUrl += \"?id=\" + id;\n }\n let data = [];\n let dataOptions = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY][0];\n dataOptions = responseJson[ApiKey._API_DATA_KEY];\n setReferralCodeDetail(data);\n setReferralGroupOptions(\n dataOptions.map((x) => {\n return { label: x.name + \"(\" + x.code + \")\", value: x.id };\n })\n );\n }\n return data;\n }\n\n async function updateDownline() {\n _dispatch(setBusy());\n var responseJson = await ApiEngine.post(\n ApiUrl._API_UPDATE_MEMBER_DOWNLINE +\n \"?memberdownline=\" +\n username +\n \"&nickname=\" +\n nickname +\n \"&referralId=\" +\n selectedReferralGroup\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n init();\n setEditDownlineShow(false);\n }\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(responseJson[ApiKey._API_MESSAGE_KEY])\n )\n );\n _dispatch(setIdle());\n }\n\n async function getProductComRate() {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.status === true\n );\n\n setProductCommRate(data);\n }\n }\n\n async function handleOnClick() {\n setEditDownlineShow(true);\n getReferralDetail();\n setSelectedReferralGroup(\n Object.keys(referralCodeDetail).length > 0 ? referralCodeDetail.id : -1\n );\n }\n\n return (\n <>\n
\n {!editDownlineShow &&\n
\n
\n
\n
\n
\n
\n {\n setShowDownlineDetail(false);\n setShowDownlineList(true);\n setShowDownlineDetailTab(true);\n }}\n >\n \n \n
{t(\"DOWNLINE_DETAIL\")}
\n
\n
\n
\n
\n
\n
\n
\n
\n
{t(\"USERNAME\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"username\"]\n )}\n {/* {downlineData[\"username\"]} */}\n
\n
\n
\n \n
\n
\n
\n
\n
{t(\"CONTACT_NO\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"phoneNumber\"]\n )}\n {/* {downlineData[\"phoneNumber\"]} */}\n
\n
\n
\n
{t(\"CREATED_DATE\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"createdDate\"]\n )}\n {/* {downlineData[\"createdDate\"]} */}\n
\n
\n
\n
\n
\n
{t(\"REMARK\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"referralNickname\"] != \"\"\n ? downlineData[\"referralNickname\"]\n : \"-\"\n )}\n {/* {downlineData[\"referralNickname\"] != \"\"\n ? downlineData[\"referralNickname\"]\n : \"-\"} */}\n
\n
\n
\n
\n
\n }\n\n {editDownlineShow &&\n
\n
\n
\n
\n
\n
\n {\n setEditDownlineShow(false)\n }}\n >\n \n \n
{t(\"EDIT_DOWNLINE_DETAIL\")}
\n
\n
\n
\n
\n
\n
\n
\n
\n
{downlineData[\"username\"]}
\n
\n {t(\"CONTACT_NO\")} : {downlineData[\"phoneNumber\"]}\n
\n
\n
\n \n
{t(\"REMARK\")}
\n {\n setNickname(e.target.value);\n }}\n autoFocus\n />\n {errorsNickname.nickname && (\n
\n {t(errorsNickname.nickname.message)}\n
\n )}\n\n
\n
\n \n {t(\"SAVE_CHANGES\")}\n \n
\n
\n \n
\n
\n }\n
\n \n );\n};\n\nexport default DownlineDetails;\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n setBusy,\n setIdle,\n showResponseMessage,\n setDownlineSearchText,\n setDownlineQuery,\n setPageSize,\n setY,\n setActiveTab,\n setDownline,\n setDownlineModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { ModalBody, Spinner } from \"reactstrap\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\n\nconst DownlineSummary = (props) => {\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [monthOptions, setMonthOptions] = useState([]);\n const [selectedMonth, setSelectedMonth] = useState(\"\");\n const [selectedYear, setSelectedYear] = useState(\"\");\n\n const [selectedGroup, setSelectedGroup] = useState(0);\n const [downlineShow, setDownlineShow] = useState(false);\n\n const downlineState = useSelector((state) => state.appState.downline);\n const { memberData, recentData } = useSelector(\n (state) => state.appState.downline\n );\n\n const [memberLMData, setMemberLMData] = useState([]);\n const dateRangePickerOnClose = () => {\n setIsDateFilterOpen(false);\n };\n const [startDate, setStartDate] = useState(\n moment().startOf(\"isoWeek\").format(\"YYYY-MM-DD\")\n );\n const [endDate, setEndDate] = useState(\n moment().endOf('day').format(\"YYYY-MM-DD\")\n );\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [queryProduct, setQueryProduct] = useState(\"\");\n const [searchTrigger, setSearchTrigger] = useState(Date.now());\n const [isDateFilterOpen, setIsDateFilterOpen] = useState(false);\n const [selectedFilterType, setSelectedFilterType] = useState(\n moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n t(\"TO\") +\n moment().endOf('day').format(\"DD-MM-YYYY\")\n );\n const filterTypeOnSelect = (value) => {\n setSelectedFilterType(value);\n };\n\n const [newGen, setNewGen] = useState(\"\");\n const [newAllGens, setNewAllGens] = useState(\"\");\n const [totalGens, setTotalGens] = useState(\"\");\n const [totalAllGen, setTotalAllGen] = useState(\"\");\n const [numberOfGen, setNumberOfGen] = useState(\"\");\n\n const [memberDetailUrl, setMemberDetailUrl] = useState(\"\");\n const [loadingDetails, setLoadingDetails] = useState(false);\n const [showDownlineDetail, setShowDownlineDetail] = useState(false);\n const [username, setUsername] = useState(\"\");\n const [showDownlineLsit, setShowDownlineList] = useState(true)\n const isDownlineModal = useSelector((state) => state.appState.downlineModal);\n\n /// \n /// Author: -\n /// \n useEffect(() => {\n init();\n getReportDate();\n }, []);\n\n useEffect(() => {\n var months = [\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\n var month = months.indexOf(selectedMonth);\n var year = new Date().getFullYear();\n var targetedMonth = moment(new Date(year, month, 1)).format(\"MMM YY\");\n getMemberDetails(targetedMonth);\n }, [selectedMonth]);\n\n useEffect(() => {\n // if (memberData === null && recentData === null) {\n // _dispatch(setBusy());\n // } else {\n // _dispatch(setIdle());\n // }\n getMemberDetails(startDate)\n }, [startDate, endDate]);\n\n /// \n /// Author: -\n /// \n async function init() {\n await getRecentMember();\n }\n\n /// \n /// Author: -\n /// \n async function getRecentMember() {\n setMemberDetailUrl(\n ApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n \"?keyword=&directUserOnly=true\"\n );\n\n //var responseJson = await ApiEngine.get(\n //\tApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n //\t\t\"?keyword=&count=100&directUserOnly=true\"\n //);\n\n //if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n //\t_dispatch(\n //\t\tsetDownline({\n //\t\t\t...downlineState,\n //\t\t\trecentData: responseJson[ApiKey._API_DATA_KEY],\n //\t\t})\n //\t);\n //} else {\n //\t_dispatch(\n //\t\tshowResponseMessage(\n //\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n //\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n //\t\t)\n //\t);\n //}\n\n //var startOfMonth = moment().startOf('month').format('DD-MM-YYYY HH:mm:ss');\n //var endOfMonth = moment().endOf('month').format('DD-MM-YYYY HH:mm:ss');\n setLoadingDetails(true);\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_NUMBER_OF_GEN +\n \"?startDate=\" +\n startDate +\n \" 00:00:00\" +\n \"&endDate=\" +\n endDate +\n \" 23:59:59\"\n );\n setLoadingDetails(false);\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n //setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n //setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n //setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGen);\n //setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n //setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGen);\n setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGens);\n setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGens);\n }\n // _dispatch(setIdle());\n }\n\n async function getMemberDetails(targetedMonth) {\n setLoadingDetails(true);\n\n const controller = new AbortController();\n const signal = controller.signal;\n\n // Cancel previous request (if any)\n if (window.apiController) {\n window.apiController.abort();\n }\n window.apiController = controller;\n\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_NUMBER_OF_GEN +\n \"?startDate=\" +\n moment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n \" 00:00:00\" +\n \"&endDate=\" +\n moment(endDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n \" 23:59:59\"\n , { signal });\n setLoadingDetails(false);\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGens);\n setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGens);\n }\n }\n\n const getReportDate = async () => {\n var apiUrl2 = ApiUrl._API_GET_REPORT_OVERVIEW_SELECT_DATE;\n let test = await ApiEngine.get(apiUrl2);\n if (test[ApiKey._API_SUCCESS_KEY]) {\n var data2 = test[ApiKey._API_DATA_KEY];\n\n setMonthOptions(\n data2.report.map((bd) => {\n return { label: bd.name, value: bd.month };\n })\n );\n var lg = data2[\"report\"].length - 1;\n setSelectedMonth(data2[\"report\"][lg][\"month\"]);\n setSelectedYear(data2[\"report\"][lg][\"year\"]);\n }\n };\n\n\treturn (\n
\n {showDownlineDetail && (\n
\n \n
\n\n )}\n {showDownlineLsit &&\n
\n {\n setStartDate(start);\n setEndDate(end);\n getMemberDetails();\n }}\n options={true}\n initialType={selectedFilterType}\n // onClose={dateRangePickerOnClose}\n typeOnSelect={filterTypeOnSelect}\n />\n {/*
* Gen = Generation
*/}\n\n
\n
\n
\n
{t(\"NEW_GEN\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{newGen}
\n )}\n
\n\n
\n
\n
{t(\"NEW_ALL_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{newAllGens}
\n )}\n
\n
\n
\n
{t(\"UP_TO_NOW\")}
\n
\n\n
\n
\n
\n
{t(\"TOTAL_GEN\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{totalGens}
\n )}\n
\n\n
\n
\n
{t(\"TOTAL_ALL_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{totalAllGen}
\n )}\n
\n\n
\n
\n
{t(\"NUMBER_OF_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{numberOfGen}
\n )}\n
\n
\n
\n }\n\n
\n\t)\n};\n\nexport default DownlineSummary;","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation , Trans} from \"react-i18next\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { ModalBody, Spinner } from \"reactstrap\";\nimport { map, find, debounce, orderBy } from \"lodash\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n showResponseMessage,\n bindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n stringIsNullOrEmpty,\n numberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst DownlineKPI = (props) => {\n const { setShowDownlineDetailTab } = props;\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [activeMemberCount, setActiveMemberCount] = useState(\"\");\n const [inactiveMemberCount, setInactiveMemberCount] = useState(\"\");\n\n const [paginationPageNum, setPaginationPageNum] = useState(0);\n\n const [loadingDetails, setLoadingDetails] = useState(false);\n const [showDownlineDetail, setShowDownlineDetail] = useState(false);\n const [username, setUsername] = useState(\"\");\n const [showDownlineList, setShowDownlineList] = useState(true)\n const [loadingFlag, setLoadingFlag] = useState(true);\n const [searchL1DownlineMemberData, setSearchL1DownlineMemberData] = useState([]);\n const [searchKeyword, setSearchKeyword] = useState(\"\");\n const [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n const [sortOrder, setSortOrder] = useState(\"\");\n\n const [downlineStatusActiveTab, setDownlineStatusActiveTab] = useState(1);\n const scrollCategory = [\n {\n text: \"ACTIVE_DOWNLINES\",\n downlineStatusTabId: 1,\n },\n {\n text: \"NOT_ACTIVE_DOWNLINES\",\n downlineStatusTabId: 2,\n },\n ];\n\n useEffect(() => {\n init();\n }, []);\n\n useEffect(() => {\n if (downlineStatusActiveTab != undefined) {\n getDownlineMemberData();\n }\n }, [downlineStatusActiveTab]);\n\n useEffect(() => {\n if (isResetCurrentPage) {\n setSortOrder(\"\");\n }\n }, [isResetCurrentPage]);\n\n useEffect(() => {\n if (sortOrder != \"\") {\n var downlineMemberData = searchL1DownlineMemberData;\n var sortedDownlineMemberData = orderBy(downlineMemberData, [\"totalDeposit\"], sortOrder);\n\n setSearchL1DownlineMemberData(sortedDownlineMemberData);\n }\n }, [sortOrder]);\n\n async function init() {\n await getDownlineMemberStatusCount();\n }\n\n async function getDownlineMemberStatusCount() {\n setLoadingDetails(true);\n\n var responseJson = await ApiEngine.get(ApiUrl._API_GET_DOWNLINE_MEMBER_STATUS_COUNT);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n var totalActiveMemberCount = responseJson[ApiKey._API_DATA_KEY].totalActiveMemberCount;\n var totalInactiveMemberCount = responseJson[ApiKey._API_DATA_KEY].totalInactiveMemberCount;\n\n setActiveMemberCount(totalActiveMemberCount);\n setInactiveMemberCount(totalInactiveMemberCount);\n }\n\n setLoadingDetails(false);\n }\n\n async function getDownlineMemberData(page, keyword) {\n setSearchL1DownlineMemberData([]);\n setSortOrder(\"\");\n setLoadingFlag(true);\n try {\n var memberDownlineStatus = downlineStatusActiveTab === 1 ? \"activeMember\" : \"inactiveMember\" ;\n page = page ? page : 1;\n var start = (page - 1) * 10;\n\n var apiUrl = ApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n \"?directUserOnly=true&memberDownlineStatus=\" + memberDownlineStatus + \"&start=\" + start + \"&count=10&keyword=\";\n\n if (!stringIsNullOrEmpty(keyword))\n apiUrl = apiUrl + keyword;\n\n var responseJson = await ApiEngine.get(apiUrl);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setSearchL1DownlineMemberData(responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]);\n\n var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n updatePageinationPageNum(Math.ceil(totalCount / 10));\n\n } else {\n _dispatch(\n showMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(responseJson[ApiKey._API_MESSAGE_KEY])\n )\n );\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n setLoadingFlag(false);\n return;\n }\n\n function updatePageinationPageNum(pageValue) {\n setPaginationPageNum(prevValue => pageValue);\n }\n\n const getText = async (e) => {\n getDownlineMemberData(1, e.target.value);\n setIsResetCurrentPage(true);\n setSearchKeyword(e.target.value);\n };\n\n async function clearSearchField() {\n document.getElementById('searchField').value = \"\";\n setSearchKeyword(\"\");\n }\n\n const handleSort = () => {\n setSortOrder(prevOrder => {\n if (prevOrder === \"\")\n return \"asc\";\n\n return prevOrder === \"asc\" ? \"desc\" : \"asc\";\n });\n };\n\n return (\n
\n {showDownlineDetail && (\n
\n \n
\n )}\n {showDownlineList &&\n
\n
\n
\n
\n
{t(\"TOTAL_ACTIVE_DOWNLINES\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{activeMemberCount}
\n )}\n
\n\n
\n
\n
{t(\"TOTAL_NOT_ACTIVE_DOWNLINES\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{inactiveMemberCount}
\n )}\n
\n
\n
\n
{t(\"DOWNLINE_L1_KPIS\")}
\n
\n
\n {scrollCategory &&\n scrollCategory.length &&\n map(scrollCategory, (item, index) => {\n return (\n {\n setDownlineStatusActiveTab(item.downlineStatusTabId);\n setIsResetCurrentPage(true);\n clearSearchField();\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })}\n
\n {downlineStatusActiveTab == 2 && \n
\n
\n

\n \n

\n
\n
\n }\n
\n
\n
\n \n
\n getText(e), 500)}\n />\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n {searchL1DownlineMemberData &&\n searchL1DownlineMemberData.length != 0 ? (\n searchL1DownlineMemberData.map((data, index) => {\n return (\n {\n setUsername(data.username);\n setShowDownlineDetail(true);\n setShowDownlineList(false);\n setShowDownlineDetailTab(false);\n }}\n style={{ cursor: \"pointer\" }}\n key={index}\n >\n \n \n \n \n \n );\n })\n ) : (\n loadingFlag ? (\n \n \n \n ) : (\n \n \n \n )\n )}\n \n
{t(\"USERNAME\")}{t(\"DOWNLINE_CONTACT\")}{t(\"REGISTER_DATE\")}\n \n {t(\"DEPOSIT\")}\n \n \n {\"<\"}\n {\">\"}\n \n
\n {data.username}\n \n {data.phoneNumber}\n \n {data.createdDate}\n \n {numberWithCurrencyFormat(parseFloat(data.totalDeposit), 2)}\n
\n \n \n {t(\"LOADING\")}...\n \n \n
\n {t(\"NO_DATA_FOUND\")}\n
\n
\n
\n {paginationPageNum > 1 && }\n
\n }\n \n )\n};\n\nexport default DownlineKPI;","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n setBusy,\n setIdle,\n showResponseMessage,\n setDownlineSearchText,\n setDownlineQuery,\n setPageSize,\n setY,\n setActiveTab,\n setDownline,\n setDownlineModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport DynamicLoadTable from \"../../../components/custom/DynamicLoadTable\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport classnames from \"classnames\";\nimport {\n createFormBody,\n createMultiPartFormBody,\n stringIsNullOrEmpty,\n} from \"../../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport ToggleButton from \"react-toggle-button\";\nimport { map } from \"lodash\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\nimport DownLineSummary from \"../../template_1/home/DownlineSummary\";\nimport DownlineKPI from \"../../template_1/home/DownlineKPI\";\n\n/// \n/// Author: -\n/// \nconst Downline = (props) => {\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [monthOptions, setMonthOptions] = useState([]);\n const [selectedMonth, setSelectedMonth] = useState(\"\");\n const [selectedYear, setSelectedYear] = useState(\"\");\n\n const [selectedGroup, setSelectedGroup] = useState(0);\n const [downlineShow, setDownlineShow] = useState(false);\n\n const downlineState = useSelector((state) => state.appState.downline);\n const { memberData, recentData } = useSelector(\n (state) => state.appState.downline\n );\n\n const [memberLMData, setMemberLMData] = useState([]);\n const dateRangePickerOnClose = () => {\n setIsDateFilterOpen(false);\n };\n const [startDate, setStartDate] = useState(\n moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n );\n const [endDate, setEndDate] = useState(\n moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n );\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [queryProduct, setQueryProduct] = useState(\"\");\n const [searchTrigger, setSearchTrigger] = useState(Date.now());\n const [isDateFilterOpen, setIsDateFilterOpen] = useState(false);\n const [selectedFilterType, setSelectedFilterType] = useState(\n moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n t(\"TO\") +\n moment().endOf(\"week\").format(\"DD-MM-YYYY\")\n );\n const filterTypeOnSelect = (value) => {\n setSelectedFilterType(value);\n };\n\n const isDownlineModal = useSelector((state) => state.appState.downlineModal);\n const [downlineDetailsActiveTab, setDownlineDetailsActiveTab] =\n useState(1);\n const [showDownlineDetailTab, setShowDownlineDetailTab] = useState(true);\n const scrollCategory = [\n {\n text: \"DOWNLINE_SUMMARY\",\n downlineTabId: 1,\n },\n {\n text: \"DOWNLINES_KPIS\",\n downlineTabId: 2,\n },\n ];\n\n useEffect(() => {\n // if (memberData === null && recentData === null) {\n // _dispatch(setBusy());\n // } else {\n // _dispatch(setIdle());\n // }\n }, [memberData, recentData]);\n\n const closeBtn = (\n _dispatch(setDownlineModal(!isDownlineModal))}\n >\n \n \n );\n\n return (\n {\n // setShowModal(false);\n _dispatch(setDownlineModal(!isDownlineModal));\n }}\n fullscreen={\"true\"}\n // centered\n >\n \n {t(\"DOWNLINE\")}\n \n \n {showDownlineDetailTab &&\n
\n {\n scrollCategory && scrollCategory.length &&\n map(scrollCategory, (item, index) => {\n return (\n {\n setDownlineDetailsActiveTab(item.downlineTabId);\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })\n }\n \n }\n {downlineDetailsActiveTab == 1 && }\n {downlineDetailsActiveTab == 2 && }\n
\n \n\n );\n};\n\nexport default Downline;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setDownlineModal, setDepositTab } from \"redux/AppAction\";\n\n\nconst DownlineModal = (props) => {\n var { t } = useTranslation();\n const isDownlineModal = useSelector(\n (state) => state.appState.downlineModal\n );\n\n var _dispatch = useDispatch();\n\n useEffect(() => {\n }, [isDownlineModal]);\n\n\n return (\n {\n // setShowModal(false);\n _dispatch(setDownlineModal(!isDownlineModal));\n\n }}\n // centered\n >\n \n
\n
\n
\n
\n {t(\"DOWNLINES\")}\n
\n
\n
\n {\n // setShowModal(!showModal)\n _dispatch(setDownlineModal(!isDownlineModal));\n\n }}\n >\n \n
\n
\n
\n \n \n
\n \n )\n}\n\nexport default DownlineModal;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showMessage, setShareReferralModal } from \"redux/AppAction\";\nimport { map } from \"lodash\";\nimport { InlineShareButtons } from \"sharethis-reactjs\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n\tstringIsNullOrEmpty,\n\tisObjectEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../util/Util\";\n\nconst ShareReferralModal = (props) => {\n\tvar { t } = useTranslation();\n var _history = useHistory();\n\tconst isShareReferralModal = useSelector(\n\t\t(state) => state.appState.shareReferralModal\n\t);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tvar _dispatch = useDispatch();\n\tconst [registerUrl, setRegisterUrl] = useState(\"\");\n\tconst [uplineLoading, setUplineLoading] = useState(false);\n const _APPEND_REGISTER_URL = \"/register?code=\";\n\n\tuseEffect(() => {\n\t\tif (memberData[\"referralCode\"]) {\n\t\t\tgetUpline(memberData[\"referralCode\"]);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (memberData[\"referralCode\"]) {\n\t\t\tgetUpline(memberData[\"referralCode\"]);\n\t\t}\n\t}, [memberData[\"referralCode\"]]);\n\n\tconst socialMediaList = [\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/ig.png\"),\n\t\t\ttext: \"Instagram\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/fb.png\"),\n\t\t\ttext: \"Facebook\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/tele.png\"),\n\t\t\ttext: \"Telegram\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/wa.png\"),\n\t\t\ttext: \"Whatapps\",\n\t\t},\n\t];\n\n\tasync function getUpline(code) {\n\t\t// _dispatch(setBusy());\n\t\tsetUplineLoading(true);\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_UPLINE_BY_REFERRAL_CODE + \"?code=\" + code\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + code);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\ttype: AlertTypes._ERROR,\n\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\tonConfirm: () => _history.replace(WebUrl._URL_MAIN),\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\t// _dispatch(setIdle());\n\t\tsetUplineLoading(false);\n\t}\n\n\tconst ShareButton = useMemo(() => {\n\t\tif (!stringIsNullOrEmpty(registerUrl)) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}, [registerUrl]);\n\n\tconst closeBtn = (\n\t\t {\n\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t }}\n\t\t>\n\t\t \n\t\t\n\t );\n\n\treturn (\n\t\t {\n\t\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t\t}}\n\t\t\t// fullscreen={\"true\"}\n\t\t\t//centered\n\t\t>\n\t\t\t\n\t\t\t\t
{t(\"SHARE_REFERRAL\")}
\n\t\t\t
\n\t\t\t\n \t\t
\n\t\t\t\t {ShareButton}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\t// setShowModal(!showModal)\n\t\t\t\t\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"CLOSE\")}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ShareReferralModal;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport {\n setRegisterModal,\n} from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setLoginModal, showMessage, setBusy, setIdle, bindCompanyIcon } from \"redux/AppAction\";\nimport { useForm } from \"react-hook-form\";\nimport { performLoginReturnMessage } from \"redux/AuthAction\";\nimport SecureLS from \"secure-ls\";\nimport { ApiKey, ApiUrl, SessionKey } from \"util/Constant\";\nimport { createFormBody, createMultiPartFormBody } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\nimport PinInput from \"react-pin-input\";\n\nconst LoginModal = (props) => {\n var { t } = useTranslation();\n const isLoginAttemptBlockingEnabled = useSelector((state) => state.appState.isLoginAttemptBlockingEnabled);\n const isDepositModal = useSelector((state) => state.appState.depositModal);\n const depositAndWithdrawActive = useSelector(\n (state) => state.appState.depositTab\n );\n const loginModal = useSelector((state)=>state.appState.loginModal)\n var _dispatch = useDispatch();\n var ls = new SecureLS();\n const {\n register,\n handleSubmit,\n errors,\n clearErrors,\n setError,\n setValue,\n getValues,\n watch,\n control,\n trigger,\n phoneNumberChk,\n } = useForm({\n mode: \"onBlur\",\n });\n const { handleSubmit: PasswordUpdatedHandleSubmit } = useForm();\n\n const [showModalLogin, setShowModalLogin] = useState(true);\n const [hideLoginPassword, setHideLoginPassword] = useState(true);\n const [hideNewPassword, setHideNewPassword] = useState(true);\n const [hideConfirmPassword, setHideConfirmPassword] = useState(true);\n\n const [visibleLoginAlert, setVisibleLoginAlert] = useState(false);\n const [forgotPassword, setForgotPassword] = useState(false);\n const [isLoginLoading, setIsLoginLoading] = useState(false);\n const [activeLanguage, setActiveLanguage] = useState(\n localStorage.getItem(SessionKey._LANGUAGE) || \"EN\"\n );\n const [loginMessage, setLoginMessage] = useState(\"\");\n const [isForgotPasswordLoading, setIsForgotPasswordLoading] = useState(false);\n const [countdownTAC, setCountdownTAC] = useState(false);\n const [canSendTAC, setCanSendTAC] = useState(true);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [verifyPhoneTAC, setVerifyPhoneTAC] = useState(false);\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [username, setUsername] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n const [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n const [isTacModal, setIsTacModal] = useState(false);\n const [isForgetPassword, setIsForgetPassword] = useState(false);\n const [attempt, setAttempt] = useState(1);\n const [FPButtonAttempt, setFPButtonAttempt] = useState(0);\n const [TACsent, setTACsent] = useState(true);\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [isUpdatePassword, setIsUpdatePassword] = useState(false);\n const [isPasswordUpdated, setIsPasswordUpdated] = useState(false);\n const [isTACLoading, setIsTACLoading] = useState(false);\n const [isResetPasswordLoading, setIsResetPasswordLoading] = useState(false);\n\n const [isLiveChatOpen, setIsLiveChatOpen] = useState(false);\n const [emailExist, setEmailExist] = useState(false);\n\n const [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n const [timerPeriod, setTimerPeriod] = useState(null);\n const _TAC_VALID_TIMER = 60; // in seconds\n const _SECONDS_IN_MS = 1000;\n const _MIN_PASSWORD_LENGTH = 8;\n const [tacCode, setTacCode] = useState(\"\"); \n const companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [logo, setLogo] = useState();\n const [alertIcon, setAlertIcon] = useState();\n const [loginBanner, setLoginBanner] = useState();\n\n const elePin = useRef(null);\n const [_email, _setEmail] = useState(\"\");\n const [_emailText, _setEmailText] = useState(\"\");\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const OTP_VIA_SMS = 1;\n\tconst OTP_VIA_EMAIL = 2;\n\tconst OTP_VIA_WHATSAPP = 3;\n const [pinLoading, setPinLoading] = useState(false);\n const customerServiceUrl = \"/livechat\";\n\n const verifyState = {\n button: 1,\n };\n const {\n register: loginRegister,\n handleSubmit: loginHandleSubmit,\n errors: loginErrors,\n } = useForm();\n\n const {\n register: forgotPasswordRegister,\n handleSubmit: forgotPasswordHandleSubmit,\n errors: forgotPasswordErrors,\n watch: forgotPasswordWatch,\n setValue: forgotPasswordSetValue,\n unregister: forgotPasswordUnregister,\n } = useForm();\n\n const {\n register: tacVerifyRegister,\n handleSubmit: tacVerifyHandleSubmit,\n errors: tacVerifyErrors,\n watch: tacVerifyWatch,\n setValue: tacVerifySetValue,\n unregister: tacVerifyUnregister,\n } = useForm();\n\n // Register the PinInput\n useEffect(() => {\n tacVerifyRegister('taccode');\n }, [tacVerifyRegister]);\n\n const {\n register: ResetPasswordRegister,\n handleSubmit: ResetPasswordHandleSubmit,\n errors: ResetPasswordErrors,\n watch: ResetPasswordWatch,\n setValue: ResetPasswordSetValue,\n unregister: ResetPasswordUnregister,\n } = useForm();\n\n useEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n useEffect(() => {\n if (countdownPeriod > 0) {\n setTimerPeriod(\n setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n } else if (countdownPeriod == 0) {\n // console.log(\"why calling this?\");\n //checkMemberEmail();\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n useEffect(() => {\n if (!isTacModal) {\n clearTimeout(timerPeriod);\n clearTimeout(TACtimer);\n }\n }, [isTacModal]);\n\n /*const checkMemberEmail = async () => {\n let formData = {\n username: username,\n };\n let formBody = createMultiPartFormBody(formData);\n let res = await ApiEngine.post(ApiUrl._API_CHECK_MEMBER_EMAIL, formBody);\n setEmailExist(res.success);\n };*/\n const submitLoginForm = async (data, e) => {\n // _dispatch(setBusy());\n setIsLoginLoading(true);\n // console.log(data);\n\n // setLoginAttemptUsername(data.username);\n if (data.isKeepedPassword) {\n ls.set(\"gR97lPRIn797\", {\n Do3SwI4cuvqR: data.username,\n gR1IPGBN01dS: data.password,\n PYTLczcty9uH: data.isKeepedPassword,\n });\n } else {\n ls.set(\"gR97lPRIn797\", {\n Do3SwI4cuvqR: \"fake\",\n gR1IPGBN01dS: \"null\",\n PYTLczcty9uH: false,\n });\n }\n let loginRes = await _dispatch(\n performLoginReturnMessage(\n data.username,\n data.password,\n activeLanguage,\n data.isKeepedLogin,\n isLoginAttemptBlockingEnabled\n )\n );\n\n let { type: loginType, message } = loginRes;\n\n let params = {\n username: data.username,\n };\n\n if (loginType == \"LoginSuccess\") {\n setVisibleLoginAlert(false);\n // setShowModalLogin(false);\n _dispatch(setLoginModal(false))\n } else {\n setVisibleLoginAlert(true);\n setLoginMessage(message);\n\n setTimeout(() => {\n setVisibleLoginAlert(false);\n }, 5000);\n }\n // _dispatch(setIdle());\n setIsLoginLoading(false);\n\n };\n async function submitForgotPasswordForm(data) {\n // _dispatch(setBusy());\n setFPButtonAttempt(FPButtonAttempt + 1);\n setIsForgotPasswordLoading(true);\n let formData = {\n language: \"en\",\n username: data.username,\n type: verifyState.button,\n usage: \"resetPassword\",\n };\n let formBody = createMultiPartFormBody(formData);\n var responseJson = await ApiEngine.post(ApiUrl._API_GENERATE_OTP, formBody);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setCountdownTAC(false);\n setUsername(data.username);\n setPhoneNumber(responseJson.data);\n setTempPhoneNum(\n responseJson.data.replace(\n responseJson.data.substr(3, responseJson.data.length - 7),\n responseJson.data\n .substr(1, responseJson.data.length - 7)\n .replace(/./g, \"*\")\n )\n );\n setIsTacModal(true);\n setVerifyPhoneTAC(true);\n setIsForgetPassword(false);\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n clearTimeout(timerPeriod);\n setTACCountdownPeriod(_TAC_VALID_TIMER);\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(_TAC_VALID_TIMER);\n\n // if return object is email then directly show CS (CN player)\n let regEmail =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\n if (regEmail.test(responseJson.data)) {\n setAttempt(attempt + 1);\n }\n setTimeout(() => {\n setCanSendTAC(true);\n setCountdownTAC(true);\n }, _TAC_VALID_TIMER * _SECONDS_IN_MS);\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // \tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n // );\n }\n // _dispatch(setIdle());\n setIsForgotPasswordLoading(false);\n }\n\n const handleChange = (event) => {\n\t\t// Remove spaces and convert to lowercase\n\t\tconst newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n\t\t_setEmail(newValue);\n\t};\n\n async function submitVerifyTAC(pin) {\n // _dispatch(setBusy());\n setIsTACLoading(true);\n if (verifyState.button == 1) {\n let formData = {\n taccode: pin,\n username: username,\n };\n let formBody = createMultiPartFormBody(formData);\n let TACjson = await ApiEngine.post(\n ApiUrl._API_VERIFY_RESET_PASSWORD_SMS,\n formBody\n );\n if (TACjson[ApiKey._API_SUCCESS_KEY]) {\n setTacCode(pin)\n setVerifyPhoneTAC(false);\n setIsUpdatePassword(true);\n //resetForm();\n\n console.log('elePin', elePin)\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(TACjson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n }\n } else if (verifyState.button == 2) {\n let formData = {\n language: \"en\",\n username: username,\n type: verifyState.button,\n usage: \"resetPassword\",\n };\n let formBody = createMultiPartFormBody(formData);\n //data[\"phoneNumber\"] = formattedPhoneNumber;\n // data[\"language\"] = \"en\";\n var responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n formBody\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setCountdownTAC(false);\n setPhoneNumber(responseJson.data);\n setTempPhoneNum(\n responseJson.data.replace(\n responseJson.data.substr(3, responseJson.data.length - 7),\n responseJson.data\n .substr(1, responseJson.data.length - 7)\n .replace(/./g, \"*\")\n )\n );\n setVerifyPhoneTAC(true);\n setIsForgetPassword(false);\n setAttempt(attempt + 1);\n verifyState.button = verifyState.button + 1;\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n setTACCountdownPeriod(_TAC_VALID_TIMER);\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER);\n clearTimeout(timerPeriod);\n\n setTimeout(() => {\n setCanSendTAC(true);\n setCountdownTAC(true);\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER * _SECONDS_IN_MS);\n\n //resetForm();\n elePin.current.clear();\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // \tshowResponseMessage(\n // \t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n // \t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n // \t)\n // );\n }\n }\n // _dispatch(setIdle());\n setIsTACLoading(false);\n }\n\n async function onKeyPress(key, index) {\n\t\t//setAllowPinClick(false);\n\t\t// 1st: have to check currentPinRef\n\t\t// 2nd: have to know which index is currently focused for altering the state.value\n\t\t// 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n\t\t// 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n\t\t// let currentIndex = 0;\n\t\tlet pinStr = tempPinNumber;\n\t\tlet keyLength = key.split(\"\");\n\t\tif (key !== \"{bksp}\" && key !== \" \") {\n\t\t\tpinStr = key;\n\t\t\tsetTempPinNumber(pinStr);\n\t\t\tif (keyLength.length !== 6) {\n\t\t\t} else {\n\t\t\t\tsetTempPinNumber(\"\");\n\t\t\t\tsetPinInputDisabled(true);\n\t\t\t\tsetPinLoading(true);\n\n\t\t\t\tawait submitVerifyTAC(pinStr);\n\n\t\t\t\tsetPinLoading(false);\n\t\t\t\tsetPinInputDisabled(false);\n\t\t\t}\n\t\t} else {\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetTempPinNumber(\"\");\n\t\t}\n\t}\n\n async function submitNewPassword(data) {\n // _dispatch(setBusy());\n setIsResetPasswordLoading(true);\n let formData = {\n newpassword: data.newPassword,\n confpassword: data.confPassword,\n username: username,\n tacCode: tacCode\n };\n\n let formBody = createMultiPartFormBody(formData);\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN,\n formBody\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsUpdatePassword(false);\n setIsPasswordUpdated(true);\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n }\n // _dispatch(setIdle());\n setIsResetPasswordLoading(false);\n }\n async function submitPasswordUpdated(data) {\n setIsUpdatePassword(false);\n setIsPasswordUpdated(false);\n // setIsLogin(true);\n setIsTacModal(false);\n }\n const preventZoom = (event) => {\n event.preventDefault();\n };\n\n async function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n \n const alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n const loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n\t\tif (loginBanner) {\n\t\t\tsetLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n return (\n
\n {\n _dispatch(setLoginModal(false))\n // setShowModalLogin(false);\n }}\n backdrop={'static'}\n centered\n fullscreen={\"true\"}\n >\n \n
\n
\n
\n \n
\n {\n // setShowModalLogin(!showModalLogin);\n _dispatch(setLoginModal(!loginModal))\n\n setForgotPassword(false);\n }}\n >\n \n
\n
\n
\n \n {t(`${loginMessage}`)}\n \n \n
\n {/*
*/}\n {/* {t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n {/*
*/}\n
\n \n
\n
\n
\n {!forgotPassword && (\n
\n
\n
\n \n
\n {\n // const key = e.key;\n // const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n\n // if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n // e.preventDefault();\n // }\n // }\n // }\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n \n // Allow lowercase letters, numbers, and allowed keys\n if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n if (/[A-Z]/.test(key)) {\n e.preventDefault();\n const start = e.target.selectionStart;\n const end = e.target.selectionEnd;\n \n // Insert the lowercase version of the uppercase key\n e.target.value = e.target.value.slice(0, start) + key.toLowerCase() + e.target.value.slice(end);\n // Adjust the cursor position to be after the inserted character\n e.target.setSelectionRange(start + 1, start + 1);\n } else {\n // Prevent any other unwanted key input\n e.preventDefault();\n }\n }\n }}\n />\n
\n
\n
\n \n
\n \n \n setHideLoginPassword(!hideLoginPassword)\n }\n />\n
\n
\n
\n
\n \n {t(\"REMEMBER_ME\")}\n
\n
\n
\n
\n \n {isLoginLoading ? (\n \n ) : (\n t(\"LOGIN\")\n )}\n \n
\n
\n setForgotPassword(true)}\n disabled={isLoginLoading}\n >\n {t(\"FORGOT_PASSWORD\")}\n \n\n \n
\n \n
\n
\n {t(\"DO_NOT_HAVE_AN_ACCOUNT_YET\")}{\" \"} { _dispatch(setLoginModal(false)); _dispatch(setRegisterModal(true)); }}>{t(\"REGISTER_NOW\")}\n
\n
\n
\n )}\n {forgotPassword && (\n \n
\n
\n {\n setForgotPassword(false);\n }}\n >\n \n
\n
{t(\"FORGOT_PASSWORD\")}
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n {FPButtonAttempt > 2 && (\n
\n \n
\n )}\n
\n
\n
\n \n )}\n
\n
\n \n \n \n {\n setIsTacModal(false);\n setIsForgetPassword(true);\n setVerifyPhoneTAC(false);\n setIsUpdatePassword(false);\n setIsPasswordUpdated(false);\n // setIsLogin(true);\n \n }}\n centered\n >\n \n
\n
\n
\n \n
\n {\n setIsTacModal(!isTacModal)\n }}\n >\n \n
\n
\n
\n
\n {/*
*/}\n {/* {t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n {/*
*/}\n
\n \n
\n
\n
\n {verifyPhoneTAC && (\n <>\n
\n

\n {t(\"RESET_PASSWORD\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {_emailText != \"\" ? _emailText : tempPhoneNum}.\n
\n {\n onKeyPress(value, index);\n }}\n />\n {TACsent && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")}{\" \"}{/* {t(\"RESEND_IN\")} */}{countdownPeriod}s\n

\n )}\n\n {pinLoading ? (\n
\n \n
\n ) : (\n \"\"\n )}\n\n {countdownPeriod == 0 && (\n
\n \n {t(\"DIDNT_RECEIVE_A_CODE\")}\n
\n \n \n
\n\n // TODO: Change forgot password system to allow resend OTP once after 60s.\n // {attemp == 1 && (\n //
\n // {\n // setSendOTPViaEmail(true);\n // }}\n // disabled={pinInputDisabled}\n // >\n // {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n // \n //
\n // )}\n // {attemp == 2 && (\n //
\n // setIsLiveChatOpen(true)}\n // disabled={pinInputDisabled}\n // >\n // {t(\"CONTACT_CUSTOMER_SERVICE\")}\n // \n //
\n // )}\n )}\n
\n\t\t\t\t\t\t\t\t\t\n )}\n {isUpdatePassword && (\n
\n
\n
\n
{t(\"RESET_PASSWORD\")}
\n
\n
\n \n
\n \n watch(\"confPassword\") == \"\" ||\n value != watch(\"confPassword\") ||\n \"PASSWORD_MISMATCH\",\n })}\n errors={ResetPasswordErrors}\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[a-zA-Z0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n }}\n />\n \n setHideNewPassword(!hideNewPassword)\n }\n />\n
\n
\n
\n
\n \n {t(\"REGISTER_PAGE_MIN_8_CHARS\")}\n
\n
\n \n {t(\"ONLY_LETTERS_NUMBERS_9\")}\n
\n
\n \n {t(\"NO_SPECIAL_SYMBOLS\")}\n
\n
\n
\n \n
\n \n watch(\"newPassword\") == \"\" ||\n value != watch(\"newPassword\") ||\n \"PASSWORD_MISMATCH\",\n })}\n errors={ResetPasswordErrors}\n />\n \n setHideConfirmPassword(!hideConfirmPassword)\n }\n />\n
\n
\n
\n
\n \n
\n
\n
\n
\n )}\n {isPasswordUpdated && (\n \n
\n

\n {t(\"RESET_PASSWORD_SUCCESS\")}\n

\n
\n {\n setIsTacModal(!isTacModal);\n setForgotPassword(false);\n // setShowModalLogin(true);\n _dispatch(setLoginModal(true));\n }}\n >\n \n
\n
\n
\n \n )}\n
\n \n \n
\n \n \n );\n};\n\nexport default LoginModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport { ApiKey,ApiUrl } from \"util/Constant\";\nimport { createMultiPartFormBody } from \"../../util/Util\";\nimport { setResetPassword } from \"redux/AppAction\";\nimport VIcon from \"components/custom/Icon\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { showResponseMessage } from \"redux/AppAction\";\nconst ResetPasswordModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n const _MIN_PASSWORD_LENGTH = 8;\n\n const isResetPassword = useSelector(\n (state) => state.appState.isResetPassword\n );\n const [isResetPasswordLoading, setResetPasswordLoading] = useState(false);\n const [hideNewPassword, setHideNewPassword] = useState(true);\n const [hideConfirmPassword, setHideConfirmPassword] = useState(true);\n\n const {\n register: resetPassword,\n handleSubmit: resetPasswordHandleSubmit,\n errors: resetPasswordErrors,\n setError: setResetPasswordError,\n } = useForm();\n\n const submitResetPasswordForm = async (data, e) => {\n\n let { password, confirm_password } = data;\n\n if (password !== confirm_password) {\n setResetPasswordError(\"confirm_password\", {\n message: \"PASSWORD_MISMATCH\",\n });\n } else {\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_FIRST_TIME_RESET_PASSWORD,\n createMultiPartFormBody(data)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(setResetPassword(false));\n }\n\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n };\n return (\n
\n {\n _dispatch(setResetPassword(false));\n // setShowModalLogin(false);\n }}\n backdrop={\"static\"}\n centered\n fullscreen\n >\n \n
\n
\n
\n
{t(\"CHANGE_PASSWORD\")}
\n
\n _dispatch(setResetPassword(!isResetPassword))}\n >\n \n
\n
\n
\n \n
\n \n
\n \n setHideNewPassword(!hideNewPassword)}\n />\n
\n
\n
\n \n
\n \n \n setHideConfirmPassword(!hideConfirmPassword)\n }\n />\n
\n
\n
\n \n {isResetPasswordLoading ? (\n \n ) : (\n t(\"SAVE\")\n )}\n \n
\n \n
\n
\n \n \n \n );\n};\n\nexport default ResetPasswordModal;\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tTransactionStatus,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { debounce, map, find, filter, upperCase, orderBy } from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst TransactionHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [transactionDetailsActiveTaB, setTransactionDetailsActiveTaB] =\n\t\tuseState(1);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [searchTransactionHistory, setSearchTransactionHistory] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tconst scrollCategory = [\n\t\t{\n\t\t\ttext: \"DEPOSITS\",\n\t\t\ttransactionTypeId: 1,\n\t\t},\n\t\t{\n\t\t\ttext: \"WITHDRAWALS\",\n\t\t\ttransactionTypeId: 2,\n\t\t},\n\t];\n\n\tuseEffect(() => {\n\t\tif (transactionDetailsActiveTaB != undefined) {\n\t\t\tgetTransactionData();\n\t\t}\n\t}, [startDate, endDate, transactionDetailsActiveTaB]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar transactionData = searchTransactionHistory;\n\t\t\tvar sortedtransactionData = orderBy(\n\t\t\t\ttransactionData,\n\t\t\t\t[\"amount\"],\n\t\t\t\tsortOrder\n\t\t\t);\n\n\t\t\tsetSearchTransactionHistory(sortedtransactionData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getTransactionData(page, keyword) {\n\t\tsetSearchTransactionHistory([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tsetTransactionDetailsActiveTaB(transactionDetailsActiveTaB);\n\t\t\tvar apiUrl = `${\n\t\t\t\tApiUrl._API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\")\n\t\t\t}`;\n\n\t\t\tif (transactionDetailsActiveTaB != 0) {\n\t\t\t\tapiUrl += \"&Type=\" + transactionDetailsActiveTaB;\n\t\t\t}\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetSearchTransactionHistory(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"TRANSACTION_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\n\t\t\t
\n\t\t\t\t{scrollCategory &&\n\t\t\t\t\tscrollCategory.length &&\n\t\t\t\t\tmap(scrollCategory, (item, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetTransactionDetailsActiveTaB(item.transactionTypeId);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(item.text)}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{searchTransactionHistory &&\n\t\t\t\t\t\t\tsearchTransactionHistory.length != 0 ? (\n\t\t\t\t\t\t\t\tsearchTransactionHistory.map((data, index) => {\n\t\t\t\t\t\t\t\t\tvar imgSrc = \"\";\n\t\t\t\t\t\t\t\t\tvar transactionType = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"transactionTypeId\"]) {\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._DEPOSIT:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.card;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"DEPOSIT\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._WITHDRAWAL:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.okup_withdraw;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"WITHDRAWAL\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._TRANSFER:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.wallet;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"TRANSFER\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.settingsBank;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tvar statusHtml = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"approvalStatus\"]) {\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._APPROVED:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"APPROVED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._REJECTED:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REJECTED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._OPEN:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"PROCESSING\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"PROCESSING\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"AMOUNT\")}{t(\"STATUS\")}{t(\"DESCRIPTION\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(data.dateTime, \"DD/MM/YYYY, HH:mm:ss\").format(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"DD-MM-YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.amount), 2)}\n\t\t\t\t\t\t\t\t\t\t\t{statusHtml}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"channel\"] != \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? t(transactionType) + \" - \" + data[\"channel\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: t(transactionType)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default TransactionHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tBetStatus,\n\tLanguageKey,\n\t_TICKET_STATUS,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { Spinner } from \"reactstrap\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst GameHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation(LanguageKey._PRIMARY);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [gameHistoryData, setGameHistoryData] = useState([]);\n\tconst [products, setProducts] = useState([]);\n\tconst { control, watch, setValue } = useForm();\n\tconst [queryProduct, setQueryProduct] = useState(\"\");\n\tconst [totalProducts, setTotalProducts] = useState(0);\n\tconst [searchKeyword, setSearchKeyword] = useState(\"\");\n\tconst [loadingSearchData, setLoadingSearchData] = useState(false);\n\tconst [recordUrl, setRecordUrl] = useState(\"\");\n\tconst [selectedOption, setSelectedOption] = useState({});\n\tconst [optionClicked, setOptionClicked] = useState(false);\n\tconst [dateSelectedOption, setDateSelectedOption] = useState({});\n\tconst [chgOption, setchgOption] = useState();\n\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetSearchKeyword(\"\");\n\t}, []);\n\n\tuseEffect(() => {\n\t\tlet startDateMoment = dateSelectedOption.from\n\t\t\t? dateSelectedOption.from\n\t\t\t: moment();\n\t\tlet endDateMoment = dateSelectedOption.to\n\t\t\t? dateSelectedOption.to\n\t\t\t: moment();\n\n\t\tif (startDate === undefined || optionClicked) {\n\t\t\tsetStartDate(startDateMoment);\n\t\t} else setStartDate(startDate);\n\t\tif (endDate === undefined || optionClicked) {\n\t\t\tsetEndDate(endDateMoment);\n\t\t} else setStartDate(startDate);\n\n\t\tsetOptionClicked(false);\n\t}, [dateSelectedOption]);\n\n\tuseEffect(() => {\n\t\tgetGameRecords();\n\t}, [selectedOption, startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar gameHistoryData = gameHistoryData;\n\t\t\tvar sortedGameHistoryData = orderBy(\n\t\t\t\tgameHistoryData,\n\t\t\t\t[\"amount\"],\n\t\t\t\tsortOrder\n\t\t\t);\n\n\t\t\tsetGameHistoryData(sortedGameHistoryData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function init() {\n\t\tsetLoadingSearchData(true);\n\t\ttry {\n\t\t\tvar responseJson = await ApiEngine.get(\n\t\t\t\t`${ApiUrl._API_GET_ASSIGNED_MEMBER_PRODUCT}?ignoreAccountProductStatus=true`\n\t\t\t);\n\n\t\t\tconst productList = [];\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][\"products\"].forEach(function (\n\t\t\t\t\tproduct\n\t\t\t\t) {\n\t\t\t\t\tproductList.push({\n\t\t\t\t\t\tlabel: product.productName,\n\t\t\t\t\t\tvalue: product.productId,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetProducts(productList);\n\t\t\tsetTotalProducts(productList.length);\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingSearchData(false);\n\t}\n\n\tasync function getGameRecords(page, keyword) {\n\t\tsetGameHistoryData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_GAME_RECORD_BY_MEMBER +\n\t\t\t\t\"?startDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\" 00:00:00\" +\n\t\t\t\t\"&endDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\" 23:59:59\" +\n\t\t\t\t\"&v=\" +\n\t\t\t\tDate.now() +\n\t\t\t\t\"&GroupDateRequired=true\" +\n\t\t\t\t\"&TicketStatus=1\";\n\n\t\t\tif (typeof selectedOption !== \"undefined\" && selectedOption > 0) {\n\t\t\t\tapiUrl += \"&productId=\" + selectedOption;\n\t\t\t}\n\n\t\t\tsetValue(\n\t\t\t\t\"productId\",\n\t\t\t\tstringIsNullOrEmpty(queryProduct) ? null : queryProduct\n\t\t\t);\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetRecordUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetGameHistoryData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tuseEffect(() => {\n\t\tif (chgOption) {\n\t\t\tsetOptionClicked(true);\n\t\t\tsetSelectedFilterType(\"\");\n\t\t\tsetchgOption(false);\n\t\t}\n\t}, [chgOption]);\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"BET_RECORD\")}

\n\t\t\t
\n\t\t\t\t
{t(\"STATISTICS\")}
\n\t\t\t\t
\n\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\tproducts && products.length > 0 ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{products.map((item, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{gameHistoryData && gameHistoryData.length != 0 ? (\n\t\t\t\t\t\t\t\tgameHistoryData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data[\"netProfit\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"GAMES\")}{t(\"DATE\")}{t(\"BET_AMOUNT\")}{t(\"NET_PROFIT\")}
{data[\"gameName\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(data[\"date\"], \"MM/DD/YYYY hh:mm:ss\").format(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"DD-MM-YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default GameHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst CommissionHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [commissionData, setCommissionData] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetCommissionData();\n\t}, [startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar commData = commissionData;\n\t\t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t\t\tsetCommissionData(sortedCommissionMemberData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getCommissionData(page, keyword) {\n\t\tsetCommissionData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_COMMISSION_HISTORY +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&v=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetCommissionUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCommissionData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"COMMISSION_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{commissionData && commissionData.length != 0 ? (\n\t\t\t\t\t\t\t\tcommissionData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"REBATE\")}{t(\"SALES\")}{t(\"REMARK\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data.parsedTime}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.turnover), 3)}\n\t\t\t\t\t\t\t\t\t\t\t{data.remark}
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default CommissionHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst RebateHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [commissionData, setCommissionData] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetCommissionData();\n\t}, [startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar commData = commissionData;\n\t\t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t\t\tsetCommissionData(sortedCommissionMemberData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getCommissionData(page, keyword) {\n\t\tsetCommissionData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_REBATES_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&v=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetCommissionUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCommissionData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"REBATE_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{commissionData && commissionData.length != 0 ? (\n\t\t\t\t\t\t\t\tcommissionData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"REBATE\")}{t(\"SALES\")}{t(\"REMARK\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data.parsedTime}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.turnover), 3)}\n\t\t\t\t\t\t\t\t\t\t\t{data.remark}
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default RebateHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst DailyCheckInHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n \tconst [dailyRecordData, setDailyRecordData] = useState([]);\n\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\t// getCommissionData();\n\t\tgetDailyCheckInData();\n\t}, [startDate, endDate]);\n\n\t// useEffect(() => {\n\t// \tif (isResetCurrentPage) {\n\t// \t\tsetSortOrder(\"\");\n\t// \t}\n\t// }, [isResetCurrentPage]);\n\n\t// useEffect(() => {\n\t// \tif (sortOrder != \"\") {\n\t// \t\tvar commData = commissionData;\n\t// \t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t// \t\tsetCommissionData(sortedCommissionMemberData);\n\t// \t}\n\t// }, [sortOrder]);\n\n\tasync function getDailyCheckInData(){\n\t\tsetDailyRecordData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry{\n\t\t\t// page = page ? page : 1;\n\t\t\t// var start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_DAILY_CHECK_IN_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl;\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\t\t\tconsole.log(responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY])\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetDailyRecordData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\t// var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\t// updatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t}catch(err){\n\t\t\t_dispatch(showResponseMessage(false, err));\n\n\t\t}\n\t\tsetLoadingFlag(false);\n\n\n\t}\n\t// async function getCommissionData(page, keyword) {\n\t// \tsetCommissionData([]);\n\t// \tsetLoadingFlag(true);\n\t// \ttry {\n\t// \t\tpage = page ? page : 1;\n\t// \t\tvar start = (page - 1) * 10;\n\n\t// \t\tvar apiUrl =\n\t// \t\t\tApiUrl._API_GET_REBATES_RECORD +\n\t// \t\t\t\"?StartDate=\" +\n\t// \t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t// \t\t\t\"&EndDate=\" +\n\t// \t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t// \t\t\t\"&v=\" +\n\t// \t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t// \t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t// \t\tsetCommissionUrl(apiUrl);\n\n\t// \t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tsetCommissionData(\n\t// \t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t// \t\t\t);\n\n\t// \t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t// \t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t// \t\t} else {\n\t// \t\t\t_dispatch(\n\t// \t\t\t\tshowMessage(\n\t// \t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t// \t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t// \t\t\t\t)\n\t// \t\t\t);\n\t// \t\t}\n\t// \t} catch (err) {\n\t// \t\t_dispatch(showResponseMessage(false, err));\n\t// \t}\n\t// \tsetLoadingFlag(false);\n\t// \treturn;\n\t// }\n\n\t// function updatePageinationPageNum(pageValue) {\n\t// \tsetPaginationPageNum((prevValue) => pageValue);\n\t// }\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"DAILY_CHECK_IN\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{dailyRecordData && dailyRecordData.length != 0 ? (\n\t\t\t\t\t\t\t\tdailyRecordData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"DAYS\")}{t(\"ROLLOVER\")}{t(\"AMOUNT\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(data.date).format(\"DD-MM-YYY\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data.days}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data.rolloverMultiplier}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\t
\n\t);\n};\n\nexport default DailyCheckInHistory;\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowResponseMessage,\n\tsetPageSize,\n\tsetY,\n\tsetActiveTab,\n\tsetReportOverviewModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport DynamicLoadTable from \"../../../components/custom/DynamicLoadTable\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport classnames from \"classnames\";\nimport {\n\tcreateFormBody,\n\tcreateMultiPartFormBody,\n\tstringIsNullOrEmpty,\n} from \"../../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport ToggleButton from \"react-toggle-button\";\nimport { map } from \"lodash\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport TransactionHistory from \"../report/TransactionHistory\";\nimport GameHistory from \"../report/GameHistory\";\nimport CommissionHistory from \"../report/CommissionHistory\";\nimport RebateHistory from \"../report/RebateHistory\";\nimport DailyCheckInHistory from \"./DailyCheckInHistory\";\n\nconst ReportOverview = (props) => {\n\tvar { t } = useTranslation(LanguageKey._PRIMARY);\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tvar _location = useLocation();\n\tconst [loadingSearchData, setLoadingSearchData] = useState(false);\n const dailyCheckInExist = useSelector((state) => state.appState.dailyCheckInExist);\n\n\tconst recordType = [\n\t\t{\n\t\t\tlabel: \"TRANSACTION_RECORD\",\n\t\t\tvalue: 1,\n\t\t},\n\t\t{\n\t\t\tlabel: \"BET_RECORD\",\n\t\t\tvalue: 2,\n\t\t},\n\t\t{\n\t\t\tlabel: \"COMMISSION_RECORD\",\n\t\t\tvalue: 3,\n\t\t},\n\t\t{\n\t\t\tlabel: \"REBATE_RECORD\",\n\t\t\tvalue: 4,\n\t\t},\n\t];\n\n\tconst updatedRecordType = [\n\t\t...recordType,\n\t\t...(dailyCheckInExist\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"DAILY_CHECK_IN\",\n\t\t\t\t\t\tvalue: 5,\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: []),\n\t];\n\tconst [selectedOption, setSelectedOption] = useState(1);\n\tconst { memberData, recentData } = useSelector(\n\t\t(state) => state.appState.downline\n\t);\n\n\tconst isReportOverviewModal = useSelector((state) => state.appState.reportOverviewModal);\n\n\tuseEffect(() => {\n\t\t// if (memberData === null && recentData === null) {\n\t\t// _dispatch(setBusy());\n\t\t// } else {\n\t\t// _dispatch(setIdle());\n\t\t// }\n\t}, [memberData, recentData]);\n\n\tconst closeBtn = (\n\t\t _dispatch(setReportOverviewModal(!isReportOverviewModal))}\n\t\t>\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setReportOverviewModal(!isReportOverviewModal));\n\t\t\t}}\n\t\t\tfullscreen={\"true\"}\n\t\t\t// centered\n\t\t>\n\t\t\t{t(\"HISTORY_RECORD\")}\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"RECORD_TYPE\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\t\t\trecordType && recordType.length > 0 ? (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{updatedRecordType.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{selectedOption == 1 && }\n\t\t\t\t{selectedOption == 2 && }\n\t\t\t\t{selectedOption == 3 && }\n\t\t\t\t{selectedOption == 4 && }\n\t\t\t\t{selectedOption == 5 && }\n\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ReportOverview;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport {\n setRegisterModal,\n showResponseMessage,\n setLoginModal,\n showMessage,\n setDepositModal,\n setCompleteInfoModal\n} from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\n// import { setLoginModal, showMessage, setBusy, setIdle, bindCompanyIcon } from \"redux/AppAction\";\nimport { useForm } from \"react-hook-form\";\nimport { performLoginReturnMessage } from \"redux/AuthAction\";\nimport SecureLS from \"secure-ls\";\nimport {\n AlertTypes, ApiKey, ApiUrl,\n /*PhoneNumberPrefix,*/\n SessionKey\n} from \"util/Constant\";\nimport { createFormBody, createMultiPartFormBody, stringIsNullOrEmpty } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { map, debounce, find, filter, upperCase, get } from \"lodash\";\nimport PinInput from \"react-pin-input\";\nimport {\n\tloadCaptchaEnginge,\n\tLoadCanvasTemplateNoReload,\n\tvalidateCaptcha,\n} from \"react-simple-captcha\";\n\n\nconst RegisterModal = (props) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n\n const search = window.location.search;\n\n const params = new URLSearchParams(search);\n const elePin = useRef(null);\n\n const PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n const [referralCode, setReferralCode] = useState(\"\");\n const [loginBanner, setLoginBanner] = useState();\n const [disableRegister, setDisableRegister] = useState(false);\n const [isRegisterLoading, setIsRegisterLoading] = useState(false);\n const [disableViaEmail, setDisableViaEmail] = useState(false);\n const [viaEmailLoading, setViaEmailLoading] = useState(false);\n const [password, setPassword] = useState(\"\");\n const [showCodeError, setShowCodeError] = useState(false);\n const [referralCodeString, setReferralCodeString] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n var { heartBeat } = useSelector((state) => state.authState);\n const registerModal = useSelector((state) => state.appState.registerModal);\n const companyLanguages = useSelector((state) => state.appState.languages);\n\n const [logo, setLogo] = useState();\n const [selectedChannel, setSelectedChannel] = useState();\n\n const [disabledRefrerral, setDisabledRefrerral] = useState(false);\n\n const [_username, _setUsername] = useState(\"\");\n const [_email, _setEmail] = useState(\"\");\n\n const [_emailText, _setEmailText] = useState(\"\");\n \n const [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\n \"\"\n );\n const [countryCode, setCountryCode] = useState(null);\n \n const [phoneNumberError, setPhoneNumberError] = useState(false);\n\n const [formattedPhone, setFormattedPhone] = useState(\"\");\n const _MIN_PASSWORD_LENGTH = 8;\n const [hideLoginPassword, setHideLoginPassword] = useState(true);\n\n const [registerSteps, setRegisterSteps] = useState(1);\n const [registerStepsViaEmail, setRegisterStepsViaEmail] = useState(false);\n const [registerStepsViaOtherChannel, setRegisterStepsViaOtherChannel] = useState(false);\n\n const [registerStepsThreeFirst, setRegisterStepsThreeFirst] = useState(false);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n\n const [TACsent, setTACsent] = useState(true);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [canSendTAC, setCanSendTAC] = useState(true);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n // const [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 5000));\n\n const _TAC_VALID_TIMER = 60000;\n // const _TAC_VALID_TIMER = 5000;\n\n const _SECONDS_IN_MS = 1000;\n const _TAC_TIMEOUT_IN_MINUTES = 1;\n\n const [pinLoading, setPinLoading] = useState(false);\n const [timerPeriod, setTimerPeriod] = useState(null);\n\n const customerServiceUrl = \"/livechat\";\n const [attemp, setAttemp] = useState(1);\n var registerChannel = useSelector((state) => state.appState.chatSphere);\n const [alertIcon, setAlertIcon] = useState();\n\n const [tempPinNumber, setTempPinNumber] = useState();\n const OTP_VIA_SMS = 1;\n const OTP_VIA_EMAIL = 2;\n const OTP_BY_WHATSAPP = 3;\n const OTP_VIA_TELEGRAM = 4;\n\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n\n //new flow\n const [smsChannel, setSmsChannel] = useState(false);\n const [chatSphereChannel, setChatSphereChannel] = useState(false);\n const [chatSphereChannelList, setChatSphereChannelList] = useState([])\n const [channleClick, setChannleClick] = useState('')\n\n const [channelType, setChannelType] = useState(OTP_VIA_SMS)\n\n const [showModalRegister, setShowModalRegister] = useState(false)\n\n const otpEnabled = useSelector((state) => state.appState.otpEnabled);\n const captchaEnabled = useSelector((state) => state.appState.captchaEnabled);\n const priorityModalType = useSelector((state) => state.appState.priorityModalTypeId)\n\n const {\n register,\n handleSubmit,\n errors,\n clearErrors,\n setError,\n setValue,\n getValues,\n watch,\n control,\n trigger,\n phoneNumberChk,\n } = useForm();\n\n const _captcha_length = 4;\n\n useEffect(() => {\n\n // init();\n //loadCaptchaEnginge(_captcha_length, \"black\", \"white\", \"numbers\");\n const parsedReferralCode = params.get(\"code\");\n if (parsedReferralCode != null && !heartBeat) {\n // getUpline(parsedReferralCode);\n _dispatch(setRegisterModal(true));\n setReferralCode(parsedReferralCode);\n // setRegisterSteps(2);\n checkIfReferralExist(parsedReferralCode);\n } else if (parsedReferralCode != null && heartBeat) {\n _dispatch(\n showMessage({\n //KT: The company icons details not loaded when reach this point.\n content: t(\"ALREADY_LOGIN\"),\n })\n );\n }\n\n }, []);\n \n useEffect(() => {\n if (!stringIsNullOrEmpty(countryCode)) {\n console.log(countryCode);\n setSelectedPhonePrefix(countryCode.value);\n }\n}, [countryCode]);\n\n useEffect(() => {\n if (!stringIsNullOrEmpty(PhoneNumberPrefix)) {\n setCountryCode(PhoneNumberPrefix[0]);\n }\n}, [PhoneNumberPrefix]); \n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (registerModal) {\n setShowModalRegister(true)\n init();\n }\n }, [registerModal]);\n\n useEffect(() => {\n\n if (!showModalRegister) {\n setRegisterSteps(1);\n setAttemp(1);\n _setEmail(\"\");\n _setEmailText(\"\");\n clearTimeout(timerPeriod);\n clearTimeout(TACtimer);\n setRegisterStepsThreeFirst(false)\n\n }\n }, [showModalRegister]);\n\n\n useEffect(() => {\n if (countdownPeriod > 0) {\n setTimerPeriod(\n setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n\n const init = async () => {\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_COMPANY_CHANNEL);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let channelList = responseJson[ApiKey._API_DATA_KEY]\n if (channelList) {\n setChatSphereChannel(channelList.chatSphereChannelEnabled);\n setSmsChannel(channelList.smsChannelEnabled);\n\n if (channelList.chatSphereActionType.length > 0) {\n setChatSphereChannelList(channelList.chatSphereActionType)\n }\n }\n }\n if (captchaEnabled){\n loadCaptchaEnginge(_captcha_length, \"black\", \"white\", \"numbers\");\n }\n }\n async function getCompanyIcon() {\n // _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n\n const loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n if (loginBanner) {\n setLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n // _dispatch(setIdle());\n }\n\n async function checkIfReferralExist(code) {\n let referralCode = code;\n if (code.includes(\" +\")) {\n referralCode = code.substring(0, code.indexOf(\" +\"));\n }\n let apiUrl =\n ApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n let responseJson = await ApiEngine.get(apiUrl);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setDisabledRefrerral(true);\n setRegisterSteps(1);\n } else {\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n )\n );\n }\n }\n\n const validateReferralCode = (e) => {\n var regexp = /^[A-Za-z0-9]+$/i;\n if (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n setReferralCode(e.target.value);\n }\n };\n const onChangeUsername = useCallback(\n debounce(async (e) => {\n var regexp = /^[\\S]*^[^ \\[\\]`~\\/!@#$%^&*()\"':;?|{}=+_<>,.\\\\-]*$/g;\n if (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n _setUsername(e.target.value);\n }\n }, 500),\n []\n );\n\n async function checkUsername(username) {\n let avail = true;\n let responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_USERNAME +\n \"?username=\" +\n username +\n \"&code=\" +\n referralCode\n );\n avail = responseJson[ApiKey._API_SUCCESS_KEY];\n\n\n return avail;\n }\n\n\n function onchange(e) {\n const re = /^[0-9\\b]+$/;\n let value = e.target.value;\n\n // Check if the value contains only digits\n if (re.test(value)) {\n // Limit the value to 12 characters\n if (value.length > 12) {\n value = value.slice(0, 12);\n }\n\n // setIsDigit(true);\n setFormattedPhone(value);\n } else {\n return false;\n // setIsDigit(false);\n }\n }\n\n const handleChange = (event) => {\n // Remove spaces and convert to lowercase\n const newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n _setEmail(newValue);\n };\n\n async function checkIfReferralExist2(code) {\n let referralCode = code;\n if (code.includes(\" +\")) {\n referralCode = code.substring(0, code.indexOf(\" +\"));\n }\n let apiUrl =\n ApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n let responseJson = await ApiEngine.get(apiUrl);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n return true;\n } else {\n return false;\n }\n }\n\n async function submitPin(pin) {\n let params = {\n username: _username,\n email: _email,\n password: password,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n TAC: pin,\n otpEnabled : otpEnabled\n };\n\n if (companyLanguages != undefined) {\n\t\t\tconst defaultLang = get(companyLanguages[0], \"code\");\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) &&\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tcompanyLanguages.find(\n\t\t\t\t\t\t(x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n\t\t\t\t\t) != undefined\n\t\t\t\t) {\n params[\"languageSetting\"] = companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ).code;\n\t\t\t\t} else {\n\t\t\t\t\tparams[\"languageSetting\"] = defaultLang;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparams[\"languageSetting\"] = defaultLang;\n\t\t\t}\n\t\t}\n\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_REGISTER,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setRegisterSteps(3);\n _dispatch(\n showMessage({\n type: AlertTypes._SUCCESS,\n content: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n onConfirm: async () => {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY]) {\n // KT: Register completed.\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n if(priorityModalType == 1){\n _dispatch(setDepositModal(true));\n\n }else{\n _dispatch(setCompleteInfoModal(true));\n\n }\n } else {\n window.location.replace(\"https://www.google.com\");\n }\n } else {\n }\n },\n })\n );\n\n // Check if FB Pixel exists and has valid Pixel ID\n if (window.fbq !== undefined && window.fbq.getState().pixels.length > 0) {\n window.fbq('track', 'CompleteRegistration');\n }\n } else {\n _dispatch(\n showResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n );\n elePin[\"current\"].clear();\n // setPinNumber(\"\");\n // setEnteredPinNumber(\"\");\n // setEnteredPinNumberConfirm(\"\");\n // setPinNumberConfirmFocused(0);\n }\n }\n\n async function onKeyPress(key, index) {\n //setAllowPinClick(false);\n // 1st: have to check currentPinRef\n // 2nd: have to know which index is currently focused for altering the state.value\n // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // let currentIndex = 0;\n let pinStr = tempPinNumber;\n let keyLength = key.split(\"\");\n if (key !== \"{bksp}\" && key !== \" \") {\n pinStr = key;\n setTempPinNumber(pinStr);\n if (keyLength.length !== 6) {\n } else {\n setTempPinNumber(\"\");\n setPinInputDisabled(true);\n setPinLoading(true);\n\n await submitPin(pinStr);\n\n setPinLoading(false);\n setPinInputDisabled(false);\n }\n } else {\n elePin[\"current\"].clear();\n // setPinNumber(\"\");\n // setTempPinNumber(\"\");\n // setPinNumberConfirmFocused(0);\n // setTempPinNumberFocused(0);\n }\n }\n\n async function checkEmail(email) {\n let avail = true;\n let responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_EMAIL + \"?email=\" + email + \"&code=\" + referralCode\n );\n avail = responseJson[ApiKey._API_SUCCESS_KEY];\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsEmailAvailable(true);\n } else {\n // setIsEmailAvailable(false);\n }\n\n return avail;\n }\n\n async function registerWithoutOTP(data, referralString) {\n let params = {\n username: data.username,\n email: _email,\n password: data.password,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n dialingCode: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix),\n referralCode: referralString,\n otpEnabled: otpEnabled\n };\n\n if (companyLanguages != undefined) {\n const defaultLang = get(companyLanguages[0], \"code\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n if (\n companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ) != undefined\n ) {\n params[\"languageSetting\"] = companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ).code;\n } else {\n params[\"languageSetting\"] = defaultLang;\n }\n } else {\n params[\"languageSetting\"] = defaultLang;\n }\n }\n\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_REGISTER,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(\n showMessage({\n type: AlertTypes._SUCCESS,\n content: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n onConfirm: async () => {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY]) {\n // KT: Register completed.\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n // _dispatch(setDepositModal(true));\n if(priorityModalType == 1){\n _dispatch(setDepositModal(true));\n \n }else{\n _dispatch(setCompleteInfoModal(true));\n \n }\n } else {\n window.location.replace(\"https://www.google.com\");\n }\n } else {\n }\n },\n })\n );\n\n // Check if FB Pixel exists and has valid Pixel ID\n if (window.fbq !== undefined && window.fbq.getState().pixels.length > 0) {\n window.fbq('track', 'CompleteRegistration');\n }\n } else {\n _dispatch(\n showResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n );\n\n }\n }\n\n const submitForm = async (data, e) => {\n setDisableViaEmail(true);\n setViaEmailLoading(true);\n // return false\n if (canSendTAC) {\n\n if (TACtimedOut || countdownPeriod > 0) {\n\n let params = {}\n if (channelType == OTP_VIA_EMAIL) {\n let emailAvail = await checkEmail(data.email);\n if (emailAvail) {\n params = {\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n email: data.email,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: channelType,\n usage: \"createMember\",\n };\n\n\n } else {\n setError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n setDisableViaEmail(false);\n setViaEmailLoading(false);\n }\n } else {\n params = {\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n // email: data.email,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: OTP_VIA_SMS,\n usage: \"createMember\",\n };\n }\n // let emailAvail = await checkEmail(data.email);\n // if (emailAvail) {\n // let params = {\n // \tphoneNumber: selectedPhonePrefix + formattedPhone,\n // \treferralCode: referralCode,\n // \temail: data.email,\n // \tlanguageCode: \"en\",\n // \tcountdown: countdownPeriod,\n // \tTACExist: !TACtimedOut,\n // \ttype: channleType,\n // \tusage: \"createMember\",\n // };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // _setEmail(data.email);\n // _setEmailText(\"*\".repeat(4) + data.email.substr(4));\n if (channelType == OTP_VIA_EMAIL) {\n _setEmail(data.email);\n _setEmailText(\"*\".repeat(4) + data.email.substr(4));\n }\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n // setTACBtnAble(false);\n setAttemp(attemp + 1);\n setTimeout(() => {\n // setTACBtnAble(true);\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER);\n setRegisterStepsViaEmail(false);\n setRegisterSteps(2);\n setRegisterStepsThreeFirst(true);\n }\n // } else {\n // \tsetError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n // \tsetDisableViaEmail(false);\n // \tsetViaEmailLoading(false);\n // }\n }\n }\n\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n clearTimeout(timerPeriod);\n setTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\n setTimeout(() => {\n setCanSendTAC(true);\n }, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n setDisableViaEmail(false);\n setViaEmailLoading(false);\n };\n\n\n\n const submitRegisterForm2 = async (data, e) => {\n if (captchaEnabled) {\n var temp = validateCaptcha(data.loginCaptcha);\n if (temp !== true) {\n _dispatch(\n showResponseMessage(false, t(\"CAPTCHA_FAILED\"))\n );\n return;\n }\n }\n\n setDisableRegister(true);\n setIsRegisterLoading(true);\n\n setPassword(data.password);\n let usernameAvail = await checkUsername(data.username);\n let phoneError = false;\n if (!usernameAvail) {\n setError(\"username\", { message: t(\"USERNAME_TAKEN\") });\n }\n\n let referralString = \"\";\n let referralCheck = true;\n if (referralCode !== \"\") {\n if (referralCode.length >= 8) {\n setShowCodeError(false);\n referralString = referralCode;\n setReferralCodeString(referralString);\n referralCheck = await checkIfReferralExist2(referralString);\n if (!referralCheck) {\n _dispatch(\n showResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n );\n setIsRegisterLoading(false);\n setDisableRegister(false);\n return false;\n }\n } else {\n setShowCodeError(true);\n }\n } else {\n var defaultReferralCode = await ApiEngine.get(\n ApiUrl._API_GET_MASTER_REFERRAL_CODE\n );\n if (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n referralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n setReferralCodeString(referralString);\n } else {\n _dispatch(\n showResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n );\n setIsRegisterLoading(false);\n setDisableRegister(false);\n return false;\n }\n }\n\n var prefix = (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix);\n if (\n typeof formattedPhone !== \"undefined\" &&\n (prefix + formattedPhone).length >= 10\n ) {\n if (!errors.phoneNumber && usernameAvail) {\n if (!otpEnabled) {\n await registerWithoutOTP(data, referralString);\n }\n else {\n let params = {\n phoneNumber: (prefix == \"\" ? PhoneNumberPrefix[0].value : prefix) + formattedPhone,\n referralCode: referralString,\n languageCode: \"en\",\n countdown: 0,\n TACExist: false,\n type: channelType,\n usage: \"createMember\",\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n const phoneNo = (prefix == \"\" ? PhoneNumberPrefix[0].value : prefix) + formattedPhone;\n const phoneNum =\n Array.from({ length: phoneNo.length - 3 - 1 }, () => \"*\").join(\"\") +\n phoneNo.slice(-4);\n setPhoneNumber(phoneNum);\n _setUsername(data.username);\n setPhoneNumberError(false);\n phoneError = false;\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n phoneError = true;\n setPhoneNumberError(true);\n }\n }\n }\n } else {\n setError(\"registerPhone\", { message: t(\"INVALID_PHONE_NUMBER\") });\n }\n\n if (usernameAvail && !phoneError && referralCheck && otpEnabled) {\n setTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setRegisterSteps(2);\n setRegisterStepsThreeFirst(true);\n }\nconsole.log('done')\n setIsRegisterLoading(false);\n setDisableRegister(false);\n };\n\n\n async function handleRegisterClick(channel) {\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n action: \"chat\",\n //url: `${channel.actionUrl}`,\n url:\n channel.actionUrl.match(/livechat/i) != null\n ? `${window.location.origin}${channel.url}`\n : `${channel.url}`,\n })\n );\n } else {\n var selectedReferralCode =\n referralCode == \"\" ? referralCodeString : referralCode;\n if (!stringIsNullOrEmpty(channel.url)) {\n // setToggleModal(false);\n let referralString = \"\";\n\n if (stringIsNullOrEmpty(selectedReferralCode)) {\n var defaultReferralCode = await ApiEngine.get(\n ApiUrl._API_GET_MASTER_REFERRAL_CODE\n );\n if (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n referralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n selectedReferralCode = referralString;\n } else {\n _dispatch(\n showResponseMessage(\n false,\n t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n )\n );\n }\n }\n\n window.location.href = channel.url + selectedReferralCode;\n } else {\n setSelectedChannel(channel);\n // setToggleModal(true);\n }\n }\n }\n\n return (\n {\n _dispatch(setRegisterModal(!registerModal));\n setShowModalRegister(false);\n }}\n backdrop={\"static\"}\n centered\n >\n \n
\n
\n
\n \"logo\"\n
\n {\n if (params.get(\"code\") != referralCode) {\n setReferralCode(\"\");\n }\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n\n }}\n >\n \n
\n
\n
\n
\n\n
\n \n
\n
\n
\n {registerSteps == 1 && (\n \n
\n
\n \n
\n \n // \t(await checkUsername(value)) ||\n // \t(console.log(\"test\"), \"USERNAME_TAKEN\"),\n pattern: {\n value: /^(?=.*[A-Za-z0-9])[A-Za-z0-9]{4,9}$/i,\n message: t(\n \"USERNAME_REQUIRES_ALPHANUMERIC_WITH_LOWERCASE_MINIMUM_4_9_CHARACTERS_ONLY\"\n ),\n },\n })}\n id=\"loginUsername\"\n name=\"username\"\n // value={_username.toLowerCase()}\n // onInput={(e) => validateUsername(e)}\n // onChange={onChangeUsername}\n onInput={onChangeUsername}\n errors={errors}\n className=\"t3-custom-input-text\"\n autoFocus\n autoComplete=\"off\"\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n\n // Allow lowercase letters, numbers, and allowed keys\n if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n if (/[A-Z]/.test(key)) {\n e.preventDefault();\n const start = e.target.selectionStart;\n const end = e.target.selectionEnd;\n\n // Insert the lowercase version of the uppercase key\n e.target.value = e.target.value.slice(0, start) + key.toLowerCase() + e.target.value.slice(end);\n // Adjust the cursor position to be after the inserted character\n e.target.setSelectionRange(start + 1, start + 1);\n } else {\n // Prevent any other unwanted key input\n e.preventDefault();\n }\n }\n }}\n />\n\n
\n
\n
\n \n
\n
\n
\n {\n setCountryCode(PhoneNumberPrefix[e.target.value]);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n\n // Remove all non-numeric characters\n newValue = newValue.replace(/[^0-9]/g, '');\n\n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n\n setValue(\"registerPhone\", newValue, { shouldValidate: true }); \n \n // Call your original `onChange` function\n onchange(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n\n }}\n />\n\n {phoneNumberError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : errors.registerPhone ? (\n
\n
\n {t(errors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
\n \n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[a-zA-Z0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n }}\n errors={errors}\n id=\"password\"\n name=\"password\"\n type={hideLoginPassword ? \"password\" : \"text\"}\n className=\"t3-custom-input-text\"\n autoComplete=\"new-password\"\n autoFocus\n />\n \n setHideLoginPassword(!hideLoginPassword)\n }\n />\n
\n
\n\n
\n
\n \n {t(\"REGISTER_PAGE_MIN_8_CHARS\")} c\n
\n
\n \n {t(\"ONLY_LETTERS_NUMBERS_9\")}\n
\n
\n \n {t(\"NO_SPECIAL_SYMBOLS\")}\n
\n
\n
\n \n
\n validateReferralCode(e)}\n value={referralCode}\n autoFocus\n // disabled={true}\n />\n
\n {showCodeError && (\n
\n
\n {t(\"INVALID_REFERRAL_CODE\")}\n
\n
\n )}\n
\n {captchaEnabled && \n
\n
\n \n
\n
\n \n
\n
\n
\n {errors.loginCaptcha && (\n
\n {t(errors.loginCaptcha.message)}\n
\n )}\n
\n }\n
\n {otpEnabled &&\n <>\n {chatSphereChannel && chatSphereChannelList.length > 0 &&\n chatSphereChannelList.map((item, index) => {\n return (\n {\n setChannleClick(item.name)\n if (item.name == \"Whatsapp\") {\n setChannelType(OTP_BY_WHATSAPP)\n } else {\n setChannelType(OTP_VIA_TELEGRAM)\n }\n // setChannleType(OTP_VIA_SMS)\n }}\n disabled={disableRegister}\n >\n {isRegisterLoading && channleClick == item.name ? (\n \n ) : (\n `${t(\"REGISTER_VIA\")} ${item.name}`\n )}\n \n )\n })\n }\n {smsChannel && chatSphereChannelList.length == 0 &&\n
\n setChannelType(OTP_VIA_SMS)}\n disabled={disableRegister}\n >\n {isRegisterLoading ? (\n \n ) : (\n t(\"REGISTER\")\n )}\n \n
\n }\n \n }\n {!otpEnabled && \n
\n setChannelType(OTP_VIA_SMS)}\n disabled={disableRegister}\n >\n {isRegisterLoading ? (\n \n ) : (\n t(\"REGISTER\")\n )}\n \n
\n }\n
\n
\n {t(\"ALREADY_HAVE_AN_ACCOUNT\")}{\" \"}\n {\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n\n _dispatch(setLoginModal(true));\n }}\n >\n {t(\"LOGIN_NOW\")}\n \n
\n
\n \n )}\n\n {registerSteps == 2 && (\n <>\n {registerStepsThreeFirst && (\n
\n

\n {t(\"VERIFY_YOUR_NUMBER\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {_emailText != \"\" ? _emailText : phoneNumber}.\n
\n {\n onKeyPress(value, index);\n }}\n // onChange={(value, index) => {\n // \tonKeyPress(value,index);\n // \t// setPinNumberFocused(index);\n // }}\n />\n {TACsent && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")} {countdownPeriod}s\n

\n )}\n\n {pinLoading ? (\n
\n \n
\n ) : (\n \"\"\n )}\n\n {countdownPeriod == 0 && (\n
\n \n {t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n {\n attemp == 2 && (\n <>\n
\n \n \n )\n }\n \n {attemp == 1 && channelType != OTP_VIA_SMS && (\n <>\n
\n {smsChannel && \n (\n {\n\n submitForm()\n setChannelType(1)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n\n {viaEmailLoading ? (\n \n ) : (\n t(\"RECEIVE_OTP_VIA_SMS\")\n )}\n\n \n )}\n \n
\n
\n {\n setRegisterStepsThreeFirst(false);\n setRegisterStepsViaOtherChannel(true);\n setChannelType(OTP_VIA_EMAIL)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n \n
\n \n\n )}\n\n {attemp == 1 && channelType == OTP_VIA_SMS && (\n
\n {\n setRegisterStepsThreeFirst(false);\n setRegisterStepsViaOtherChannel(true);\n setChannelType(OTP_VIA_EMAIL)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n \n
\n )}\n {/* {attemp == 2 && (\n
\n setIsLiveChatOpen(true)}\n disabled={pinInputDisabled}\n >\n {t(\"CONTACT_CUSTOMER_SERVICE\")}\n \n
\n )} */}\n
\n )}\n
\n )}\n\n {!registerStepsThreeFirst && registerStepsViaOtherChannel && (\n
\n
\n
\n \n \n\n
\n
\n \n {viaEmailLoading ? (\n \n ) : (\n t(\"CONTINUE\")\n )}\n \n
\n
\n
\n
\n
\n )}\n \n )}\n {registerSteps == 3 && (\n <>\n
\n

\n {t(\"REGISTRATION_COMPLETED\")}\n

\n\n
\n \n )}\n
\n
\n {registerChannel && registerChannel.length > 0 && (\n \n
\n
\n {t(\"REGISTER_THROUGH_SOCIAL_MEDIA\")}\n
\n
\n
\n {map(registerChannel, (channel, index) => {\n return (\n {\n if (!stringIsNullOrEmpty(channel.url)) {\n handleRegisterClick(channel);\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n \n
\n
\n );\n })}\n
\n \n \n )}\n \n
\n \n )\n};\n\nexport default RegisterModal;","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, PanelType, TransactionType } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setDailyCheckinModal, setBusyLoading, setDailyCheckInExist, showMessage } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, createMultiPartFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { chain } from \"lodash\";\nimport { heartBeat as heartBeatDispatch } from \"redux/AuthAction\";\n\nconst DailyCheckInModal = ({member}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const dailyCheckinModal = useSelector((state) => state.appState.dailyCheckinModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n const [alertIcon, setAlertIcon] = useState(\"\");\n const memberData = useSelector((state) => state.appState.member);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n \n const [dailyItems, setDailyItems] = useState([]);\n const [disabledClaim , setDisabledClaim] = useState(false)\n const [accumulateDay , setAccumulateDay] = useState(0)\n const [monthMode , setMonthMode] = useState(false)\n const [monthText , setMonthText] = useState('')\n const [dcid , setDcid] = useState()\n const [timezone , setTimezone] = useState(0)\n const [claimedAmount , setClaimedAmount] = useState(0)\n const [successAlert , setSuccessAlert] = useState(false)\n\n const {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n useEffect(()=>{\n if(heartBeat){\n init();\n }\n },[heartBeat])\n useEffect(()=>{\n getCompanyIcon();\n checkDailyCheckInStatus();\n },[])\n useEffect(()=>{\n if(dailyCheckinModal){\n init();\n }\n },[dailyCheckinModal])\n\n const init= async ()=>{\n \n var responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_DAILY_CHECK_IN\n\t\t);\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n\n if(responseJson[ApiKey._API_DATA_KEY]){\n _dispatch(setDailyCheckInExist(true))\n setDailyItems(responseJson[ApiKey._API_DATA_KEY].dailyDetails)\n setDcid(responseJson[ApiKey._API_DATA_KEY].id)\n setTimezone(responseJson[ApiKey._API_DATA_KEY].timeZone)\n const totalDaysLeft = responseJson[ApiKey._API_DATA_KEY].dailyDetails\n .filter(item => item.claimed === 0).length;\n \n setAccumulateDay(totalDaysLeft)\n \n if(responseJson[ApiKey._API_DATA_KEY].days > 28){\n const today = new Date();\n const months = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n ];\n const monthName = months[today.getMonth()];\n const year = today.getFullYear();\n setMonthText(`${monthName} ${year}`)\n setMonthMode(true)\n }\n \n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n\n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n }\n\n async function checkDailyCheckInStatus(){\n var responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_DAILY_CHECK_IN_STATUS\n\t\t);\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n _dispatch(setDailyCheckInExist(responseJson[ApiKey._API_DATA_KEY]))\n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n\n\n }\n\n\n async function getCompanyIcon() {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n \n \n }\n\n const claimDailyCheckIn = async ()=>{\n const activeItem = dailyItems.find(item => item.actived === 1);\n if(!activeItem){ \n \n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\"CLAIMED_TODAY\"),\n onConfirm: () => {\n // console.log(\"hi\");\n },\n })\n );\n return false\n }\n\n let params = {\n\t\t\ttransactionTypeId: TransactionType._DAILY_CHECK_IN,\n\t\n\t\t\tpanel: PanelType._MEMBERSITE,\n dcdid: activeItem.id,\n dcid: dcid\n\t\t\t\n\t\t};\n\n _dispatch(setBusyLoading(true))\n setDisabledClaim(true)\n\n let responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CLAIM_DAILY_CHECK_IN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n \n setClaimedAmount(responseJson[ApiKey._API_DATA_KEY].amount)\n setSuccessAlert(true)\n\n \n _dispatch(heartBeatDispatch());\n\n await init()\n }else{\n _dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]))\n }\n\n _dispatch(setBusyLoading(false))\n setDisabledClaim(false)\n\n }\n\n\n\n const closeBtn = (\n\t\t _dispatch(setDailyCheckinModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n\n const testDailyfunction = async ()=>{ \n const dailyList = dailyItems;\n\n\n const claimedItem = chain(dailyList)\n .orderBy(['days'], ['desc']) // Sort by 'days' in descending order\n .find(item => item.claimed === 1) // Find the first item where claimed is 1\n .value(); // Retrieve the final result\n\n\n\n let params = {\n\t\t\t\n id: claimedItem.id,\n mainId: dcid\n\t\t\t\n\t\t};\n// return false\n _dispatch(setBusyLoading(true))\n\n \n let responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_TEST_DAILY_CHECK_IN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n \n \n _dispatch(showResponseMessage(responseJson[ApiKey._API_SUCCESS_KEY], responseJson[ApiKey._API_MESSAGE_KEY]))\n \n\n init();\n }else{\n _dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]))\n init();\n }\n\n _dispatch(setBusyLoading(false))\n\n \n }\n\n return (\n <>\n {\n successAlert && (\n
\n }\n title={t(\"CONGRATULATIONS\")}\n onConfirm={() => {\n setSuccessAlert(false);\n }}\n\n >\n {t(\"SUCCESS_EARN\", { credit: claimedAmount})}\n \n
\n \n )\n }\n \n \n {\n _dispatch(setDailyCheckinModal(!dailyCheckinModal))\n }}\n centered\n >\n \t\n {t(\"DAILY_BONUS_CLAIM\")}\n \n \n \n
\n
\n
\n
\n
\n
\n {!monthMode && (
)}\n\n {/* You have accumulated 2 days check-in. */}\n
\n \n {/*
*/}\n
\n {monthMode && (
{monthText}
)}\n
\n {\n dailyItems.map((item, index) =>{\n let classDaily = ''\n if(item.claimed){\n classDaily = 'claimed' \n }else if(item.actived && !item.claimed){\n classDaily = 'active' \n }\n \n return (\n
\n\n {classDaily == 'claimed' && (
)}\n
\n\n \n \n
{`${companyCurrency} ${item.amount}`}
\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\nexport default DailyCheckInModal;","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport ReferralBonus from \"pages/template_1/report/ReferralBonus\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setReferralBonusModal, setDepositTab, setDownlineModal } from \"redux/AppAction\";\n\n\nconst ReferralBonusModal = (props) => {\n var { t } = useTranslation();\n const isDownlineModal = useSelector(\n (state) => state.appState.referralBonusModal\n );\n\n var _dispatch = useDispatch();\n\n useEffect(() => {\n }, []);\n\n useEffect(() => {\n }, [isDownlineModal]);\n\n\n return (\n {\n // setShowModal(false);\n _dispatch(setReferralBonusModal(!isDownlineModal));\n\n }}\n // centered\n >\n \n
\n
\n
\n
\n {t(\"REFERRAL_BONUS\")}\n
\n
\n
\n {\n // setShowModal(!showModal)\n _dispatch(setReferralBonusModal(!isDownlineModal));\n\n }}\n >\n \n
\n
\n
\n \n
\n \n \n )\n}\n\nexport default ReferralBonusModal;\n","import React, { lazy, Suspense } from \"react\";\nimport {\n\tRoute,\n\twithRouter,\n\tSwitch,\n\tRedirect,\n\tuseParams\n} from \"react-router-dom\";\nimport { \n\tfetchRoute, \n\t// _LOGIN_ROUTE2\n} from \"../../config/page-route.jsx\";\nimport { PageSettings } from \"../../config/page-settings.js\";\nimport { connect } from \"react-redux\";\nimport Footer from \"components/template_1/Footer.js\";\nimport Header from \"components/template_1/Header.js\";\nimport reactManifest from \"react-manifest\";\nimport manifest from \"../../manifest.json\";\nimport LoadingPlaceholder from \"components/template_1/LoadingPlaceholder.js\";\nimport { find, includes } from \"lodash\";\nimport DepositWithdrawalModal from \"components/template_1/DepositWithdrawalModal.js\";\nimport DownlineModal from \"components/template_1/DownlineModal.js\";\nimport ShareReferralModal from \"components/template_1/ShareReferralModal.js\";\nimport LoginModal from \"components/template_1/LoginModal.js\";\nimport {\n\tWebUrl,\n\tSessionKey,\n\tLanguage\n} from \"../../util/Constant\";\nimport { isValidLocale, hasValidLocale, extractLocaleFromPathname } from \"../../util/Util.js\";\nimport ApiEngine from \"util/ApiEngine.js\";\nimport ResetPasswordModal from \"components/template_1/ResetPasswordModal.js\";\nimport NotFound from \"pages/template_1/NotFound.js\";\nimport Login from \"pages/template_1/Login.js\";\nimport ReportOverviewModal from \"../../pages/template_1/report/ReportsOverview.js\";\nimport RegisterModal from \"components/template_1/RegisterModal.js\";\nimport DailyCheckInModal from \"components/template_1/DailyCheckInModal.js\";\nimport ReferralBonusModal from \"components/template_1/ReferralBonusModal\";\nimport MyProfileModal from \"components/template_1/MyProfileModal\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal.js\";\n\n\nclass Content extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._TIMEOUT_TIME = 60 * 60 * 1000;\n\t\tthis.state = {\n\t\t\ttemplate: props.template ?? \"template_1\",\n\t\t\troutes: null,\n\t\t\tcurrroutes: null,\n\t\t\tloginRoute: null,\n\t\t\tcurrentPage: this.props.history.location.pathname,\n\t\t\tbottomNavIndex: 0,\n\t\t};\n\t}\n\n\tComponentRoute(routeComponent) {\n\t\treturn routeComponent;\n\t}\n\n\tPrivateRoute(index, routeData) {\n\t\tconst isLoggedIn = this.props.authState.heartBeat;\n\t\tconst sessionLocale = localStorage.getItem(SessionKey._LANGUAGE)\n\t\tconst shouldRedirect = routeData.authRequired && !isLoggedIn;\n\n\t\t// // DEBUG\n\t\t// const redirectPath = '/en';\n\t\t// const currentReference = routeData.reference;\n\t\t// const currentPath = this.props.history.location.pathname;\n\t\t// {console.log('currentPath', currentPath)}\n\t\t// // Force hard redirect for debugging\n\t\t// if (!hasValidLocale(currentPath)) {\n\t\t// \twindow.location.href = `/${sessionLocale}${currentPath}`;\n\t\t// }\n\t\t// return (\n\t\t// \t\n\t\t// );\n\n\t\t// CHRIS_LOCALE: Check if locale is valid, if not then redirect to valid locale\n\t\t// Get locale from browser url\n\t\tconst { pathname, state } = this.props.history.location;\n\t\t// Check if url contains valid locale\n\n\t\t// console.log('this.props.location', this.props.location)\n\t\tif (hasValidLocale(pathname)) {\n\t\t\t// Update locale of session to this new locale\n\t\t\t// console.log('this.extractLocaleFromPathname(pathname)', this.extractLocaleFromPathname(pathname))\n\t\t\tlocalStorage.setItem(SessionKey._LANGUAGE, extractLocaleFromPathname(pathname));\n\t\t} else {\n\t\t\t// CHRIS_LOCALE: Remove locale from url first\n\t\t\tconst currentReference = state?.reference; // state.reference is used at GameList.js and PromotionInfo.js\n\t\t\tconst currentLocale = WebUrl.getCurrentLocale();\n\t\t\t// console.log('content currentLocale', currentLocale)\n\t\t\tconst regex = new RegExp(`^/${currentLocale}(/|$)`);\n\t\t\tconst locationPathname = pathname.replace(regex, '/');\n\n\t\t\tconst redirectPath = WebUrl.getLocaleUrl(locationPathname);\n\t\t\t// // Get current url\n\t\t\t// console.log('currentURL', this.props.history.location.pathname)\n\t\t\t// console.log('pathname', pathname)\n\t\t\t// console.log('locationPathname', locationPathname)\n\t\t\t// console.log('currentReference', currentReference)\n\t\t\t// console.log('redirectPath', redirectPath)\n\t\t\t// console.log('shouldRedirect', shouldRedirect)\n\t\t\t// console.log('REDIRECT')\n\n\t\t\t// this.props.history.replace({\n\t\t\t// \tpathname: redirectPath,\n\t\t\t// \tstate: { reference: currentReference }\n\t\t\t// });\n\n\t\t\t// CHRIS TODO: Problem with passing state reference, because of redirect - need to find a way without redirect?\n\t\t\t// this.props.history.replace doesn't change the url underneath, so it causes problems with API calls\n\t\t\t// this.props.history.push changes the URL so state doesn't get passed and GameList doesn't work\n\t\t\t// Redirect/push might affect other things as well\n\n\t\t\treturn (\n\t\t\t\t// \n\t\t\t\t {\n\t\t\t\t\t\treturn \n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t {\n\t\t\t\t\t// \n\t\t\t\t\t// \t{ shouldRedirect\n\t\t\t\t\t// \t\t\t? this.state.loginRoute.component\n\t\t\t\t\t// \t\t\t: this.ComponentRoute(routeData.component) }\n\t\t\t\t\t// \n\n\t\t\t\t\tif (shouldRedirect) {\n\t\t\t\t\t\treturn \t\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t{this.ComponentRoute(routeData.component)}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\t// component={\n\t\t\t\t// routeData.authRequired && !this.props.authState.heartBeat\n\t\t\t\t// ? this.state.loginRoute.component\n\t\t\t\t// : routeData.component\n\t\t\t\t// }\n\t\t\t\t// exact={routeData.exact}\n\t\t\t\t// path={routeData.path}\n\t\t\t\t// component={routeData.component}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderFallback() {\n\t\treturn this.state.template === \"template_1\" ? : null;\n\t}\n\n\tcomponentWillUpdate() {\n\t\tif (this.currentPage !== this.props.history.location.pathname) {\n\t\t\tthis.currentPage = this.props.history.location.pathname;\n\t\t\tthis.resetTimeout();\n\t\t}\n\t}\n\n\tasync loadData() {\n\t\ttry {\n\t\t\tconst loginRouteVar = await fetchRoute(\"template_1\", \"login\");\n\t\t\tconst routesVar = await fetchRoute(\"template_1\", \"all\");\n\n\t\t\tthis.setState({\n\t\t\t\troutes: routesVar,\n\t\t\t\tloginRoute: loginRouteVar,\n\t\t\t\tcurrroutes: null,\n\t\t\t});\n\t\t\t// Now you can work with the data\n\t\t} catch (error) {\n\t\t\t// Handle errors\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { dispatch } = this.props;\n\n\t\tthis.loadData();\n\n\t\t/*if (this.state.template == \"template_1\") {\n\t\t\tif (this.props.history.location.pathname !== \"/\") {\n\t\t\t\tthis.startTimeout = setTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, this._TIMEOUT_TIME);\n\t\t\t}\n\t\t}*/\n\t\t//KT TODO CHECK THIS CODE FEASIBILITY\n\t}\n\n\tcomponentWillMount() {\n\t}\n\n\tresetTimeout = () => {\n\t\tclearTimeout(this.startTimeout);\n\n\t\tif (this.state.template == \"template_1\") {\n\t\t\tif (\n\t\t\t\tthis.currentPage !== \"/\" &&\n\t\t\t\tthis.props.history.location.pathname !== \"/\"\n\t\t\t) {\n\t\t\t\tthis.startTimeout = setTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, this._TIMEOUT_TIME);\n\t\t\t}\n\t\t}\n\t};\n\n\trender() {\n\t\t// if (this.state.routes == null) return false;\n\t\t// this.state.currroutes = this.state.routes.filter((route) => {\n\t\t// \treturn route.path == this.props.history.location.pathname;\n\t\t// });\n\n\t\tif (this.state.routes == null) return false;\n\n\t\t// Optimization - Filter through routes to eliminate non-matching routes\n\t\tthis.state.currroutes = this.state.routes.filter((route) => {\n\t\t\tlet pathname = route.path;\n\t\t\tlet currRoutePath = this.props.history.location.pathname;\n\n\t\t\t///hotgame state\n\t\t\tconst hotGameWebUrl = WebUrl._URL_HOT_GAMES;\n\n\t\t\t // Remove leading and trailing slashes for easier comparison\n\t\t\t const normalizedPathname = pathname.replace(/^\\/|\\/$/g, '');\n\t\t\t const normalizedCurrRoutePath = currRoutePath.replace(/^\\/|\\/$/g, '');\n\t\t\t const normalizedHotGameUrl = hotGameWebUrl.replace(/^\\/|\\/$/g, '');\n\t\t \n\t\t\t // Split paths into segments\n\t\t\t const routeSegments = normalizedPathname.split('/');\n\t\t\t const pathSegments = normalizedCurrRoutePath.split('/');\n\t\t\t const hotGameSegments = normalizedHotGameUrl.split('/');\n\t\t\t \n\t\t\t ///check if HotGame is enabled\n\t\t\t if(!this.props.appState.isHotGameEnabled) {\n\t\t\t\tconst rebuiltPath = pathSegments.slice(1).join('/');\n\t\t\t\tconst hotGameUrl = hotGameSegments.slice(1).join('/');\n\t\t\t\tif(rebuiltPath === hotGameUrl){\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t }\n\t\t \n\t\t\t // Check for exact matches for non-parameterized routes\n\t\t\t if (route.exact && normalizedPathname === normalizedCurrRoutePath) {\n\t\t\t\t return true;\n\t\t\t }\n\t\t \n\t\t\t // Check for locale parameterized routes\n\t\t\t if (pathname.includes(':locale')) {\n\t\t\t\t const localeSegment = pathSegments[0]; // Assuming the locale is the first segment\n\t\t\t\t if (isValidLocale(localeSegment)) {\n\t\t\t\t\t // Rebuild the path without the locale for further matching\n\t\t\t\t\t const rebuiltPath = pathSegments.slice(1).join('/');\n\t\t\t\t\t const rebuiltRoutePath = routeSegments.slice(1).join('/');\n\t\t\t\t\t if (rebuiltPath === rebuiltRoutePath || pathname.endsWith(':slug')) {\n\t\t\t\t\t\t return true;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\t\t \n\t\t\t // Handling other parameterized routes that might contain slugs\n\t\t\t if (!route.exact && pathname.includes(':slug')) {\n\t\t\t\t return true; // Placeholder logic; refine this based on actual route structure\n\t\t\t }\n\n\t\t\t// // Exact match for non-parameterized routes\n\t\t\t// if (route.exact && pathname === currRoutePath) {\n\t\t\t// \treturn true;\n\t\t\t// }\n\n\t\t\t// if(pathname.includes(':locale')) return true\n\n\t\t\t// if (!route.exact && pathname.includes(':slug')) {\n\t\t\t// \t// const paramRegex = new RegExp(`/^\\/${currRoutePath}\\/[^/]+$`); // Adjust this regex as needed for your parameterized routes\n\t\t\t// \t// if (paramRegex.test(currRoutePath)){\n\t\t\t// \t// \tconsole.log('yes')\n\t\t\t// \t// \treturn true;// Match parameterized routes\n\n\t\t\t// \t// }\n\t\t\t// \treturn true\n\t\t\t// }\n\n\t\t\treturn false;\n\t\t})\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{({\n\t\t\t\t\tpageContentFullWidth,\n\t\t\t\t\tpageContentClass,\n\t\t\t\t\tpageContentInverseMode,\n\t\t\t\t}) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{/* BrowserRouter located in index.js */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t\t\t{this.state.currroutes.map((route, index) => {\n\t\t\t\t\t\t\t\t\treturn this.PrivateRoute(index, route);\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t{/* Catch all undefined routes */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\tincludes(this.props.history.location.pathname, 'livechat') ? \"\" :
\n\t\t\t\t\t\t\t} */}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nconst mapStateToProps = (state) => ({\n\t...state,\n});\n\nexport default connect(mapStateToProps, null)(withRouter(Content));\n","import React from \"react\";\nimport { PageSettings } from \"./config/page-settings.js\";\nimport Content from \"./components/content/content.jsx\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport { connect } from \"react-redux\";\nimport {\n\tupdateLoginUser,\n\tresetLogin,\n\tperformLogout,\n\theartBeat,\n} from \"./redux/AuthAction.js\";\nimport { setAppSetting } from \"./redux/AppAction.js\";\nimport { isObjectEmpty, stringIsNullOrEmpty, createFormBody, isValidLocale, hasValidLocale, extractLocaleFromPathname } from \"./util/Util.js\";\nimport { withTranslation } from \"react-i18next\";\nimport ApiEngine from \"./util/ApiEngine.js\";\nimport { ApiKey, ApiUrl, HIDE_APK_BANNER_DURATION, WebUrl } from \"./util/Constant\";\nimport { themeGenerator } from \"config/theme.js\";\nimport { paramCase } from \"change-case\";\nimport { ClientTemplates } from \"./util/Constant\";\nimport { Helmet } from \"react-helmet\";\nimport { Spinner } from \"react-bootstrap\";\nimport classNames from \"classnames\";\nimport { map } from \"lodash\";\n// import parse from \"html-react-parser\";\n\nLoadingOverlay.propTypes = undefined;\nclass App extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.handleSetPageContent = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContent: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentClass = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentClass: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullHeight = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullHeight: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullWidth = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullWidth: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentInverseMode = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentInverseMode: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageFooter = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageFooter: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetBodyWhiteBg = (value) => {\n\t\t\tif (value === true) {\n\t\t\t\tdocument.body.classList.add(\"bg-white\");\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove(\"bg-white\");\n\t\t\t}\n\t\t};\n\n\t\tthis.state = {\n\t\t\ttemplate:\n\t\t\t\tClientTemplates.filter((x) => x.hostname == window.location.hostname)[0]\n\t\t\t\t\t?.template ?? \"template_1\",\n\t\t\tpageContent: true,\n\t\t\tpageContentClass: \"\",\n\t\t\tpageContentFullHeight: false,\n\t\t\tpageContentFullWidth: true,\n\t\t\tpageContentInverseMode: false,\n\t\t\tpageNavBar: \"\",\n\t\t\thandleSetPageContent: this.handleSetPageContent,\n\t\t\thandleSetPageContentClass: this.handleSetPageContentClass,\n\t\t\thandleSetPageContentFullHeight: this.handleSetPageContentFullHeight,\n\t\t\thandleSetPageContentFullWidth: this.handleSetPageContentFullWidth,\n\t\t\thandleSetPageContentInverseMode: this.handleSetPageContentInverseMode,\n\n\t\t\tpageFooter: false,\n\t\t\thandleSetPageFooter: this.handleSetPageFooter,\n\t\t\terror: null,\n\t\t\terrorInfo: null,\n\n\t\t\thandleSetBodyWhiteBg: this.handleSetBodyWhiteBg,\n\t\t\thandleSetPageBoxedLayout: this.handleSetPageBoxedLayout,\n\n\t\t\tinterval1: null,\n\t\t\tlocation: window.location.href,\n\t\t\tlanguage: this.props.i18n.language,\n\t\t\tappLoad: true\n\t\t};\n\n\t\tthis.scrollRef = React.createRef();\n\n\t}\n\n\t/// \n\t/// Author: -\n\t/// \n\tasync componentDidMount() {\n\t\tthis.setState({\n\t\t\t// hasGetSkinSettings: false,\n\t\t\thasCustomSkin: false,\n\t\t\tactiveTheme: 0,\n\t\t\tbackgroundImage: \"\",\n\t\t});\n\t\tclearInterval(this.state.interval1);\n\t\tthis.state.interval1 = null;\n\t\tthis.props.heartBeat();\n\t\tthis.state.interval1 = setInterval(() => this.props.heartBeat(), 20000);\n\n\n\t\t// Dynamically import the CSS file based on the environment variable\n\t\tconst root = process.env.REACT_APP_ROOT ? process.env.REACT_APP_ROOT : 'rootbase';\n\n\t\tthis.setState({ appLoad: true });\n\t\ttry {\n\t\t\tawait import(`./assets/css/theme/${root}.css`);\n\t\t\tconsole.log(`${root}.css loaded successfully!`);\n\t\t} catch (error) {\n\t\t\tconsole.log(`Failed to load ${root}.css`, error);\n\t\t} finally {\n\t\t\tthis.setState({ appLoad: false });\n\t\t}\n\n\t\t// this.getSetting(this.state.language);\n\n\t\tthis.fetchSettings();\n\t\tthis.getMeta(this.state.language);\n\n\t\t// Create a custom event\n\t\tconst customEvent = new CustomEvent('changedLocation', {\n\t\t\tdetail: { message: `Location changed to ${window.location.pathname}` }\n\t\t});\n\n\t\t// Dispatch the event\n\t\twindow.dispatchEvent(customEvent);\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (\n\t\t\tthis.props.languageState.languageId != prevProps.languageState.languageId\n\t\t) {\n\t\t\tthis.props.i18n.changeLanguage(this.props.languageState.languageId);\n\t\t}\n\n\t\t// if (!this.state.hasCustomSkin) {\n\t\t// \tlet heartBeat = this.props.authState.heartBeat;\n\t\t// \tif (heartBeat) {\n\t\t// \t\tthis.getSkinSettings();\n\t\t// \t}\n\t\t// }\n\n\t\tif (\n\t\t\tthis.state.location != window.location.href ||\n\t\t\tthis.state.language != prevProps.i18n.language\n\t\t) {\n\t\t\tthis.getSetting(this.props.i18n.language);\n\t\t\tthis.getMeta(this.props.i18n.language);\n\t\t\tthis.state.location = window.location.href;\n\t\t\tthis.state.language = this.props.i18n.language;\n\n\t\t\tthis.scrollRef.current.scrollTop = 0;\n\t\t\twindow.scrollTo(0, 0);\n\n\t\t\t// Create a custom event\n\t\t\tconst customEvent = new CustomEvent('changedLocation', {\n\t\t\t\tdetail: { message: `Location changed to ${window.location.pathname}` }\n\t\t\t});\n\n\t\t\t// Dispatch the event\n\t\t\twindow.dispatchEvent(customEvent);\n\t\t}\n\n\n\t\tif (\n\t\t\tthis.state.seoTitle != this.props.appState.seoContent?.seoTitle\n\t\t\t|| this.state.seoDescription != this.props.appState.seoContent?.seoDescription\n\t\t\t|| this.state.seoImage != this.props.appState.seoContent?.seoImage\n\t\t) {\n\t\t\tthis.setState({\n\t\t\t\tseoTitle: this.props.appState.seoContent.seoTitle,\n\t\t\t\tseoDescription: this.props.appState.seoContent.seoDescription,\n\t\t\t\tseoImage: this.props.appState.seoContent.seoImage\n\t\t\t});\n\t\t}\n\t}\n\n\t// CHRIS 20240801: Not used for some reason\n\t// applyTheme() {\n\t// \tif (this.state.template == \"template_1\") {\n\t// \t\tconst themeValue = themeGenerator(\"template1\");\n\n\t// \t\tfor (const [key, value] of Object.entries(themeValue)) {\n\t// \t\t\tconst variableName = `--${paramCase(key)}`;\n\t// \t\t\tdocument.documentElement.style.setProperty(variableName, value);\n\t// \t\t}\n\t// \t}\n\t// }\n\n\t/// \n\t/// Author: -\n\t/// \n\tcomponentDidCatch(error, errorInfo) {\n\t\tthis.setState({\n\t\t\terror: error,\n\t\t\terrorInfo: errorInfo,\n\t\t});\n\t}\n\tgetPageSlug(pathname) {\n\t\tconst locale = WebUrl.getCurrentLocale();\n\n\t\t// Check if url contains valid locale\n\t\tconst regex = new RegExp(`^/${locale}(/|$)`);\n\n\t\tif (isValidLocale(locale) && pathname.startsWith(`/${locale}`) && pathname.match(regex)) {\n\t\t\tif (pathname === `/${locale}`) {\n\t\t\t\treturn '/';\n\t\t\t}\n\t\t\treturn pathname.replace(`/${locale}`, '');\n\t\t} else {\n\t\t\treturn pathname.replace(`/${locale}`, '');\n\t\t}\n\t}\n\n\tasync fetchSettings() {\n\t\tthis.setState({ appLoad: true });\n\n\t\tawait this.getSetting(this.state.language);\n\n\t\tthis.setState({ appLoad: false });\n\n\t }\n\tasync getMeta(language) {\n\t\t// SEO Override System - will override all other SEO settings from other pages\n\t\tvar pageSlug = this.getPageSlug(window.location.pathname);\n\n\t\tvar encodedPageSlug = encodeURIComponent(pageSlug);\n\t\tvar encodedLanguage = encodeURIComponent(language);\n\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\t`${ApiUrl._API_GET_SEO_META_CONTENT}?slug=${encodedPageSlug}&language=${encodedLanguage}`\n\t\t);\n\n\t\tvar seoManagementFlag = false;\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar data = responseJson[ApiKey._API_DATA_KEY];\n\n\t\t\tvar scriptTagRegex = /]*>([\\s\\S]*?)<\\/script>/gi;\n\t\t\t// const filteredData = data.filter(item => item.pageSlug == slug);\n\t\t\tvar pageName = data.pageName;\n\t\t\tvar seoTitle = '';\n\t\t\tvar seoDescription = '';\n\t\t\tvar seoImage = '';\n\t\t\tvar customScripts = '';\n\n\t\t\tif (data && data.languageSeoTitle) {\n\t\t\t\tseoTitle = data.languageSeoTitle;\n\t\t\t} else {\n\t\t\t\tseoTitle = data.seoTitle;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoDescription) {\n\t\t\t\tseoDescription = data.languageSeoDescription;\n\t\t\t} else {\n\t\t\t\tseoDescription = data.seoDescription;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoImage) {\n\t\t\t\tseoImage = data.languageSeoImage;\n\t\t\t} else {\n\t\t\t\tseoImage = data.seoImage;\n\t\t\t}\n\n\t\t\tif (data && data.languageCustomScripts) {\n\t\t\t\tcustomScripts = data.languageCustomScripts;\n\t\t\t} else {\n\t\t\t\tcustomScripts = data.customScripts;\n\t\t\t}\n\n\t\t\tseoManagementFlag = true;\n\n\t\t\t////get rawScripts\n\t\t\tif (customScripts) {\n\t\t\t\tvar customScriptsJson = JSON.parse(customScripts).html; /// extract the data from html JSON\n\t\t\t\tvar matches = customScriptsJson.match(scriptTagRegex); /// make the html into array\n\t\t\t\tvar contentWithoutScriptTags = null;\n\n\t\t\t\tif (matches) {\n\t\t\t\t\tvar contentWithArrayForTags = matches.map(match => match.match(/]*>([\\s\\S]*?)<\\/script>/i)); /////separate each value\n\t\t\t\t\tcontentWithoutScriptTags = contentWithArrayForTags.map(tags => tags[1]).join(''); ///join both value\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// console.log('seoTitle getMeta')\n\t\t\tthis.setState({ pageNameOverride: pageName });\n\t\t\tthis.setState({ seoTitleOverride: seoTitle });\n\t\t\tthis.setState({ seoDescriptionOverride: seoDescription });\n\t\t\tthis.setState({ seoImageOverride: seoImage });\n\t\t\tthis.setState({ rawScriptsOverride: contentWithoutScriptTags });\n\n\t\t} else {\n\t\t\tconsole.log(\"getMeta error\");\n\t\t}\n\n\t\t///if seo meta content is empty, show the one in page if got any seo meta\n\n\t\tif (seoManagementFlag == false) {\n\t\t\tif (this.props.appState.seoContent.pageName) {\n\t\t\t\t// console.log('seoTitle getMeta seoManagementFlag')\n\t\t\t\tthis.setState({ pageName: this.props.appState.seoContent.pageName });\n\t\t\t\tthis.setState({ seoTitle: this.props.appState.seoContent.seoTitle });\n\t\t\t\tthis.setState({ seoDescription: this.props.appState.seoContent.seoDescription });\n\t\t\t}\n\t\t}\n\t}\n\n\t// async getSkinSettings() {\n\t// \tif (window.location.pathname.match(/dashboard/)) {\n\t// \t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_EXTRA_HTML_STYLE);\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tthis.state.hasCustomSkin = true;\n\t// \t\t\tconst style = document.createElement(\"style\");\n\t// \t\t\tstyle.textContent = '\"' + responseJson[ApiKey._API_DATA_KEY] + '\"';\n\t// \t\t\tdocument.head.appendChild(style);\n\t// \t\t}\n\t// \t\tthis.state.hasGetSkinSettings = true;\n\t// \t} else {\n\t// \t\tthis.state.hasGetSkinSettings = false;\n\t// \t}\n\t// }\n\n\tasync getSetting(language) {\n\t\t// this.setState({ appLoad: true });\n\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\t`${ApiUrl._API_GET_SETTING}?LanguageCode=` + language\n\t\t);\n\n\t\t// Check url params for 'm' (used on Mobile App to permanently hide APK Banner)\n\t\tvar urlParams = new URLSearchParams(window.location.search);\n\t\tif(urlParams.get('m') == true) {\n\t\t\tlocalStorage.setItem('isMobileApp', 1);\n\n\t\t\t// Expire after humanity goes extinct\n\t\t\tlocalStorage.setItem('hideApkBanner', JSON.stringify({ expiry: 99999999999999 }));\n\t\t}\n\n\t\tvar hideApkBanner = false;\n\t\tif(localStorage.getItem('hideApkBanner')) {\n\t\t\t// Parsed hideApkBanner\n\t\t\tvar parsedHideApkBanner = JSON.parse(localStorage.getItem('hideApkBanner'));\n\n\t\t\t// Check if expired\n\t\t\tconst expiry = parsedHideApkBanner.expiry;\n\t\t\tif(expiry && expiry > Date.now()) {\n\t\t\t\thideApkBanner = true;\n\t\t\t} else {\n\t\t\t\tlocalStorage.removeItem('hideApkBanner');\n\t\t\t}\n\t\t}\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar presetAmtData = responseJson[ApiKey._API_DATA_KEY].presetAmt;\n\t\t\tvar chatsphereData = responseJson[ApiKey._API_DATA_KEY].chatsphere;\n\t\t\tvar brandNameData = responseJson[ApiKey._API_DATA_KEY].brandName;\n\t\t\tvar siteTitleData = responseJson[ApiKey._API_DATA_KEY].siteTitle;\n\t\t\tvar siteDescriptionData = responseJson[ApiKey._API_DATA_KEY].siteDescription;\n\t\t\tvar faviconData = responseJson[ApiKey._API_DATA_KEY].favicon;\n\t\t\tvar companyTimeZone = responseJson[ApiKey._API_DATA_KEY].timeZone;\n\t\t\tvar userFullNameData = responseJson[ApiKey._API_DATA_KEY].userFullName;\n\t\t\tvar userStatusData = responseJson[ApiKey._API_DATA_KEY].userStatus;\n\t\t\tvar userStatusInStringData = responseJson[ApiKey._API_DATA_KEY].userStatusInString;\n\t\t\tvar htmlStyleData = responseJson[ApiKey._API_DATA_KEY].htmlStyle;\n\t\t\tvar customScriptData = responseJson[ApiKey._API_DATA_KEY].customScript;\n\t\t\tvar customScriptFooterData = responseJson[ApiKey._API_DATA_KEY].customScriptFooter;\n\t\t\tvar currencyData = responseJson[ApiKey._API_DATA_KEY].currency;\n\t\t\tvar languagesData = responseJson[ApiKey._API_DATA_KEY].languages;\n\t\t\tvar membershipEnabled = responseJson[ApiKey._API_DATA_KEY].membershipEnabled;\n\t\t\tvar mediasData = responseJson[ApiKey._API_DATA_KEY].medias;\n\t\t\tvar channelsData = responseJson[ApiKey._API_DATA_KEY].channels;\n\t\t\tvar currencySymbol = responseJson[ApiKey._API_DATA_KEY].currencySymbol;\n\t\t\tvar dialingCodes = responseJson[ApiKey._API_DATA_KEY].dialingCodes;\n\t\t\tvar settingApiComplete = true;\n\t\t\tvar promotionLayout = responseJson[ApiKey._API_DATA_KEY].promotionLayout;\n\t\t\tvar promotionShowCategoryTitle = responseJson[ApiKey._API_DATA_KEY].promotionShowCategoryTitle;\n\t\t\tvar showPromoThumbnailClaimButton = responseJson[ApiKey._API_DATA_KEY].showPromoThumbnailClaimButton;\n\t\t\tvar isReferralBonusActive = responseJson[ApiKey._API_DATA_KEY].isReferralBonusActive;\n\t\t\tvar otpEnabled = responseJson[ApiKey._API_DATA_KEY].otpEnabled;\n\t\t\tvar eWalletOTPEnabled = responseJson[ApiKey._API_DATA_KEY].eWalletOTPEnabled;\n\t\t\tvar captchaEnabled = responseJson[ApiKey._API_DATA_KEY].captchaEnabled;\n\t\t\tvar priorityModalTypeId = responseJson[ApiKey._API_DATA_KEY].priorityModalTypeId;\n\t\t\tvar dashboardComponent = responseJson[ApiKey._API_DATA_KEY].dashboardComponent;\n\t\t\tvar isNormalDepositEnable = responseJson[ApiKey._API_DATA_KEY].isNormalDepositEnable;\n\t\t\tvar isNormalWithdrawalEnable = responseJson[ApiKey._API_DATA_KEY].isNormalWithdrawalEnable;\n\t\t\tvar musicPlayerEnabled = responseJson[ApiKey._API_DATA_KEY].musicPlayerEnabled;\n\t\t\tvar musicTrackList = responseJson[ApiKey._API_DATA_KEY].musicTrackList;\n\t\t\tvar isEWalletActive = responseJson[ApiKey._API_DATA_KEY].isEWalletActive;\n\t\t\tvar isBankTransferActive = responseJson[ApiKey._API_DATA_KEY].isBankTransferActive;\n\t\t\tvar isReferralCommissionManual = responseJson[ApiKey._API_DATA_KEY].isReferralCommissionManual;\n\t\t\tvar isRebateManual = responseJson[ApiKey._API_DATA_KEY].isRebateManual;\n\t\t\tvar availableProductCategories = responseJson[ApiKey._API_DATA_KEY].availableProductCategories;\n\t\t\tvar isGameLobbyRequired = responseJson[ApiKey._API_DATA_KEY].isGameLobbyRequired;\n\t\t\tvar bannerAPK = hideApkBanner ? \"\" : responseJson[ApiKey._API_DATA_KEY].bannerAPK;\n\t\t\tvar isLoginAttemptBlockingEnabled = responseJson[ApiKey._API_DATA_KEY].isLoginAttemptBlockingEnabled;\n\t\t\tvar isHotGameEnabled = responseJson[ApiKey._API_DATA_KEY].isHotGameEnabled;\n\n\t\t\tif (htmlStyleData && htmlStyleData != \"\") {\n\t\t\t\tconst existingStyle = document.getElementById(\"custom-style\");\n\t\t\t\tif (!existingStyle) {\n\t\t\t\t\tconst styleElement = document.createElement(\"style\");\n\t\t\t\t\tstyleElement.id = \"custom-style\";\n\t\t\t\t\tstyleElement.innerHTML = htmlStyleData;\n\t\t\t\t\tdocument.head.appendChild(styleElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (customScriptData && customScriptData !== \"\") {\n\t\t\t\tconst existingScript = document.getElementById(\"custom-script\");\n\t\t\t\tif (!existingScript) {\n\t\t\t\t\tconst scriptElement = document.createElement(\"script\");\n\t\t\t\t\tscriptElement.id = \"custom-script\";\n\t\t\t\t\tscriptElement.innerHTML = customScriptData;\n\t\t\t\t\tdocument.head.appendChild(scriptElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (customScriptFooterData && customScriptFooterData !== \"\") {\n\t\t\t\tconst existingScript = document.getElementById(\"custom-script-footer\");\n\t\t\t\tif (!existingScript) {\n\t\t\t\t\tconst scriptElement = document.createElement(\"script\");\n\t\t\t\t\tscriptElement.id = \"custom-script-footer\";\n\t\t\t\t\tscriptElement.innerHTML = customScriptFooterData;\n\t\t\t\t\tdocument.body.appendChild(scriptElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// this.setState({ appLoad: false });\n\n\t\t\tvar chatsphere = [];\n\t\t\tconst _APPEND_REGISTER_WHATSAPP_URL = \"?text=register%20\";\n\t\t\tconst _APPEND_REGISTER_TELEGRAM_URL = \"?start=\";\n\n\t\t\tchatsphereData.forEach((x) => {\n\t\t\t\tchatsphere.push({\n\t\t\t\t\tusage: x.usage,\n\t\t\t\t\turl:\n\t\t\t\t\t\tx.usage == \"Whatsapp\"\n\t\t\t\t\t\t\t? \"https://wa.me/\" + x.phoneNumber + _APPEND_REGISTER_WHATSAPP_URL\n\t\t\t\t\t\t\t: x.usage == \"Telegram\"\n\t\t\t\t\t\t\t\t? \"https://t.me/\" + x.phoneNumber + _APPEND_REGISTER_TELEGRAM_URL\n\t\t\t\t\t\t\t\t: \"\",\n\t\t\t\t\timage: x.image,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tchatsphereData = chatsphere;\n\n\t\t\tconst { setAppSetting } = this.props;\n\t\t\tsetAppSetting(\n\t\t\t\tbrandNameData,\n\t\t\t\tpresetAmtData,\n\t\t\t\tcurrencyData,\n\t\t\t\tmediasData,\n\t\t\t\tchannelsData,\n\t\t\t\thtmlStyleData,\n\t\t\t\tchatsphereData,\n\t\t\t\tlanguagesData,\n\t\t\t\tmembershipEnabled,\n\t\t\t\tcurrencySymbol,\n\t\t\t\tdialingCodes,\n\t\t\t\tsettingApiComplete,\n\t\t\t\tpromotionLayout,\n\t\t\t\tpromotionShowCategoryTitle,\n\t\t\t\tshowPromoThumbnailClaimButton,\n\t\t\t\tisReferralBonusActive,\n\t\t\t\totpEnabled,\n\t\t\t\teWalletOTPEnabled,\n\t\t\t\tcaptchaEnabled,\n\t\t\t\tpriorityModalTypeId,\n\t\t\t\tdashboardComponent,\n\t\t\t\tisNormalDepositEnable,\n\t\t\t\tisNormalWithdrawalEnable,\n\t\t\t\tmusicPlayerEnabled,\n\t\t\t\tmusicTrackList,\n\t\t\t\tisEWalletActive,\n\t\t\t\tisBankTransferActive,\n\t\t\t\tisReferralCommissionManual,\n\t\t\t\tisRebateManual,\n\t\t\t\tavailableProductCategories,\n\t\t\t\tisGameLobbyRequired,\n\t\t\t\tcompanyTimeZone,\n\t\t\t\tbannerAPK,\n\t\t\t\tisLoginAttemptBlockingEnabled,\n\t\t\t\tisHotGameEnabled\n\t\t\t);\n\t\t\t//SEO\n\t\t\t//{\n\t\t\tvar data = [] // responseJson[ApiKey._API_DATA_KEY].seo;\n\n\t\t\tvar contentLength = data.length;\n\t\t\tvar list = [];\n\t\t\tvar newData = [];\n\t\t\tvar newList = [];\n\t\t\tfor (var x = 0; x < contentLength; x++) {\n\t\t\t\tvar content = JSON.parse(data[x][\"content\"]);\n\t\t\t\tvar contentLength1 = Object.keys(content).length;\n\t\t\t\tfor (var i = 0; i < contentLength1; i++) {\n\t\t\t\t\tvar jsonObj = JSON.parse(content[\"parameter_\" + (i + 1)]);\n\t\t\t\t\tnewData.push({\n\t\t\t\t\t\tname: \"PARAMETER \" + (i + 1),\n\t\t\t\t\t\tmetaType: jsonObj[\"metaType\"],\n\t\t\t\t\t\tcontent: jsonObj[\"content\"],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tnewList = {\n\t\t\t\t\tmetaType: data[x][\"metaDataType\"],\n\t\t\t\t\tdata: newData,\n\t\t\t\t};\n\t\t\t\tnewData = [];\n\t\t\t\tlist.push(newList);\n\t\t\t}\n\t\t\tvar titleList = [];\n\t\t\tvar meta = [];\n\t\t\tvar link = [];\n\t\t\tvar script = [];\n\t\t\tvar noscript = [];\n\t\t\tvar base = [];\n\t\t\tvar title = \"\";\n\n\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\tif (list[i].metaType == \"Meta\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar trimmedContent = content.trim();\n\t\t\t\t\t\t\tvar jsonObject = JSON.parse(trimmedContent);\n\n\t\t\t\t\t\t\tmeta.push({\n\t\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(\"Error parsing JSON:\", error);\n\t\t\t\t\t\t\tconsole.error(\"Invalid JSON content:\", content);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Title\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\ttitleList.push({\n\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\tcontent: list[i].data[x].content,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Link\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tlink.push({\n\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"script\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\t\tvar code = jsonObject.code.replaceAll(\"'\", `\"`);\n\t\t\t\t\t\t\tjsonObject.code = code;\n\t\t\t\t\t\t\tscript.push({\n\t\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`Error parsing JSON for page: ${page}`, e);\n\t\t\t\t\t\t\tconsole.log(\"Content received:\", content);\n\t\t\t\t\t\t\t// Handle the error appropriately, e.g., skip this item, use a default value, etc.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"noscript\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tnoscript.push({\n\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Base\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tbase.push({\n\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar scriptList = [];\n\t\t\tvar metaList = [];\n\t\t\tvar linkList = [];\n\t\t\tvar noscriptList = [];\n\t\t\tvar baseList = [];\n\n\t\t\tif (titleList.length > 0) {\n\t\t\t\ttitleList\n\t\t\t\t\t.filter((title) => title.page == window.location.pathname)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\ttitle = content.content;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\tif (stringIsNullOrEmpty(title)) {\n\t\t\t\t\ttitleList\n\t\t\t\t\t\t.filter((title) => title.page == \"*\")\n\t\t\t\t\t\t.map((contentAll) => {\n\t\t\t\t\t\t\ttitle = contentAll.content;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (script.length > 0) {\n\t\t\t\tscript\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(scrips) =>\n\t\t\t\t\t\t\tscrips.page == window.location.pathname || scrips.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tscriptList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (meta.length > 0) {\n\t\t\t\tmeta\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(metas) =>\n\t\t\t\t\t\t\tmetas.page == \"*\" || metas.page == window.location.pathname\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tvar list = [];\n\t\t\t\tvar listPage = [];\n\t\t\t\tif (metaList.length > 0) {\n\t\t\t\t\tvar filterList = meta.filter(function (obj) {\n\t\t\t\t\t\tif (obj.content.name === \"description\") {\n\t\t\t\t\t\t\tlist.push(obj.content);\n\t\t\t\t\t\t\tlistPage.push(obj.page);\n\t\t\t\t\t\t\treturn obj.content;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\tvar x = 0;\n\t\t\t\t\twhile (i < metaList.length) {\n\t\t\t\t\t\tif (metaList[i] === list[x]) {\n\t\t\t\t\t\t\tmetaList.splice(i, 1);\n\t\t\t\t\t\t\tx++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlistPage.includes(window.location.pathname)\n\t\t\t\t\t? filterList\n\t\t\t\t\t\t.filter((a) => a.page == window.location.pathname)\n\t\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t})\n\t\t\t\t\t: filterList\n\t\t\t\t\t\t.filter((a) => a.page == \"*\")\n\t\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (link.length > 0) {\n\t\t\t\tlink\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(links) =>\n\t\t\t\t\t\t\tlinks.page == window.location.pathname || links.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tlinkList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (noscript.length > 0) {\n\t\t\t\tnoscript\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(noscripts) =>\n\t\t\t\t\t\t\tnoscripts.page == window.location.pathname ||\n\t\t\t\t\t\t\tnoscripts.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tnoscriptList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (base.length > 0) {\n\t\t\t\tbase\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(bases) =>\n\t\t\t\t\t\t\tbases.page == window.location.pathname || bases.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tbaseList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.setState({ baseList: baseList });\n\t\t\tthis.setState({ brandName: brandNameData });\n\t\t\tthis.setState({ noscriptList: noscriptList });\n\t\t\tthis.setState({ scriptList: scriptList });\n\t\t\tthis.setState({ linkList: linkList });\n\t\t\tthis.setState({ title: siteTitleData });\n\t\t\tthis.setState({ description: siteDescriptionData });\n\t\t\tthis.setState({ metaList: metaList });\n\t\t\tthis.setState({ seo: list });\n\t\t\tthis.setState({ favicon: faviconData });\n\t\t\t//}\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tseo,\n\t\t\tmetaList,\n\t\t\tbrandName,\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\tfavicon,\n\t\t\tlinkList,\n\t\t\tscriptList,\n\t\t\tnoscriptList,\n\t\t\tlocation,\n\t\t\tlanguage,\n\t\t\tseoTitle,\n\t\t\tseoDescription,\n\t\t\tseoImage,\n\t\t\tseoTitleOverride,\n\t\t\tseoDescriptionOverride,\n\t\t\tseoImageOverride,\n\t\t\trawScripts,\n\t\t\tappLoad,\n\t\t} = this.state;\n\n\t\tif (this.state.errorInfo) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t

Something went wrong, please contact admin for help

\n\t\t\t\t\t
{window.navigator.userAgent}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{/* */}\n\n\t\t\t\t\t{/* Set default metas - START */}\n\t\t\t\t\t{/* Site name */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* URL */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Titles */}\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\n\t\t\t\t\t{/* Descriptions */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Icons */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Others */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{/* Set default metas - END */}\n\n\t\t\t\t\t{/* Set dynamic metas - START */}\n\t\t\t\t\t{/* seoTitle */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoTitleOverride && seoTitleOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{seoTitleOverride}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoTitle && seoTitle.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{seoTitle}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\t{/* seoDescriptions */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoDescriptionOverride && seoDescriptionOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoDescription && seoDescription.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\n\t\t\t\t\t{/* seoImages */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoImageOverride && seoImageOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoImage && seoImage.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\t{/* Custom Scripts */}\n\t\t\t\t\t\n\t\t\t\t\t\t{rawScripts && rawScripts.length && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\n\n\t\t\t\t\t{scriptList &&\n\t\t\t\t\t\tscriptList.length > 0 &&\n\t\t\t\t\t\tscriptList.map(({ code, type, id, src }, index) => {\n\t\t\t\t\t\t\t// Create an object to hold the props\n\t\t\t\t\t\t\tconst props = {};\n\n\t\t\t\t\t\t\t// Conditionally add props to the object\n\t\t\t\t\t\t\tif (src !== undefined) {\n\t\t\t\t\t\t\t\tprops.src = src;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (id !== undefined) {\n\t\t\t\t\t\t\t\tprops.id = id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (type !== undefined) {\n\t\t\t\t\t\t\t\tprops.type = type;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\n\t\t\t\t\t{noscriptList &&\n\t\t\t\t\t\tnoscriptList.length > 0 &&\n\t\t\t\t\t\tnoscriptList.map(({ code }, index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t{/* Set dynamic metas - END */}\n\n\t\t\t\t\t{(this.props.appState.isBusy || !this.props.authState.loginStateInitialized) &&\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\n\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t...base,\n\t\t\t\t\t\t\t\tzIndex: \"10000\",\n\t\t\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classNames(\"loading-overlay\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* \n\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/*

{this.props.appState.message}

*/}\n\t\t\t\t\t\n\n\t\t\t\t\t{!isObjectEmpty(this.props.appState.alert) && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!stringIsNullOrEmpty(this.props.appState.alert.html) &&\n\t\t\t\t\t\t\t\t\tthis.props.appState.alert.html}\n\n\t\t\t\t\t\t\t\t{!stringIsNullOrEmpty(this.props.appState.alert.content) &&\n\t\t\t\t\t\t\t\t\t(this.props.appState.alert.html\n\t\t\t\t\t\t\t\t\t\t? this.props.appState.alert.content\n\t\t\t\t\t\t\t\t\t\t: this.props.appState.alert.content\n\t\t\t\t\t\t\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t.map((item, key) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{this.props.authState.loginStateInitialized && !appLoad && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (this.state.pageSidebarToggled) {\n\t\t\t\t\t\t\t\t\t\t\tthis.toggleMobileSidebar();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{this.state.pageContent && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n}\n\nconst mapStateToProps = (state) => ({\n\t...state,\n});\n\nexport default connect(mapStateToProps, {\n\tupdateLoginUser: updateLoginUser,\n\tresetLogin: resetLogin,\n\tperformLogout: performLogout,\n\theartBeat: heartBeat,\n\tsetAppSetting: setAppSetting,\n})(withTranslation()(App));\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport store from \"./ApplicationStore.js\";\nimport App from \"./app.jsx\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport \"./localization/i18n.js\";\n\n// css\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\nimport \"react-quill/dist/quill.snow.css\";\nimport \"codemirror/lib/codemirror.css\";\nimport \"codemirror/theme/material.css\";\nimport \"simple-line-icons/css/simple-line-icons.css\";\nimport \"flag-icon-css/css/flag-icon.min.css\";\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\nimport \"./index.css\";\nimport \"./scss/react.scss\";\nimport \"bootstrap-social/bootstrap-social.css\";\nimport \"bootstrap-daterangepicker/daterangepicker.css\";\nimport \"react-datetime/css/react-datetime.css\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n//js\nimport \"jquery/dist/jquery.min.js\";\nimport \"bootstrap/dist/js/bootstrap.min.js\";\n\n// ========================================\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n","import { templateSettings, template } from \"lodash\";\n///font variable structure:///\n// font size will start with -> themeFontSize\n// font family will start with -> themeFontFamily\n\n///colors (background, border, text color) variable structure:///\n// text color will start with -> themeColorText\n// background color will start with -> themeColorBg\n// border color will start with -> themeColorBorder\n\n///shadow variable structure:///\n// shadow will start with -> themeBoxShadow\n\nconst defaultTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"url(/static/media/bg.edd28cee.png)\",\n themeColorBgBase: \"#070A13\",\n themeImgBgAccountContainer: `null`,\n themeColorBgHomeBalanceTabContainer: \"rgba(27,40,75,0.5)\",\n themeColorBgHomeBalanceTabActiveContainer: \"rgb(27,40,75)\",\n themeColorBgHomeBalanceInputContainer: \"#05102F\",\n themeColorBgPrimary: \"#1B284B\",\n themeColorTextBase: \"#fff\",\n themeColorBgHomeVipContainer: \"linear-gradient(to bottom, #41A3EF, #E2F6FA)\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #1DA1F2\",\n themeBoxShadowHomeBalanceItem: \"inset 0 -7px 10px -7px #1DA1F2\",\n themeBoxShadowHomeBcItem: \"inset 0 2px 4px 0 rgba(29, 161, 242,0.8)\",\n themeColorTextHomeBcItem: \"#29D5D9\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #11042A 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"#131c34\",\n themeColorHomeGameActiveLink: \"#131C34\",\n themeColorIconHomeBalance: \"#29d5d9\",\n themeColorBgModal: '#10182d',\n themeColorTextPrimary: '#29d5d9',\n themeColorBgAllBoxWithIcon: '#1b284b',\n themeColorBgSearch: '#131c34',\n themeColorTextGray2: '#94a3b8',\n themeColorBgCustomFormInput: '#0d1426',\n themeColorBgMytabsActive: '#2c4077',\n themeColorIconDisabled: '#94a3b8',\n themeColorTextGray: '#64748b',\n themeColorBgDropDown: '#1B284B',\n themeColorBgTableHeader: '#10182d',\n themeColorBgDailyCheckinIconContainer: '#1F2E56',\n themeColorBgDailyCheckinDayContainer: '#FFFFFF',\n themeColorBgBottomMenu: 'rgb(15, 23, 42)',\n themeColorBgFooter: '#0f172a',\n themeColorTextBottomMenu: 'rgb(71, 85, 105)',\n themeColorTextBottomMenuActive: '#29D5D9',\n themeColorTextGray4: '#cbd5e1',\n themeColorBgCardHeader: '#002e6c',\n themeColorBorderWalletLine: '#343283',\n themeColorTextHomeCategory:' #94a3b8',\n themeBorderHomeBcItemWrapper: 'unset',\n themeColorTextGray5: '#cbd5e1',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(86, 0, 1) 10%, rgb(86, 0, 1) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#0b101e',\n themeColorBgKeyboardPad: '#131c34',\n themeColorBgShopItem: 'linear-gradient( 180deg, rgba(51, 105, 255, 0.24) -6.16%, rgba(27, 42, 84, 0.24) 110.96%)',\n themeColorBgPopUp: 'rgb(5, 16, 47)',\n themeColorBgReminderYellow: 'rgba(111, 203, 32, 0.12)',\n themeColorBgBody: '#070a13',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#29d5d9',\n themeColorTextStyledSelect: '#29D5D9',\n};\n\nconst darkTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#0d101a\",\n themeImgBgAccountContainer: \"unset\",\n themeColorBgAccountContainer: \"#111526\",\n themeColorBgHomeBalanceTabContainer: \"rgba(27,40,75,0.5)\",\n themeColorBgHomeBalanceTabActiveContainer: \"#111526\",\n themeColorBgHomeBalanceInputContainer: \"#171c31\",\n themeColorBgPrimary: \"#171c31\",\n themeColorTextBase: \"#fff\",\n themeColorBgHomeVipContainer: \"linear-gradient(to bottom, #41A3EF, #E2F6FA)\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #da11cb\",\n themeBoxShadowHomeBalanceItem: \"inset 0 -7px 10px -7px #da11cb\",\n themeBoxShadowHomeBcItem: \"inset 0 2px 4px 0 rgba(218,17,203,0.8)\",\n themeColorTextHomeBcItem: \"#da11cb\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #11042A 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"#111526\",\n themeColorHomeGameActiveLink: \"#131C34\",\n themeColorIconHomeBalance: \"#da11cb\",\n themeColorBgModal: '#0d101a',\n themeColorTextPrimary: '#da11cb',\n themeColorBgAllBoxWithIcon: '#171c31',\n themeColorBgSearch: '#171c31',\n themeColorTextGray2: '#94a3b8',\n themeColorBgCustomFormInput: '#171c31',\n themeColorBgMytabsActive: '#293355',\n themeColorIconDisabled: '#94a3b8',\n themeColorTextGray: '#64748b',\n themeColorBgDropDown: '#293355',\n themeColorBgTableHeader: '#293355',\n themeColorBgDailyCheckinIconContainer: '#1F2E56',\n themeColorBgDailyCheckinDayContainer: '#FFFFFF',\n themeColorBgBottomMenu: '#171c31',\n themeColorBgFooter: '#0f172a',\n themeColorTextBottomMenu: 'rgb(71, 85, 105)',\n themeColorTextBottomMenuActive: '#da11cb',\n themeColorTextGray4: '#cbd5e1',\n themeColorBgCardHeader: '#002e6c',\n themeColorBorderWalletLine: '#343283',\n themeColorTextHomeCategory:' #94a3b8',\n themeBorderHomeBcItemWrapper: 'unset',\n themeColorTextGray5: '#cbd5e1',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(86, 0, 1) 10%, rgb(86, 0, 1) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#0d101a',\n themeColorBgKeyboardPad: '#171c31',\n themeColorBgShopItem: '#171c31',\n themeColorBgPopUp: '#171c31',\n themeColorBgReminderYellow: 'rgba(111, 203, 32, 0.12)',\n themeColorBgBody: '#000',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#FFFFFF',\n themeColorTextStyledSelect: '#FFFFFF',\n};\n\nconst lightTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#e7e6e6\",\n themeImgBgAccountContainer: \"unset\",\n themeColorBgAccountContainer: \"rgb(244, 245, 246)\",\n themeColorBgHomeBalanceTabContainer: \"#f4f5f6\",\n themeColorBgHomeBalanceTabActiveContainer: \"#fff\",\n themeColorBgHomeBalanceInputContainer: \"#f4f5f6\",\n themeColorBgPrimary: \"#fff\",\n themeColorTextBase: \"#000\",\n themeColorBgHomeVipContainer: \"#29d5d9\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #5ae4e7\",\n themeBoxShadowHomeBalanceItem: \"unset\",\n themeBoxShadowHomeBcItem: \"unset\",\n themeColorTextHomeBcItem: \"#000\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #8d849d 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"rgb(244, 245, 246)\",\n themeColorHomeGameActiveLink: \"rgb(244, 245, 246)\",\n themeColorIconHomeBalance: \"#4b4a4a\",\n themeColorBgModal: '#fff',\n themeColorTextPrimary: '#000',\n themeColorBgAllBoxWithIcon: 'rgb(244, 245, 246)',\n themeColorBgSearch: 'rgb(244, 245, 246)',\n themeColorTextGray2: '#222427',\n themeColorBgCustomFormInput: 'rgb(244, 245, 246)',\n themeColorBgMytabsActive: '#fff',\n themeColorIconDisabled: '#353333',\n themeColorTextGray: '#373c45',\n themeColorBgDropDown: '#fff',\n themeColorBgTableHeader: 'rgb(255 255 255)',\n themeColorBgDailyCheckinIconContainer: '#fff',\n themeColorBgDailyCheckinDayContainer: 'rgb(244, 245, 246)',\n themeColorBgBottomMenu: 'rgb(244, 245, 246)',\n themeColorBgFooter: '#656363',\n themeColorTextBottomMenu: '#63717b',\n themeColorTextBottomMenuActive: '#29D5D9',\n themeColorTextGray4: '#444649',\n themeColorBgCardHeader: 'rgb(244, 245, 246)',\n themeColorBorderWalletLine: '#b9b9bd',\n themeColorTextHomeCategory:' #000',\n themeBorderHomeBcItemWrapper: '1px solid #29d5d9',\n themeColorTextGray5: '#000',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(255, 255, 255) 10%, rgb(221, 221, 221) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#d1d1d1',\n themeColorBgKeyboardPad: '#a7a7a7',\n themeColorBgShopItem: 'rgb(244, 245, 246)',\n themeColorBgPopUp: 'rgb(63 63 63)',\n themeColorBgReminderYellow: '#f4f5f6',\n themeColorBgBody: '#e7e6e6',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#000',\n themeColorTextStyledSelect: '#000',\n};\n\nconst forestTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#194C38\",\n themeColorTextBase: \"#fff\",\n themeMinWidthHtml: '500px',\n}\n\nconst template1Theme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#222222\",\n themeColorBgPrimary: \"#2D3035\",\n themeColorBgSecondary: \"#323232\",\n themeColorBgSpecial: '#00000080',\n \n themeColorTextBase: \"#fff\",\n themeColorTextPrimary: '#000000',\n themeColorTextSecondary: '#45FF8B',\n themeColorTextPlaceholder: '#878787',\n themeColorTextSpecial:'#FCE977',\n themeColorTextTableHeader:'#00B052',\n\n\n themeColorBgSideMenuActive: '#003418',\n themeColorBgNav: '#0A0A0A',\n themeColorBgTableHeader: '#152F21',\n themeColorBgTableRow:'#004428',\n \n // themeColorBgBtnDefault: '#2E2F33',\n themeColorBgBtnPrimary: '#45FF8B',\n themeColorBgBtnSecondary: '#45FF8B',\n themeColorBgBtnSubmit: '#45FF8B',\n themeColorBgBtnSpecial: '#E6C252',\n themeColorBgBtnInfo: '#45FF8B',\n themeColorBgBtnLogin: 'linear-gradient(90deg, #FFD963 0%, #EBB614 100%)',\n // themeColorBgInputDefault: '#282828',\n\n themeColorBgInputPrimary: '#FFFFFF',\n themeColorBgInputSpecial: '#585858',\n\n themeMinWidthHtml: '500px',\n}\n\nconst themeGenerator = (activeTheme, replaceValue = {}) => {\n let selectedThemeString = JSON.stringify(template1Theme);\n\n // if (activeTheme === \"default\") {\n // selectedThemeString = JSON.stringify(defaultTheme);\n // } else if (activeTheme === \"dark\") {\n // selectedThemeString = JSON.stringify(darkTheme);\n // } else if (activeTheme === \"light\") {\n // selectedThemeString = JSON.stringify(lightTheme);\n // } else if (activeTheme === \"forest\") {\n // selectedThemeString = JSON.stringify(forestTheme);\n // } else if (activeTheme === \"template1\") {\n // selectedThemeString = JSON.stringify(template1Theme);\n // }\n\n templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n const compiled = template(selectedThemeString);\n\n const result = compiled(replaceValue);\n\n return JSON.parse(result);\n};\n\nconst themeIcons = {\n ///general\n menu: \"menu\",\n menu3: \"menu3\",\n angleRight: \"chevron-right\",\n angleLeft: \"chevron-left\",\n angleDown: \"chevron-down\",\n angleUp: \"chevron-up\",\n search: \"search2\",\n wallet: \"okup_wallet\",\n moreVertical: \"more-vertical\",\n home: \"home\",\n activity: \"news-paper\",\n account: \"user-solid-circle\",\n downlines: \"icon-downline\",\n referral: \"icon-referral\",\n sales: \"chart1\",\n home1: \"home1\",\n star: \"star\",\n close: \"close\",\n qrcode: \"qrcode\",\n user: \"user\",\n delete: \"trash2\",\n upload: \"upload4\",\n card: \"credit-card\",\n refresh: \"spinner11\",\n claim: \"download5\",\n okup_withdraw: \"okup_withdraw\",\n eye: \"eye\",\n eyeblocked: \"eye-blocked\",\n eyeBlocked: \"eye-blocked\",\n image: \"image\",\n bank: \"bank\",\n info: \"info\",\n cog: \"cog\",\n alertCircle: \"alert-circle\",\n edit: \"edit-pencil\",\n statistic: \"stats-bars2\",\n copy: \"copy1\",\n checkmark: \"checkmark\",\n huione: \"huione\",\n usdt: \"usdt\",\n bubbles: \"bubbles\",\n profile: \"profile\",\n usercheck: \"user-check\",\n giftpace: \"giftpace\",\n huione: \"huione\",\n usdt: \"usdt\",\n topkash: \"topkash\",\n sliderArrowRight: \"slider-arrow-right\",\n sliderArrowLeft: \"slider-arrow-left\",\n wingWeiluy:\"wing-weiluy\",\n facebook2:\"facebook2\",\n telegram:\"telegram\",\n whatsapp:\"whatsapp\",\n instagram:\"instagram\",\n bubbles:\"bubbles\",\n exclamation_solid:\"exclamation-solid\",\n menu1: \"menu1\",\n livechat_mobile:\"livechat-mobile\",\n envelope4:\"envelope4\",\n calender4:\"calender4\",\n deposit: \"icon-deposit\",\n withdraw: \"icon-withdraw\",\n refresh: \"icon-refresh\",\n checkmarkOutline: \"checkmark-outline\",\n gameCount: \"icon-bullet\",\n starEmpty: \"star-empty\",\n starFull: \"star-full\",\n fullscreen: \"enlarge\",\n exitFullScreen: \"shrink\",\n iconReward:\"icon_reward\",\n dailyTick:\"daily-tick\",\n refreshTime:\"refresh-time\",\n dailySuccess:\"daily-success\",\n exclamation:\"exclamation\",\n unionIcon: \"union-icon\",\n download:\"download5\",\n\n\n\n ///dashboard\n dashboardAnnouncement: \"bullhorn\",\n dashboardNotification: \"bell\",\n dashboardBalanceDeposit: \"plus\",\n dashboardBalanceWithdraw: \"okup_withdraw\",\n dashboardBalanceRestore: \"undo\",\n dashboardBalanceTransfer: \"okup_transfer\",\n dashboardBalanceWallet: \"okup_wallet\",\n dashboardCommission: \"currency-dollar\",\n dashboardCommissionClaim: \"arrow-down3\",\n dashboardCommissionDownlines: \"share-2\",\n dashboardCommissionReferral: \"users2\",\n dashboardCommissionSales: \"chart1\",\n dashboardPoints: \"star-full\",\n dashboardPointsCheckin: \"calendar1\",\n dashboardPointsShop: \"shopping-bag\",\n dashboardPointsHistory: \"history\",\n dashboardPointsRecord: \"gift\",\n lockClosed: \"lock-closed\",\n\n ///settings\n settingsLanguage: \"conversation\",\n settingsBank: \"library\",\n settingsPassword: \"icon-password\",\n settingsPin: \"calculator1\",\n settingsLivechat: \"help-circle\",\n settingsTerms: \"file-text2\",\n settingsLogout: \"log-out\",\n playButton: \"play3\",\n pauseButton: \"pause2\",\n loop: \"loop\",\n volumeHigh: \"volume-high\",\n volumeMute: \"volume-mute2\",\n previousBtn: \"previous2\",\n nextBtn: \"next2\",\n shuffleBtn: \"shuffle2\",\n musicNotes: \"music-notes\",\n musicPlaylist: \"music-playlist\",\n addFavourite: \"plus2\",\n addedMusic: \"check\",\n\n //profile\n profilePhone: 'phone',\n profileMail: 'mail1',\n\n \n};\n\nexport { defaultTheme, darkTheme, lightTheme, forestTheme, template1Theme, themeGenerator, themeIcons };\n","import { map } from \"lodash\";\nimport React, { useEffect } from \"react\";\nimport ContentLoader from \"react-content-loader\";\nimport LazyLoad from \"react-lazyload\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport Skeleton from \"react-loading-skeleton\";\nimport PlaceholderLoading from \"react-placeholder-loading\";\n\nconst LoadingGames = (props) => {\n // Get values from props\n // const { rows, columns, coverHeight, coverWidth, padding, speed } = props;\n\n // Hardcoded values\n const rows = props.rows || 2;\n const columns = props.rows || 6;\n const coverHeight = 215;\n const coverWidth = 169;\n const padding = 10;\n const speed = 1;\n\n const coverHeightWithPadding = coverHeight + padding;\n const coverWidthWithPadding = coverWidth + padding;\n const initial = 35;\n const covers = Array(columns * rows).fill(1);\n\n useEffect(() => {}, []);\n\n return (\n <>\n \n {props.banner? : \"\"}\n {/* {props.banner ? (\n
\n \n
\n ) : (\n \"\"\n )} */}\n {props.title ? (\n
\n {/* */}\n {/* */}\n
\n ) : (\n \"\"\n )}\n \n
\n {map(covers, (item, index) => {\n return (\n \n // \n );\n })}\n \n
\n \n
\n \n\n\n );\n};\n\n\n\nexport default LoadingGames;\n","import React from 'react'\nimport { stringIsNullOrEmpty } from '../../util/Util';\n \n\nclass ProviderIconDisplay {\n constructor({imgClassName, imgSrc, imgAlt }) {\n this.imgClassName = imgClassName;\n this.imgSrc = imgSrc;\n this.imgAlt = imgAlt;\n }\n}\n\nconst ProviderIcon = React.forwardRef((props, ref) => {\n const {\n containerClassName,\n imgLightMode,\n imgDarkMode,\n imgAlt\n } = props\n\n return (\n
\n\t\t\t\t{imgLightMode && !stringIsNullOrEmpty(imgLightMode.imgSrc) && (\n \n )}\n \n {imgDarkMode && !stringIsNullOrEmpty(imgDarkMode.imgSrc) && (\n \n )}\n\t\t
\n )\n})\n\nexport default ProviderIcon\nexport { ProviderIconDisplay };\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}