{"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/FloatingChat/FloatingChat.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/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","pages lazy /^/.//.*//home//News$/ groupOptions: {} namespace object","util/Util.js","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/template_1/share/ig.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","minCoinTarget","companyIcons","bannerAPK","floatingChat","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","chatRef","setSpinWheelEnabled","setShowSpinWheelForGuest","clickCloseSpinWheel","setClickCloseSpinWheel","showSpinWheelListPopup","setShowSpinWheelListPopup","spinWheelImg","setSpinWheelImg","iconColor","setIconColor","spinWheelIcon","iconName","showSpinWheelForGuestTemp","parentElement","querySelector","backgroundColor","getComputedStyle","isDarkTheme","isDarkBackground","changeTopPos","changeBtmPos","imgLoad","setImgLoad","bgColor","rgb","match","parseInt","stopPropagation","onLoad","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","CloseBtn","handleDownloadAPK","fileName","substring","lastIndexOf","download","body","appendChild","click","removeChild","BannerAPKMobile","FloatingChat","forwardRef","shouldShowFloatChannel","setShouldShowFloatChannel","clickCloseFloatChannel","setClickCloseFloatChannel","FloatChannelImg","setFloatChannelImg","channelList","setChannelList","displayChannelList","setDisplayChannelList","isChannelListOpen","setIsChannelListOpen","spinnerWheelExist","setSpinnerWheelExist","useImperativeHandle","floatingChannel","imageUrl","cta","rel","animationDelay","channelImage","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","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","getFooterSections","currentYear","getFullYear","sections","settings","sectionJson","parse","every","blocks","block_order","validateFooterSections","error","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","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","initRebateCommission","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","transLoading","setTransLoading","latestDepositList","setLatestDepositList","latestWithdrawalList","setLatestWithdrawalList","getWithdrawalDepositTransaction","responseJson2","latestDepositData","transactionTypeId","latestWithdrawalData","amount","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","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","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","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","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","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","mlmIcon","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.0d85a3b2.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// 1 day\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 minCoinTarget: 0,\n },\n companyIcons:[],\n bannerAPK:{},\n floatingChat:{},\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 floatingChat:action.floatingChat,\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 minCoinTarget: 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 minCoinTarget: member[\"minCoinTarget\"]\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 floatingChat,\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 floatingChat:floatingChat,\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 const [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 const [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 const hasShownError = useRef(false); // Ref to track if the error message has been shown\n\n useEffect(() => {\n const utcTimezone = moment.utc().format(\"h:mm:ss A\");\n setUtcTimeForTooltip(utcTimezone);\n firstLoad = true;\n }, []);\n\n\n useEffect(() => {\n if (shouldShowSpinWheel && spinWheelListModal) {\n getMySpins();\n\n // Create interval for spin wheel heartbeat\n intervalRef.current = setInterval(() => {\n // Call the spin wheel heartbeat function\n getMySpins();\n }, 10000);\n\n return () => {\n // Cleanup the interval on component unmount\n clearInterval(intervalRef.current);\n };\n }\n }, [shouldShowSpinWheel, spinWheelListModal]);\n\n useEffect(() => {\n\n if (heartBeat) {\n //setIsLogin(true);\n init();\n }\n }, [heartBeat]);\n\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n async function getCompanyIcon() {\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage || coinIcon.defaultImage);\n }\n\n const emptyPromoIcon = find(companyIcons, { iconCategory: \"empty_promotion\" });\n if (emptyPromoIcon) {\n setEmptyPromoIcon(emptyPromoIcon.iconImage || emptyPromoIcon.defaultImage);\n }\n\n }\n\n\n async function init() {\n // Get spinwheel settings\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 showSpinWheelForGuest = 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 showSpinWheelForGuest = true;\n }\n\n if (heartBeat && spinWheelEnabled) {\n setShouldShowSpinWheel(true);\n } else if (!heartBeat && spinWheelEnabled && showSpinWheelForGuest) {\n setShouldShowSpinWheel(true);\n }\n }\n }\n\n async function getMySpins(page) {\n try {\n if (firstLoad) {\n _dispatch(setBusy());\n setIsLoadingList(true);\n }\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 let responseJson = await ApiEngine.get(apiUrl);\n\n if (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 < paginatedData.length; i++) {\n paginatedData[i][\"expiryDateTxt\"] = calculateTimeLeft(paginatedData[i][\"expiryDate\"]);\n };\n\n setSpinWheelList(paginatedData);\n var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n updatePageinationPageNum(Math.ceil(totalCount / itemsPerPage));\n } else {\n _dispatch(\n showResponseMessage(false, \"ERROR_LOADING_MY_SPINS\")\n );\n\n // If an error occurs, handle the interval clearing logic\n if (!hasShownError.current) {\n hasShownError.current = true; // Mark the error as shown\n clearInterval(intervalRef.current); // Clear the interval\n _dispatch(showResponseMessage(false, \"ERROR_LOADING_MY_SPINS\"));\n }\n }\n\n if (firstLoad) {\n _dispatch(setIdle());\n setIsLoadingList(false);\n firstLoad = false;\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n return;\n }\n\n async function initSpin(memberSpinWheelId) {\n {\n openSpinWheelAsModal && (\n // Clear iframe\n setIframeSrc('')\n )\n }\n\n _dispatch(setBusy());\n setIsLoadingBtn(memberSpinWheelId);\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_IMREWARD_SPIN,\n {\n \"memberSpinWheelId\": memberSpinWheelId,\n }\n );\n\n _dispatch(setIdle());\n setIsLoadingBtn(false);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (!stringIsNullOrEmpty(responseJson[ApiKey._API_DATA_KEY].url)) {\n {\n openSpinWheelAsModal ? (\n setIframeSrc(responseJson[ApiKey._API_DATA_KEY].url)\n ) : (\n // Open new window\n window.open(responseJson[ApiKey._API_DATA_KEY].url, '_blank')\n )\n }\n }\n } else {\n _dispatch(\n showMessage({\n type: AlertTypes._ERROR,\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n }\n }\n\n\n function updatePageinationPageNum(pageValue) {\n setPaginationPageNum(prevValue => pageValue);\n }\n\n const calculateTimeLeft = (expiryDate) => {\n\n if (!expiryDate) {\n return \"N/A\";\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 \n {t(\"SPINS_WHEEL_REMINDER\")}\n
\n\n\n {isLoadingList &&\n
\n
\n \n
\n
\n }\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 \n \n {t(\"EXPIRES_IN\")}: {item.expiryDateTxt}\n \n
\n\n {item.completedAt == null ? (\n isLoadingBtn == item.id ?\n
\n \n
\n :\n {\n initSpin(item.id)\n // setIsModalOpen(!isModalOpen);\n }}\n >\n
{t(\"SPIN_NOW\")}
\n \n\n ) : (\n
\n {t(\"COMPLETED_ON\")} {item.completedAt}\n
\n )}\n\n
\n ))}\n
\n\n {paginationPageNum > 1 && (\n \n )}\n \n )}\n\n\n {!isLoadingList && spinWheelList && spinWheelList.length == 0 && (\n
\n
\n \n
{t(\"NO_SPIN_WHEEL_TOKENS\")}
\n
\n
\n )}\n\n
\n \n
\n \n \n \n\n );\n};\n\nexport default SpinWheelListPopUpModal;\n","import React, { useCallback, 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,chatRef }) => {\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 useEffect(()=>{\n\n if(!shouldShowSpinWheel){\n if (chatRef.current) {\n chatRef.current.changeBtmPos();\n }\n }else{\n if (chatRef.current) {\n chatRef.current.changeTopPos();\n }\n }\n\n },[shouldShowSpinWheel])\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 && _location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\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 {\n e.stopPropagation();\n setShouldShowSpinWheel(false);\n setClickCloseSpinWheel(true);\n }}\n >\n \n
\n )}\n \"spin-wheel-icon\" setImgLoad(true)} />\n {imgLoad && (
{t(\"SPIN_NOW\")}
)}\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,useImperativeHandle,forwardRef } 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/floatingchat.css\"\nimport { useLocation,useHistory } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\n\n\nconst FloatingChat = forwardRef((props, ref) => {\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [shouldShowFloatChannel, setShouldShowFloatChannel] = useState(false);\n const [clickCloseFloatChannel, setClickCloseFloatChannel] = useState(false);\n const [FloatChannelImg,setFloatChannelImg]=useState(\"\");\n\n const [iconColor, setIconColor] = useState('#FFF');\n const floatingChat=useSelector((state)=>state.appState.floatingChat);\n const location = useLocation();\n const[channelList,setChannelList]=useState();\n const[displayChannelList,setDisplayChannelList]=useState();\n\n\n const [isChannelListOpen, setIsChannelListOpen] = useState(false);\n var _history = useHistory();\n const [spinnerWheelExist,setSpinnerWheelExist]=useState(true);\n\n useImperativeHandle(ref, () => ({\n changeBtmPos: () => {\n setSpinnerWheelExist(false);\n },\n changeTopPos: () => {\n setSpinnerWheelExist(true);\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\t}, []);\n\n\n async function init() {\n\n let floatingChannel=floatingChat;\n \n if(floatingChannel){\n if(!stringIsNullOrEmpty(floatingChannel?.imageUrl)){\n\n setFloatChannelImg(floatingChannel.imageUrl);\n setChannelList(floatingChannel.channelList);\n //setDisplayChannelList(floatingChannel.channelList);\n \n if(!clickCloseFloatChannel){\n setShouldShowFloatChannel(true);\n }\n\n }else{\n setShouldShowFloatChannel(false);\n } \n }else{\n setShouldShowFloatChannel(false);\n }\n }\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\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowFloatChannel(false);\n setClickCloseFloatChannel(true);\n }}\n >\n \n \n );\n\n const [imgLoad, setImgLoad] = useState(false);\n\t\n return (\n <>\n {shouldShowFloatChannel && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n
\n
\n {channelList && channelList.map((icon, index) => (\n {\n setIsChannelListOpen(false);\n }}\n >\n \"Icon\"\n \n ))}\n
\n \n
\n )}\n \n );\n \n\n});\n\nexport default FloatingChat;\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\";\nimport FloatingChat from \"components/FloatingChat/FloatingChat\";\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 floatingChat=useSelector((state)=>state.appState.floatingChat);\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\tconst chatRef = useRef(null);\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\tconsole.log(\"floatingchat\",floatingChat);\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{/* Floating Chat */}\n\t\t{floatingChat != \"\" && (\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\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}}\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
{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{ bannerAPK?.displayMode===2 &&(\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\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DOWNLOAD\")}
\n\t\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{process.env.REACT_APP_VERSION && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tBuild v{process.env.REACT_APP_VERSION}\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\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdailyCheckInExist && (\n\t\t\t\t\t\t\t\t\t\t
{ \n\t\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\t\tif(dailyCheckInExist){\n\t\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\t}else{\n\t\t\n\t\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\t\tshowMessage({\n\t\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\t\tcustomIcon: (\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
\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\tcontent: t(\"DAILY_CHECKIN_EMPTY\"),\n\t\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\t// console.log(\"hi\");\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\tsetOpenMobileSideMenu(!openMobileSideMenu)\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}else{\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\tsetOpenMobileSideMenu(false)\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\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\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(\"DAILY_BONUS_CLAIM\")}
\n\t\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\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{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\t\t{ spinWheelMenuItem && shouldShowSpinWheel &&(\n\t\t\t\t\t\t\t\t\t
{ \n\t\t\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\t\t_dispatch(setLoginModal(true));\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_dispatch(setSpinWheelListModal(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\tsetOpenMobileSideMenu(false);\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>\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(\"SPIN_WHEEL_BONUS\")}
\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{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\t{process.env.REACT_APP_VERSION && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tBuild v{process.env.REACT_APP_VERSION}\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\tgetFooterSections();\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\tminCoinTarget: userData.minCoinTarget\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\tminCoinTarget: 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,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\"","module.exports = __webpack_public_path__ + \"static/media/trophy-gif.af045908.gif\";","import React, { forwardRef, useCallback, useEffect, useImperativeHandle, 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 = forwardRef((props,ref) => {\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\tuseImperativeHandle(ref, () => ({\n\t\t\tinitRebateCommission: () => {\n\t\t\t\tGetReferralBonus()\n\t\t\t},\n\t}));\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 const [isLogin, setIsLogin] = useState(false);\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 }, []);\n\n useEffect(() => {\n if (heartBeat) {\n setIsLogin(true);\n } else {\n setIsLogin(false);\n setShowAnnouncementModal(false);\n }\n }, [heartBeat]);\n\n useEffect(() => {\n if (activeLanguageId > 0) {\n getAnnouncement();\n }\n }, [activeLanguageId, isLogin]);\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 {/* {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,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 = 495;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/LiveChat\": [\n\t\t744,\n\t\t27\n\t],\n\t\"./template_1/home/LiveChat\": [\n\t\t381,\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 = 496;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Settings\": [\n\t\t698,\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 = 497;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Kpi\": [\n\t\t699,\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 = 498;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/News\": [\n\t\t700,\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 = 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/NewsDetails\": [\n\t\t701,\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 = 500;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameLobby\": [\n\t\t742,\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 = 501;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/UnderMaintenance\": [\n\t\t702,\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 = 502;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/report/GameDetails\": [\n\t\t703,\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 = 503;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/ContactForm\": [\n\t\t704,\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 = 504;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/LiveChat\": [\n\t\t381,\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 = 505;\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 = 506;","var map = {\n\t\"./template_1/home/Promotion\": [\n\t\t705,\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 = 507;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/PromotionInfo\": [\n\t\t706,\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 = 508;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/CustomPage\": [\n\t\t707,\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 = 509;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameList\": [\n\t\t747,\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 = 510;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Referral.js\": [\n\t\t746,\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 = 511;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Vip.js\": [\n\t\t743,\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 = 512;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Rebate.js\": [\n\t\t708,\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 = 513;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/RecentGames.js\": [\n\t\t709,\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 = 514;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/HotGames.js\": [\n\t\t710,\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 = 515;\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 = 516;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GamePage2\": [\n\t\t745,\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 = 517;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/profile/SpinWheelList\": [\n\t\t711,\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 = 518;\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 = \"data:image/png;base64,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\"","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\t726,\n\t\t33\n\t],\n\t\"./blue.min.css\": [\n\t\t727,\n\t\t34\n\t],\n\t\"./dhakacity.css\": [\n\t\t728,\n\t\t35\n\t],\n\t\"./el77.css\": [\n\t\t729,\n\t\t36\n\t],\n\t\"./fengshuibet.css\": [\n\t\t730,\n\t\t37\n\t],\n\t\"./joyi8.css\": [\n\t\t731,\n\t\t38\n\t],\n\t\"./kantipur.css\": [\n\t\t732,\n\t\t39\n\t],\n\t\"./kantipur777.css\": [\n\t\t733,\n\t\t40\n\t],\n\t\"./pkspin.css\": [\n\t\t734,\n\t\t41\n\t],\n\t\"./pkspinbase.css\": [\n\t\t735,\n\t\t42\n\t],\n\t\"./root.css\": [\n\t\t736,\n\t\t43\n\t],\n\t\"./root9loonbet.css\": [\n\t\t737,\n\t\t44\n\t],\n\t\"./rootHk.css\": [\n\t\t738,\n\t\t45\n\t],\n\t\"./rootIndia.css\": [\n\t\t739,\n\t\t46\n\t],\n\t\"./rootbase.css\": [\n\t\t740,\n\t\t47\n\t],\n\t\"./rootbaseS8.css\": [\n\t\t741,\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 = 677;\nmodule.exports = webpackAsyncContext;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABmJLR0QA/wD/AP+gvaeTAAAN2UlEQVR4nO3daawkVR2G8eciMoDiLqLouAIq7hqjxn1FZVFQXHBfoiYORiQuuDAoguKu8ZsSFVFRXEEZcN/XiBJB9oHBBf0g64wIzOiHuhMrd6bv9Pl3V51zqp5fUslk0vf223VPnep6u7oKJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSpGot5A6g3twaeDjwUOC+wK0WF4ArF5ezgd8DvwGuyJBR0hztBLwCWAPcAPx3yuV64DTg5Yu/Q1JFdgbeBFzO9Bv9pOXvwGE4EUhVeBRwLrNv+EuXi4En9Pg6JCVYAI4BNjL/jX/zshE4GrsjqSgrgC/Q3Ya/dDkZDwmkItwE+Ab9bfybl1OB7Xt4fZImWAA+Tf8b/+blBDwckLJZRb6Nf/Pyus5fpaQt3BtYT/4JYD2wV8evVVLLAvBz8m/8m5ef46GA1JuXk3+jX7q8rMsXrG44a9fnVsB5wK7Bn78OOIlmr70W2ASsBB4JvADYJfh7/0lzKHBl8OclTeETxPfSnwJuv8zvvjlwHM2kEPn9n5jbq5S0hQcBN5K+YW4EXp3wPAeS9uWhzcuNixklzdkC8GNie+bVgec7IvhcFoJSB15KbIP8AbBd4Pm2W/zZyHO+NPB8kia4BfA30jfE/wD3meF596QpDVOf9x/8/2Ijkmb0cWJ74vfP4bmPCz73x+bw3NLo3Y9YIXcZTas/q52BSwLPbyEozWgB+BGxPfDBc8zxvGCGn2EhKIW9hNiG970OsqwJZnlxB1mkwctV/E0SLQQvx0JQSvZRYnvc93WY6f3BTB/pMJM0OHvTXJo7V/E3ySyF4AM7zCUNxgLwQ/IXf5NEC8GfYiEobdOLKKf4m+S0YMZDeswoVWcX4K+UU/xNsgfxQvCWPeaUqvIRyiv+JokWgh/OkFUqXqnF3yTRQvAG4AH9x5XKFv3m3XNzhF108DK5LASlKR1C+cXfJNFC8IU5wkqlqaX4myRaCP4dC0GJDxHbgx6bI+wE7yP2Gj6YI6xUivtSV/E3ySyF4P37jyuV4fvUV/xNEi0Ef4KFoEboBcQ2mO/mCDulaCH4/BxhpVx2Af5CrPi7d4a805qlELxFhrxSFh+g/uJvkmgheFyOsFLfhlL8TWIhKC0jWvw9J0fYoOcSe40/xkJQAxb9Ln3Jxd8k0UKwj2saSL2LvjUuvfibJFoI1nKoIyWJfn32mBxh5+RYYq85x9ebpc6MdW84y7ueEr7nIM1F9Hi4puJvkmghWMI3HaWZRTeAGou/Sb7DeCdAjdjYir9JxnoIpJGLnhVXc/E3SbQQrOHsR2kL0b3eOoa519sZWIvvhjQS0ePeg3KE7clzsA/RCBxEbKCf0VO+BeAhNNciPGTx332dgnsGTowasJsBlxJ7q7tXD/n2A87fyvOfBzyzh+ffi+a1pq6fS2nWrVS0Y4jt4foo/l4LbFomwybgNT3kKHkdSWF7Eiv++ti77U3zldttZbme7s/Ci75Luo5mHUtFWkO5x7fHJ+T5VA95oj3Jmh6ySckOJDagT+8p37qETJf0lOn0hEzt5cCe8klTmeWMv77e0k7z9r99GNCHPYkVgpfQrHOpCEcT25O9t8eMqdn6Ei0E39NjRmmiewH/Jn0Ar6Pfj7VKnQBmOUOwj49NpWV9mzqOY0udACBeCPbVn0hb9SxiA7evM/7aSp4AIH7q9AEZskrsBFxMPW9dS58A7kW551BIW3gPsT1Wn8VfW+kTAMQLwXfnCKvxuid1FH9tNUwA0ULQMwTVq1OJ7alynsBSwwQAniGowh1AbIDmKP7aapkAIF4I7p8jrMajtuKvraYJYJZC0DME1ZmjiO2Zjs4RdomaJgBoytLIul6dIatG4B7UV/y11TYB7ES8ENwjQ14N3CnE9kilfHOttgkA4oXgaTnCarj2IzYQcxd/bTVOABA/1XrfHGE1PCvY+jX0trWUUPy11ToBRAvBi4AdM+TVwBxJbA9UQvHXVusEAPFC8F05wmo4VgLrSR94pRR/bTVPANFCcANNeSuFfIvYnufZOcJuQ80TAMQvufbNHGFVv6cRG3AlFX9ttU8AEC8E+7jfgQZkBc2NMlIHWmnFX9sQJoDo1ZcuxEJQCd5FbE9T8nXqhjABQPz6i+/MEVb1WQlcS/oAK7H4axvKBDBLIXj3DHlVmW8Q28OUWPy1DWUCgHgh+PUcYVWPpxIbWDVcnHJIEwDEC8Fn5Air8u0AnEv6gCq5+Gsb2gQQLQQvwEJQW/EOYnuUkou/tqFNABAvBN+eI6zKdRdixV9NV6Qd4gQQvUDLBuBu/cdVqb5GbE/yrBxhg4Y4AUBTvkb+dl/NEVbleQqxAVRD8dc21AkALAQVNPTir23IE8AsheCKDHlViCOI7TlqKf7ahjwBQLwQfFuOsMpvDMVf29AngGghuB4LwVH6KrE9Rk3FX9vQJwCIF4In5wirfJ5MbKDUVvy1jWECgPhdm56eI6z6twPwZ9IHyH+o+/5zY5kAovdtPB8LwVF4G7E9RO13oB3LBADxOze/NUdY9efOwDWkD4xai7+2MU0AsxSCd82QVz35CrE9wwE5ws7ZmCYAaMrayN/6yznCqntPIjYgai7+2sY2AUC8ENwnR1h1ZwfgHNIHwnXUXfy1jXECsBAUAG8htieovfhrG+MEAPFC8M05wmr+osXfWpoyaSg2Mv1r35gpYxei1xC8hmbsqHInEdsDDKH4a/sH07/2yzNl7MoBxMbASTnCan7GXvy1fZ3pX/8QT42NFoJPyxFWs9seOIv0P/iQir+2xzH9OnhipoxdihaC5wA3zZBXMzqc2Iw/pOJvqU+y7df/8WzpuvduYmPi8BxhFbc7cDXpf+i1DKv4W2qB5g45G9jyta+nuVjmQrZ03YsWglfTjClV4ovEZvqhFX+T3AF4FfDhxeWVwK5ZE/UnWgh+MUdYpXsMsIn0P/CaHGGVRbQQHGI3MigWf5pGtBA8GwvBor2J2Mx+VI6wyipaCB6WI6y2bTfgStL/oEP4qq/SRb8ybCFYqC8Qm9H3zxFWRYgWgifmCKvJHo3Fn2KiheATcoTVlrYH/ojFn2KiheCfsBAswmHEZvDVGbKqTEcRG0NvzBFW/3dH4CrS/3AXM+wz/pazAjgU+BXNjVGuXfz3KsZ7EYxoIXgVzRhUJidg8Zdid+APTF4vZzLehnt/YmPphBxhBY8lVvydmiNsAVaw/MbfngTG+k4gUghuohmL6lH0jL9/05Q+Y3Qo06+n12fKmFu0EDyLZkyqJ28g9nZtzGf8/Zrp19MvM2UsQbQQfEOOsGN0B+AK0v9AlwI7Z8hbipTrIl6TKWMJdgIuIn18WQj25HPEZuj9coQtSMoEcFWmjKWIFoKfzRF2TKJn/J2SI2xhPARIcwrp42wTzRhVB7ZnuhZ76TLm4q9tFdOvs7GWgG3RQvAPWAh2IqXFbi+rM2Qt0Qqaj/i2tb7OpLmTkpqxExlzh2bIOmjR4u8ixnvG39bszvKTwJhPBNqaaCF4Bc2Y1Zx8hthMPPbib2t2oHmL/0uaYvAa4BeL/+eef0v7ERt7n8mQdZAeRaz4Oy1HWA1StBD0DMEZ3YTpjluXLtcBe2TIq2G6B54hmEVKc91eVmfIqmFbTWws+olK0K7Eir9LGPcZf+qGZwj27Hgs/lSWaCF4fI6wNdubtPvZW/ypL5FCcCNw/xxha3Uy6St5A01ZI3XprjT3UUwdn1/KEbZGexL72O/IHGE1SkcSexdw9xxhaxO5Y8tFwI45wmqUVgDnkz5Oj8gRtjYXkL5i982SVGO2L+nj9KwsSStyN9JX6rdyBJVoxl7qeL19lqSVeD7pK/SBWZJKzdmmN5A2XvfJknSC7XIHWOJBiY8/neauQFIOFwDfSfyZonZYpU0AuyU+/uROUkjT+17i43ftJEVQaRNA6vHR2Z2kkKZ3QeLjb9tJiqDSJoDU76Nf1kkKaXr/Snx8UTcULW0CSL0c9c07SSFN706Jjy/qisulTQBXJz7+AZ2kkKaXeov5KztJEVTaBHBe4uMP6iSFNL2DEx+fOsZHZR/SPlO9Ed8FKJ+H4Hkrc3Vb0k+sOB+4dY6wGrVb0uzNU8bq1RRWApbou6TPqj/CUyzVn9sA3yd9nJ6YI2xtXkX6iv0v8FeaL2gs9B9ZI/IkYC2xMfrsDHmXVeLGcjPgYuJnTF1IM9OeS3NH4OvnlEvjtB1wO5pj9xfRXK0qYh3Ndwccj1M4nNgM6+JS6rKKApX4DgCaq/r+GViZO4g0B+uA+9Bctq4opZ0HsNkG4BU0M6dUu1UUuPFDc+edUq2luQDjg3MHkWZwInBs7hCTlHoIsNmOwA+AR+YOIgWcSXN/wGtzB5mk9AkAmk8DfgHcM3cQKcFlwCOAv+UOspxSO4C2fwKPpplNpRqcQzNmi974oY4JAOBy4PHAqZlzSNtyBs3Gvy53kKF6Cc051bk/13VxaS/rgbdQz061arsBHyV2z3YXl3kuG4CPAbtToRpKwOXckeb0zBeSfkVhaRa/Bb4MfJ7mELVKtU8AbSuBhwMPW/z3bRYX35JpFjcAV9BcyedC4PfA74C/5AwlSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkif8Bgc1VYlZNH4UAAAAASUVORK5CYII=\"","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 setReferralCodeString(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 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 }\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 { setReferralCodeString(e.target.value); 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\tisValidLocale(locale) {\n\t\treturn this.VALID_LOCALES.includes(locale);\n\t}\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\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 var floatingChat= responseJson[ApiKey._API_DATA_KEY].floatingChat;\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\tfloatingChat,\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 mlmIcon:\"mlm-icon\",\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":""}