{"version":3,"sources":["util/Constant.js","assets/img/new_icons/checked.png","redux/AppReducer.js","redux/AuthReducer.js","redux/LanguageReducer.js","ApplicationStore.js","components/template_1/Loading.js","components/template_1/GameLobbyModal.js","components/custom/Icon.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","assets/img/icon/icon-bottom-home.svg","assets/img/icon/icon-bottom-referral.svg","assets/img/icon/icon-bottom-promo.svg","components/custom/Input.js","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","util/Util.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","components/custom/PaginationBar.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"],"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","_API_GET_REFERRAL_COMMISSION_RATE","_API_GET_HOT_GAMES","_API_GET_REFERRAL_FAQ","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","_DAY_OPTION","value","label","module","exports","_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","Object","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","affiliateLink","isCasinoLobbyEnabled","_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","props","_dispatch","useDispatch","useSelector","logo","setLogo","useState","useEffect","async","setBusy","find","iconCategory","iconImage","defaultImage","setIdle","getCompanyIcon","React","createElement","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","ref","readOnly","cursor","Icon","mdiContentCopy","IcoMoon","assign","iconSet","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","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","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","isChannelListOpen","setIsChannelListOpen","spinnerWheelExist","setSpinnerWheelExist","useImperativeHandle","floatingChannel","imageUrl","AnimatedList","cta","rel","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","affliateItem","setAffliateItem","APKMobileBannerIsVisible","setAPKMobileBannerIsVisible","companyLanguages","languageSelected","setLanguageSelected","code","registerChannel","unreadLivechat","totalUnreadLivechat","languageDetected","setLanguageDetected","isTrackPlaying","trackTitle","isTrackLoading","rolloverData","setRolloverData","sideNavList","spinnerWheelMenu","affliateMenu","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","sections","settings","sectionJson","parse","every","blocks","block_order","validateFooterSections","error","getFooterSections","currentYear","getFullYear","parsedSettings","parsedTranslatedSettings","translatedSettings","sanitizeUrls","translatedSettingsBlock","b","defaultSettings","entries","reduce","acc","block_id","block","links","_ref2","link_key","minHeight","_block$defaultSetting","heading","link_index","_block$defaultSetting2","defaultLink","linkItem","FallBackImage","fallbackSrc","_block$defaultSetting3","_block$defaultSetting4","ProviderIcon","containerClassName","imgLightMode","ProviderIconDisplay","imgClassName","imgSrc","imgDarkMode","imgAlt","whiteSpace","overflow","textOverflow","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","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","announcementLanguages","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","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","waitForFbPixel","callback","timeout","checkFbq","_window$fbq","fbq","loaded","warn","webpackAsyncContext","req","Promise","resolve","__webpack_require__","o","Error","ids","all","Pagination","searchKeyword","currentPage","setCurrentPage","startPage","pageLimit","endPage","adjustedStartPage","goToPage","previousPage","nextPage","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","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.55b094f6.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\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 static _API_GET_REFERRAL_COMMISSION_RATE = \"/Account/GetReferralCommissionRate\";\n static _API_GET_HOT_GAMES = \"/Game/GetHotGames\";\n static _API_GET_REFERRAL_FAQ = \"/Account/GetReferralFaq\";\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;\n\nexport const _DAY_OPTION = [\n { value: 0, label: \"SUNDAY\" },\n { value: 1, label: \"MONDAY\" },\n { value: 2, label: \"TUESDAY\" },\n { value: 3, label: \"WEDNESDAY\"},\n { value: 4, label: \"THURSDAY\" },\n { value: 5, label: \"FRIDAY\" },\n { value: 6, label: \"SATURDAY\" },\n ];\n","module.exports = \"data:image/png;base64,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\"","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 affiliateLink: action.affiliateLink,\n isCasinoLobbyEnabled: action.isCasinoLobbyEnabled\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 React from \"react\";\nimport IcoMoon from \"react-icomoon\";\nimport iconSet from \"./selection.json\";\n\nconst Icon = (props) => ;\n\nexport default Icon;\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 affiliateLink,\n isCasinoLobbyEnabled,\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 affiliateLink: affiliateLink,\n isCasinoLobbyEnabled: isCasinoLobbyEnabled\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 } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\nimport { AnimatedList } from \"react-animated-list\";\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\n\n const [isChannelListOpen, setIsChannelListOpen] = useState(false);\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 \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 {isChannelListOpen && (\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\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, isEmpty } 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\tconst [affliateItem, setAffliateItem] = useState();\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 affiliateLink = useSelector(\n\t\t(state) => state.appState.affiliateLink\n\t);\n\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\tlet affliateMenu=companyIcons.find(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName == \"Affiliate\"\n\t\t ); \n\n\t\t setAffliateItem(affliateMenu)\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 { bannerAPK?.displayMode===2 &&(\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t(\"DOWNLOAD\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{musicPlayerEnabled &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\tsideMenuList.length &&\n\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t// CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n\t\t\t\t\t\t\t\t// Only apply this filtering criteria if availableProductCategories is not empty\n\t\t\t\t\t\t\t\tif(availableProductCategories.length > 0) {\n\t\t\t\t\t\t\t\t\t// Call sidenavitems to get only the available categories - hide categories that are not available\n\t\t\t\t\t\t\t\t\tlet availableProductCategory = availableProductCategories.filter((sidenavItem) => {\n\t\t\t\t\t\t\t\t\t\treturn sidenavItem.productCategory.title.trim() == item.iconName.trim();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t// Ignore some items\n\t\t\t\t\t\t\t\t\tlet ignoreLinks = [\"Home\", \"Membership\", \"Referral\", \"Rebate\", \"Promotion\", \"Recent Game\", \"Affiliate\"];\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// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\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: itemPathname,\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} 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\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\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\t_history.push({\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}\n\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\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\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!isEmpty(affiliateLink) && !isEmpty(affliateItem) &&\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
{t(affliateItem.iconName)}
\n\t\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\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\n\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\", \"Affiliate\"];\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\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// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\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\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\t\t\t\t\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[\"pathname\"] == \"/keno\") {\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[\"pathname\"] == \"/promotion\") {\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// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\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\t_history.push({\n\t\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\t\tstate: {\n\t\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\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\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/keno\") {\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\t\t{/* {\n\t\t\t\t\t\t\t\t\t\t!isEmpty(affiliateLink) && !isEmpty(affliateItem) && (\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(affliateItem.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}, []);\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[\"pathname\"] == \"/keno\") {\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[\"pathname\"] == \"/promotion\") {\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[\"pathname\"] == \"/keno\") {\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","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\";","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-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), 3, 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\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 const isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\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 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 if (categoryTitle == \"Casino\" && !isCasinoLobbyEnabled) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n }\n else {\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\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 isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\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\n if (!container || !leftButton || !rightButton) return;\n\n const scrollAmount = 100; // scroll speed\n\n const scrollLeft = () => {\n container.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n };\n\n const scrollRight = () => {\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 var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_HOT_GAMES\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let data = responseJson[ApiKey._API_DATA_KEY];\n if (data == null) {\n data = [];\n }\n // Map gameId as Id - because GameList uses gameId\n data.map((game, index) => {\n game[\"id\"] = game[\"gameId\"];\n })\n setSelectedGameCategoryGames(data);\n _dispatch(bindHotGames(data));\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 setProductGameId(gameId);\n setProviderName(providerName);\n console.log(categoryTitle)\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 if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\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 if(categoryTitle == \"Casino\" && !isCasinoLobbyEnabled){\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 _dispatch(setGameLobbyModal(true));\n return;\n }\n\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 const isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\n )\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 if(categoryTitle == \"Casino\" && !isCasinoLobbyEnabled){\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n return;\n }\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((state) => state.languageState.languageId);\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 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 useEffect(() => {\n if(activeLanguageId != undefined) {\n getMarqueeTagContent();\n }\n }, [activeLanguageId]);\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((state) => state.languageState.languageId);\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0].id);\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 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 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 // getBanners(); // CHRIS NOTE 20250306: getBanners is always called twice because companyLangauges is updated, \n // this happens to other components too\n }, [companyLanguages, activeLanguageCode]);\n\n useEffect(() => {\n if(activeLanguage != \"\"){\n getBanners();\n }\n }, [activeLanguage]);\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 _dispatch(setLoginModal(true));\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 {item.announcementLanguages ? (\n \n ) : (\n \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 { 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};\n\nexport function waitForFbPixel(callback, timeout = 5000) {\n const startTime = Date.now();\n\n function checkFbq() {\n // If fbq is defined, loaded, and at least one pixel is configured, execute callback.\n if (window.fbq !== undefined && window.fbq?.loaded) {\n console.log(\"FB Pixel loaded\");\n callback();\n }\n // If timeout exceeded, log a warning and stop checking.\n else if (Date.now() - startTime >= timeout) {\n console.warn(\"FB Pixel not loaded within timeout\");\n }\n // Otherwise, check again after 200ms.\n else {\n setTimeout(checkFbq, 200);\n }\n }\n\n checkFbq();\n}","var map = {\n\t\"./template_1/Login\": 352\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 = 505;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/LiveChat\": [\n\t\t755,\n\t\t27\n\t],\n\t\"./template_1/home/LiveChat\": [\n\t\t389,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 506;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Settings\": [\n\t\t709,\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 = 507;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Kpi\": [\n\t\t710,\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 = 508;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/News\": [\n\t\t711,\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 = 509;\nmodule.exports = webpackAsyncContext;","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/home/NewsDetails\": [\n\t\t712,\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 = 510;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameLobby\": [\n\t\t753,\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 = 511;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/UnderMaintenance\": [\n\t\t713,\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 = 512;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/report/GameDetails\": [\n\t\t714,\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 = 513;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/ContactForm\": [\n\t\t715,\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 = 514;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/LiveChat\": [\n\t\t389,\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 = 515;\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 = 516;","var map = {\n\t\"./template_1/home/Promotion\": [\n\t\t716,\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 = 517;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/PromotionInfo\": [\n\t\t717,\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 = 518;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/CustomPage\": [\n\t\t718,\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 = 519;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameList\": [\n\t\t758,\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 = 520;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Referral.js\": [\n\t\t757,\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 = 521;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Vip.js\": [\n\t\t754,\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 = 522;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Rebate.js\": [\n\t\t719,\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 = 523;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/RecentGames.js\": [\n\t\t720,\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 = 524;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/HotGames.js\": [\n\t\t721,\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 = 525;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/NotFound.js\": 228\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 = 526;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GamePage2\": [\n\t\t756,\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 = 527;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/profile/SpinWheelList\": [\n\t\t722,\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 = 528;\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\t737,\n\t\t33\n\t],\n\t\"./blue.min.css\": [\n\t\t738,\n\t\t34\n\t],\n\t\"./dhakacity.css\": [\n\t\t739,\n\t\t35\n\t],\n\t\"./el77.css\": [\n\t\t740,\n\t\t36\n\t],\n\t\"./fengshuibet.css\": [\n\t\t741,\n\t\t37\n\t],\n\t\"./joyi8.css\": [\n\t\t742,\n\t\t38\n\t],\n\t\"./kantipur.css\": [\n\t\t743,\n\t\t39\n\t],\n\t\"./kantipur777.css\": [\n\t\t744,\n\t\t40\n\t],\n\t\"./pkspin.css\": [\n\t\t745,\n\t\t41\n\t],\n\t\"./pkspinbase.css\": [\n\t\t746,\n\t\t42\n\t],\n\t\"./root.css\": [\n\t\t747,\n\t\t43\n\t],\n\t\"./root9loonbet.css\": [\n\t\t748,\n\t\t44\n\t],\n\t\"./rootHk.css\": [\n\t\t749,\n\t\t45\n\t],\n\t\"./rootIndia.css\": [\n\t\t750,\n\t\t46\n\t],\n\t\"./rootbase.css\": [\n\t\t751,\n\t\t47\n\t],\n\t\"./rootbaseS8.css\": [\n\t\t752,\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 = 687;\nmodule.exports = webpackAsyncContext;","module.exports = \"data:image/png;base64,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\"","import React from 'react';\n\nexport const PageSettings = React.createContext();","import React, { lazy, Suspense } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { BaseWebUrl as WebUrl } from \"../util/Constant\";\n\n// export const _LOGIN_ROUTE2 = {\n// path: WebUrl._URL_MAIN,\n// exact: false,\n// authRequired: false,\n// component: ,\n// };\n\nexport async function fetchRoute(themeVar, type) {\n // CHRIS_LOCALE: Redirect if trailing slash detected\n if (window.location.pathname !== null && window.location.pathname !== \"/\" && window.location.pathname.endsWith(\"/\")) {\n // // CHRIS TODO: Send 301 redirect for SEO\n // Replace isn't ideal inside react router because it will cause rerender\n // window.location.replace(window.location.pathname.slice(0, -1) + window.location.search);\n\n window.location.href = window.location.pathname.slice(0, -1);\n\n // doesn't work\n // return ;\n }\n\n // Use the variable to fetch data or perform some logic\n // (`Fetching data for variable: ${themeVar}`);\n\n // const Welcome = lazy(async () => await import(`pages/${themeVar}/Welcome`));\n const Login = lazy(async () => await import(`pages/${themeVar}/Login`));\n const LiveChat = lazy(async () => await import(`pages/${themeVar}/LiveChat`));\n // const Register = lazy(async () => await import(`pages/${themeVar}/Register`));\n // const Forgot = lazy(async () => await import(`pages/${themeVar}/Forgot`));\n // const Dashboard = lazy(\n // async () => await import(`pages/${themeVar}/home/Dashboard`)\n // );\n // const Transaction = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Transaction`)\n // );\n // const TransferSuccessful = lazy(\n // async () => await import(`pages/${themeVar}/transaction/TransferSuccessful`)\n // );\n // const Withdrawal = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMobile`)\n // );\n // const WithdrawalRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalRecord`)\n // );\n // const Deposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Deposit`)\n // );\n // const DepositRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/DepositRecord`)\n // );\n // const Downline = lazy(\n // async () => await import(`pages/${themeVar}/home/Downline`)\n // );\n // const MyDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/MyDownline`)\n // );\n // const DownlineDetails = lazy(\n // async () => await import(`pages/${themeVar}/home/DownlineDetails`)\n // );\n // const EditDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/EditDownline`)\n // );\n const Settings = lazy(() => import(`pages/${themeVar}/home/Settings`));\n const Kpi = lazy(async () => await import(`pages/${themeVar}/home/Kpi`));\n const News = lazy(async () => await import(`pages/${themeVar}/home/News`));\n const NewsDetails = lazy(\n async () => await import(`pages/${themeVar}/home/NewsDetails`)\n );\n\n // const PoolResult = lazy(\n // async () => await import(`pages/${themeVar}/game/PoolResult`)\n // );\n const GameLobby = lazy(\n async () => await import(`pages/${themeVar}/game/GameLobby`)\n );\n const UnderMaintenance = lazy(\n async () => await import(`pages/${themeVar}/game/UnderMaintenance`)\n );\n\n // const ReportMenu = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportMenu`)\n // );\n // const WalletHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistory`)\n // );\n // const WalletHistoryMobile = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistoryMobile`)\n // );\n // const CommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/CommissionHistory`)\n // );\n // const BonusHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/BonusHistory`)\n // );\n // const InternaTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/InternaTransferHistory`)\n // );\n // const RolloverStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/RolloverStatement`)\n // );\n // const TransactionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/TransactionHistory`)\n // );\n // const GameHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/GameHistory`)\n // );\n const GameDetails = lazy(\n async () => await import(`pages/${themeVar}/report/GameDetails`)\n );\n // const MembersTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/MembersTransfer`)\n // );\n // const GameWalletTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/GameWalletTransfer`)\n // );\n // const ReportsOverview = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportsOverview`)\n // );\n // const ForgetPin = lazy(\n // async () => await import(`pages/${themeVar}/member/ForgetPin`)\n // );\n\n // const DownlineGroupDetail = lazy(\n // async () => await import(`pages/${themeVar}/member/DownlineGroupDetail`)\n // );\n\n // const UnclaimCommissionHistory = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/UnclaimCommissionHistory`)\n // );\n\n // const Maintenance = lazy(\n // async () => await import(`pages/${themeVar}/Maintenance`)\n // );\n const ContactUs = lazy(\n async () => await import(`pages/${themeVar}/home/ContactForm`)\n );\n const LiveChatPage = lazy(\n async () => await import(`pages/${themeVar}/home/LiveChat`)\n );\n\n // const Shareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/Shareholder`)\n // );\n // const ShareholderDetails = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ShareholderDetails`)\n // );\n // const EditShareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/EditShareholder`)\n // );\n // const RewardsTnC = lazy(\n // async () => await import(`pages/${themeVar}/home/RewardsTnC`)\n // );\n // const ClaimRecord = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ClaimRecord`)\n // );\n // const SummaryDownlineSales = lazy(\n // async () =>\n // await import(`pages/${themeVar}/shareholder/SummaryDownlineSales`)\n // );\n // const DownlineProductRateDetail = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/DownlineProductRateDetail`)\n // );\n\n // const Rewards = lazy(\n // async () => await import(`pages/${themeVar}/home/Rewards`)\n // );\n // const RewardsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsHistory`)\n // );\n // const RewardsDetail = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsDetail`)\n // );\n // const GamePage = lazy(\n // async () => await import(`pages/${themeVar}/home/GamePage`)\n // );\n // const WalletTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletTransferHistory`)\n // );\n // const WalletStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletStatement`)\n // );\n\n // const TouchnGO = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadTnG`)\n // );\n // const ReloadBank = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadBank`)\n // );\n // const UploadReloadReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadReloadReceipt`)\n // );\n // const ReloadDone = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadDone`)\n // );\n // const MainWallet = lazy(\n // async () => await import(`pages/${themeVar}/transaction/MainWallet`)\n // );\n // const GameReload = lazy(\n // async () => await import(`pages/${themeVar}/game/GameReload`)\n // );\n // const WithdrawalMethods = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMethods`)\n // );\n // const ScanQR = lazy(async () => await import(`pages/${themeVar}/qr/ScanQR`));\n // const CreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreateAccount`)\n // );\n // const VerifyCreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/Verify`)\n // );\n // const CreatePassword = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreatePassword`)\n // );\n // const CreateAccountSuccess = lazy(\n // async () => await import(`pages/${themeVar}/qr/Success`)\n // );\n // const CreateAccountByReferralCode = lazy(\n // async () => await import(`pages/${themeVar}/qr/Referral`)\n // );\n // const WithdrawalInProgress = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/WithdrawalInProgress`)\n // );\n // const Commission = lazy(\n // async () => await import(`pages/${themeVar}/home/Commission`)\n // );\n const Transfer = lazy(\n async () => await import(`pages/${themeVar}/transaction/Transfer`)\n );\n // const VipBenefits = lazy(\n // async () => await import(`pages/${themeVar}/home/VipBenefits`)\n // );\n const Promotion = lazy(\n async () => await import(`pages/${themeVar}/home/Promotion`)\n );\n const PromotionInfo = lazy(\n async () => await import(`pages/${themeVar}/home/PromotionInfo`)\n );\n const CustomPage = lazy(\n async () => await import(`pages/${themeVar}/home/CustomPage`)\n );\n // const Home = lazy(async () => await import(`pages/${themeVar}/home/Home`));\n // const Giftpace = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Giftpace`)\n // );\n // const CommissionsInfo = lazy(\n // async () => await import(`pages/${themeVar}/home/CommissionsInfo`)\n // );\n // const Topkash = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Topkash`)\n // );\n // const DailyCheckIn = lazy(\n // async () => await import(`pages/${themeVar}/home/DailyCheckIn`)\n // );\n // const DCRedemption = lazy(\n // async () => await import(`pages/${themeVar}/home/DCRedemption`)\n // );\n // const DCRedemptionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCRedemptionHistory`)\n // );\n // const UnclaimDCPoints = lazy(\n // async () => await import(`pages/${themeVar}/member/UnclaimDCPoints`)\n // );\n // const DCPointsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCPointsHistory`)\n // );\n // const VipCommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/VipCommissionHistory`)\n // );\n\n // const HuiOneDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/HuiOneDeposit`)\n // );\n // const CryptoWalletsDeposit = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/CryptoWalletsDeposit`)\n // );\n\n // const CryptoDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/CryptoDeposit`)\n // );\n\n ///template 3\n const GameList = lazy(\n async () => await import(`pages/${themeVar}/game/GameList`)\n );\n const Referral = lazy(async () => await import(`pages/${themeVar}/home/Referral.js`));\n const Vip = lazy(async () => await import(`pages/${themeVar}/home/Vip.js`));\n const Rebate = lazy(async () => await import(`pages/${themeVar}/home/Rebate.js`));\n \n const RecentGames = lazy(async () => await import(`pages/${themeVar}/game/RecentGames.js`));\n const HotGames = lazy(async () => await import(`pages/${themeVar}/game/HotGames.js`));\n\n const NotFound = lazy(async () => await import(`pages/${themeVar}/NotFound.js`));\n // const WingWeiluyDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WingWeiluyDeposit`)\n // );\n // const UploadWingWeiluyReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadWingWeiluyReceipt`)\n // );\n\n // Add your data fetching logic here\n\n // const _LOGIN_ROUTE = {\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n // };\n const IframeGamePage = lazy(\n async () => await import(`pages/${themeVar}/game/GamePage2`)\n );\n const SpinWheelList = lazy(\n async () => await import(`pages/${themeVar}/profile/SpinWheelList`)\n );\n\n const _LOGIN_ROUTE3 = [{\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n }];\n\n const _ROUTES = [\n {\n path: WebUrl._URL_NOT_FOUND,\n exact: true,\n title: \"404 Not Found\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_LIVECHAT,\n exact: true,\n title: \"LiveChat\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_UNDER_MAINTENANCE,\n exact: true,\n title: \"Under Maintenance\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_SETTINGS,\n exact: true,\n title: \"Settings\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_REGISTER,\n exact: true,\n title: \"Register\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LOBBY,\n exact: true,\n title: \"Game Lobby\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS,\n exact: true,\n title: \"News\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS_DETAILS,\n exact: true,\n title: \"Detail\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_CONTACT_US,\n exact: true,\n title: \"Contact Us\",\n component: ,\n },\n {\n path: WebUrl._URL_LIVE_CHAT,\n exact: true,\n title: \"Live Chat\",\n component: ,\n },\n // {\n // path: WebUrl._URL_GAME_PAGE,\n // exact: true,\n // title: \"Game\",\n // authRequired: true,\n // component: ,\n // },\n {\n path: WebUrl._URL_PROMOTION,\n exact: true,\n title: \"Promotion\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_PROMOTION_INFO,\n exact: true,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST,\n exact: true,\n title: \"Game List\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REFERRAL,\n exact: true,\n title: \"Referral\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_VIP,\n exact: true,\n title: \"Vip\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REBATE,\n exact: true,\n title: \"Rebate\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_RECENT_GAMES,\n exact: true,\n title: \"Recent Games\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SPORTS,\n exact: true,\n title: \"Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SLOTS,\n exact: true,\n title: \"Slots\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CASINO,\n exact: true,\n title: \"Casino\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_FISHHUNT,\n exact: true,\n title: \"Fish Hunt\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_KENO,\n exact: true,\n title: \"Keno\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_ARCADE,\n exact: true,\n title: \"Arcade\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CRASH,\n exact: true,\n title: \"Crash\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_EXCHANGE,\n exact: true,\n title: \"Exchange\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_POKER,\n exact: true,\n title: \"Poker\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/promo/:slug\",\n exact: false,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/pages/:slug\",\n exact: false,\n title: \"Custom Pages\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_E_SPORT,\n exact: true,\n title: \"E-Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_IFRAME_GAME_PAGE,\n exact: true,\n title: \"Game Page\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOT_GAMES,\n exact: true,\n title: \"Hot Games\",\n authRequired: false,\n component: ,\n },\n // {\n // path: WebUrl._URL_SPIN_WHEEL_LIST,\n // exact: true,\n // title: \"Spin Wheel\",\n // authRequired: true,\n // component: ,\n // },\n ];\n\n // const createRoutesWithTrailingSlashRedirects = (routes) => {\n // return routes.reduce((acc, route) => {\n // const { path, title, exact, authRequired, component } = route;\n\n // // Skip wildcard path '*' since it should not have a trailing slash redirect\n // if (path === '*') {\n // return acc.concat(route);\n // }\n\n // const routesWithRedirect = [\n // {\n // path: `${path}/`,\n // exact: true,\n // title: title,\n // authRequired: false, // No auth required for redirects\n // component: ,\n // },\n // route,\n // ];\n\n // return acc.concat(routesWithRedirect);\n // }, []);\n // };\n\n // const locales = ['en', 'bn']; // Example locales\n\n // const generateLocaleRoutes = (routes) => {\n // // return locales.flatMap(locale =>\n // // routes.map(route => ({\n // // ...route,\n // // path: `/${locale}${route.path}`,\n // // }))\n // // );\n // return routes\n // };\n\n // Do not need this anymore - better to do directly\n // const _SANITISED_ROUTES = createRoutesWithTrailingSlashRedirects(generateLocaleRoutes(_ROUTES));\n\n switch (type) {\n case \"login\":\n return ConvertToLocalePath(_LOGIN_ROUTE3);\n // if (themeVar == \"template_1\") return _LOGIN_ROUTE3;\n // else return _LOGIN_ROUTE;\n break;\n default:\n // return _ROUTES;\n return ConvertToLocalePath(_ROUTES);\n break;\n }\n}\n\nfunction ConvertToLocalePath(routes) {\n // CHRIS_LOCALE: Prepend locale to each path\n // Add :locale to all route paths to accommodate for example.com/:locale/pathname\n\n let _LOCALED_ROUTES = [];\n try {\n _LOCALED_ROUTES = routes.map((route) => {\n const { path } = route;\n const localePath = path.startsWith('/') ? `/:locale${path}` : `:locale${path}`;\n return {\n ...route,\n path: localePath,\n }\n });\n } catch (error) {\n console.error(error)\n throw error\n }\n\n return _LOCALED_ROUTES;\n}","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tWebUrl,\n\tApiUrl,\n\tApiKey,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tSessionKey,\n} from \"../../../util/Constant\";\nimport { map, isNumber, debounce, toString } from \"lodash\";\nimport {\n\tnumberWithCurrencyFormat,\n\tstringIsNullOrEmpty,\n\tcreateMultiPartFormBody,\n\tabbreviateNumber,\n\twaitForFbPixel\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\twaitForFbPixel(() => {\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\twaitForFbPixel\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\twaitForFbPixel(() => {\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, waitForFbPixel } 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 (responseJson[ApiKey._API_DATA_KEY]) {\n waitForFbPixel(() => {\n if (!sessionStorage.getItem(\"fbqCompleteRegistrationFired\")) {\n window.fbq('track', 'CompleteRegistration');\n sessionStorage.setItem(\"fbqCompleteRegistrationFired\", \"true\");\n }\n });\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 (responseJson[ApiKey._API_DATA_KEY]) {\n waitForFbPixel(() => {\n if (!sessionStorage.getItem(\"fbqCompleteRegistrationFired\")) {\n window.fbq('track', 'CompleteRegistration');\n sessionStorage.setItem(\"fbqCompleteRegistrationFired\", \"true\");\n }\n });\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 >= 6) {\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\t//transactionTypeId: TransactionType._DAILY_CHECK_IN,\n\t\n\t\t\t//panel: 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, waitForFbPixel } from \"./util/Util.js\";\nimport { withTranslation } from \"react-i18next\";\nimport ApiEngine from \"./util/ApiEngine.js\";\nimport { ApiKey, ApiUrl, HIDE_APK_BANNER_DURATION, WebUrl } from \"./util/Constant\";\nimport { themeGenerator } from \"config/theme.js\";\nimport { paramCase } from \"change-case\";\nimport { ClientTemplates } from \"./util/Constant\";\nimport { Helmet } from \"react-helmet\";\nimport { Spinner } from \"react-bootstrap\";\nimport classNames from \"classnames\";\nimport { map } from \"lodash\";\n// import parse from \"html-react-parser\";\n\nLoadingOverlay.propTypes = undefined;\nclass App extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.handleSetPageContent = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContent: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentClass = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentClass: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullHeight = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullHeight: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullWidth = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullWidth: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentInverseMode = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentInverseMode: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageFooter = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageFooter: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetBodyWhiteBg = (value) => {\n\t\t\tif (value === true) {\n\t\t\t\tdocument.body.classList.add(\"bg-white\");\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove(\"bg-white\");\n\t\t\t}\n\t\t};\n\n\t\tthis.state = {\n\t\t\ttemplate:\n\t\t\t\tClientTemplates.filter((x) => x.hostname == window.location.hostname)[0]\n\t\t\t\t\t?.template ?? \"template_1\",\n\t\t\tpageContent: true,\n\t\t\tpageContentClass: \"\",\n\t\t\tpageContentFullHeight: false,\n\t\t\tpageContentFullWidth: true,\n\t\t\tpageContentInverseMode: false,\n\t\t\tpageNavBar: \"\",\n\t\t\thandleSetPageContent: this.handleSetPageContent,\n\t\t\thandleSetPageContentClass: this.handleSetPageContentClass,\n\t\t\thandleSetPageContentFullHeight: this.handleSetPageContentFullHeight,\n\t\t\thandleSetPageContentFullWidth: this.handleSetPageContentFullWidth,\n\t\t\thandleSetPageContentInverseMode: this.handleSetPageContentInverseMode,\n\n\t\t\tpageFooter: false,\n\t\t\thandleSetPageFooter: this.handleSetPageFooter,\n\t\t\terror: null,\n\t\t\terrorInfo: null,\n\n\t\t\thandleSetBodyWhiteBg: this.handleSetBodyWhiteBg,\n\t\t\thandleSetPageBoxedLayout: this.handleSetPageBoxedLayout,\n\n\t\t\tinterval1: null,\n\t\t\tlocation: window.location.href,\n\t\t\tlanguage: this.props.i18n.language,\n\t\t\tappLoad: true\n\t\t};\n\n\t\tthis.scrollRef = React.createRef();\n\n\t}\n\n\t/// \n\t/// Author: -\n\t/// \n\tasync componentDidMount() {\n\t\tthis.setState({\n\t\t\t// hasGetSkinSettings: false,\n\t\t\thasCustomSkin: false,\n\t\t\tactiveTheme: 0,\n\t\t\tbackgroundImage: \"\",\n\t\t});\n\t\tclearInterval(this.state.interval1);\n\t\tthis.state.interval1 = null;\n\t\tthis.props.heartBeat();\n\t\tthis.state.interval1 = setInterval(() => this.props.heartBeat(), 20000);\n\n\n\t\t// Dynamically import the CSS file based on the environment variable\n\t\tconst root = process.env.REACT_APP_ROOT ? process.env.REACT_APP_ROOT : 'rootbase';\n\n\t\tthis.setState({ appLoad: true });\n\t\ttry {\n\t\t\tawait import(`./assets/css/theme/${root}.css`);\n\t\t\tconsole.log(`${root}.css loaded successfully!`);\n\t\t} catch (error) {\n\t\t\tconsole.log(`Failed to load ${root}.css`, error);\n\t\t} finally {\n\t\t\tthis.setState({ appLoad: false });\n\t\t}\n\n\t\t// this.getSetting(this.state.language);\n\n\t\tthis.fetchSettings();\n\t\tthis.getMeta(this.state.language);\n\n\t\t// Create a custom event\n\t\tconst customEvent = new CustomEvent('changedLocation', {\n\t\t\tdetail: { message: `Location changed to ${window.location.pathname}` }\n\t\t});\n\n\t\t// Dispatch the event\n\t\twindow.dispatchEvent(customEvent);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\t// // CHRIS DEBUG\n\t\t// // Console log a styled note\n\t\t// console.log(\n\t\t// \t\"%ccomponentDidUpdate\",\n\t\t// \t\"background: #222; color: #bada55\"\n\t\t// );\n\n\t\t// // CHRIS DEBUG\n\t\t// // Compare props\n\t\t// const allPropsKeys = Object.keys({ ...prevProps, ...this.props });\n\t\t// allPropsKeys.forEach(key => {\n\t\t// if (prevProps[key] !== this.props[key]) {\n\t\t// \tconsole.log(`Prop '${key}' changed:`, prevProps[key], '->', this.props[key]);\n\t\t// }\n\t\t// });\n\n\t\t// // CHRIS DEBUG\n\t\t// // Compare state\n\t\t// const allStateKeys = Object.keys({ ...prevState, ...this.state });\n\t\t// allStateKeys.forEach(key => {\n\t\t// if (prevState[key] !== this.state[key]) {\n\t\t// \tconsole.log(`State '${key}' changed:`, prevState[key], '->', this.state[key]);\n\t\t// }\n\t\t// });\n\n\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\t// console.log(\"%c componentDidUpdate getSetting\", \"background: #222; color:rgb(218, 85, 85)\");\n\t\t\t// CHRIS TODO 20250306: Instead of calling this.getSetting() every page change, we should use a caching method with 5 min expiry for active tabs\n\t\t\t// ie. if tab active - check expiry of settings every 5 min, if tab not active, pause checking\n\t\t\t// If no differences, do not update redux\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\t\tawait this.getSetting(this.state.language);\n\t\tthis.setState({ appLoad: false });\n\t}\n\n\tasync getMeta(language) {\n\t\t// SEO Override System - will override all other SEO settings from other pages\n\t\tvar pageSlug = this.getPageSlug(window.location.pathname);\n\n\t\tvar encodedPageSlug = encodeURIComponent(pageSlug);\n\t\tvar encodedLanguage = encodeURIComponent(language);\n\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\t`${ApiUrl._API_GET_SEO_META_CONTENT}?slug=${encodedPageSlug}&language=${encodedLanguage}`\n\t\t);\n\n\t\tvar seoManagementFlag = false;\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar data = responseJson[ApiKey._API_DATA_KEY];\n\n\t\t\tvar scriptTagRegex = /]*>([\\s\\S]*?)<\\/script>/gi;\n\t\t\t// const filteredData = data.filter(item => item.pageSlug == slug);\n\t\t\tvar pageName = data.pageName;\n\t\t\tvar seoTitle = '';\n\t\t\tvar seoDescription = '';\n\t\t\tvar seoImage = '';\n\t\t\tvar customScripts = '';\n\n\t\t\tif (data && data.languageSeoTitle) {\n\t\t\t\tseoTitle = data.languageSeoTitle;\n\t\t\t} else {\n\t\t\t\tseoTitle = data.seoTitle;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoDescription) {\n\t\t\t\tseoDescription = data.languageSeoDescription;\n\t\t\t} else {\n\t\t\t\tseoDescription = data.seoDescription;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoImage) {\n\t\t\t\tseoImage = data.languageSeoImage;\n\t\t\t} else {\n\t\t\t\tseoImage = data.seoImage;\n\t\t\t}\n\n\t\t\tif (data && data.languageCustomScripts) {\n\t\t\t\tcustomScripts = data.languageCustomScripts;\n\t\t\t} else {\n\t\t\t\tcustomScripts = data.customScripts;\n\t\t\t}\n\n\t\t\tseoManagementFlag = true;\n\n\t\t\t////get rawScripts\n\t\t\tif (customScripts) {\n\t\t\t\tvar customScriptsJson = JSON.parse(customScripts).html; /// extract the data from html JSON\n\t\t\t\tvar matches = customScriptsJson.match(scriptTagRegex); /// make the html into array\n\t\t\t\tvar contentWithoutScriptTags = null;\n\n\t\t\t\tif (matches) {\n\t\t\t\t\tvar contentWithArrayForTags = matches.map(match => match.match(/]*>([\\s\\S]*?)<\\/script>/i)); /////separate each value\n\t\t\t\t\tcontentWithoutScriptTags = contentWithArrayForTags.map(tags => tags[1]).join(''); ///join both value\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// console.log('seoTitle getMeta')\n\t\t\tthis.setState({ pageNameOverride: pageName });\n\t\t\tthis.setState({ seoTitleOverride: seoTitle });\n\t\t\tthis.setState({ seoDescriptionOverride: seoDescription });\n\t\t\tthis.setState({ seoImageOverride: seoImage });\n\t\t\tthis.setState({ rawScriptsOverride: contentWithoutScriptTags });\n\n\t\t} else {\n\t\t\tconsole.log(\"getMeta error\");\n\t\t}\n\n\t\t///if seo meta content is empty, show the one in page if got any seo meta\n\n\t\tif (seoManagementFlag == false) {\n\t\t\tif (this.props.appState.seoContent.pageName) {\n\t\t\t\t// console.log('seoTitle getMeta seoManagementFlag')\n\t\t\t\tthis.setState({ pageName: this.props.appState.seoContent.pageName });\n\t\t\t\tthis.setState({ seoTitle: this.props.appState.seoContent.seoTitle });\n\t\t\t\tthis.setState({ seoDescription: this.props.appState.seoContent.seoDescription });\n\t\t\t}\n\t\t}\n\t}\n\n\t// async getSkinSettings() {\n\t// \tif (window.location.pathname.match(/dashboard/)) {\n\t// \t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_EXTRA_HTML_STYLE);\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tthis.state.hasCustomSkin = true;\n\t// \t\t\tconst style = document.createElement(\"style\");\n\t// \t\t\tstyle.textContent = '\"' + responseJson[ApiKey._API_DATA_KEY] + '\"';\n\t// \t\t\tdocument.head.appendChild(style);\n\t// \t\t}\n\t// \t\tthis.state.hasGetSkinSettings = true;\n\t// \t} else {\n\t// \t\tthis.state.hasGetSkinSettings = false;\n\t// \t}\n\t// }\n\n\tasync getSetting(language) {\n\t\t// CHRIS 20250306 NOTE: This function updates redux - which causes a duplicate re-render of many components that listen to redux for changes\n\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// CHRIS DEBUG: Why is app.jsx called twice and triggers getSetting twice?\n// This only happens on url change, not page load\nconsole.log('getSetting')\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\t\t\tvar affiliateLink = responseJson[ApiKey._API_DATA_KEY].affiliateLink;\n\t\t\tvar isCasinoLobbyEnabled = responseJson[ApiKey._API_DATA_KEY].isCasinoLobbyEnabled;\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\taffiliateLink,\n\t\t\t\tisCasinoLobbyEnabled\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"],"sourceRoot":""}