{"version":3,"sources":["src/assets/images/star.png","src/assets/images/getlikes.png","src/assets/images/getfans.png","src/assets/images/pwanext.png","src/assets/images/close.png","src/assets/images/appleid_button@2x.png","src/assets/images/best-seller.png","src/assets/images/invite.png","src/utils/recomposeUtils.js","src/utils/ramdaUtils.js","src/components/TabBarIcon.js","src/apis/time.js","src/utils/system.js","src/apis/firebase.js","src/apis/slack.js","src/modules/bi/biUtils.js","src/apis/tiktok.js","src/apis/index.js","src/utils/tiktokUtils.js","src/modules/ApplePay/index.js","src/actions/makeActionCreator.js","src/constants/Products.js","src/actions/paymentActions.js","src/utils/location.js","src/utils/time.js","src/modules/LoginWithApple/index.js","src/actions/userActions.js","src/i18n/index.js","src/components/LoginScreen/PWAInstructionView.js","src/components/DailyReward.js","src/components/Ads/SelfPromotionBanner.js","src/components/Alert.js","src/components/Header/CloseButton.js","src/screens/AppleLoginScreen.js","src/screens/AppleLoginModal.js","src/constants/TsadConfig.js","src/screens/HomeScreen.js","src/hooks/useAppState.js","src/constants/Colors.js","src/components/Header/StarsButton.js","src/components/Header/QuestionButton.js","src/navigation/HomeStackNavigator.js","src/components/ProfileCard.js","src/components/RedeemScreen/UploadVideoFromLink.js","src/components/RedeemScreen/LikesTab.js","src/components/Ads/index.js","src/components/RedeemScreen/SegmentedControl.js","src/components/RedeemScreen/RedeemContentList.js","src/screens/RedeemScreen.js","src/navigation/RedeemStackNavigator.js","src/screens/RedeemLikesScreen.js","src/screens/UploadVideoLinkScreen.js","src/navigation/RedeemLikesStackNavigator.js","src/modules/payment/components/StarPurchaseItem.js","src/modules/payment/components/DirectPurchaseItem.js","src/screens/DirectPurchaseScreen.js","src/components/RedeemScreen/SegmentedControlTab.js","src/screens/PurchaseScreen.js","src/navigation/PurchaseStackNavigator.js","src/components/Header/Header.js","src/components/SettingsScreen/InviteModal.js","src/components/SettingsScreen/PromoCodeModal.js","src/screens/SettingsScreen.js","src/navigation/SettingsStackNavigator.js","src/modules/tappay/useListenFromTapPay.js","src/navigation/BottomTabNavigator.js","src/components/LoginScreen/HelpModal.js","src/components/Ads/TSAdBanner.js","src/screens/ServiceDownScreen.js","src/screens/LoginScreen.js","src/screens/TutorialScreen.js","src/screens/IntroductionScreen.js","src/modules/payment/utils/paymentUtils.js","src/utils/loadScript.js","src/utils/urlUtils.js","src/modules/paypal/components/WithPayPalButton.js","src/modules/tappay/usePollingTapPayTxResult.js","src/modules/tappay/WithTapPayCreditCardButton.js","src/modules/payment/screens/SelectPaymentScreen.js","src/actions/timeAction.js","src/reducers/createReducers.js","src/reducers/timeReducers.js","src/reducers/userReducers.js","src/reducers/paymentReducers.js","src/reducers/index.js","src/store/configureStore.js","App.js","src/navigation/useLinking.js","src/utils/silentTimerWarnings.js","src/assets/images/pwa1.png","src/assets/images/pwa2.png","src/assets/images/pwa3.png","src/assets/images/rewardstars.png","src/assets/images/rewardlock.png","src/assets/images/signinwithapple.png","src/assets/images/playbn.png","src/assets/images/commentbn.png","src/assets/images/likebn.png","src/assets/images/followbn.png","src/assets/images/help.png","src/assets/images/addvideo_step1.png","src/assets/images/addvideo_step2.png","src/assets/images/copy.png","src/assets/images/wait.png","src/assets/images/tabbargetstar_S.png","src/assets/images/tabbargetstar_N.png","src/assets/images/tabbargetfans_S.png","src/assets/images/tabbargetfans_N.png","src/assets/images/tabbargetlike_S.png","src/assets/images/tabbargetlike_N.png","src/assets/images/tabbarbuy_S.png","src/assets/images/tabbarbuy_N.png","src/assets/images/tabbarmore_S.png","src/assets/images/tabbarmore_N.png","src/assets/images/findaccountpic2.png","src/assets/images/download.png","src/assets/images/server_maintenance.png","src/assets/images/login.png","src/assets/images/step2-2.png","src/assets/images/step3.png","src/assets/images/step4.png","src/assets/images/step6.png","src/assets/images/step5.png"],"names":["module","exports","omitProps","compose","mapProps","omit","pick","isExist","complement","anyPass","isNil","isEmpty","equalsAndAlways","equals","addIndex","map","divide","__","useWith","unapply","identity","always","_mayInvoke","cond","juxt","flip","T","ifElse","is","Function","nth","apply","undefined","StyledImage","styled","Image","setPropTypes","branch","not","prop","withProps","applySpec","inActiveImg","source","getTime","a","async","axios","get","res","isInStandaloneMode","window","navigator","standalone","isIosBrowser","userAgent","toLowerCase","test","isIos","getMobileOperatingSystem","vendor","opera","MSStream","getIOSVersion","parseFloat","exec","replace","e","getExpoBundleVersion","process","APP_MANIFEST","version","Constants","manifest","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","firebase","apps","length","initializeApp","remoteConfig","settings","minimumFetchIntervalMillis","fetchAndActivate","__DEV__","functions","auth","getOrders","type","retry","followingListObject","callable","httpsCallable","data","getAuthUserId","uid","currentUser","signInAnonymously","user","updateUserStars","stars","uniqueId","payload","updateUserAppleId","appleId","updatedAt","firestore","FieldValue","serverTimestamp","updateUserInfo","getUserInfoByAppleId","createUserDbRecord","getUserInfo","console","log","hasUserDbRecord","createOrder","selectedItem","tiktokProfile","orderCount","hasPurchased","canMakePaymentsWithActiveCard","regionName","updateOrderStatus","orderId","updateOrderFunction","onAuthStateChanged","Promise","resolve","reject","catch","newUser","getLoginUserTikTokInfo","username","getTikTokUserInfo","functionNames","_","shuffle","functionName","getUserTikTokVideoList","getServerTime","timezone","handlePayByPrime","getPrimeResult","product","buyer","isDev","frontend_redirect_url","location","origin","getUserTransactionByBankTxId","bankTxId","getTapPayRecord","recTradeId","rec_trade_id","head","path","fulfillByTxID","txId","getVideoFromLink","url","slackNotificationFunction","checkReturnUserInfo","hasReviewed","hasFollowedIg","hasRedeemedPromoCode","hasRedeemedIOSFirstLoginReward","canRedeemPromoCode","referralCount","referralStars","subscriptions","rewardReview","rewardFollowIg","rewardDailyLogin","date","dailyRewardCount","verifyPromoCode","promoCode","isPromoCodeValid","redeemPromoCode","referrerUid","redeemIOSFirstLoginReward","flagUserHasUsedWithIOSReward","used","checkOrderTikTokStatus","order","createTransactionRecord","getPercentageUseAPI","param","value","JSON","parse","video","dedent","countryCode","country","platform","newTikTokLogin","Platform","select","ios","android","default","applePay","tiktok","nickName","followingCount","followerCount","avatar","newPurchase","OS","isApplePay","text","isSubscription","purchaseToken","post","err","response","purchaseError","error","newRedeem","webVideoUrl","newFollow","diggCount","newReview","getUserInfoError","env","catchError","stringify","newPayPalEvent","message","purchase_units","payments","captures","id","price","postMessage","newApplePayEvent","email","newTapPayEvent","tapWebPurchase","tapPromotion","newReferral","referrerUniqueId","suspiciousReferral","suspiciousAccount","suspiciousCount","prevDiggCount","currentDiggCount","prevFollowingCount","currentFollowingCount","blockedAccount","redeemWebFirstLoginReward","Date","getDate","getTimeError","String","uidChanged","newUid","suspiciousTransaction","anonymousStars","errorLog","errorMessage","logName","logMessage","newPendingTapPayEvent","result","record_status","logEvent","name","dataLayer","push","event","getUserProfileInfo","proxy","isLogin","userAgentFactory","UserAgent","deviceCategory","toString","firebaseApi","statusCode","getUsernameFromShareLink","shareLink","dataString","start","indexOf","end","uniqueIdStart","slice","getUserVideoList","getVideoInfoFromLink","getVideoInfoFromLinkLocal","headers","referer","rawVideoMetadata","split","videoProps","videoData","props","pageProps","itemInfo","itemStruct","author","item","imageUrl","cover","stats","commentCount","videoUrl","playAddr","time","slack","tiktokUserDataToProfile","userId","following","fans","coversMedium","signature","heart","digg","isSecret","secUid","openFavorite","init","canMakePayments","TPDirect","paymentRequestApi","checkAvailability","checkCanMakePaymentsWithActiveCard","setupSDK","setupApplePay","merchantIdentifier","ApplePaySession","argNames","args","action","forEach","arg","index","PRODUCTS_IDS","productsLocalPrices","TW","KZ","KH","NG","JP","LB","LV","AE","HK","CO","RS","AU","PE","NZ","IT","BM","DE","DK","KW","BE","IQ","SK","SI","AT","PL","RU","GE","DZ","KY","JO","ZA","LI","SE","FR","MM","MO","FI","ID","QA","TH","CZ","IN","CA","BR","PT","RO","MA","LT","EE","VG","HU","KE","HR","LU","SA","MY","PY","IE","NL","BH","NO","UA","BO","IL","US","CL","GB","CY","OM","ES","KR","GR","CH","LK","GH","SG","EG","TC","TR","BD","PK","PH","BG","FM","TZ","VN","CR","MX","getProductLocalPrice","productId","Intl","DateTimeFormat","resolvedOptions","timeZone","ct","getTimezone","localPrice","IAP_PRODUCTS","discount","period","promotion","getProductList","purchasedProductIds","purchaseHistory","filter","purchase","productsWithoutPurchased","Object","values","receiveApplePayAvailability","makeActionCreator","receivePurchaseHistory","resetUnprocessedPurchase","resetUnprocessedTransaction","timeZoneCountryDict","getCountryCode","locale","addDays","days","setDate","provider","OAuthProvider","addScope","signInWithApple","signInWithRedirect","getAppleLoginResult","getRedirectResult","additionalUserInfo","profile","SUPPORTED_LANG_OF_APPLE_BUTTON","ar_SA","ca_ES","cs_CZ","da_DK","de_DE","el_GR","en_GB","en_US","es_ES","es_MX","fi_FI","fr_CA","fr_FR","hr_HR","hu_HU","id_ID","it_IT","iw_IL","ja_JP","ko_KR","ms_MY","nl_NL","no_NO","pl_PL","pt_BR","pt_PT","ro_RO","ru_RU","sk_SK","sv_SE","th_TH","tr_TR","uk_UA","vi_VI","zh_CN","zh_HK","zh_TW","requestTikTokUser","receiveTikTokUser","resetTikTokUser","requestUserTikTokVideo","receiveUserTikTokVideo","resetUserTikTokVideo","receiveAuthUser","updateStarsCount","rewardUser","updateReturnUserInfo","updatePurchaseStatus","updateHasRedeemedStatus","updateIsPendingRedeemPromoCode","saveReferrerInfo","updateHasUserDbRecord","foundSuspiciousAccount","flagUseRedeemIOSFirstLoginReward","updatePendingStarsCount","resetPendingStarsCount","updateHasRedeemed","updateAppleId","updateUidAndStars","updateShowLoginScreenCount","renewSubscriptionIfNeeded","dispatch","getState","apis","keys","state","payment","history","subscription","renewAt","toDate","now","purchaseStarsAction","getUserProfileInfoAction","trim","prevUniqueId","userInfo","pendingStars","serializedTikTokProfile","currentUniqueId","slackPayload","checkFollowStatusAction","targetUniqueId","currentVideoInfo","authUserUniqueId","isPendingRedeemPromoCode","rewardStarsCount","shouldSkipFetchingTikData","Math","random","shouldRewardUser","isFetchTikTokApiFailed","tiktokUser","delay","newVideoInfo","newFollowingCount","newDiggCount","targetId","followingUser","createdAt","redeemedPromoCodeAction","trackingData","redeemStars","isDirectPurchase","currentStars","hasRedeemed","serverStars","flagUseRedeemIOSFirstLoginRewardAction","details","payer","email_address","then","slackLog","rewardReviewAction","rewardFollowIgAction","checkReturnUserInfoAction","returnUserInfo","verifyPromoCodeAction","createTransactionRecordAction","productInfo","paypal","tapPay","purchaseTime","paypalProductId","paypalPrice","language","paymentType","content","payByPrimeResult","transactionId","join","amount","currency_code","Number","propOr","el","require","en","es","fr","it","ja","ko","pl","pt","ru","tr","zh","vi","deviceLanguage","NativeModules","I18nManager","localeIdentifier","SettingsManager","AppleLocale","AppleLanguages","i18n","fallbacks","translations","Container","View","InstructionView","Title","Text","SubTitle","IconWithTitle","title","style","alignItems","alignSelf","width","height","maxWidth","marginTop","textAlign","fontSize","ArrowIcon","Icons","ArrowBottom","CloseButton","onPress","TouchableOpacity","position","top","right","PWAInstructionView","shouldCheckLaunchTimes","React","shouldDisplay","setShouldDisplay","AsyncStorage","getItem","parseInt","setItem","checkLaunchTimes","t","DailyReward","useDispatch","visible","setVisible","useSelector","dailyReward","serverTime","serverTimeDate","datetime","today","isRestrictedCountries","rewardDailyLoginAction","ContentWrapper","GiftImage","Calendar","DATES","key","ActionButton","ActionButtonText","screenWidth","Dimensions","CalendarDateUnit","isToday","isFuture","CalendarDateUnitWrapper","CalendarDateUnitMonthText","getMonth","CalendarDateUnitDateText","LockImage","body","actions","onConfirm","confirm","Alert","alert","propTypes","PropTypes","func","queryLang","StyledImageBackground","ImageBackground","Content","SkipText","AppleLoginButton","LeftWrapper","AppleLoginScreen","route","setAppleLoginModalStatus","loginType","nextRoute","isAppleButtonLoadError","setIsAppleButtonLoadError","navigation","useNavigation","params","onPressClose","goBack","navigate","skip","resizeMode","borderRadius","uri","onError","os","Wrapper","AppleLoginModal","appleLoginModalStatus","transparent","backgroundColor","margin","BANNER_LIST","iconSource","linkUrl","subtitle","FULLSCREEN_LIST","mediaSource","HomeScreen","orders","setOrders","displayedOrderCount","setDisplayedOrderCount","isLoading","setIsLoading","shouldLoadMore","setShouldLoadMore","refreshing","setRefreshing","wentToTikTok","setWentToTikTok","setCurrentVideoInfo","authUser","showSuspiciousAlert","followingList","onRefresh","finally","updatedOrders","showLoginCount","checkAppleId","coverImage","imgUrl","onChange","onForeground","onBackground","appState","useRef","AppState","currentState","isValidFunction","useEffect","handleAppStateChange","nextAppState","current","match","addEventListener","removeEventListener","useAppState","updateOrderItems","videoInfo","StyledScrollView","refreshControl","RefreshControl","StyledActivityIndicator","size","color","UserProfilePicWrapper","UserProfilePic","IdText","ButtonWrapper","onPressFollowButton","isFollowButton","UnfollowWarningText","ScrollView","attrs","flex","contentContainerStyle","ActivityIndicator","FollowButtonText","FollowTouchableOpacity","isSkipButton","PlayButtonWrapper","PlayButton","FollowButtonTypeIcon","FollowButton","rewardNumber","flexDirection","FontAwesome","marginRight","Ionicons","SkipButton","link","Linking","canOpenURL","supported","openURL","newOrders","RefreshButton","justifyContent","marginLeft","left","zIndex","tintColor","tabIconDefault","tabIconSelected","tabBar","errorBackground","errorText","warningBackground","warningText","noticeBackground","noticeText","primary","purple","gray","lightGray","lightBlue","pink","lightPink","blue","darkBlue","dark","darkBlue2","StarsButton","Colors","fontWeight","QuestionButton","destination","Stack","createStackNavigator","HomeStack","Navigator","initialRouteName","Screen","component","options","headerLeft","headerRight","headerTitleAlign","AppleLoginText","ProfileCard","ProfileCardWrapper","ProfileCardText","ProfileCardStatsWrapper","number","isStars","Avatar","ProfileCardBoldText","AvatarWrapper","ProfileCardStarsItemWrapper","ProfileCardStarsItem","GenSignatureButtonWrapper","GenSignatureButton","UploadVideoFromLink","TutorialImage","ParaText","padding","VideoLinkAreaWrapper","VideoLinkTitle","VideoLinkArea","setUrl","StyledTextInput","onChangeText","autoCapitalize","placeholder","ConfirmButton","Entypo","TextInput","ListNumber","Paragraph","children","LikesTab","ifFetchingUserTikTokVideos","setShouldReload","items","videos","FlatList","paddingBottom","showsVerticalScrollIndicator","keyExtractor","numColumns","renderItem","ListHeaderComponent","ListHeaderText","ListItemWrapper","VideoPreview","LikesNumberText","ListItem","borderColor","borderWidth","AntDesign","covers","unitIDs","banner","interstitial","rewarded","setTestDeviceIDAsync","AdMobRewarded","setAdUnitID","AdMobInterstitial","SegmentedControl","selectedTab","setSelectedTab","containerStyle","idx","Tab","isSelected","isLast","RedeemContentList","currentType","listContents","contents","bonusAmount","commentContents","getListContents","ItemNameImage","ListItemContainer","ItemNameText","StarsNumberText","ItemName","ItemButtonWrapper","ItemButtonText","ItemButton","disabled","disableRedeem","setDisabledRedeem","adjustedOrderCount","floor","isSuccessful","RedeemScreen","prevVideos","curVideos","RedeemStack","RedeemLikesScreen","UploadVideoLinkScreen","RedeemLikesStack","DiscountLabelWrapper","DiscountLabelText","DiscountLabel","string","customText","FreeItemName","FreeDiscountLabel","FreePurchaseItem","SubscriptionText","StarPurchaseItem","object","WebStarPurchaseItem","useCallback","onPayPalCaptureApprove","onApplePayApprove","onTapPayCreditCardApprove","StarPurchaseItemWithIAP","purchaseItemAsync","ItemNumberText","itemNumber","DirectPurchaseItem","WebDirectPurchaseItem","web","screenHeight","PurchaseItem","initialListContents","PurchaseScreen","wentToReview","setWentToReview","unprocessedPurchase","unprocessedTransaction","PurchaseStack","Header","statusBarHeight","Modal","WebModal","NativeModal","onPressShare","share","Share","InviteModal","setIsInviteModalOpen","InviteModalWrapper","keyboardShouldPersistTaps","enableOnAndroid","removeClippedSubviews","InviteModalBody","InviteModalImage","InviteModalBottomArea","InviteModalBottomAreaInstruction","CopyIcon","ButtonsWrapper","InviteModalButton","isCancel","ButtonText","KeyboardAwareScrollView","PromoCodeModal","setIsPromoCodeModalOpen","hasCompleted","setHasCompleted","showActivityIndicator","setActivityIndicator","setPromoCode","isInvalidCode","setIsInvalidCode","PromoCodeModalWrapper","CompleteBody","PromoCodeModalImage","paddingHorizontal","PromoCodeModalBottomAreaInstruction","PromoCodeModalButton","PromoCodeModalBody","PromoCodeModalBottomArea","selectTextOnFocus","InvalidText","onPressConfirm","VersionText","positiveReviews","SettingsScreen","isInviteModalOpen","isPromoCodeModalOpen","shouldLinkToReview","recipients","subject","MailComposer","hasRedeemedIOSFirstLoginRewardUsed","SettingsStack","useListenFromTapPay","queryString","search","bank_transaction_id","close","BottomTab","createBottomTabNavigator","BottomTabNavigator","tabBarOptions","showLabel","lazy","tabBarIcon","TabBarIcon","activeImg","tabBarLabel","HelpModal","setIsHelpModalOpen","isFetchingUser","HelpModalWrapper","HelpModalBody","HelpModalImage","HelpModalBottomArea","HelpButtonsWrapper","HelpModalButton","TextTicker","LoginScreen","isHelpModalOpen","setUsername","appleIdPayload","LogoArea","Logo","InputAreaWrapper","InputAreaContentWrapper","UserNameLabel","TextInputArea","bottom","WarningMessage","ContinueButton","ContinueButtonText","HelpButton","HelpButtonText","InputArea","sanitizedUsername","Keyboard","dismiss","shouldShowAppleLogin","onPressContinue","TutorialScreen","goToHome","pop","SafeAreaView","TikFansText","GetStartedButton","GetStartedButtonText","IntroductionScreen","loadDynamicScript","callback","existingScript","document","getElementById","script","createElement","src","appendChild","onload","query2Search","fromPairs","decodeURIComponent","drop","concat","encodeURIComponent","toPairs","_config","WithPayPalButton","config","onCaptureApprove","onCancel","onClick","onClose","Buttons","create","application_context","shipping_preference","onApprove","capture","when","invoker","render","button","nativeID","isRequired","memo","usePollingTapPayTxResult","tid","pollingTimes","pollingTxResult","onSuccess","onPending","setTimeout","Swal","fire","icon","showCancelButton","isConfirmed","clearTimeout","StyledTouchableOpacity","StyledText","isOpenFrame","ConfirmBtnWrapper","ConfirmBtnText","TapPayCardViewWrapper","EmailInput","invalidEmail","WithTapPayCreditCardButton","onProcess","onFailed","setIsOpenFrame","canGetPrime","setCanGetPrime","setEmail","setInvalidEmail","card","onUpdate","update","setup","lineHeight","errorColor","placeholderColor","textContentType","keyboardType","autoCompleteType","validateEmail","getPrime","priceNumber","prime","total_amount","toFixed","win","open","status","payment_url","setInterval","closed","clearInterval","Error","StyledHeader","HeaderTitle","Body","OrderLabel","OrderItemWrapper","OrderItemText","OrderPriceText","OrderItem","SelectPaymentWrapper","SelectPaymentScreen","useState","ShowSuccessPopUp","requestTime","receiveTime","initialState","handlers","hasOwnProperty","createReducers","isFetching","hasLaunched","isFetchingUserError","dailyRewardBeganAt","shouldReloadUserProfile","applePayAvailability","transaction","rootReducer","combineReducers","timeReducers","userReducers","paymentReducers","middlewares","thunkMiddleware","withExtraArgument","finalCreateStore","applyMiddleware","createStore","persistConfig","storage","ExpoFileSystemStorage","stateReconciler","autoMergeLevel2","persistedReducer","persistReducer","store","persistor","persistStore","configureStore","App","containerRef","isLoadingComplete","setLoadingComplete","initialNavigationState","setInitialNavigationState","routeNameRef","navigationRef","getInitialState","useLinking","prefixes","makeUrl","Root","screens","Login","SplashScreen","preventAutoHide","warn","hide","loadResourcesAndDataAsync","oldUid","ApplePay","InAppPurchases","results","acknowledged","consumeItem","firebaseTime","skipLoadingScreen","loading","theme","styles","container","StatusBar","barStyle","NavigationContainer","ref","onStateChange","previousRouteName","currentRouteName","getActiveRouteName","routes","analytics","setCurrentScreen","headerMode","mode","gestureEnabled","StyleSheet","_setTimeout","global","_clearTimeout","timerFix","runTask","fn","ttl","waitingTime","InteractionManager","runAfterInteractions","afterTime","min","startsWith"],"mappings":"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","file":"static/js/app.d1d62aac.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAAB/0lEQVRIx7WWT0hUURSHv981dYYkkiCmFjLCvGmjiNAirKUg2F5KcNHq9W+mFrp3b4vCkHHnLph1tFBxVa2CaGkimkg5iyjHiVEn32lhiNG8mefoHHibe+75fvecc+/hiYhmXx50sm93CPhBp3utyzOlKHGKBF+bjFHZeo9Z/2GUPtGauKHuyd16sS7S8SuFzBEcwKyPSiETJTSagAVjkdYaEbBlvw/oreLq/es7ZQZOYw35ogiY5VsIbDR0Q2CjZvmWmrfIzMTKw7tgtzA6EDGwGCiO2UXgep1DfkD6CVYG7WLsIkqgt3gzr2Sf/XGMKZphYsKBsjTNlHVgxeYJWNHhlEUcNKE8BzhlnVK5JaRBROEM4QWkQaVyS0ezyDYeX6X8Ow9285T0d8TPjajr5df/hp3ZbCsrH6cwe9IYWy/w+ickv1Jzmtry/TWw5Anp67qW6677km31UfrkcABL2qrv1R8VQTDccPkDd7u+gFnjAlVi/23y1vh5iqXvmLU32OQ9LnRcUuLZr+oZFHcGQuFiG+ne4cd2SAbtFHcGwkskuRD4PGrrUTo3p3RuDrX1IOZDsnDhAqnEAtLisd0l5HylZ4fkTW8erXrTm0rPDiHng0rH4IukEgs1/ypsJdNOUBlG1kVbPK/k8281+7r+9Ar75RFMG7jWN/Km9477/wC0ZrSyOkVD5QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACPElEQVRIDbVVzWvUUBCfme4WP3azqYrgxWvBi99gexDxIKhXkaXZggdREEFkUZRtJLAfUIt/gFDEQ7viQbF4qviBl16KIKv+AaJHQbL1C9e8cV4gy9uULGpiILzJ/H7zm7zJvAnAf74wrs/e401+r3uSkG0AVJTD1YI31VnPY/ry6/644mCfYGNE+KawOfcar532TW4/AXsvNnR7H+cY8AwwFwZIiO+AsVpqOcva33XbExyoeQbeNciDHwDUtHaOz+L5Az2NhQnWvIfb1c9vjyRgwgwwbQQMgLgqAluBVY0ZyMRjdgeKdMS+7nwOE/i1hWVmPhYjpXpExCdW3jmOazPto4EKnqVSSwiWXZ8gpdSlBDy1W0p+juQrTKZWShCQMh0mqf22BDy1W7S3yA7wQ2qlJAHE99JqGPZ2EieNX1p0haROD9KIDItFhDZKnbA7s7gi66Fh5H/AOqVmZY/eATPhRckmxzyrC7+PjOYdrR0ed7vuvEKgcjgOsshBfLnold9qqf48sZrOkiQ4KzenyUFILbsxfTvS6CfQDqvl3EWCKxH41yvhnLxozYwbSKABq1G5hUiuSfojG/Gm3ahcjXP7/4M44LuLZQ74DgBvjGPmswj05L5gtabnTX9kJybQBN9dOAgKlqSFd0QB5ipd8omIThXrUy9Nv2mvK5EJluqV1RzzfhknT01/aCM8z+VHdg8T17yhO4hE9WGU/0ZVxm9TfDIg4UZp1JlFD1XEyWT96t7bG5YtE7WMRH4DGNKw+OLbGvwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACNElEQVRIDbVVTUhUURT+zpM3kIUkRYsgkZLaClKrdkJgQSu3rlQMgopJCnSit1AhUAsTaQjctYiQFm3ctSjcROTeRRAF0iaYxn5m9B2/Gz657827d3Sgywz3nHu+833n/hye4AAjmtPztRgPILgkwCmmrEOxEo5jKRKJfRTE+8fkrA4pUCbhkSxSBO87OnH1/rD8zMYSP0iMvLn0RC+4yA1eFZcrPzCfl5useQXiOkp5lSfJZqbISGlBz9lrtu0VMGdug1221tw4r8Dehbp499d9OK8AGdb3WTyGBG6cX0Dx2sP7L8SX9K3tKD64cF4BvvNFEqy5ks06qx+JxuSXC+MVME0UFjBAkeUsgak8aMPAVFFWszHbb9poCTia1556jIvmQs2Zm2PxVZ7k/fe56Q4mHmuvbGOIPdHPpuri3M6k7+zwT6zuzckAL4pF+e2q1Ckws6gnqn/wjJ086Eo26yTYRIA703flZR4uV8C0PrvzLSs+k5eUt8ZLn5kel8lsrEEgWtCOWg0fWXlPFtzMp8hNiizZuIZnWv+Lh62Q75E+ip7qaadAVNZ2Bm/YgMPYPNJj3P2onZPaQb3ClwIYkZYHv2/X7eSUAM/wrB1syc5wpAT4cd1qidRK4jFVLZcv2BqFAla5i4q1dHhT8MpOSglEt+Qrg9co8tkGHcgW7PDNPy/04Z6Nb+gDEyyXNfxS5WUprtDt5b+b9nEVhLRjUfCHLSZv0t9gO7+TECtTt2WDfmrsAuo9kl7Ew/RhAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAWCAYAAAD0OH0aAAAACXBIWXMAAAsSAAALEgHS3X78AAABvUlEQVQ4y42TMYgTQRSGvzebcDEBtRJBEImF2NvZXBBEdie4UYJiDObwEEWwsLC1FqsrBAu9awSLNJfs7OJdlSsEKzsrCwUR7Cw0KbI6zyYnx3mb+NffN2/eezMSRdEbYAm4kqbpdxbEAFVVXVbV7TiOjy4UqtXqVRH5AJzL83yr0+kcnicIQKvVOjadTkeqehZ4VyqVLg6Hwx+FAkAYhseBEXAGeFur1S71+/2fB/UAQJZl3yqVSkNEPgLnJ5NJ1u12a4UVdmOtPeG93wFOi8jIGBMlSTL5p8JunHNfy+VyQ0Q+qeqy937YbrcPFQoAg8Hgi6o2gM+qemE8Hg96vV7lwCvtTRzHp/I831HVkyKyVa/XL8uiRUVRVFfV98ARYNMsEkTk2gzOjTHrcytYax95758AOdDOsmwQzIEfeu+fAr9E5HqWZZuFTYdh+ABYm8E30jTtF47VWnsfWBOR3yLS3QsDBPvgu977ZyKiInIrTdPX+w/8KzSbzVXv/fMZvOKce1X4Wq21K977lwDGmNvOuY2iYQRRFN0ENgAJguCOc2590Rd9rKoC3EuS5MWiRZaMMavAUpIk2/xH/gDI5aqyhbu3iAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAAB4klEQVRIx+2VvWtTURiHn99NrkMgi9WlCIUi4l9QdXCo+g8Iri041U1sI7SUlosaU4NpRsnYqoMZRUc/cBDbzcVNBIdiFV1SLCTpeV0SuL29X3EU3+kezr3Pc8573vce+B8ZofBged2umqMu6JtRvX9bT/JAgpaVenu8wDEJ9P0KZwLJAXjhF81RxzhtxlnEg9WmzeSBdzu8Nse0wYSJyW6Dm8P5QwKMvdDzuOuzliYZwjHOhVLi5LEfK5B4iNgZjh3Jkjj4QLA9BhuxgmpFT4sFFj3SJUHLSr0Or6JwxFaxzJX5ee3HHvIwVho2a46ag/HQSna8IosnCrR3u7w143wUfqzMpWBOvxOrKI8E8d4Z1/LAUwVJkphCT4RnCrIkEh/8MpeT4EfLNCZO+jxz8DlmZT8lamnwTEHQstJul3fAxeicwRiORysNm/0rwaAU35gxdegD8StcwuaopUm8UeAS24jr0T5Jk3ijwP0y0/cW9NwrHm3GJIlGgYcPdLVpM67PWrRP5LF0d0GbsTvodXiZBw5w55Yex+3kwFFdXreppBRN5IGnSYBTOG4kCb4gTOIA2EqDRyUS3wY5/+4ZrdgzaLet8PErSxI/jovN8F8xs+ObdsH1mfNFPajo079z6f8BN4ELEkixcA8AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/appleid_button@2x.a6e9bd62.png\";","module.exports = __webpack_public_path__ + \"static/media/best-seller.4a0ddd5e.png\";","module.exports = __webpack_public_path__ + \"static/media/invite.f6092dbc.png\";","import { omit, compose, pick } from 'ramda';\nimport { mapProps } from 'recompose';\n\nexport const omitProps = compose(\n mapProps,\n omit,\n);\n\nexport const pickProps = compose(\n mapProps,\n pick,\n);\n","// @format\nimport {\n complement,\n anyPass,\n isNil,\n isEmpty,\n equals,\n addIndex,\n map,\n divide,\n __,\n useWith,\n unapply,\n identity,\n always,\n compose,\n cond,\n juxt,\n flip,\n T,\n ifElse,\n is,\n nth,\n apply,\n} from 'ramda';\n\nexport const isExist = complement(anyPass([isNil, isEmpty]));\nexport const notEq = complement(equals);\nexport const mapIndexed = addIndex(map);\nexport const half = divide(__, 2);\n\nconst equalsAndAlways = useWith(unapply(identity), [equals, always]);\n\n// toggle :: a -> b -> (* -> *)\nexport const toggle = compose(\n cond,\n juxt([equalsAndAlways, flip(equalsAndAlways), always([T, identity])]),\n);\n\nconst _mayInvoke = ifElse(\n compose(\n is(Function),\n nth(0),\n ),\n compose(\n apply(__, undefined),\n nth(0),\n ),\n compose(\n apply(__, undefined),\n nth(1),\n ),\n);\n\n// mayInvoke :: (fn, defaultFn) -> fn() || defaultFn()\nexport const mayInvoke = unapply(_mayInvoke);\n","// @format\nimport styled from 'styled-components/native';\nimport { compose, applySpec, prop, ifElse, not } from 'ramda';\nimport { setPropTypes, withProps, branch } from 'recompose';\nimport PropTypes from 'prop-types';\nimport { Image } from 'react-native';\n\nimport { omitProps } from 'utils/recomposeUtils';\nimport { isExist } from 'utils/ramdaUtils';\n\nconst StyledImage = styled(Image)`\n height: 45;\n width: 45;\n`;\n\nexport default compose(\n setPropTypes({\n // activeImg: PropTypes.number.isRequired,\n // inActiveImg: PropTypes.number,\n }),\n branch(\n compose(\n not,\n isExist,\n prop('inActiveImg'),\n ),\n withProps(\n applySpec({\n inActiveImg: prop('activeImg'),\n }),\n ),\n ),\n withProps(\n applySpec({\n source: ifElse(prop('focused'), prop('activeImg'), prop('inActiveImg')),\n }),\n ),\n omitProps(['activeImg', 'inActiveImg', 'focused']),\n // setPropTypes({\n // source: PropTypes.number,\n // }),\n)(StyledImage);\n","import axios from 'axios';\n\nexport const getTime = async () => {\n try {\n const res = await axios.get('http://worldtimeapi.org/api/ip');\n return res;\n } catch (e) {\n if (__DEV__) {\n console.log('getTime api error', e);\n }\n return {};\n }\n};\n","import Constants from 'expo-constants';\n\n// Detects if device is on iOS\nexport const isIos = () => {\n const userAgent = window?.navigator?.userAgent?.toLowerCase();\n return /iphone|ipad|ipod/.test(userAgent);\n};\n// Detects if device is in standalone mode\nexport const isInStandaloneMode = () =>\n 'standalone' in window?.navigator && window?.navigator?.standalone;\n\n// Checks if should display install popup notification:\nexport const isIosBrowser = () => {\n return isIos() && !isInStandaloneMode();\n};\n\nexport const getMobileOperatingSystem = () => {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Windows Phone must come first because its UA also contains \"Android\"\n if (/windows phone/i.test(userAgent)) {\n return 'Windows Phone';\n }\n\n if (/android/i.test(userAgent)) {\n return 'Android';\n }\n\n // iOS detection from: http://stackoverflow.com/a/9039885/177710\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n return 'iOS';\n }\n\n return 'unknown';\n};\n\nexport const getIOSVersion = () => {\n try {\n return (\n parseFloat(\n (\n '' +\n (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [\n 0,\n '',\n ])[1]\n )\n .replace('undefined', '3_2')\n .replace('_', '.')\n .replace('_', ''),\n ) || -1\n );\n } catch (e) {\n return undefined;\n }\n};\n\nexport const getExpoBundleVersion = () => {\n return process.env?.APP_MANIFEST?.version || Constants.manifest.version;\n};\n","import _ from 'lodash';\nimport { Platform } from 'react-native';\nimport firebase from 'firebase/app';\nimport '@firebase/functions';\nimport '@firebase/auth';\nimport '@firebase/remote-config';\nimport { head, compose, path } from 'ramda';\n// import messaging from '@react-native-firebase/messaging';\n\nimport { getExpoBundleVersion } from 'utils/system';\n\nconst firebaseConfig = __DEV__\n ? {\n apiKey: 'AIzaSyAF_OSUgUQgVixoIio2TRE4vy-Zwp6Lyus',\n authDomain: 'tikfans-hk.firebaseapp.com',\n databaseURL: 'https://tikfans-hk.firebaseio.com',\n projectId: 'tikfans-hk',\n storageBucket: 'tikfans-hk.appspot.com',\n messagingSenderId: '359885996311',\n appId: '1:359885996311:web:7e8173fa659f1fa04af752',\n measurementId: 'G-0M8QC4SWTY',\n }\n : {\n apiKey: 'AIzaSyAZqmylIOE4fQmf0pemugc2iBH33rSeMkg',\n authDomain: 'tikfans-prod-a3557.firebaseapp.com',\n databaseURL: 'https://tikfans-prod-a3557.firebaseio.com',\n projectId: 'tikfans-prod-a3557',\n storageBucket: 'tikfans-prod-a3557.appspot.com',\n messagingSenderId: '95733724385',\n appId: '1:95733724385:web:a30452b9c4c4154c3533a0',\n measurementId: 'G-KHCXNBWJM0',\n };\n\nif (firebase.apps.length === 0) {\n try {\n firebase.initializeApp(firebaseConfig);\n // firebase.firestore().enablePersistence({ synchronizeTabs: true });\n const remoteConfig = firebase.remoteConfig();\n remoteConfig.settings.minimumFetchIntervalMillis = 60 * 1000 * 15;\n remoteConfig.fetchAndActivate();\n } catch (e) {\n if (__DEV__) {\n console.log('Init firebase error', e);\n }\n }\n}\n\nconst functions = firebase.functions;\nconst remoteConfig = firebase.remoteConfig;\nconst auth = firebase.auth;\n\n// const getRemoteConfigValue = async ({ parameter, defaultValue }) => {\n// try {\n// if (defaultValue) {\n// remoteConfig().defaultConfig = {\n// [parameter]: defaultValue,\n// };\n// }\n// const value = remoteConfig().getValue(parameter);\n// return value;\n// } catch (e) {\n// if (__DEV__) {\n// console.log('remoteConfig parameter error', e);\n// }\n// return defaultValue;\n// }\n// };\n\nexport const getOrders = async ({ type = 'followers', retry = 0, followingListObject = {} }) => {\n const callable = functions().httpsCallable('getOrders');\n const res = await callable({ type, followingListObject });\n return res?.data;\n};\n\nexport const getAuthUserId = async () => {\n try {\n const uid = auth().currentUser?.uid;\n if (!uid) {\n const { user } = await auth().signInAnonymously();\n return user?.uid;\n }\n return uid;\n } catch (e) {\n if (__DEV__) {\n console.log('getAuthUserId error', e);\n }\n }\n};\n\nexport const updateUserStars = async ({ stars, uniqueId, ...payload }) => {\n const callable = functions().httpsCallable('updateUserStars');\n const res = await callable({ stars, uniqueId, ...payload });\n return res?.data;\n};\n\nexport const updateUserAppleId = async ({ appleId, uid, ...payload }) => {\n const data = {\n updatedAt: firebase.firestore.FieldValue.serverTimestamp(),\n uid,\n appleId,\n ...payload,\n };\n const callable = functions().httpsCallable('updateUserInfo');\n const res = await callable(data);\n return res?.data;\n};\n\nexport const updateUserInfo = async data => {\n const callable = functions().httpsCallable('updateUserInfo');\n const res = await callable(data);\n return res?.data;\n};\n\nexport const getUserInfoByAppleId = async appleId => {\n try {\n const callable = functions().httpsCallable('getUserInfoByAppleId');\n const res = await callable({ appleId });\n return res?.data;\n } catch (e) {\n if (__DEV__) {\n console.log('getUserInfoByAppleId error', e);\n }\n return undefined;\n }\n};\n\nexport const createUserDbRecord = async ({ uniqueId }) => {\n const callable = functions().httpsCallable('createUser');\n const res = await callable({ uniqueId });\n return res?.data;\n};\n\nexport const getUserInfo = async () => {\n try {\n const callable = functions().httpsCallable('getUserInfo');\n const res = await callable();\n return res?.data;\n } catch (e) {\n console.log('getUserInfo error', e);\n return { stars: 0, hasUserDbRecord: false };\n }\n};\n\nexport const createOrder = async ({\n type,\n selectedItem,\n tiktokProfile,\n orderCount,\n hasPurchased = false,\n canMakePaymentsWithActiveCard = false,\n regionName,\n}) => {\n try {\n const callable = functions().httpsCallable('createOrder');\n const res = await callable({\n tiktokProfile,\n orderCount,\n hasPurchased,\n regionName,\n selectedItem,\n type,\n version: getExpoBundleVersion(),\n });\n return res?.data;\n } catch (e) {\n console.log('createOrder error', e);\n }\n};\n\nexport const updateOrderStatus = async ({ orderId }) => {\n try {\n const updateOrderFunction = functions().httpsCallable('updateOrderStatus');\n await updateOrderFunction({ orderId });\n } catch (e) {\n console.log('updateOrderStatus error', e);\n }\n};\n\nexport const onAuthStateChanged = () => {\n return new Promise((resolve, reject) => {\n auth().onAuthStateChanged(async user => {\n if (!user) {\n const newUser = await auth()\n .signInAnonymously()\n .catch(e => reject(e));\n\n resolve(newUser);\n } else {\n resolve({ user });\n }\n });\n });\n};\n\nexport const getLoginUserTikTokInfo = async ({ username }) => {\n const functionName = 'getLoginUserTikTokInfo';\n const callable = functions().httpsCallable(functionName);\n const res = await callable({ username });\n return res?.data;\n};\n\nexport const getTikTokUserInfo = async ({ username }) => {\n const functionNames = _.shuffle([\n 'getTikTokUserInfo',\n // 'getTikTokUserInfo1',\n // 'getTikTokUserInfo2',\n // 'getTikTokUserInfo3',\n // 'getTikTokUserInfo4',\n // 'getTikTokUserInfo5',\n // 'getTikTokUserInfo6',\n ]);\n const functionName = functionNames[0];\n\n const callable = functions().httpsCallable(functionName);\n const res = await callable({ username });\n return res?.data;\n};\n\nexport const getUserTikTokVideoList = async ({ uniqueId }) => {\n const callable = functions().httpsCallable('getUserTikTokVideoList');\n const res = await callable({ uniqueId });\n return res?.data;\n};\n\nexport const getServerTime = async ({ timezone }) => {\n const callable = functions().httpsCallable('getServerTime');\n const res = await callable({ timezone });\n return res?.data;\n};\n\nexport const handlePayByPrime = async ({ getPrimeResult, product, buyer, isDev }) => {\n const callable = functions().httpsCallable('handlePayByPrime');\n const res = await callable({\n getPrimeResult,\n product,\n buyer,\n isDev,\n frontend_redirect_url: __DEV__\n ? 'https://31c4-123-51-173-132.ngrok.io'\n : window.location.origin,\n });\n return res?.data;\n};\n\nexport const getUserTransactionByBankTxId = async ({ bankTxId }) => {\n const functionName = 'getUserTransactionByBankTxId';\n const callable = functions().httpsCallable(functionName);\n const res = await callable({ bankTxId });\n return res?.data;\n};\n\nexport const getTapPayRecord = async ({ recTradeId, isDev }) => {\n const callable = functions().httpsCallable('tapPayRecord');\n const res = await callable({ isDev, rec_trade_id: recTradeId });\n return compose(head, path(['data', 'trade_records']))(res);\n};\n\nexport const fulfillByTxID = async ({ txId }) => {\n const functionName = 'fulfillByTxID';\n const callable = functions().httpsCallable(functionName);\n const res = await callable({ txId });\n return res?.data;\n};\n\nexport const getVideoFromLink = async ({ url }) => {\n const callable = functions().httpsCallable('getVideoFromLink');\n const res = await callable({ url });\n return res?.data;\n};\n\nexport const slackNotificationFunction = async ({ payload, url }) => {\n try {\n const callable = functions().httpsCallable('slackNotification');\n callable({ payload, url });\n } catch (e) {\n if (__DEV__) {\n console.log('slackNotificationFunction error', e);\n }\n }\n};\n\nexport const checkReturnUserInfo = async ({ uniqueId }) => {\n try {\n const callable = functions().httpsCallable('checkReturnUserInfo');\n const res = await callable({ uniqueId });\n return res?.data;\n } catch (e) {\n if (__DEV__) {\n console.log('checkReturnUserInfo firebase error', e);\n }\n return {\n hasReviewed: true,\n hasFollowedIg: true,\n hasRedeemedPromoCode: true,\n hasRedeemedIOSFirstLoginReward: true,\n canRedeemPromoCode: false,\n referralCount: 0,\n referralStars: 0,\n subscriptions: {},\n };\n }\n};\n\nexport const rewardReview = async ({ stars, uniqueId }) => {\n const callable = functions().httpsCallable('rewardReview');\n const res = await callable({ uniqueId, stars });\n return res?.data;\n};\n\nexport const rewardFollowIg = async ({ stars, uniqueId }) => {\n const callable = functions().httpsCallable('rewardFollowIg');\n const res = await callable({ uniqueId, stars });\n return res?.data;\n};\n\nexport const rewardDailyLogin = async ({ stars, uniqueId, date, dailyRewardCount }) => {\n const callable = functions().httpsCallable('rewardDailyLogin');\n const res = await callable({ uniqueId, stars, dailyRewardCount, date });\n return res?.data;\n};\n\n// export const registerAppWithFCM = async () => {\n// if (Platform.OS !== 'web') {\n// await messaging().registerDeviceForRemoteMessages();\n// if (__DEV__) {\n// // console.log('registerAppWithFCM');\n// }\n// }\n// };\n\nexport const verifyPromoCode = async (promoCode, uniqueId) => {\n if (promoCode === uniqueId) {\n return {\n isPromoCodeValid: false,\n };\n }\n const callable = functions().httpsCallable('verifyPromoCode');\n const res = await callable({ promoCode });\n return res?.data;\n};\n\nexport const redeemPromoCode = async ({ stars, uniqueId, referrerUid }) => {\n const callable = functions().httpsCallable('redeemPromoCode');\n const res = await callable({ stars, uniqueId, referrerUid });\n return res?.data;\n};\n\nexport const redeemIOSFirstLoginReward = async ({ uniqueId, stars }) => {\n const callable = functions().httpsCallable('redeemIOSFirstLoginReward');\n const res = await callable({ uniqueId, stars });\n return res?.data;\n};\n\nexport const flagUserHasUsedWithIOSReward = async ({ used = true }) => {\n const callable = functions().httpsCallable('flagUserHasUsedWithIOSReward');\n const res = await callable({ used });\n return res?.data;\n};\n\nexport const checkOrderTikTokStatus = async ({ orderId, order }) => {\n try {\n const callable = functions().httpsCallable('checkOrderTikTokStatus');\n await callable({ orderId, ...order });\n } catch (e) {\n if (__DEV__) {\n console.log('checkOrderTikTokStatus error', e);\n }\n }\n};\n\nexport const createTransactionRecord = async payload => {\n try {\n const callable = functions().httpsCallable('createTransactionRecord');\n const res = await callable(payload);\n return res?.data;\n } catch (e) {\n console.log('createTransactionRecord error', e);\n }\n};\n\nexport const getPercentageUseAPI = async () => {\n const callable = functions().httpsCallable('getRemoteConfig');\n try {\n const value = await callable({ param: 'percentageUseAPI' });\n return JSON.parse(value.data);\n } catch (e) {\n console.log('fetch remote config error');\n return {\n video: 0,\n user: 0,\n };\n }\n};\n","import axios from 'axios';\nimport dedent from 'dedent';\nimport { Platform } from 'react-native';\nimport Constants from 'expo-constants';\n\nimport { slackNotificationFunction } from 'apis/firebase';\nimport { isInStandaloneMode, getIOSVersion } from 'utils/system';\n\nexport const newUser = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const newTikTokLogin = data => {\n if (!__DEV__) {\n const url = Platform.select({\n ios: 'https://hooks.slack.com/services/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',\n android: 'https://hooks.slack.com/services/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',\n default: 'https://hooks.slack.com/services/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',\n });\n const payload = {\n text: dedent`uid: ${data?.uid}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n applePay: ${data?.applePay}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const newPurchase = data => {\n try {\n if (!__DEV__) {\n const url =\n Platform.OS === 'web'\n ? data?.isApplePay\n ? 'https://hooks.slack.com/services/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'\n : 'https://hooks.slack.com/services/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'\n : 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n stars: ${data?.stars}\n isSubscription: ${data?.isSubscription}\n orderId: ${data?.orderId}\n purchaseToken: ${data?.purchaseToken}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n avatar: ${data?.tiktok?.avatar}\n userAgent: ${window?.navigator?.userAgent}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newPurchase notification error: ', e);\n }\n }\n};\n\nexport const purchaseError = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n stars: ${data?.stars}\n error: ${data?.error}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const newRedeem = data => {\n try {\n if (!__DEV__) {\n const redeemFollowUrl =\n 'https://hooks.slack.com/services/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';\n const redeemLikeUrl =\n 'https://hooks.slack.com/services/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';\n const redeemWebFollowUrl =\n 'https://hooks.slack.com/services/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';\n const redeemWebLikeUrl =\n 'https://hooks.slack.com/services/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';\n const redeemWebCommentUrl =\n 'https://hooks.slack.com/services/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';\n\n let url = '';\n if (Platform.OS === 'web') {\n if (data.type === 'like') {\n url = redeemWebLikeUrl;\n } else if (data.type === 'follower') {\n url = redeemWebFollowUrl;\n } else {\n url = redeemWebCommentUrl;\n }\n } else if (data.type === 'like') {\n url = redeemLikeUrl;\n } else {\n url = redeemFollowUrl;\n }\n\n const payload = {\n text: dedent`uid: ${data?.uid}\n orderCount: ${data?.orderCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n avatar: ${data?.tiktok?.avatar}\n webVideoUrl: ${data?.webVideoUrl ?? ''}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n console.log('newRedeem error', e);\n }\n};\n\nexport const newFollow = data => {\n if (!__DEV__) {\n const followUrl =\n 'https://hooks.slack.com/services/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';\n const likeUrl =\n 'https://hooks.slack.com/services/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';\n const webFollowUrl =\n 'https://hooks.slack.com/services/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';\n const webLikeUrl =\n 'https://hooks.slack.com/services/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';\n const commentUrl =\n 'https://hooks.slack.com/services/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';\n\n let url = '';\n\n if (Platform.OS === 'web') {\n if (data.type === 'like') {\n url = webLikeUrl;\n } else {\n url = webFollowUrl;\n }\n } else if (data.type === 'like') {\n url = likeUrl;\n } else if (data.type === 'comment') {\n url = commentUrl;\n } else {\n url = followUrl;\n }\n\n const payload = {\n text: dedent`uid: ${data?.uid}\n orderCount: ${data?.orderCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n digg: ${data?.tiktok?.diggCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web' && Math.random() < 0.3) {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const newReview = data => {\n try {\n if (!__DEV__) {\n const url =\n Platform.OS === 'web'\n ? 'https://hooks.slack.com/services/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'\n : 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n orderCount: ${data?.orderCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n uniqueId: ${data?.tiktok?.uniqueId}\n nickName: ${data?.tiktok?.nickName}\n video: ${data?.tiktok?.video}\n followingCount: ${data?.tiktok?.followingCount}\n followerCount: ${data?.tiktok?.followerCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newReview error', e);\n }\n }\n};\n\nexport const getUserInfoError = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`API: TikTokUserInfo\n ENV: ${data.env ?? Platform.OS}\n URL: https://www.tiktok.com/@${data.username}\n catchError: ${data.catchError ?? false}\n data: ${JSON.stringify(data)}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}\n `,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n console.log('call getUserInfoError: ', e);\n }\n};\n\nexport const newPayPalEvent = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`type: ${data?.type}\n transactionId: ${data?.message?.purchase_units?.[0].payments?.captures?.[0].id}\n message: ${JSON.stringify(data?.message)}\n price: ${data?.price}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n platform: ${data?.platform}\n uid: ${data?.uid}\n avatar: ${data?.tiktok?.avatar}\n postMessage: ${JSON.stringify(data?.postMessage)}\n userAgent: ${window?.navigator?.userAgent}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newPayPalEvent error', e);\n }\n }\n};\n\nexport const newApplePayEvent = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`type: ${data?.type}\n message: ${JSON.stringify(data?.message)}\n price: ${data?.price}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n platform: ${data?.platform}\n email: ${data?.email}\n uid: ${data?.uid}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newApplePayEvent notification error: ', e);\n }\n }\n};\n\nexport const newTapPayEvent = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`type: ${data?.type}\n message: ${JSON.stringify(data?.message)}\n price: ${data?.price}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n platform: ${data?.platform}\n uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newApplePayEvent notification error: ', e);\n }\n }\n};\n\nexport const tapWebPurchase = async data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n platform: ${data?.platform}\n applePay: ${data?.applePay}\n price: ${data?.price}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n slackNotificationFunction({ payload, url });\n }\n } catch (e) {\n if (__DEV__) {\n console.log('tapWebPurchase error', e);\n }\n }\n};\n\nexport const tapPromotion = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n platform: ${data?.platform}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // slackNotificationFunction({ payload, url });\n }\n } catch (e) {\n if (__DEV__) {\n console.log('tapPromotion error: ', e);\n }\n }\n};\n\nexport const newReferral = data => {\n try {\n if (!__DEV__) {\n const url =\n Platform.OS === 'web'\n ? 'https://hooks.slack.com/services/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'\n : 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n referrerUid: ${data?.referrerUid}\n referrerUniqueId: ${data?.referrerUniqueId}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (!__DEV__) {\n console.log('newReferral error');\n }\n }\n};\n\nexport const suspiciousReferral = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n referralCount: ${data?.referralCount}\n referralStars: ${data?.referralStars}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('suspiciousReferral error');\n }\n }\n};\n\nexport const suspiciousAccount = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n suspiciousCount: ${data?.suspiciousCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n prevDiggCount: ${data?.prevDiggCount}\n currentDiggCount: ${data?.currentDiggCount}\n prevFollowingCount: ${data?.prevFollowingCount}\n currentFollowingCount: ${data?.currentFollowingCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const blockedAccount = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n suspiciousCount: ${data?.suspiciousCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n prevDiggCount: ${data?.prevDiggCount}\n currentDiggCount: ${data?.currentDiggCount}\n prevFollowingCount: ${data?.prevFollowingCount}\n currentFollowingCount: ${data?.currentFollowingCount}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const redeemWebFirstLoginReward = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n hasRedeemedIOSFirstLoginReward: ${data?.hasRedeemedIOSFirstLoginReward}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const rewardDailyLogin = data => {\n if (!__DEV__) {\n const url =\n data?.dailyRewardCount > 15\n ? 'https://hooks.slack.com/services/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'\n : 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n dailyRewardCount: ${data?.dailyRewardCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n date: ${new Date().getDate()}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const getTimeError = data => {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n dailyRewardCount: ${data?.dailyRewardCount}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n error: ${String(data?.error)}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n};\n\nexport const uidChanged = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`oldUid: ${data?.uid}\n newUid: ${data.newUid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n error: ${String(data?.error)}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('slack uidChanged error', e);\n }\n }\n};\n\nexport const suspiciousTransaction = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n orderId: ${data?.orderId}\n purchaseToken: ${data?.purchaseToken}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('suspiciousTransaction error', e);\n }\n }\n};\n\nexport const anonymousStars = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`uid: ${data.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n stars: ${data?.stars}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n // if (Platform.OS === 'web') {\n // slackNotificationFunction({ payload, url });\n // return;\n // }\n // axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('anonymousStars slack error', e);\n }\n }\n};\n\nexport const errorLog = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`functionName: ${data?.functionName}\n errorMessage: ${data?.errorMessage}\n uid: ${data.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('errorLog slack error', e);\n }\n }\n};\n\nexport const log = data => {\n try {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`logName: ${data?.logName}\n logMessage: ${data?.logMessage}\n uid: ${data.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n countryCode: ${data?.countryCode}\n country: ${data?.country}\n timezone: ${data?.timezone}\n regionName: ${data?.regionName}\n platform: ${data?.platform} ${isInStandaloneMode() ? '(PWA)' : ''}\n avatar: ${data?.tiktok?.avatar}\n iosVersion: ${getIOSVersion()}\n userAgent: ${window?.navigator?.userAgent}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n } catch (e) {\n errorLog({\n functionName: 'slack log function',\n errorMessage: String(e),\n ...data,\n });\n }\n};\n\nexport const newPendingTapPayEvent = data => {\n try {\n if (!__DEV__) {\n const url = 'https://hooks.slack.com/services/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';\n const payload = {\n text: dedent`type: ${data?.type}\n message: ${JSON.stringify(data?.message)}\n price: ${data?.price}\n countryCode: ${data?.countryCode}\n timeZone: ${data?.timezone}\n platform: ${data?.platform}\n uid: ${data?.uid}\n uniqueId: ${data?.tiktok?.uniqueId}\n avatar: ${data?.tiktok?.avatar}\n record_status: ${data?.result?.record_status}\n rec_trade_id: ${data?.result?.rec_trade_id}\n email: ${data?.result?.email}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}`,\n };\n if (Platform.OS === 'web') {\n slackNotificationFunction({ payload, url });\n return;\n }\n axios.post(url, payload).catch(err => console.log('slack err', err.response));\n }\n } catch (e) {\n if (__DEV__) {\n console.log('newApplePayEvent notification error: ', e);\n }\n }\n};\n","import { Platform } from 'react-native';\n\nexport const logEvent = ({ name }) => {\n if (Platform.OS === 'web' && window.dataLayer) {\n if (process.env.NODE_ENV === 'development') {\n console.log('dataLayer send', { event: name });\n } else {\n window.dataLayer.push({\n event: name,\n });\n }\n }\n};\n","import axios from 'axios';\nimport _ from 'lodash';\nimport { Platform } from 'react-native';\nimport UserAgent from 'user-agents';\n\nimport * as firebaseApi from 'apis/firebase';\nimport { getUserInfoError } from 'apis/slack';\nimport { logEvent } from 'modules/bi/biUtils';\n\nexport const getUserProfileInfo = async ({ username, proxy = '', isLogin = false }) => {\n const userAgentFactory = new UserAgent({ deviceCategory: 'mobile' });\n const userAgent = userAgentFactory.toString();\n try {\n if (isLogin) {\n const user = await firebaseApi.getLoginUserTikTokInfo({ username });\n\n if (user?.uniqueId) {\n return user;\n }\n if (user?.statusCode === 0) {\n return;\n }\n }\n\n // const headers = {\n // 'User-Agent': userAgent,\n // };\n // const shareApiUrl = 'https://cors-anywhere.herokuapp.com/https://www.tiktok.com/node/share/user/';\n // const shareApiRes = await axios.get(`${shareApiUrl}@${username}`, { headers }).catch(e => {\n // if (__DEV__) {\n // console.log('shareApiUrl client error', e);\n // }\n // if (!isLogin) {\n // getUserInfoError({ username, userAgent, catchError: `shareApiRes: ${String(e)}` });\n // }\n // });\n\n // const shareApiUser = shareApiRes?.data?.body?.userData;\n\n // if (!_.isEmpty(shareApiUser)) {\n // return shareApiUser;\n // }\n\n const user = await firebaseApi.getTikTokUserInfo({ username });\n if (!isLogin && _.isEmpty(user)) {\n getUserInfoError({ username, userAgent, env: 'Web => Cloud Function' });\n }\n return user;\n } catch (e) {\n if (__DEV__) {\n console.log('getUserProfileInfo error', e);\n }\n getUserInfoError({ username, userAgent, catchError: `getUserProfileInfo: ${String(e)}` });\n logEvent({ name: 'user_login_failed', username });\n }\n};\n\nexport const getUsernameFromShareLink = async shareLink => {\n try {\n const { data } = await axios.get(shareLink);\n const dataString = String(data);\n const start = dataString.indexOf(`\"uniqueId\":`);\n const uniqueIdStart = start + `\"uniqueId\":`.length + 1;\n let end = uniqueIdStart;\n while (dataString[end] !== `\"`) {\n end += 1;\n }\n const username = dataString.slice(uniqueIdStart, end);\n // console.log('start', dataString[end], start, uniqueIdStart, end);\n return username;\n } catch (e) {\n if (__DEV__) {\n console.log('getUsernameFromShareLink error', e);\n }\n return undefined;\n }\n};\n\nexport const getUserVideoList = async ({ uniqueId }) => {\n try {\n const data = await firebaseApi.getUserTikTokVideoList({ uniqueId });\n return data;\n } catch (e) {\n if (__DEV__) {\n console.log('getUserVideoList api error', e);\n }\n }\n};\n\nexport const getVideoInfoFromLink = async ({ url }) => {\n if (!url) {\n return;\n }\n try {\n if (Platform.OS !== 'web') {\n const data = await getVideoInfoFromLinkLocal({ url });\n if (!_.isEmpty(data)) {\n return data;\n }\n }\n const data = await firebaseApi.getVideoFromLink({ url });\n return data;\n } catch (e) {\n if (__DEV__) {\n console.log('getVideoInfoFromLink error', e);\n }\n }\n};\n\nconst getVideoInfoFromLinkLocal = async ({ url }) => {\n try {\n const response = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0',\n referer: 'https://www.tiktok.com/',\n },\n });\n const rawVideoMetadata = response.data\n .split(\n /`)[0];\n const videoProps = JSON.parse(rawVideoMetadata);\n const videoData = videoProps.props.pageProps.itemInfo.itemStruct;\n\n const id = videoData?.id;\n const uniqueId = videoData?.author?.uniqueId;\n const item = {\n id,\n imageUrl: videoData?.video?.cover,\n diggCount: videoData?.stats?.diggCount,\n commentCount: videoData?.stats?.commentCount,\n videoUrl: videoData?.video?.playAddr,\n webVideoUrl: `https://www.tiktok.com/@${uniqueId}/video/${id}`,\n };\n return item;\n } catch (e) {\n if (__DEV__) {\n console.log('getVideoInfoFromLinkLocal error: ', e);\n }\n return {};\n }\n};\n","// @format\nimport * as time from './time.js';\nimport * as firebase from 'apis/firebase';\nimport * as tiktok from 'apis/tiktok';\nimport * as slack from 'apis/slack';\n\nexport default {\n time,\n firebase,\n tiktok,\n slack,\n};\n","export const tiktokUserDataToProfile = (data) => {\n return ({\n id: data.userId,\n uniqueId: data.uniqueId,\n nickName: data.nickName,\n followingCount: data.following,\n followerCount: data.fans,\n video: data.video,\n avatar: data.coversMedium?.[0],\n signature: data.signature,\n heart: data.heart,\n diggCount: data.digg,\n isSecret: data.isSecret,\n secUid: data.secUid,\n openFavorite: data.openFavorite,\n });\n};","import { Platform } from 'react-native';\nimport Swal from 'sweetalert2';\nimport { handlePayByPrime } from 'apis/firebase';\nimport { newApplePayEvent } from 'apis/slack';\n\nexport const init = async () => {\n try {\n if (Platform.OS === 'web') {\n const canMakePayments = TPDirect.paymentRequestApi.checkAvailability();\n const canMakePaymentsWithActiveCard = await checkCanMakePaymentsWithActiveCard();\n if (!canMakePayments) {\n return {\n canMakePayments: false,\n canMakePaymentsWithActiveCard: false,\n };\n }\n const env = __DEV__ ? 'sandbox' : 'production';\n TPDirect.setupSDK(\n 16295,\n 'app_TE8l8VoFVmbe6OhZdv66zmF3temHOVYTKAawpPyQxitrXWpNKAAhynTyF93h',\n env\n );\n TPDirect.paymentRequestApi.setupApplePay({\n merchantIdentifier: 'merchant.com.tikfans.www',\n countryCode: 'TW',\n });\n\n return {\n canMakePayments,\n canMakePaymentsWithActiveCard,\n };\n } else {\n return {\n canMakePayments: false,\n canMakePaymentsWithActiveCard: false,\n };\n }\n } catch (e) {\n if (__DEV__) {\n console.log('init apple pay error', e);\n }\n }\n};\n\nexport const checkCanMakePaymentsWithActiveCard = async () => {\n try {\n if (Platform.OS === 'web') {\n if (window?.ApplePaySession) {\n var merchantIdentifier = 'merchant.com.tikfans.www';\n const canMakePayments = await ApplePaySession.canMakePaymentsWithActiveCard(\n merchantIdentifier\n );\n return canMakePayments;\n }\n return false;\n }\n return false;\n } catch (e) {\n if (__DEV__) {\n console.log('canMakePaymentsWithActiveCard error', e);\n }\n return false;\n }\n};\n\nconst setupPaymentRequest = (data) => {\n TPDirect.paymentRequestApi.setupPaymentRequest(data, (result) => {\n if (__DEV__) {\n console.log('paymentRequest result', result);\n // 代表瀏覽器支援 payment request api (或 apple pay)\n if (!result.browserSupportPaymentRequest) {\n console.log('瀏覽器不支援 PaymentRequest');\n return;\n }\n if (result.canMakePaymentWithActiveCard === true) {\n console.log('該裝置有支援的卡片可以付款');\n } else {\n // 如果 supportedMethods 有 card 選項,仍然可以顯示 PaymentRequest\n // 瀏覽器會請使用者綁定卡片\n console.log('該裝置沒有支援的卡片可以付款');\n }\n }\n });\n};\n\nconst getPrimeAsync = () => {\n return new Promise((resolve) => {\n TPDirect.paymentRequestApi.getPrime((getPrimeResult) => {\n resolve(getPrimeResult);\n });\n });\n};\n\nexport const paymentRequest = async ({ content, user, onApplePayApprove }) => {\n const buyer = {\n uid: user?.uid,\n countryCode: user?.countryCode,\n timezone: user?.timezone,\n tiktok: user?.tiktok,\n };\n\n newApplePayEvent({\n type: 'onPress',\n message: 'onPress',\n ...content,\n ...buyer,\n platform: Platform.OS,\n });\n\n const price = content.price.replace(/[^0-9.-]+/g, '');\n const priceNumber = Number.parseFloat(price);\n const data = {\n supportedNetworks: ['AMEX', 'MASTERCARD', 'VISA'],\n supportedMethods: ['apple_pay'],\n displayItems: [\n {\n label: `${content.localPrice} = `,\n amount: {\n currency: 'TWD',\n // value: Number.parseFloat(priceNumber),\n value: Number.parseFloat(price * 30).toFixed(0),\n },\n },\n ],\n total: {\n label: `${content.stars} stars`,\n amount: {\n currency: 'TWD',\n value: Number.parseFloat(priceNumber * 30).toFixed(0),\n },\n },\n options: {\n requestPayerPhone: true,\n requestPayerEmail: true,\n },\n };\n\n setupPaymentRequest(data);\n\n const getPrimeResult = await getPrimeAsync().catch((e) => {\n if (__DEV__) {\n console.log('getPrimeAsync error', e);\n }\n });\n\n // console.log('getPrimeResult', getPrimeResult);\n if (getPrimeResult?.status === 401) {\n // User cancel\n newApplePayEvent({\n type: 'onCancel',\n message: 'onCancel',\n ...content,\n ...buyer,\n platform: Platform.OS,\n });\n return;\n }\n\n const email = getPrimeResult?.payer?.email;\n\n const payByPrimeResult = await handlePayByPrime({\n getPrimeResult,\n product: content,\n buyer,\n isDev: __DEV__,\n }).catch((e) => {\n if (__DEV__) {\n console.log('payByPrimeResult error:', e);\n }\n Swal.fire({\n title: 'Oops...Purchase Failed',\n text: 'Your payment failed. please try again!',\n icon: 'error',\n width: '85%',\n });\n });\n\n\n if (payByPrimeResult?.status === 0) {\n // Success\n onApplePayApprove(content);\n newApplePayEvent({\n type: 'onSuccess',\n message: 'onSuccess',\n ...content,\n ...buyer,\n email,\n platform: Platform.OS,\n });\n } else {\n // Failed\n if (__DEV__) {\n console.log('payByPrimeResult failed', payByPrimeResult);\n }\n Swal.fire({\n title: 'Oops...Purchase Failed',\n text: 'Your payment failed. please try again!',\n icon: 'error',\n width: '85%',\n });\n newApplePayEvent({\n type: 'onError',\n message: payByPrimeResult,\n ...content,\n ...buyer,\n platform: Platform.OS,\n });\n }\n return { isSuccessful: payByPrimeResult?.status === 0, payByPrimeResult: { ...payByPrimeResult, email } };\n};\n","// @format\nexport default (type, ...argNames) => (...args) => {\n const action = {type};\n argNames.forEach((arg, index) => {\n action[argNames[index]] = args[index];\n });\n return action;\n};\n","// @format\nimport { Platform } from 'react-native';\nimport { omit } from 'lodash';\nimport ct from 'countries-and-timezones';\n\nexport const PRODUCTS_IDS = {\n PACKAGE_10_WEEKLY: 'com.tikfans.www.10dollars.weekly',\n PACKAGE_2: 'com.tikfans.www.2dollars',\n PACKAGE_3: 'com.tikfans.www.3dollars',\n PACKAGE_5: 'com.tikfans.www.5dollars',\n PACKAGE_10: 'com.tikfans.www.10dollars',\n PACKAGE_20: 'com.tikfans.www.20dollars',\n PACKAGE_25: 'com.tikfans.www.25dollars',\n PACKAGE_50: 'com.tikfans.www.50dollars',\n PACKAGE_80: 'com.tikfans.www.80dollars',\n PACKAGE_100: 'com.tikfans.www.100dollars',\n};\n\nconst productsLocalPrices = {\n [PRODUCTS_IDS.PACKAGE_2]: {\n TW: 'NT$63.00',\n KZ: '₸790-00',\n KH: '2៛',\n NG: '₦790.00',\n JP: '¥220',\n LB: 'ل.ل.‏ 3,000.00',\n LV: '2.19',\n AE: 'د.إ.‏ 7.79',\n HK: 'HK$15.00',\n CO: '$ 7.500,00',\n RS: '249,00 Дин.',\n AU: '$3.29',\n PE: 'S/. 6.99',\n NZ: '$3.59',\n IT: '2,19 €',\n BM: '$1.99',\n DE: '2,09 €',\n DK: '17,00 kr.',\n KW: 'د.ك.‏ 1.990',\n BE: '2,19 €',\n IQ: 'د.ع.‏ 2,400.00',\n SK: '2,19 €',\n SI: '2,19 €',\n AT: '2,19 €',\n PL: '9,89 zł',\n RU: '169,00 ₽',\n GE: '6,00 Lari',\n DZ: 'د.ج.‏ 250.00',\n KY: '$1.99',\n JO: 'د.ا.‏ 1.450',\n ZA: 'R39,99',\n LI: 'CHF 1.90',\n SE: '24,00 kr',\n FR: '2,19 €',\n MM: 'K3,000.00',\n MO: 'MOP$15.99',\n FI: '2,19 €',\n ID: 'Rp29.000',\n QA: '﷼ 7.50',\n TH: '฿63.00',\n CZ: '59,99 Kč',\n IN: '₹180.00',\n CA: '$2.79',\n BR: 'R$ 10,99',\n PT: '2,19 €',\n RO: '9,99 L',\n MA: 'د.م.‏ 19.99',\n LT: '2.19',\n EE: '2,19 €',\n VG: '$1.99',\n HU: '799,00 Ft',\n KE: 'KSh200.00',\n HR: '17,00 kn',\n LU: '2,09 €',\n SA: '﷼ 8.79',\n MY: 'RM8.99',\n PY: '₲ 10.000,00',\n IE: '2,19 €',\n NL: '2,19 €',\n BH: 'د.ب.‏ 1.990',\n NO: 'kr 24,00',\n UA: '54,99₴',\n BO: 'Bs 13,99',\n IL: '₪ 7.00',\n US: '$1.99',\n CL: '$ 1.700,00',\n GB: '£1.99',\n CY: '2,19 €',\n OM: '﷼ 1.990',\n ES: '2,19 €',\n KR: '₩2,700',\n GR: '2,19 €',\n CH: 'CHF 1.90',\n LK: '₨ 375',\n GH: '₵10.00',\n SG: '$2.99',\n EG: 'ج.م.‏ 32.99',\n TC: '$1.99',\n TR: '₺15,99',\n BD: '৳ 190',\n PK: '₨340.00',\n PH: '₱100.00',\n BG: '4,29 лв.',\n FM: '$1.99',\n TZ: 'TSh4,700.00',\n VN: '47.000 ₫',\n CR: '₡1.200,00',\n MX: '$47.00',\n },\n [PRODUCTS_IDS.PACKAGE_5]: {\n TW: 'NT$160.00',\n DZ: 'د.ج.‏ 650.00',\n AU: '$7.99',\n AT: '5,49 €',\n BH: 'د.ب.‏ 5.490',\n BD: '৳ 420',\n BE: '5,49 €',\n BM: '$4.99',\n BO: 'Bs 34,99',\n BR: 'R$ 27,99',\n VG: '$4.99',\n BG: '10,99 лв.',\n KH: '5៛',\n CA: '$6.99',\n KY: '$4.99',\n CL: '$ 4.200,00',\n CO: '$ 19.000,00',\n CR: '₡2.900,00',\n HR: '43,00 kn',\n CY: '5,49 €',\n CZ: '149,99 Kč',\n DK: '42,00 kr.',\n EG: 'ج.م.‏ 81.99',\n EE: '5,49 €',\n FI: '5,49 €',\n FR: '5,49 €',\n GE: '14,00 Lari',\n DE: '5,49 €',\n GH: '₵30.00',\n GR: '5,49 €',\n HK: 'HK$39.90',\n HU: '1 999,00 Ft',\n IN: '₹450.00',\n ID: 'Rp72.000',\n IQ: 'د.ع.‏ 6,050.00',\n IE: '5,49 €',\n IL: '₪ 17.90',\n IT: '5,49 €',\n JP: '¥550',\n JO: 'د.ا.‏ 3.600',\n KZ: '₸2 090-00',\n KE: 'KSh500.00',\n KW: 'د.ك.‏ 4.990',\n LV: '5.49',\n LB: 'ل.ل.‏ 7,750.00',\n LI: 'CHF 4.80',\n LT: '5.49',\n LU: '5,49 €',\n MO: 'MOP$40.88',\n MY: 'RM22.99',\n MX: '$115.00',\n FM: '$4.99',\n MA: 'د.م.‏ 48.99',\n MM: 'K7,000.00',\n NL: '5,49 €',\n NZ: '$8.99',\n NG: '₦1,970.00',\n NO: 'kr 59,00',\n OM: '﷼ 4.990',\n PK: '₨850.00',\n PY: '₲ 30.000,00',\n PE: 'S/. 17.99',\n PH: '₱255.00',\n PL: '24,99 zł',\n PT: '5,49 €',\n QA: '﷼ 19.00',\n RO: '25,99 L',\n RU: '429,00 ₽',\n SA: '﷼ 21.99',\n RS: '649,00 Дин.',\n SG: '$7.49',\n SK: '5,49 €',\n SI: '5,49 €',\n ZA: 'R99,99',\n KR: '₩6,900',\n ES: '5,49 €',\n LK: '₨ 950',\n SE: '59,00 kr',\n CH: 'CHF 4.80',\n TZ: 'TSh12,000.00',\n TH: '฿150.00',\n TR: '₺40,99',\n TC: '$4.99',\n UA: '134,99₴',\n AE: 'د.إ.‏ 19.99',\n GB: '£4.89',\n US: '$4.99',\n VN: '118.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_10]: {\n TW: 'NT$310.00',\n DZ: 'د.ج.‏ 1,300.00',\n AU: '$15.99',\n AT: '10,99 €',\n BH: 'د.ب.‏ 10.990',\n BD: '৳ 850',\n BE: '10,99 €',\n BM: '$9.99',\n BO: 'Bs 69,99',\n BR: 'R$ 54,99',\n VG: '$9.99',\n BG: '20,99 лв.',\n KH: '10៛',\n CA: '$13.99',\n KY: '$9.99',\n CL: '$ 8.300,00',\n CO: '$ 38.000,00',\n CR: '₡5.900,00',\n HR: '85,00 kn',\n CY: '10,99 €',\n CZ: '289,99 Kč',\n DK: '85,00 kr.',\n EG: 'ج.م.‏ 159.99',\n EE: '10,99 €',\n FI: '10,99 €',\n FR: '10,99 €',\n GE: '29,00 Lari',\n DE: '10,99 €',\n GH: '₵60.00',\n GR: '10,99 €',\n HK: 'HK$78.00',\n HU: '4 090,00 Ft',\n IN: '₹900.00',\n ID: 'Rp149.000',\n IQ: 'د.ع.‏ 12,100.00',\n IE: '10,99 €',\n IL: '₪ 35.00',\n IT: '10,99 €',\n JP: '¥1,090',\n JO: 'د.ا.‏ 7.200',\n KZ: '₸4 090-00',\n KE: 'KSh1,100.00',\n KW: 'د.ك.‏ 9.990',\n LV: '10.99',\n LB: 'ل.ل.‏ 15,250.00',\n LI: 'CHF 9.60',\n LT: '10.99',\n LU: '10,99 €',\n MO: 'MOP$80.99',\n MY: 'RM45.99',\n MX: '$235.00',\n FM: '$9.99',\n MA: 'د.م.‏ 98.99',\n MM: 'K14,000.00',\n NL: '10,99 €',\n NZ: '$17.99',\n NG: '₦3,930.00',\n NO: 'kr 119,00',\n OM: '﷼ 9.990',\n PK: '₨1,700.00',\n PY: '₲ 70.000,00',\n PE: 'S/. 35.99',\n PH: '₱505.00',\n PL: '49,99 zł',\n PT: '10,99 €',\n QA: '﷼ 37.00',\n RO: '49,99 L',\n RU: '890,00 ₽',\n SA: '﷼ 43.99',\n RS: '1.299,00 Дин.',\n SG: '$14.99',\n SK: '10,99 €',\n SI: '10,99 €',\n ZA: 'R199,99',\n KR: '₩13,000',\n ES: '10,99 €',\n LK: '₨ 1,900',\n SE: '119,00 kr',\n CH: 'CHF 9.60',\n TZ: 'TSh24,000.00',\n TH: '฿325.00',\n TR: '₺81,99',\n TC: '$9.99',\n UA: '269,99₴',\n AE: 'د.إ.‏ 38.99',\n GB: '£9.99',\n US: '$9.99',\n VN: '236.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_20]: {\n TW: 'NT$630.00',\n DZ: 'د.ج.‏ 2,625.00',\n AU: '$31.99',\n AT: '21,99 €',\n BH: 'د.ب.‏ 20.990',\n BD: '৳ 1,700',\n BE: '21,99 €',\n BM: '$19.99',\n BO: 'Bs 139,99',\n BR: 'R$ 109,99',\n VG: '$19.99',\n BG: '42,99 лв.',\n KH: '20៛',\n CA: '$27.99',\n KY: '$19.99',\n CL: '$ 16.700,00',\n CO: '$ 76.000,00',\n CR: '₡11.800,00',\n HR: '169,00 kn',\n CY: '21,99 €',\n CZ: '599,99 Kč',\n DK: '169,00 kr.',\n EG: 'ج.م.‏ 329.99',\n EE: '21,99 €',\n FI: '21,99 €',\n FR: '21,99 €',\n GE: '59,00 Lari',\n DE: '20,99 €',\n GH: '₵120.00',\n GR: '21,99 €',\n HK: 'HK$158.00',\n HU: '8 190,00 Ft',\n IN: '₹1,800.00',\n ID: 'Rp289.000',\n IQ: 'د.ع.‏ 24,150.00',\n IE: '21,99 €',\n IL: '₪ 70.00',\n IT: '21,99 €',\n JP: '¥2,180',\n JO: 'د.ا.‏ 14.400',\n KZ: '₸8 290-00',\n KE: 'KSh2,200.00',\n KW: 'د.ك.‏ 19.990',\n LV: '21.99',\n LB: 'ل.ل.‏ 30,750.00',\n LI: 'CHF 19.00',\n LT: '21.99',\n LU: '20,99 €',\n MO: 'MOP$159.00',\n MY: 'RM91.99',\n MX: '$465.00',\n FM: '$19.99',\n MA: 'د.م.‏ 194.99',\n MM: 'K28,000.00',\n NL: '21,99 €',\n NZ: '$35.99',\n NG: '₦7,860.00',\n NO: 'kr 245,00',\n OM: '﷼ 19.990',\n PK: '₨3,400.00',\n PY: '₲ 150.000,00',\n PE: 'S/. 71.99',\n PH: '₱1,000.00',\n PL: '98,99 zł',\n PT: '21,99 €',\n QA: '﷼ 74.00',\n RO: '104,99 L',\n RU: '1 699,00 ₽',\n SA: '﷼ 87.99',\n RS: '2.599,00 Дин.',\n SG: '$29.99',\n SK: '21,99 €',\n SI: '21,99 €',\n ZA: 'R404,99',\n KR: '₩27,000',\n ES: '21,99 €',\n LK: '₨ 3,775',\n SE: '239,00 kr',\n CH: 'CHF 19.00',\n TZ: 'TSh47,000.00',\n TH: '฿625.00',\n TR: '₺164,99',\n TC: '$19.99',\n UA: '539,99₴',\n AE: 'د.إ.‏ 77.99',\n GB: '£19.49',\n US: '$19.99',\n VN: '471.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_25]: {\n TW: 'NT$790.00',\n DZ: 'د.ج.‏ 3,275.00',\n AU: '$40.99',\n AT: '26,99 €',\n BH: 'د.ب.‏ 26.990',\n BD: '৳ 2,200',\n BE: '26,99 €',\n BM: '$24.99',\n BO: 'Bs 174,99',\n BR: 'R$ 139,99',\n VG: '$24.99',\n BG: '52,99 лв.',\n KH: '25៛',\n CA: '$33.99',\n KY: '$24.99',\n CL: '$ 20.800,00',\n CO: '$ 95.000,00',\n CR: '₡14.700,00',\n HR: '215,00 kn',\n CY: '26,99 €',\n CZ: '749,99 Kč',\n DK: '209,00 kr.',\n EG: 'ج.م.‏ 409.99',\n EE: '26,99 €',\n FI: '27,99 €',\n FR: '26,99 €',\n GE: '79,00 Lari',\n DE: '25,99 €',\n GH: '₵150.00',\n GR: '27,99 €',\n HK: 'HK$198.00',\n HU: '9 999,00 Ft',\n IN: '₹2,250.00',\n ID: 'Rp359.000',\n IQ: 'د.ع.‏ 30,200.00',\n IE: '27,99 €',\n IL: '₪ 87.90',\n IT: '27,99 €',\n JP: '¥2,720',\n JO: 'د.ا.‏ 18.000',\n KZ: '₸9 990-00',\n KE: 'KSh2,700.00',\n KW: 'د.ك.‏ 24.990',\n LV: '26.99',\n LB: 'ل.ل.‏ 38,250.00',\n LI: 'CHF 24.00',\n LT: '26.99',\n LU: '26,99 €',\n MO: 'MOP$199.00',\n MY: 'RM114.99',\n MX: '$579.00',\n FM: '$24.99',\n MA: 'د.م.‏ 244.99',\n MM: 'K35,000.00',\n NL: '26,99 €',\n NZ: '$44.99',\n NG: '₦9,830.00',\n NO: 'kr 305,00',\n OM: '﷼ 24.990',\n PK: '₨4,250.00',\n PY: '₲ 175.000,00',\n PE: 'S/. 89.99',\n PH: '₱1,250.00',\n PL: '124,99 zł',\n PT: '27,99 €',\n QA: '﷼ 93.00',\n RO: '129,99 L',\n RU: '2 190,00 ₽',\n SA: '﷼ 109.99',\n RS: '3.199,00 Дин.',\n SG: '$37.98',\n SK: '26,99 €',\n SI: '27,99 €',\n ZA: 'R499,99',\n KR: '₩34,000',\n ES: '26,99 €',\n LK: '₨ 4,725',\n SE: '295,00 kr',\n CH: 'CHF 24.00',\n TZ: 'TSh59,000.00',\n TH: '฿775.00',\n TR: '₺204,99',\n TC: '$24.99',\n UA: '679,99₴',\n AE: 'د.إ.‏ 97.99',\n GB: '£24.49',\n US: '$24.99',\n VN: '589.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_50]: {\n TW: 'NT$1,570.00',\n DZ: 'د.ج.‏ 6,550.00',\n AU: '$80.99',\n AT: '54,99 €',\n BH: 'د.ب.‏ 54.990',\n BD: '৳ 4,300',\n BE: '54,99 €',\n BM: '$49.99',\n BO: 'Bs 349,99',\n BR: 'R$ 274,99',\n VG: '$49.99',\n BG: '104,99 лв.',\n KH: '50៛',\n CA: '$68.99',\n KY: '$49.99',\n CL: '$ 41.700,00',\n CO: '$ 191.000,00',\n CR: '₡29.500,00',\n HR: '429,00 kn',\n CY: '54,99 €',\n CZ: '1499,99 Kč',\n DK: '425,00 kr.',\n EG: 'ج.م.‏ 819.99',\n EE: '54,99 €',\n FI: '54,99 €',\n FR: '54,99 €',\n GE: '149,00 Lari',\n DE: '54,99 €',\n GH: '₵290.00',\n GR: '54,99 €',\n HK: 'HK$389.00',\n HU: '20 499,00 Ft',\n IN: '₹4,550.00',\n ID: 'Rp690.000',\n IQ: 'د.ع.‏ 60,400.00',\n IE: '54,99 €',\n IL: '₪ 175.00',\n IT: '54,99 €',\n JP: '¥5,500',\n JO: 'د.ا.‏ 36.000',\n KZ: '₸20 990-00',\n KE: 'KSh5,400.00',\n KW: 'د.ك.‏ 49.990',\n LV: '54.99',\n LB: 'ل.ل.‏ 76,500.00',\n LI: 'CHF 48.00',\n LT: '54.99',\n LU: '54,99 €',\n MO: 'MOP$408.00',\n MY: 'RM229.99',\n MX: '$1,149.00',\n FM: '$49.99',\n MA: 'د.م.‏ 494.99',\n MM: 'K69,000.00',\n NL: '54,99 €',\n NZ: '$89.99',\n NG: '₦19,500.00',\n NO: 'kr 609,00',\n OM: '﷼ 49.990',\n PK: '₨8,500.00',\n PY: '₲ 350.000,00',\n PE: 'S/. 179.99',\n PH: '₱2,550.00',\n PL: '249,99 zł',\n PT: '54,99 €',\n QA: '﷼ 185.00',\n RO: '259,99 L',\n RU: '4 299,00 ₽',\n SA: '﷼ 219.99',\n RS: '6.499,00 Дин.',\n SG: '$75.98',\n SK: '54,99 €',\n SI: '54,99 €',\n ZA: 'R999,99',\n KR: '₩69,000',\n ES: '54,99 €',\n LK: '₨ 9,450',\n SE: '589,00 kr',\n CH: 'CHF 48.00',\n TZ: 'TSh118,000.00',\n TH: '฿1,575.00',\n TR: '₺409,99',\n TC: '$49.99',\n UA: '1 349,99₴',\n AE: 'د.إ.‏ 194.99',\n GB: '£48.99',\n US: '$49.99',\n VN: '1.200.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_80]: {\n TW: 'NT$2,520.00',\n DZ: 'د.ج.‏ 10,500.00',\n AU: '$129.99',\n AT: '84,99 €',\n BH: 'د.ب.‏ 84.990',\n BD: '৳ 6,900',\n BE: '89,99 €',\n BM: '$79.99',\n BO: 'Bs 559,99',\n BR: 'R$ 444,99',\n VG: '$79.99',\n BG: '169,99 лв.',\n KH: '80៛',\n CA: '$109.99',\n KY: '$79.99',\n CL: '$ 67.000,00',\n CO: '$ 305.000,00',\n CR: '₡47.100,00',\n HR: '689,00 kn',\n CY: '84,99 €',\n CZ: '2299,99 Kč',\n DK: '679,00 kr.',\n EG: 'ج.م.‏ 1,299.99',\n EE: '84,99 €',\n FI: '89,99 €',\n FR: '84,99 €',\n GE: '249,00 Lari',\n DE: '84,99 €',\n GH: '₵470.00',\n GR: '89,99 €',\n HK: 'HK$629.00',\n HU: '32 499,00 Ft',\n IN: '₹7,200.00',\n ID: 'Rp1.159.921',\n IQ: 'د.ع.‏ 96,600.00',\n IE: '89,99 €',\n IL: '₪ 275.00',\n IT: '89,99 €',\n JP: '¥8,700',\n JO: 'د.ا.‏ 57.500',\n KZ: '₸32 990-00',\n KE: 'KSh8,600.00',\n KW: 'د.ك.‏ 79.990',\n LV: '89.99',\n LB: 'ل.ل.‏ 122,500.00',\n LI: 'CHF 75.00',\n LT: '89.99',\n LU: '84,99 €',\n MO: 'MOP$648.00',\n MY: 'RM369.99',\n MX: '$1,849.00',\n FM: '$79.99',\n MA: 'د.م.‏ 789.99',\n MM: 'K110,000.00',\n NL: '89,99 €',\n NZ: '$144.99',\n NG: '₦31,500.00',\n NO: 'kr 979,00',\n OM: '﷼ 79.990',\n PK: '₨13,600.00',\n PY: '₲ 550.000,00',\n PE: 'S/. 289.99',\n PH: '₱4,050.00',\n PL: '394,99 zł',\n PT: '89,99 €',\n QA: '﷼ 300.00',\n RO: '414,99 L',\n RU: '6 899,00 ₽',\n SA: '﷼ 349.99',\n RS: '9.999,00 Дин.',\n SG: '$119.99',\n SK: '84,99 €',\n SI: '89,99 €',\n ZA: 'R1 599,99',\n KR: '₩110,000',\n ES: '89,99 €',\n LK: '₨ 15,125',\n SE: '949,00 kr',\n CH: 'CHF 75.00',\n TZ: 'TSh188,000.00',\n TH: '฿2,525.00',\n TR: '₺659,99',\n TC: '$79.99',\n UA: '2 149,99₴',\n AE: 'د.إ.‏ 314.99',\n GB: '£78.99',\n US: '$79.99',\n VN: '1.900.000 ₫'\n },\n [PRODUCTS_IDS.PACKAGE_100]: {\n TW: 'NT$3,150.00',\n DZ: 'د.ج.‏ 13,125.00',\n AU: '$159.99',\n AT: '109,99 €',\n BH: 'د.ب.‏ 109.990',\n BD: '৳ 8,600',\n BE: '109,99 €',\n BM: '$99.99',\n BO: 'Bs 699,99',\n BR: 'R$ 549,99',\n VG: '$99.99',\n BG: '214,99 лв.',\n KH: '100៛',\n CA: '$139.99',\n KY: '$99.99',\n CL: '$ 83.000,00',\n CO: '$ 382.000,00',\n CR: '₡59.000,00',\n HR: '859,00 kn',\n CY: '109,99 €',\n CZ: '2899,99 Kč',\n DK: '849,00 kr.',\n EG: 'ج.م.‏ 1,649.99',\n EE: '109,99 €',\n FI: '109,99 €',\n FR: '109,99 €',\n GE: '299,00 Lari',\n DE: '104,99 €',\n GH: '₵590.00',\n GR: '109,99 €',\n HK: 'HK$788.00',\n HU: '40 999,00 Ft',\n IN: '₹9,100.00',\n ID: 'Rp1.449.902',\n IQ: 'د.ع.‏ 121,000.00',\n IE: '109,99 €',\n IL: '₪ 349.90',\n IT: '109,99 €',\n JP: '¥10,900',\n JO: 'د.ا.‏ 72.000',\n KZ: '₸40 990-00',\n KE: 'KSh11,000.00',\n KW: 'د.ك.‏ 99.990',\n LV: '109.99',\n LB: 'ل.ل.‏ 153,250.00',\n LI: 'CHF 95.00',\n LT: '109.99',\n LU: '104,99 €',\n MO: 'MOP$809.00',\n MY: 'RM459.99',\n MX: '$2,349.00',\n FM: '$99.99',\n MA: 'د.م.‏ 989.99',\n MM: 'K140,000.00',\n NL: '109,99 €',\n NZ: '$179.99',\n NG: '₦39,500.00',\n NO: 'kr 1 199,00',\n OM: '﷼ 99.990',\n PK: '₨17,000.00',\n PY: '₲ 700.000,00',\n PE: 'S/. 359.99',\n PH: '₱5,050.00',\n PL: '494,99 zł',\n PT: '109,99 €',\n QA: '﷼ 370.00',\n RO: '499,99 L',\n RU: '8 690,00 ₽',\n SA: '﷼ 439.99',\n RS: '12.999,00 Дин.',\n SG: '$149.99',\n SK: '109,99 €',\n SI: '109,99 €',\n ZA: 'R1 999,99',\n KR: '₩130,000',\n ES: '109,99 €',\n LK: '₨ 19,000',\n SE: '1.199,00 kr',\n CH: 'CHF 95.00',\n TZ: 'TSh235,000.00',\n TH: '฿3,150.00',\n TR: '₺819,99',\n TC: '$99.99',\n UA: '2 699,99₴',\n AE: 'د.إ.‏ 389.99',\n GB: '£97.99',\n US: '$99.99',\n VN: '2.350.000 ₫'\n },\n};\n\nconst getProductLocalPrice = (productId) => {\n if (Platform.OS === 'web') {\n const timezone = Intl?.DateTimeFormat()?.resolvedOptions()?.timeZone || 'America/Los_Angeles';\n const country = ct.getTimezone(timezone)?.country || 'US';\n const localPrice = productsLocalPrices[productId]?.[country];\n if (localPrice) {\n return localPrice;\n }\n }\n return undefined;\n};\n\n\n\nexport const IAP_PRODUCTS = {\n [PRODUCTS_IDS.PACKAGE_2]: {\n stars: 50,\n productId: PRODUCTS_IDS.PACKAGE_2,\n discount: '0',\n price: '$1.99',\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_2),\n },\n // [PRODUCTS_IDS.PACKAGE_3]: {\n // stars: 75,\n // productId: 'com.tikfans.www.3dollars',\n // discount: '0',\n // price: '$2.99',\n // },\n [PRODUCTS_IDS.PACKAGE_5]: {\n stars: 150,\n productId: PRODUCTS_IDS.PACKAGE_5,\n discount: '17',\n price: '$4.99',\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_5)\n },\n ...(Platform.OS !== 'web') && {\n [PRODUCTS_IDS.PACKAGE_10_WEEKLY]: {\n stars: 700,\n productId: PRODUCTS_IDS.PACKAGE_10_WEEKLY,\n discount: '60',\n price: '$9.99',\n isSubscription: true,\n period: 7,\n }\n },\n [PRODUCTS_IDS.PACKAGE_10]: {\n stars: 350,\n productId: PRODUCTS_IDS.PACKAGE_10,\n discount: '29',\n price: '$9.99',\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_10)\n },\n [PRODUCTS_IDS.PACKAGE_20]: {\n stars: 750,\n productId: PRODUCTS_IDS.PACKAGE_20,\n discount: '33',\n price: '$19.99',\n promotion: true,\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_20)\n },\n [PRODUCTS_IDS.PACKAGE_25]: {\n stars: 1000,\n productId: PRODUCTS_IDS.PACKAGE_25,\n discount: '36',\n price: '$24.99',\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_25)\n },\n [PRODUCTS_IDS.PACKAGE_50]: {\n stars: 2000,\n productId: PRODUCTS_IDS.PACKAGE_50,\n discount: '38',\n price: '$48.99',\n localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_50)\n },\n // [PRODUCTS_IDS.PACKAGE_80]: {\n // stars: 4000,\n // productId: PRODUCTS_IDS.PACKAGE_80,\n // discount: '40',\n // price: '$79.99',\n // localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_80)\n // },\n // [PRODUCTS_IDS.PACKAGE_100]: {\n // stars: 6000,\n // productId: PRODUCTS_IDS.PACKAGE_100,\n // discount: '60',\n // price: '$99.99',\n // localPrice: getProductLocalPrice(PRODUCTS_IDS.PACKAGE_100)\n // },\n};\n\nexport const getProductList = ({ purchaseHistory }) => {\n const purchasedProductIds = purchaseHistory\n .filter(purchase => !!IAP_PRODUCTS[purchase?.productId]?.isSubscription)\n .map(purchase => purchase?.productId);\n const productsWithoutPurchased = omit(IAP_PRODUCTS, purchasedProductIds);\n return Object.values(productsWithoutPurchased);\n};\n\n\n","import _ from 'lodash';\nimport makeActionCreator from './makeActionCreator';\nimport * as ApplePay from 'modules/ApplePay';\nimport { Platform } from 'react-native';\nimport * as InAppPurchases from 'expo-in-app-purchases';\n\nimport { IAP_PRODUCTS } from 'constants/Products';\n\nexport const RECEIVE_APPLE_PAY_AVAILABILITY = 'RECEIVE_APPLE_PAY_AVAILABILITY';\nexport const RECEIVE_PURCHASE_HISTORY = 'RECEIVE_PURCHASE_HISTORY';\n\nexport const UNPROCESSED_PURCHASE = 'UNPROCESSED_PURCHASE';\nexport const UNPROCESSED_TRANSACTION = 'UNPROCESSED_TRANSACTION';\nexport const RESET_UNPROCESSED_PURCHASE = 'RESET_UNPROCESSED_PURCHASE';\nexport const RESET_UNPROCESSED_TRANSACTION = 'RESET_UNPROCESSED_TRANSACTION';\n\nconst receiveApplePayAvailability = makeActionCreator(RECEIVE_APPLE_PAY_AVAILABILITY, 'applePayAvailability');\nconst receivePurchaseHistory = makeActionCreator(RECEIVE_PURCHASE_HISTORY, 'history');\n\nexport const unprocessedPurchaseAction = makeActionCreator(UNPROCESSED_PURCHASE, 'purchase');\nexport const unprocessedTransactionAction = makeActionCreator(UNPROCESSED_TRANSACTION, 'transaction');\n\nexport const resetUnprocessedPurchase = makeActionCreator(RESET_UNPROCESSED_PURCHASE);\nexport const resetUnprocessedTransaction = makeActionCreator(RESET_UNPROCESSED_TRANSACTION);\n\nexport const initApplePay = () => async (dispatch, getState, { apis }) => {\n const applePayAvailability = await ApplePay.init();\n dispatch(receiveApplePayAvailability(applePayAvailability));\n};\n\nexport const connectAppStore = () => async (dispatch, getState, { apis }) => {\n try {\n if (Platform.OS === 'web') {\n return;\n }\n const res = await InAppPurchases.connectAsync();\n const history = (res?.results ?? []).map(result => {\n if (result?.acknowledged === false) {\n const isSubscription = IAP_PRODUCTS[result?.productId]?.isSubscription;\n const consumeItem = !isSubscription;\n InAppPurchases.finishTransactionAsync(result, consumeItem);\n }\n return ({\n ...result,\n ...IAP_PRODUCTS[result.productId],\n });\n });\n dispatch(receivePurchaseHistory(history));\n } catch (e) {\n if (__DEV__) {\n console.log('initIap error: ', e);\n }\n dispatch(receivePurchaseHistory([]));\n }\n};\n\nexport const syncPurchaseHistory = (productInfo) => async (dispatch, getState, { apis }) => {\n try {\n if (Platform.OS === 'web') {\n return;\n }\n const state = getState();\n const history = [\n ...state?.payment.history,\n productInfo,\n ];\n dispatch(receivePurchaseHistory(history));\n } catch (e) {\n if (__DEV__) {\n console.log('getPurchaseHistory error: ', e);\n }\n dispatch(receivePurchaseHistory([]));\n }\n};\n\nexport const checkStillUnprocessedPurchase = () => (dispatch, getState, { apis }) => {\n const state = getState();\n const { unprocessedPurchase } = state?.payment;\n return _.isEmpty(unprocessedPurchase);\n};\n\nexport const checkStillUnprocessedTransaction = () => (dispatch, getState, { apis }) => {\n const state = getState();\n const { unprocessedTransaction } = state?.payment;\n return _.isEmpty(unprocessedTransaction);\n};\n","import axios from 'axios';\nimport { Platform } from 'react-native';\n// import * as Cellular from 'expo-cellular';\n\nconst timeZoneCountryDict = {\n 'Asia/Kabul': { countryCode: 'AF' },\n 'Europe/Mariehamn': { countryCode: 'AX' },\n 'Europe/Tirane': { countryCode: 'AL' },\n 'Africa/Algiers': { countryCode: 'DZ' },\n 'Pacific/Pago_Pago': { countryCode: 'AS' },\n 'Europe/Andorra': { countryCode: 'AD' },\n 'Africa/Luanda': { countryCode: 'AO' },\n 'America/Anguilla': { countryCode: 'AI' },\n 'Antarctica/Casey': { countryCode: 'AQ' },\n 'Antarctica/Davis': { countryCode: 'AQ' },\n 'Antarctica/DumontDUrville': { countryCode: 'AQ' },\n 'Antarctica/Mawson': { countryCode: 'AQ' },\n 'Antarctica/McMurdo': { countryCode: 'AQ' },\n 'Antarctica/Palmer': { countryCode: 'AQ' },\n 'Antarctica/Rothera': { countryCode: 'AQ' },\n 'Antarctica/Syowa': { countryCode: 'AQ' },\n 'Antarctica/Troll': { countryCode: 'AQ' },\n 'Antarctica/Vostok': { countryCode: 'AQ' },\n 'America/Antigua': { countryCode: 'AG' },\n 'America/Argentina/Buenos_Aires': { countryCode: 'AR' },\n 'America/Buenos_Aires': { countryCode: 'AR' },\n 'America/Argentina/Catamarca': { countryCode: 'AR' },\n 'America/Argentina/Cordoba': { countryCode: 'AR' },\n 'America/Argentina/Jujuy': { countryCode: 'AR' },\n 'America/Argentina/La_Rioja': { countryCode: 'AR' },\n 'America/Argentina/Mendoza': { countryCode: 'AR' },\n 'America/Argentina/Rio_Gallegos': { countryCode: 'AR' },\n 'America/Argentina/Salta': { countryCode: 'AR' },\n 'America/Argentina/San_Juan': { countryCode: 'AR' },\n 'America/Argentina/San_Luis': { countryCode: 'AR' },\n 'America/Argentina/Tucuman': { countryCode: 'AR' },\n 'America/Argentina/Ushuaia': { countryCode: 'AR' },\n 'Asia/Yerevan': { countryCode: 'AM' },\n 'America/Aruba': { countryCode: 'AW' },\n 'Antarctica/Macquarie': { countryCode: 'AU' },\n 'Australia/Adelaide': { countryCode: 'AU' },\n 'Australia/Brisbane': { countryCode: 'AU' },\n 'Australia/Broken_Hill': { countryCode: 'AU' },\n 'Australia/Currie': { countryCode: 'AU' },\n 'Australia/Darwin': { countryCode: 'AU' },\n 'Australia/Eucla': { countryCode: 'AU' },\n 'Australia/Hobart': { countryCode: 'AU' },\n 'Australia/Lindeman': { countryCode: 'AU' },\n 'Australia/Lord_Howe': { countryCode: 'AU' },\n 'Australia/Melbourne': { countryCode: 'AU' },\n 'Australia/Perth': { countryCode: 'AU' },\n 'Australia/Sydney': { countryCode: 'AU' },\n 'Europe/Vienna': { countryCode: 'AT' },\n 'Asia/Baku': { countryCode: 'AZ' },\n 'America/Nassau': { countryCode: 'BS' },\n 'Asia/Bahrain': { countryCode: 'BH' },\n 'Asia/Dhaka': { countryCode: 'BD' },\n 'America/Barbados': { countryCode: 'BB' },\n 'Europe/Minsk': { countryCode: 'BY' },\n 'Europe/Brussels': { countryCode: 'BE' },\n 'America/Belize': { countryCode: 'BZ' },\n 'Africa/Porto-Novo': { countryCode: 'BJ' },\n 'Atlantic/Bermuda': { countryCode: 'BM' },\n 'Asia/Thimphu': { countryCode: 'BT' },\n 'America/La_Paz': { countryCode: 'BO' },\n 'America/Kralendijk': { countryCode: 'BQ' },\n 'Europe/Sarajevo': { countryCode: 'BA' },\n 'Africa/Gaborone': { countryCode: 'BW' },\n 'America/Araguaina': { countryCode: 'BR' },\n 'America/Bahia': { countryCode: 'BR' },\n 'America/Belem': { countryCode: 'BR' },\n 'America/Boa_Vista': { countryCode: 'BR' },\n 'America/Campo_Grande': { countryCode: 'BR' },\n 'America/Cuiaba': { countryCode: 'BR' },\n 'America/Eirunepe': { countryCode: 'BR' },\n 'America/Fortaleza': { countryCode: 'BR' },\n 'America/Maceio': { countryCode: 'BR' },\n 'America/Manaus': { countryCode: 'BR' },\n 'America/Noronha': { countryCode: 'BR' },\n 'America/Porto_Velho': { countryCode: 'BR' },\n 'America/Recife': { countryCode: 'BR' },\n 'America/Rio_Branco': { countryCode: 'BR' },\n 'America/Santarem': { countryCode: 'BR' },\n 'America/Sao_Paulo': { countryCode: 'BR' },\n 'Indian/Chagos': { countryCode: 'IO' },\n 'America/Tortola': { countryCode: 'VG' },\n 'Asia/Brunei': { countryCode: 'BN' },\n 'Europe/Sofia': { countryCode: 'BG' },\n 'Africa/Ouagadougou': { countryCode: 'BF' },\n 'Africa/Bujumbura': { countryCode: 'BI' },\n 'Asia/Phnom_Penh': { countryCode: 'KH' },\n 'Africa/Douala': { countryCode: 'CM' },\n 'America/Atikokan': { countryCode: 'CA' },\n 'America/Blanc-Sablon': { countryCode: 'CA' },\n 'America/Cambridge_Bay': { countryCode: 'CA' },\n 'America/Montreal': { countryCode: 'CA' },\n 'America/Creston': { countryCode: 'CA' },\n 'America/Dawson': { countryCode: 'CA' },\n 'America/Dawson_Creek': { countryCode: 'CA' },\n 'America/Edmonton': { countryCode: 'CA' },\n 'America/Fort_Nelson': { countryCode: 'CA' },\n 'America/Glace_Bay': { countryCode: 'CA' },\n 'America/Goose_Bay': { countryCode: 'CA' },\n 'America/Halifax': { countryCode: 'CA' },\n 'America/Inuvik': { countryCode: 'CA' },\n 'America/Iqaluit': { countryCode: 'CA' },\n 'America/Moncton': { countryCode: 'CA' },\n 'America/Nipigon': { countryCode: 'CA' },\n 'America/Pangnirtung': { countryCode: 'CA' },\n 'America/Rainy_River': { countryCode: 'CA' },\n 'America/Rankin_Inlet': { countryCode: 'CA' },\n 'America/Regina': { countryCode: 'CA' },\n 'America/Resolute': { countryCode: 'CA' },\n 'America/St_Johns': { countryCode: 'CA' },\n 'America/Swift_Current': { countryCode: 'CA' },\n 'America/Thunder_Bay': { countryCode: 'CA' },\n 'America/Toronto': { countryCode: 'CA' },\n 'America/Vancouver': { countryCode: 'CA' },\n 'America/Whitehorse': { countryCode: 'CA' },\n 'America/Winnipeg': { countryCode: 'CA' },\n 'America/Yellowknife': { countryCode: 'CA' },\n 'Atlantic/Cape_Verde': { countryCode: 'CV' },\n 'America/Cayman': { countryCode: 'KY' },\n 'Africa/Bangui': { countryCode: 'CF' },\n 'Africa/Ndjamena': { countryCode: 'TD' },\n 'America/Punta_Arenas': { countryCode: 'CL' },\n 'America/Santiago': { countryCode: 'CL' },\n 'Pacific/Easter': { countryCode: 'CL' },\n 'Asia/Shanghai': { countryCode: 'CN' },\n 'Asia/Urumqi': { countryCode: 'CN' },\n 'Asia/Chungking': { countryCode: 'CN' },\n 'Asia/Chongqing': { countryCode: 'CN' },\n 'Indian/Christmas': { countryCode: 'CX' },\n 'Indian/Cocos': { countryCode: 'CC' },\n 'America/Bogota': { countryCode: 'CO' },\n 'Indian/Comoro': { countryCode: 'KM' },\n 'Pacific/Rarotonga': { countryCode: 'CK' },\n 'America/Costa_Rica': { countryCode: 'CR' },\n 'Europe/Zagreb': { countryCode: 'HR' },\n 'America/Havana': { countryCode: 'CU' },\n 'America/Curacao': { countryCode: 'CW' },\n 'Asia/Famagusta': { countryCode: 'CY' },\n 'Asia/Nicosia': { countryCode: 'CY' },\n 'Europe/Prague': { countryCode: 'CZ' },\n 'Africa/Kinshasa': { countryCode: 'CD' },\n 'Africa/Lubumbashi': { countryCode: 'CD' },\n 'Europe/Copenhagen': { countryCode: 'DK' },\n 'Africa/Djibouti': { countryCode: 'DJ' },\n 'America/Dominica': { countryCode: 'DM' },\n 'America/Santo_Domingo': { countryCode: 'DO' },\n 'Asia/Dili': { countryCode: 'TL' },\n 'America/Guayaquil': { countryCode: 'EC' },\n 'Pacific/Galapagos': { countryCode: 'EC' },\n 'Africa/Cairo': { countryCode: 'EG' },\n 'America/El_Salvador': { countryCode: 'SV' },\n 'Africa/Malabo': { countryCode: 'GQ' },\n 'Africa/Asmara': { countryCode: 'ER' },\n 'Europe/Tallinn': { countryCode: 'EE' },\n 'Africa/Addis_Ababa': { countryCode: 'ET' },\n 'Atlantic/Stanley': { countryCode: 'FK' },\n 'Atlantic/Faroe': { countryCode: 'FO' },\n 'Pacific/Fiji': { countryCode: 'FJ' },\n 'Europe/Helsinki': { countryCode: 'FI' },\n 'Europe/Paris': { countryCode: 'FR' },\n 'America/Cayenne': { countryCode: 'GF' },\n 'Pacific/Gambier': { countryCode: 'PF' },\n 'Pacific/Marquesas': { countryCode: 'PF' },\n 'Pacific/Tahiti': { countryCode: 'PF' },\n 'Indian/Kerguelen': { countryCode: 'TF' },\n 'Africa/Libreville': { countryCode: 'GA' },\n 'Africa/Banjul': { countryCode: 'GM' },\n 'Asia/Tbilisi': { countryCode: 'GE' },\n 'Europe/Berlin': { countryCode: 'DE' },\n 'Europe/Busingen': { countryCode: 'DE' },\n 'Africa/Accra': { countryCode: 'GH' },\n 'Europe/Gibraltar': { countryCode: 'GI' },\n 'Europe/Athens': { countryCode: 'GR' },\n 'America/Danmarkshavn': { countryCode: 'GL' },\n 'America/Godthab': { countryCode: 'GL' },\n 'America/Scoresbysund': { countryCode: 'GL' },\n 'America/Thule': { countryCode: 'GL' },\n 'America/Grenada': { countryCode: 'GD' },\n 'America/Guadeloupe': { countryCode: 'GP' },\n 'Pacific/Guam': { countryCode: 'GU' },\n 'America/Guatemala': { countryCode: 'GT' },\n 'Europe/Guernsey': { countryCode: 'GG' },\n 'Africa/Conakry': { countryCode: 'GN' },\n 'Africa/Bissau': { countryCode: 'GW' },\n 'America/Guyana': { countryCode: 'GY' },\n 'America/Port-au-Prince': { countryCode: 'HT' },\n 'America/Tegucigalpa': { countryCode: 'HN' },\n 'Asia/Hong_Kong': { countryCode: 'HK' },\n 'Europe/Budapest': { countryCode: 'HU' },\n 'Atlantic/Reykjavik': { countryCode: 'IS' },\n 'Asia/Kolkata': { countryCode: 'IN' },\n 'Asia/Calcutta': { countryCode: 'IN' },\n 'Asia/Jakarta': { countryCode: 'ID' },\n 'Asia/Jayapura': { countryCode: 'ID' },\n 'Asia/Makassar': { countryCode: 'ID' },\n 'Asia/Pontianak': { countryCode: 'ID' },\n 'Asia/Tehran': { countryCode: 'IR' },\n 'Asia/Baghdad': { countryCode: 'IQ' },\n 'Europe/Dublin': { countryCode: 'IE' },\n 'Europe/Isle_of_Man': { countryCode: 'IM' },\n 'Asia/Jerusalem': { countryCode: 'IL' },\n 'Europe/Rome': { countryCode: 'IT' },\n 'Africa/Abidjan': { countryCode: 'CI' },\n 'America/Jamaica': { countryCode: 'JM' },\n 'Asia/Tokyo': { countryCode: 'JP' },\n 'Europe/Jersey': { countryCode: 'JE' },\n 'Asia/Amman': { countryCode: 'JO' },\n 'Asia/Almaty': { countryCode: 'KZ' },\n 'Asia/Aqtau': { countryCode: 'KZ' },\n 'Asia/Aqtobe': { countryCode: 'KZ' },\n 'Asia/Atyrau': { countryCode: 'KZ' },\n 'Asia/Oral': { countryCode: 'KZ' },\n 'Asia/Qyzylorda': { countryCode: 'KZ' },\n 'Africa/Nairobi': { countryCode: 'KE' },\n 'Pacific/Enderbury': { countryCode: 'KI' },\n 'Pacific/Kiritimati': { countryCode: 'KI' },\n 'Pacific/Tarawa': { countryCode: 'KI' },\n 'Asia/Kuwait': { countryCode: 'KW' },\n 'Asia/Bishkek': { countryCode: 'KG' },\n 'Asia/Vientiane': { countryCode: 'LA' },\n 'Europe/Riga': { countryCode: 'LV' },\n 'Asia/Beirut': { countryCode: 'LB' },\n 'Africa/Maseru': { countryCode: 'LS' },\n 'Africa/Monrovia': { countryCode: 'LR' },\n 'Africa/Tripoli': { countryCode: 'LY' },\n 'Europe/Vaduz': { countryCode: 'LI' },\n 'Europe/Vilnius': { countryCode: 'LT' },\n 'Europe/Luxembourg': { countryCode: 'LU' },\n 'Asia/Macau': { countryCode: 'MO' },\n 'Europe/Skopje': { countryCode: 'MK' },\n 'Indian/Antananarivo': { countryCode: 'MG' },\n 'Africa/Blantyre': { countryCode: 'MW' },\n 'Asia/Kuala_Lumpur': { countryCode: 'MY' },\n 'Asia/Kuching': { countryCode: 'MY' },\n 'Indian/Maldives': { countryCode: 'MV' },\n 'Africa/Bamako': { countryCode: 'ML' },\n 'Europe/Malta': { countryCode: 'MT' },\n 'Pacific/Kwajalein': { countryCode: 'MH' },\n 'Pacific/Majuro': { countryCode: 'MH' },\n 'America/Martinique': { countryCode: 'MQ' },\n 'Africa/Nouakchott': { countryCode: 'MR' },\n 'Indian/Mauritius': { countryCode: 'MU' },\n 'Indian/Mayotte': { countryCode: 'YT' },\n 'America/Bahia_Banderas': { countryCode: 'MX' },\n 'America/Cancun': { countryCode: 'MX' },\n 'America/Chihuahua': { countryCode: 'MX' },\n 'America/Hermosillo': { countryCode: 'MX' },\n 'America/Matamoros': { countryCode: 'MX' },\n 'America/Mazatlan': { countryCode: 'MX' },\n 'America/Merida': { countryCode: 'MX' },\n 'America/Mexico_City': { countryCode: 'MX' },\n 'America/Monterrey': { countryCode: 'MX' },\n 'America/Ojinaga': { countryCode: 'MX' },\n 'America/Tijuana': { countryCode: 'MX' },\n 'Pacific/Chuuk': { countryCode: 'FM' },\n 'Pacific/Kosrae': { countryCode: 'FM' },\n 'Pacific/Pohnpei': { countryCode: 'FM' },\n 'Europe/Chisinau': { countryCode: 'MD' },\n 'Europe/Monaco': { countryCode: 'MC' },\n 'Asia/Choibalsan': { countryCode: 'MN' },\n 'Asia/Hovd': { countryCode: 'MN' },\n 'Asia/Ulaanbaatar': { countryCode: 'MN' },\n 'Europe/Podgorica': { countryCode: 'ME' },\n 'America/Montserrat': { countryCode: 'MS' },\n 'Africa/Casablanca': { countryCode: 'MA' },\n 'Africa/Maputo': { countryCode: 'MZ' },\n 'Asia/Yangon': { countryCode: 'MM' },\n 'Africa/Windhoek': { countryCode: 'NA' },\n 'Pacific/Nauru': { countryCode: 'NR' },\n 'Asia/Kathmandu': { countryCode: 'NP' },\n 'Asia/Katmandu': { countryCode: 'NP' },\n 'Europe/Amsterdam': { countryCode: 'NL' },\n 'Pacific/Noumea': { countryCode: 'NC' },\n 'Pacific/Auckland': { countryCode: 'NZ' },\n 'Pacific/Chatham': { countryCode: 'NZ' },\n 'America/Managua': { countryCode: 'NI' },\n 'Africa/Niamey': { countryCode: 'NE' },\n 'Africa/Lagos': { countryCode: 'NG' },\n 'Pacific/Niue': { countryCode: 'NU' },\n 'Pacific/Norfolk': { countryCode: 'NF' },\n 'Asia/Pyongyang': { countryCode: 'KP' },\n 'Pacific/Saipan': { countryCode: 'MP' },\n 'Europe/Oslo': { countryCode: 'NO' },\n 'Asia/Muscat': { countryCode: 'OM' },\n 'Asia/Karachi': { countryCode: 'PK' },\n 'Pacific/Palau': { countryCode: 'PW' },\n 'Asia/Gaza': { countryCode: 'PS' },\n 'Asia/Hebron': { countryCode: 'PS' },\n 'America/Panama': { countryCode: 'PA' },\n 'Pacific/Bougainville': { countryCode: 'PG' },\n 'Pacific/Port_Moresby': { countryCode: 'PG' },\n 'America/Asuncion': { countryCode: 'PY' },\n 'America/Lima': { countryCode: 'PE' },\n 'Asia/Manila': { countryCode: 'PH' },\n 'Pacific/Pitcairn': { countryCode: 'PN' },\n 'Europe/Warsaw': { countryCode: 'PL' },\n 'Atlantic/Azores': { countryCode: 'PT' },\n 'Atlantic/Madeira': { countryCode: 'PT' },\n 'Europe/Lisbon': { countryCode: 'PT' },\n 'America/Puerto_Rico': { countryCode: 'PR' },\n 'Asia/Qatar': { countryCode: 'QA' },\n 'Africa/Brazzaville': { countryCode: 'CG' },\n 'Indian/Reunion': { countryCode: 'RE' },\n 'Europe/Bucharest': { countryCode: 'RO' },\n 'Asia/Anadyr': { countryCode: 'RU' },\n 'Asia/Barnaul': { countryCode: 'RU' },\n 'Asia/Chita': { countryCode: 'RU' },\n 'Asia/Irkutsk': { countryCode: 'RU' },\n 'Asia/Kamchatka': { countryCode: 'RU' },\n 'Asia/Khandyga': { countryCode: 'RU' },\n 'Asia/Krasnoyarsk': { countryCode: 'RU' },\n 'Asia/Magadan': { countryCode: 'RU' },\n 'Asia/Novokuznetsk': { countryCode: 'RU' },\n 'Asia/Novosibirsk': { countryCode: 'RU' },\n 'Asia/Omsk': { countryCode: 'RU' },\n 'Asia/Sakhalin': { countryCode: 'RU' },\n 'Asia/Srednekolymsk': { countryCode: 'RU' },\n 'Asia/Tomsk': { countryCode: 'RU' },\n 'Asia/Ust-Nera': { countryCode: 'RU' },\n 'Asia/Vladivostok': { countryCode: 'RU' },\n 'Asia/Yakutsk': { countryCode: 'RU' },\n 'Asia/Yekaterinburg': { countryCode: 'RU' },\n 'Europe/Astrakhan': { countryCode: 'RU' },\n 'Europe/Kaliningrad': { countryCode: 'RU' },\n 'Europe/Kirov': { countryCode: 'RU' },\n 'Europe/Moscow': { countryCode: 'RU' },\n 'Europe/Samara': { countryCode: 'RU' },\n 'Europe/Saratov': { countryCode: 'RU' },\n 'Europe/Simferopol': { countryCode: 'RU' },\n 'Europe/Ulyanovsk': { countryCode: 'RU' },\n 'Europe/Volgograd': { countryCode: 'RU' },\n 'Africa/Kigali': { countryCode: 'RW' },\n 'America/St_Barthelemy': { countryCode: 'BL' },\n 'Atlantic/St_Helena': { countryCode: 'SH' },\n 'America/St_Kitts': { countryCode: 'KN' },\n 'America/St_Lucia': { countryCode: 'LC' },\n 'America/Marigot': { countryCode: 'MF' },\n 'America/Miquelon': { countryCode: 'PM' },\n 'America/St_Vincent': { countryCode: 'VC' },\n 'Pacific/Apia': { countryCode: 'WS' },\n 'Europe/San_Marino': { countryCode: 'SM' },\n 'Africa/Sao_Tome': { countryCode: 'ST' },\n 'Asia/Riyadh': { countryCode: 'SA' },\n 'Africa/Dakar': { countryCode: 'SN' },\n 'Europe/Belgrade': { countryCode: 'RS' },\n 'Indian/Mahe': { countryCode: 'SC' },\n 'Africa/Freetown': { countryCode: 'SL' },\n 'Asia/Singapore': { countryCode: 'SG' },\n 'America/Lower_Princes': { countryCode: 'SX' },\n 'Europe/Bratislava': { countryCode: 'SK' },\n 'Europe/Ljubljana': { countryCode: 'SI' },\n 'Pacific/Guadalcanal': { countryCode: 'SB' },\n 'Africa/Mogadishu': { countryCode: 'SO' },\n 'Africa/Johannesburg': { countryCode: 'ZA' },\n 'Atlantic/South_Georgia': { countryCode: 'GS' },\n 'Asia/Seoul': { countryCode: 'KR' },\n 'Africa/Juba': { countryCode: 'SS' },\n 'Africa/Ceuta': { countryCode: 'ES' },\n 'Atlantic/Canary': { countryCode: 'ES' },\n 'Europe/Madrid': { countryCode: 'ES' },\n 'Asia/Colombo': { countryCode: 'LK' },\n 'Africa/Khartoum': { countryCode: 'SD' },\n 'America/Paramaribo': { countryCode: 'SR' },\n 'Arctic/Longyearbyen': { countryCode: 'SJ' },\n 'Africa/Mbabane': { countryCode: 'SZ' },\n 'Europe/Stockholm': { countryCode: 'SE' },\n 'Europe/Zurich': { countryCode: 'CH' },\n 'Asia/Damascus': { countryCode: 'SY' },\n 'Asia/Taipei': { countryCode: 'TW' },\n 'Asia/Dushanbe': { countryCode: 'TJ' },\n 'Africa/Dar_es_Salaam': { countryCode: 'TZ' },\n 'Asia/Bangkok': { countryCode: 'TH' },\n 'Africa/Lome': { countryCode: 'TG' },\n 'Pacific/Fakaofo': { countryCode: 'TK' },\n 'Pacific/Tongatapu': { countryCode: 'TO' },\n 'America/Port_of_Spain': { countryCode: 'TT' },\n 'Africa/Tunis': { countryCode: 'TN' },\n 'Europe/Istanbul': { countryCode: 'TR' },\n 'Asia/Ashgabat': { countryCode: 'TM' },\n 'America/Grand_Turk': { countryCode: 'TC' },\n 'Pacific/Funafuti': { countryCode: 'TV' },\n 'America/St_Thomas': { countryCode: 'VI' },\n 'Africa/Kampala': { countryCode: 'UG' },\n 'Europe/Kiev': { countryCode: 'UA' },\n 'Europe/Uzhgorod': { countryCode: 'UA' },\n 'Europe/Zaporozhye': { countryCode: 'UA' },\n 'Asia/Dubai': { countryCode: 'AE' },\n 'Europe/London': { countryCode: 'GB' },\n 'America/Adak': { countryCode: 'US' },\n 'America/Anchorage': { countryCode: 'US' },\n 'America/Boise': { countryCode: 'US' },\n 'America/Chicago': { countryCode: 'US' },\n 'US/Central': { countryCode: 'US' },\n 'America/Denver': { countryCode: 'US' },\n 'America/Detroit': { countryCode: 'US' },\n 'US/Michigan': { countryCode: 'US' },\n 'America/Indiana/Indianapolis': { countryCode: 'US' },\n 'America/Indiana/Knox': { countryCode: 'US' },\n 'America/Indiana/Marengo': { countryCode: 'US' },\n 'America/Indiana/Petersburg': { countryCode: 'US' },\n 'America/Indiana/Tell_City': { countryCode: 'US' },\n 'America/Indiana/Vevay': { countryCode: 'US' },\n 'America/Indiana/Vincennes': { countryCode: 'US' },\n 'America/Indiana/Winamac': { countryCode: 'US' },\n 'America/Juneau': { countryCode: 'US' },\n 'America/Kentucky/Louisville': { countryCode: 'US' },\n 'America/Kentucky/Monticello': { countryCode: 'US' },\n 'America/Los_Angeles': { countryCode: 'US' },\n 'US/Pacific': { countryCode: 'US' },\n 'America/Menominee': { countryCode: 'US' },\n 'America/Metlakatla': { countryCode: 'US' },\n 'America/New_York': { countryCode: 'US' },\n 'US/Eastern': { countryCode: 'US' },\n 'America/Nome': { countryCode: 'US' },\n 'America/North_Dakota/Beulah': { countryCode: 'US' },\n 'America/North_Dakota/Center': { countryCode: 'US' },\n 'America/North_Dakota/New_Salem': { countryCode: 'US' },\n 'America/Phoenix': { countryCode: 'US' },\n 'America/Sitka': { countryCode: 'US' },\n 'America/Yakutat': { countryCode: 'US' },\n 'Pacific/Honolulu': { countryCode: 'US' },\n 'Pacific/Midway': { countryCode: 'UM' },\n 'Pacific/Wake': { countryCode: 'UM' },\n 'America/Montevideo': { countryCode: 'UY' },\n 'Asia/Samarkand': { countryCode: 'UZ' },\n 'Asia/Tashkent': { countryCode: 'UZ' },\n 'Pacific/Efate': { countryCode: 'VU' },\n 'Europe/Vatican': { countryCode: 'VA' },\n 'America/Caracas': { countryCode: 'VE' },\n 'Asia/Ho_Chi_Minh': { countryCode: 'VN' },\n 'Asia/Saigon': { countryCode: 'VN' },\n 'Asia/Hanoi': { countryCode: 'VN' },\n 'Pacific/Wallis': { countryCode: 'WF' },\n 'Africa/El_Aaiun': { countryCode: 'EH' },\n 'Asia/Aden': { countryCode: 'YE' },\n 'Africa/Lusaka': { countryCode: 'ZM' },\n 'Africa/Harare': { countryCode: 'ZW' },\n 'Asia/Rangoon': { countryCode: 'MM' }\n}\n\n\nexport const getCountryCode = async () => {\n\n try {\n if (Platform.OS === 'web') {\n const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return {\n countryCode: timeZoneCountryDict[timezone]?.countryCode || Intl.DateTimeFormat().resolvedOptions().locale,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n };\n }\n const res = await axios.get('http://ip-api.com/json/');\n const { countryCode, country, timezone, regionName } = res?.data;\n return {\n countryCode,\n country,\n regionName,\n timezone\n };\n } catch (e) {\n if (__DEV__) {\n console.log('getCountryCode error', e);\n }\n return {};\n }\n};\n","export const addDays = (date, days) => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n};","import firebase from 'firebase/app';\nimport '@firebase/auth';\n\nconst provider = new firebase.auth.OAuthProvider('apple.com');\nprovider.addScope('email');\n\nexport const signInWithApple = () => firebase.auth().signInWithRedirect(provider);\n\nexport const getAppleLoginResult = async () => {\n const res = await firebase\n .auth()\n .getRedirectResult()\n .catch(e => console.log('auth redirect result err', e));\n const email = res?.additionalUserInfo?.profile?.email;\n return email;\n};\n\nexport const SUPPORTED_LANG_OF_APPLE_BUTTON = {\n ar_SA: 'ar_SA',\n ca_ES: 'ca_ES',\n cs_CZ: 'cs_CZ',\n da_DK: 'da_DK',\n de_DE: 'de_DE',\n el_GR: 'el_GR',\n en_GB: 'en_GB',\n en_US: 'en_US',\n es_ES: 'es_ES',\n es_MX: 'es_MX',\n fi_FI: 'fi_FI',\n fr_CA: 'fr_CA',\n fr_FR: 'fr_FR',\n hr_HR: 'hr_HR',\n hu_HU: 'hu_HU',\n id_ID: 'id_ID',\n it_IT: 'it_IT',\n iw_IL: 'iw_IL',\n ja_JP: 'ja_JP',\n ko_KR: 'ko_KR',\n ms_MY: 'ms_MY',\n nl_NL: 'nl_NL',\n no_NO: 'no_NO',\n pl_PL: 'pl_PL',\n pt_BR: 'pt_BR',\n pt_PT: 'pt_PT',\n ro_RO: 'ro_RO',\n ru_RU: 'ru_RU',\n sk_SK: 'sk_SK',\n sv_SE: 'sv_SE',\n th_TH: 'th_TH',\n tr_TR: 'tr_TR',\n uk_UA: 'uk_UA',\n vi_VI: 'vi_VI',\n zh_CN: 'zh_CN',\n zh_HK: 'zh_HK',\n zh_TW: 'zh_TW',\n};\n","import { Platform } from 'react-native';\nimport delay from 'delay';\nimport { always, identity, applySpec, prop, propOr, compose, replace } from 'ramda';\nimport _ from 'lodash';\n\nimport { tiktokUserDataToProfile } from 'utils/tiktokUtils';\nimport { checkCanMakePaymentsWithActiveCard } from 'modules/ApplePay';\nimport { resetUnprocessedPurchase, resetUnprocessedTransaction } from 'actions/paymentActions';\n\nimport makeActionCreator from './makeActionCreator';\nimport { getCountryCode } from 'utils/location';\nimport { getMobileOperatingSystem } from 'utils/system';\nimport { addDays } from 'utils/time';\nimport { IAP_PRODUCTS } from 'constants/Products';\nimport { getAppleLoginResult } from 'modules/LoginWithApple/index.js';\nimport { logEvent } from 'modules/bi/biUtils';\n\nexport const REQUEST_TIKTOK_USER = 'REQUEST_TIKTOK_USER';\nexport const RECEIVE_TIKTOK_USER = 'RECEIVE_TIKTOK_USER';\nexport const RESET_TIKTOK_USER = 'RESET_TIKTOK_USER';\n\nexport const REQUEST_USER_TIKTOK_VIDEOS = 'REQUEST_USER_TIKTOK_VIDEOS';\nexport const RECEIVE_USER_TIKTOK_VIDEOS = 'RECEIVE_USER_TIKTOK_VIDEOS';\nexport const RESET_USER_TIKTOK_VIDEOS = 'RESET_USER_TIKTOK_VIDEOS';\n\nexport const RECEIVE_AUTH_USER = 'RECEIVE_AUTH_USER';\n\nexport const UPDATE_STARS_COUNT = 'UPDATE_STARS_COUNT';\nexport const UPDATE_FOLLOWING_LIST = 'UPDATE_FOLLOWING_LIST';\nexport const UPDATE_PURCHASE_STATUS = 'UPDATE_PURCHASE_STATUS';\nexport const UPDATE_HAS_REDEEMED_PROMO_CODE = 'UPDATE_HAS_REDEEMED_PROMO_CODE';\nexport const UPDATE_IS_PENDING_REDEEM_PROMO_CODE = 'UPDATE_IS_PENDING_REDEEM_PROMO_CODE';\n\nexport const REWARD_USER = 'REWARD_USER';\n\nexport const REWARD_REVIEW = 'REWARD_REVIEW';\nexport const REWARD_FOLLOW_IG = 'REWARD_FOLLOW_IG';\nexport const UPDATE_RETURN_USER_INFO = 'UPDATE_RETURN_USER_INFO';\n\nexport const SAVE_REFERRER_INFO = 'SAVE_REFERRER_INFO';\nexport const UPDATE_USER_DB_RECORD = 'UPDATE_USER_DB_RECORD';\n\nexport const FOUND_SUSPICIOUS_ACCOUNT = 'FOUND_SUSPICIOUS_ACCOUNT';\nexport const UPDATE_SHOW_SUSPICIOUS_ALERT = 'UPDATE_SHOW_SUSPICIOUS_ALERT';\n\nexport const REWARD_DAILY_LOGIN = 'REWARD_DAILY_LOGIN';\nexport const FLAG_USE_REDEEM_IOS_FIRST_LOGON_REWARD = 'FLAG_USE_REDEEM_IOS_FIRST_LOGON_REWARD';\n\nexport const UPDATE_PENDING_STARS_COUNT = 'UPDATE_PENDING_STARS_COUNT';\nexport const RESET_PENDING_STARS_COUNT = 'RESET_PENDING_STARS_COUNT';\nexport const UPDATE_SHOULD_RELOAD_USER_PROFILE = 'UPDATE_SHOULD_RELOAD_USER_PROFILE';\nexport const UPDATE_HAS_REDEEMED = 'UPDATE_HAS_REDEEMED';\nexport const UPDATE_APPLE_ID = 'UPDATE_APPLE_ID';\nexport const UPDATE_UID_AND_STARS = 'UPDATE_UID_AND_STARS';\nexport const UPDATE_SHOW_LOGIN_SCREEN_COUNT = 'UPDATE_SHOW_LOGIN_SCREEN_COUNT';\n\nconst requestTikTokUser = makeActionCreator(REQUEST_TIKTOK_USER);\nconst receiveTikTokUser = makeActionCreator(RECEIVE_TIKTOK_USER, 'user');\nexport const resetTikTokUser = makeActionCreator(RESET_TIKTOK_USER);\n\nconst requestUserTikTokVideo = makeActionCreator(REQUEST_USER_TIKTOK_VIDEOS);\nconst receiveUserTikTokVideo = makeActionCreator(RECEIVE_USER_TIKTOK_VIDEOS, 'videos');\nconst resetUserTikTokVideo = makeActionCreator(RESET_USER_TIKTOK_VIDEOS);\n\nconst receiveAuthUser = makeActionCreator(RECEIVE_AUTH_USER, 'userInfo');\n\nconst updateStarsCount = makeActionCreator(UPDATE_STARS_COUNT, 'stars');\n\nconst rewardUser = makeActionCreator(REWARD_USER, 'stars', 'tiktokUser', 'followingUser');\n\nconst rewardReview = makeActionCreator(REWARD_REVIEW);\nconst rewardFollowIg = makeActionCreator(REWARD_FOLLOW_IG);\nconst updateReturnUserInfo = makeActionCreator(UPDATE_RETURN_USER_INFO, 'returnUserInfo');\n\nconst updatePurchaseStatus = makeActionCreator(UPDATE_PURCHASE_STATUS, 'hasPurchased');\nconst updateHasRedeemedStatus = makeActionCreator(\n UPDATE_HAS_REDEEMED_PROMO_CODE,\n 'hasRedeemedPromoCode',\n 'canRedeemPromoCode',\n);\nconst updateIsPendingRedeemPromoCode = makeActionCreator(\n UPDATE_IS_PENDING_REDEEM_PROMO_CODE,\n 'isPendingRedeemPromoCode',\n 'referrerUid',\n);\n\nconst saveReferrerInfo = makeActionCreator(SAVE_REFERRER_INFO, 'referrerUid', 'referrerUniqueId');\nconst updateHasUserDbRecord = makeActionCreator(UPDATE_USER_DB_RECORD, 'hasUserDbRecord');\n\nconst foundSuspiciousAccount = makeActionCreator(FOUND_SUSPICIOUS_ACCOUNT);\nexport const updateShowSuspiciousAlert = makeActionCreator(\n UPDATE_SHOW_SUSPICIOUS_ALERT,\n 'showSuspiciousAlert',\n);\n\nconst rewardDailyLogin = makeActionCreator(REWARD_DAILY_LOGIN, 'stars', 'date');\n\nconst flagUseRedeemIOSFirstLoginReward = makeActionCreator(\n FLAG_USE_REDEEM_IOS_FIRST_LOGON_REWARD,\n 'used',\n);\n\nconst updatePendingStarsCount = makeActionCreator(UPDATE_PENDING_STARS_COUNT, 'stars');\n\nconst resetPendingStarsCount = makeActionCreator(RESET_PENDING_STARS_COUNT);\n\nexport const updateShouldReloadUserProfile = makeActionCreator(\n UPDATE_SHOULD_RELOAD_USER_PROFILE,\n 'shouldReloadUserProfile',\n);\n\nexport const updateHasRedeemed = makeActionCreator(UPDATE_HAS_REDEEMED, 'hasRedeemed');\n\nexport const updateAppleId = makeActionCreator(UPDATE_APPLE_ID, 'appleId');\nexport const updateUidAndStars = makeActionCreator(UPDATE_UID_AND_STARS, 'data');\nexport const updateShowLoginScreenCount = makeActionCreator(UPDATE_SHOW_LOGIN_SCREEN_COUNT);\n\n// subscriptions\": Object {\n// \"com.tikfans.www.10dollars.weekly\": Object {\n// \"period\": undefined,\n// \"renewAt\": 2020-06-25T09:26:37.001Z,\n// \"stars\": undefined,\n// },\n// }\n\nconst renewSubscriptionIfNeeded =\n (subscriptions = {}) =>\n async (dispatch, getState, { apis }) => {\n if (Object.keys(subscriptions).length <= 0) {\n return;\n }\n const state = getState();\n const history = state?.payment?.history;\n\n history.map(purchase => {\n const isSubscription = IAP_PRODUCTS[purchase?.productId]?.isSubscription ?? false;\n if (!isSubscription) {\n return;\n }\n const subscription = subscriptions[purchase?.productId];\n if (!subscription) {\n return;\n }\n const renewAt = subscription?.renewAt?.toDate();\n const now = new Date();\n const dateDifference = now?.getDate() - renewAt?.getDate();\n\n if (dateDifference >= subscription?.period) {\n dispatch(\n purchaseStarsAction({\n isSubscription: true,\n renewAt: subscription?.renewAt\n ? addDays(subscription?.renewAt?.toDate(), subscription?.period)\n : new Date(),\n ...purchase,\n }),\n );\n }\n });\n };\n\nexport const getUserProfileInfoAction =\n ({ username, isLogin = false, appleId }) =>\n async (dispatch, getState, { apis }) => {\n try {\n if (!username || !username?.trim() || username?.trim()?.length === 0) return false;\n const state = getState();\n const prevUniqueId = state.user?.tiktok?.uniqueId;\n const prevDiggCount = state.user?.tiktok?.diggCount ?? 0;\n const prevFollowingCount = state.user?.tiktok?.followingCount ?? 0;\n const uid = state?.user?.uid;\n\n const userInfo = await apis.firebase.getUserInfo({ uid });\n const { stars, hasUserDbRecord, subscriptions } = userInfo;\n dispatch(updateStarsCount(stars + state?.user?.pendingStars));\n dispatch(updateHasUserDbRecord(hasUserDbRecord));\n dispatch(renewSubscriptionIfNeeded(subscriptions));\n\n dispatch(requestTikTokUser());\n const tiktokProfile = await apis.tiktok.getUserProfileInfo({\n username,\n isLogin,\n });\n\n if (!tiktokProfile?.uniqueId) {\n if (isLogin) {\n dispatch(resetTikTokUser());\n logEvent({ name: 'login_error' });\n }\n return false;\n }\n dispatch(receiveTikTokUser(tiktokProfile));\n\n const serializedTikTokProfile = tiktokUserDataToProfile(tiktokProfile);\n const currentDiggCount = serializedTikTokProfile?.diggCount;\n const currentFollowingCount = serializedTikTokProfile?.followingCount;\n const currentUniqueId = serializedTikTokProfile?.uniqueId;\n\n if (\n !_.isEmpty(prevUniqueId) &&\n currentUniqueId &&\n prevUniqueId === currentUniqueId &&\n currentDiggCount - prevDiggCount + (currentFollowingCount - prevFollowingCount) <= -15\n ) {\n const suspiciousCount = (state.user?.suspiciousCount ?? 0) + 1;\n const slackPayload = {\n ...state.user,\n prevDiggCount,\n currentDiggCount,\n prevFollowingCount,\n currentFollowingCount,\n suspiciousCount,\n };\n apis.slack.suspiciousAccount(slackPayload);\n dispatch(foundSuspiciousAccount());\n logEvent({ name: 'unfollow', uniqueId: currentUniqueId });\n if (suspiciousCount >= 2) {\n apis.slack.blockedAccount(slackPayload);\n logEvent({ name: 'severe_unfollow' });\n }\n }\n\n return true;\n } catch (e) {\n if (__DEV__) {\n logEvent({ name: 'login_error' });\n console.log('getUserProfileInfoAction error', e);\n }\n dispatch(resetTikTokUser());\n return false;\n }\n };\n\nexport const checkFollowStatusAction =\n ({ type, id, targetUniqueId, orderId, order, currentVideoInfo = {} }) =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state.user;\n const authUserUniqueId = state?.user?.tiktok?.uniqueId ?? '';\n const prevFollowingCount = state?.user?.tiktok?.followingCount;\n const prevDiggCount = state?.user?.tiktok?.diggCount;\n const openFavorite = state?.user?.tiktok?.openFavorite;\n const isPendingRedeemPromoCode = state?.user?.isPendingRedeemPromoCode ?? false;\n const canRedeemPromoCode = state?.user?.canRedeemPromoCode;\n const rewardStarsCount = type === 'comment' ? 2 : 1;\n\n const shouldSkipFetchingTikData =\n type === 'follower' ? Math.random() < 0.2 : Math.random() < 0.25;\n let shouldRewardUser = false;\n let isFetchTikTokApiFailed = false;\n let tiktokUser = {};\n\n if (shouldSkipFetchingTikData) {\n await delay(2000);\n } else if (type === 'follower') {\n await delay(2900);\n } else {\n await delay(5000);\n }\n\n if (type === 'comment' && id === currentVideoInfo?.id) {\n try {\n const newVideoInfo = shouldSkipFetchingTikData\n ? currentVideoInfo\n : await apis.tiktok.getVideoInfoFromLink({ url: order?.webVideoUrl });\n if (newVideoInfo?.commentCount > 9999) {\n shouldRewardUser = true;\n }\n if (newVideoInfo?.commentCount > currentVideoInfo?.commentCount) {\n // console.log('newVideoInfo?.commentCount', newVideoInfo?.commentCount, 'currentVideoInfo?.commentCount', currentVideoInfo?.commentCount);\n // console.log('newVideoInfo?.commentCount > currentVideoInfo?.commentCount', newVideoInfo?.commentCount > currentVideoInfo?.commentCount);\n shouldRewardUser = true;\n }\n\n if (!newVideoInfo.id) {\n isFetchTikTokApiFailed = true;\n shouldRewardUser = true;\n }\n } catch (e) {\n shouldRewardUser = true;\n console.log('checkFollowStatusAction getVideoInfoFromLink error', e);\n }\n } else if (type === 'like' && openFavorite === false && id === currentVideoInfo?.id) {\n try {\n const newVideoInfo = shouldSkipFetchingTikData\n ? currentVideoInfo\n : await apis.tiktok.getVideoInfoFromLink({ url: order?.webVideoUrl });\n if (newVideoInfo?.diggCount > 9999) {\n shouldRewardUser = true;\n }\n if (newVideoInfo?.diggCount > currentVideoInfo?.diggCount) {\n // console.log('newVideoInfo?.diggCount', newVideoInfo?.diggCount, 'currentVideoInfo?.diggCount', currentVideoInfo?.diggCount);\n // console.log('newVideoInfo?.diggCount > currentVideoInfo?.diggCount', newVideoInfo?.diggCount > currentVideoInfo?.diggCount);\n shouldRewardUser = true;\n }\n\n if (!newVideoInfo.id || !currentVideoInfo?.id) {\n isFetchTikTokApiFailed = true;\n shouldRewardUser = true;\n }\n } catch (e) {\n shouldRewardUser = true;\n console.log('checkFollowStatusAction getVideoInfoFromLink error', e);\n }\n } else {\n tiktokUser = shouldSkipFetchingTikData\n ? state?.user?.tiktok\n : await apis.tiktok.getUserProfileInfo({ username: authUserUniqueId });\n const newFollowingCount = tiktokUser?.following;\n const newDiggCount = tiktokUser?.digg;\n\n if (newDiggCount > 10000) {\n logEvent({ name: 'digg_greater_10k' });\n }\n isFetchTikTokApiFailed = authUserUniqueId && !tiktokUser?.uniqueId;\n if (\n shouldSkipFetchingTikData ||\n isFetchTikTokApiFailed ||\n (type === 'like' && (newDiggCount > prevDiggCount || newDiggCount > 10000)) ||\n (type === 'like' && !openFavorite) ||\n (type === 'follower' && newFollowingCount > prevFollowingCount)\n ) {\n shouldRewardUser = true;\n }\n }\n\n if (shouldRewardUser) {\n const targetId = type !== 'follower' ? id : targetUniqueId;\n const followingUser = {\n [targetId]: {\n createdAt: new Date(),\n },\n };\n // reward with star\n // update user profile\n // update followingList\n dispatch(\n rewardUser(\n rewardStarsCount,\n isFetchTikTokApiFailed || !tiktokUser?.uniqueId ? state?.user?.tiktok : tiktokUser,\n followingUser,\n ),\n );\n\n const pendingStars = user.pendingStars;\n\n if (rewardStarsCount + pendingStars >= 10) {\n apis.firebase.updateUserStars({\n stars: rewardStarsCount + pendingStars,\n uniqueId: authUserUniqueId,\n uid: user?.uid,\n });\n dispatch(resetPendingStarsCount());\n } else {\n dispatch(updatePendingStarsCount(rewardStarsCount));\n }\n\n if (isFetchTikTokApiFailed) {\n logEvent({ name: 'getUserInfoError' });\n }\n apis.firebase.updateOrderStatus({ orderId });\n if (isPendingRedeemPromoCode) {\n dispatch(redeemedPromoCodeAction());\n }\n apis.slack.newFollow({ ...user, type });\n const trackingData = {\n uniqueId: authUserUniqueId,\n uid: user?.uid,\n orderId,\n type,\n };\n if (type === 'like') {\n logEvent({ name: 'like', ...trackingData });\n if (canRedeemPromoCode) {\n logEvent({ name: 'new_like', ...trackingData });\n }\n } else if (type === 'follower') {\n logEvent({ name: 'follow', ...trackingData });\n if (canRedeemPromoCode) {\n logEvent({ name: 'new_follow', ...trackingData });\n }\n } else {\n logEvent({ name: 'comment', ...trackingData });\n if (canRedeemPromoCode) {\n logEvent({ name: 'new_comment', ...trackingData });\n }\n }\n } else {\n apis.firebase.checkOrderTikTokStatus({ orderId, order });\n }\n } catch (e) {\n if (__DEV__) {\n console.log('checkFollowStatus error', e);\n }\n }\n };\n\nexport const redeemStars =\n ({ type = 'follower', selectedItem = {}, stars, orderCount, isDirectPurchase = false }) =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const currentStars = state?.user?.stars ?? 0;\n const hasRedeemed = state?.user?.hasRedeemed ?? true;\n const hasPurchased = state?.user.hasPurchased;\n const user = state?.user;\n const pendingStars = user?.pendingStars;\n const uniqueId = user?.tiktok?.uniqueId;\n const regionName = user.regionName;\n\n if (pendingStars > 0) {\n await apis.firebase.updateUserStars({ stars: pendingStars, uniqueId, uid: user?.uid });\n dispatch(resetPendingStarsCount());\n }\n const { stars: serverStars } = await apis.firebase.getUserInfo({ uid: user?.uid });\n\n if (\n !isDirectPurchase &&\n (serverStars < currentStars || currentStars <= 0 || serverStars <= 0)\n ) {\n dispatch(updateStarsCount(serverStars));\n return false;\n }\n\n if ((type === 'like' || type === 'comment') && _.isEmpty(selectedItem?.webVideoUrl)) {\n return false;\n }\n\n if (currentStars > 3000 && hasPurchased === false) {\n apis.slack.anonymousStars({\n ...user,\n stars: currentStars,\n });\n }\n if (currentStars > 90000 && hasPurchased === false) {\n return true;\n }\n\n const tiktokProfile = state?.user?.tiktok;\n const canMakePaymentsWithActiveCard = state?.payment?.applePay?.canMakePaymentsWithActiveCard;\n await apis.firebase.createOrder({\n type,\n selectedItem,\n tiktokProfile,\n orderCount,\n hasPurchased,\n canMakePaymentsWithActiveCard,\n regionName,\n });\n if (!isDirectPurchase) {\n await apis.firebase.updateUserStars({ stars: stars * -1, uniqueId, uid: user?.uid });\n }\n dispatch(updateStarsCount(currentStars - stars));\n dispatch(updateHasRedeemed(true));\n\n apis.slack.newRedeem({\n ...user,\n type,\n orderCount,\n stars: currentStars,\n });\n const trackingData = {\n uniqueId,\n orderCount,\n regionName,\n hasPurchased,\n selectedItem: selectedItem?.id || tiktokProfile?.id,\n stars: currentStars,\n };\n logEvent({ name: `redeem_${type}`, ...trackingData });\n dispatch(flagUseRedeemIOSFirstLoginRewardAction(true));\n\n return true;\n } catch (e) {\n console.log('redeemStars error', e);\n return false;\n }\n };\n\n// productInfo Object {\n// \"description\": \"Stars Package 10\",\n// \"discount\": \"60\",\n// \"isSubscription\": true,\n// \"period\": 7,\n// \"price\": \"NT$310.00\",\n// \"priceAmountMicros\": 310000000,\n// \"priceCurrencyCode\": \"TWD\",\n// \"productId\": \"com.tikfans.www.10dollars.weekly\",\n// \"stars\": 700,\n// \"subscriptionPeriod\": \"P1W\",\n// \"title\": \"Stars Package 10 (TikFans: Boost Followers, Likes, Fans)\",\n// \"type\": 1,\n// }\n\nexport const purchaseStarsAction =\n ({ stars = 0, isSubscription = false, ...props }) =>\n async (dispatch, getState, { apis }) => {\n const state = getState();\n const currentStars = state?.user?.stars;\n const uniqueId = state?.user?.tiktok?.uniqueId ?? '';\n const user = state?.user;\n try {\n const payload = {\n uid: user?.uid,\n stars,\n uniqueId,\n ...(isSubscription && {\n subscriptions: {\n [props.productId]: {\n renewAt: props?.renewAt ?? new Date(),\n stars,\n period: props?.period,\n },\n },\n }),\n ...(props?.details?.payer?.email_address && {\n email: props?.details?.payer?.email_address,\n }),\n ...(!_.isEmpty(user.appleId) && {\n appleId: user.appleId,\n }),\n hasPurchased: true,\n };\n dispatch(updatePurchaseStatus(true));\n dispatch(updateStarsCount(currentStars + stars));\n\n await apis.firebase\n .updateUserStars(payload)\n .then(() => {\n console.log('updateUserStars success');\n dispatch(resetUnprocessedPurchase());\n })\n .catch(e => {\n console.log('updateUserStars error', e);\n dispatch(\n slackLog({\n logName: 'purchaseStarsAction',\n logMessage: `Firestore error ${String(e)}`,\n }),\n );\n });\n\n logEvent({ name: 'newPurchase', productId: props?.productId, orderId: props?.orderId });\n apis.slack.newPurchase({\n ...user,\n stars,\n isSubscription,\n purchaseToken: props?.purchaseToken,\n orderId: props?.orderId,\n ...props,\n });\n } catch (e) {\n if (__DEV__) {\n console.log('purchaseStarsAction error: ', e);\n }\n dispatch(slackLog({ logName: 'purchaseStarsAction', logMessage: `error: ${String(e)}` }));\n }\n };\n\nexport const onAuthStateChangedAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const { user } = await apis.firebase.onAuthStateChanged();\n const { countryCode, country, regionName, timezone } = await getCountryCode();\n\n const state = getState();\n const hasLaunched = state.user?.hasLaunched;\n\n const oldUid = state?.user?.uid;\n const newUid = user?.uid;\n const stars = state?.user?.stars;\n const suspiciousCount = state?.user?.suspiciousCount;\n if (!oldUid && newUid) {\n // if (oldUid && oldUid !== newUid) {\n // apis.slack.uidChanged({\n // ...state?.user,\n // newUid,\n // });\n // if (stars > 9 && suspiciousCount < 1) {\n // apis.firebase.updateUserInfo({ stars });\n // }\n // }\n\n const platform =\n Platform.OS === 'web' ? `${Platform.OS}(${getMobileOperatingSystem()})` : Platform.OS;\n const userInfo = {\n uid: user?.uid,\n countryCode,\n country,\n regionName,\n timezone,\n platform,\n hasLaunched: hasLaunched || !hasLaunched,\n };\n dispatch(receiveAuthUser(userInfo));\n if (!hasLaunched) {\n apis.slack.newUser(userInfo);\n }\n }\n } catch (e) {\n if (__DEV__) {\n console.log('onAuthStateChangedAction error: ', e);\n }\n }\n };\n\nexport const newTikTokLogin =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const canMakePayments = await checkCanMakePaymentsWithActiveCard();\n const state = getState();\n const uniqueId = state.user?.tiktok?.uniqueId;\n const hasReviewed = state.user?.hasReviewed;\n const hasFollowedIg = state.user?.hasFollowedIg;\n const canRedeemPromoCode = state.user?.canRedeemPromoCode;\n const countryCode = state.user?.countryCode;\n\n const user = {\n ...state.user,\n applePay: canMakePayments,\n };\n apis.slack.newTikTokLogin(user);\n logEvent({ name: 'login', uniqueId });\n if (Platform.OS === 'web') {\n const eventName = canMakePayments ? 'ApplePayAvailable' : 'ApplePayNotAvailable';\n logEvent({ name: eventName });\n }\n\n const returnUserInfo = await dispatch(checkReturnUserInfoAction());\n\n return {\n ...returnUserInfo,\n shouldShowAppleLogin: _.isEmpty(state?.user?.appleId) && !_.isEmpty(returnUserInfo.appleId),\n };\n\n // if (!hasReviewed || canRedeemPromoCode || !hasFollowedIg) {\n // const returnUserInfo = await dispatch(checkReturnUserInfoAction());\n\n // if (\n // Platform.OS === 'web' &&\n // (countryCode === 'US' ||\n // countryCode === 'GB' ||\n // countryCode === 'DE' ||\n // countryCode === 'FR' ||\n // countryCode === 'CA' ||\n // countryCode === 'AU') &&\n // canMakePayments &&\n // returnUserInfo?.hasRedeemedIOSFirstLoginReward !== undefined &&\n // !returnUserInfo?.hasRedeemedIOSFirstLoginReward\n // ) {\n // apis.firebase.redeemIOSFirstLoginReward({ uid: user?.uid, uniqueId, stars: 20 });\n // apis.slack.redeemWebFirstLoginReward({\n // ...state.user,\n // hasRedeemedIOSFirstLoginReward: returnUserInfo?.hasRedeemedIOSFirstLoginReward,\n // });\n // }\n // }\n } catch (e) {\n console.log('newTikTokLogin error: ', e);\n }\n };\n\nexport const purchaseErrorAction =\n ({ errorMessage }) =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state.user;\n apis.slack.purchaseError({\n ...user,\n error: errorMessage,\n });\n } catch (e) {\n if (__DEV__) {\n console.log('newTikTokLogin error: ', e);\n }\n }\n };\n\nexport const rewardReviewAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state.user;\n const hasReviewed = user?.hasReviewed;\n const hasFollowedIg = user?.hasFollowedIg;\n const authUserUniqueId = user?.tiktok?.uniqueId ?? '';\n if (!!hasReviewed || !!hasFollowedIg) {\n return;\n }\n\n dispatch(rewardReview());\n apis.firebase.rewardReview({ stars: 10, uniqueId: authUserUniqueId, uid: user?.uid });\n apis.slack.newReview({\n ...user,\n });\n logEvent({ name: 'new_review', uniqueId: authUserUniqueId });\n } catch (e) {\n if (__DEV__) {\n console.log('rewardReviewAction error: ', e);\n }\n }\n };\n\nexport const rewardFollowIgAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state.user;\n const hasFollowedIg = user?.hasFollowedIg;\n const authUserUniqueId = user?.tiktok?.uniqueId ?? '';\n if (hasFollowedIg) {\n return;\n }\n dispatch(rewardFollowIg());\n apis.firebase.rewardFollowIg({ stars: 10, uniqueId: authUserUniqueId, uid: user?.uid });\n apis.slack.newReview({\n ...user,\n });\n logEvent({ name: 'new_follow_ig', uniqueId: authUserUniqueId });\n } catch (e) {\n if (__DEV__) {\n console.log('rewardFollowIgAction error: ', e);\n }\n }\n };\n\nexport const checkReturnUserInfoAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state?.user;\n const uniqueId = state?.user?.tiktok?.uniqueId;\n const returnUserInfo = await apis.firebase.checkReturnUserInfo({\n uniqueId,\n });\n dispatch(updateReturnUserInfo(returnUserInfo));\n const { referralCount, referralStars } = returnUserInfo;\n if (referralCount && referralCount > 5) {\n apis.slack.suspiciousReferral({\n ...user,\n referralCount,\n referralStars,\n // canRedeemPromoCode,\n });\n }\n return returnUserInfo;\n } catch (e) {\n if (__DEV__) {\n console.log('checkReturnUserInfoAction error: ', e);\n }\n return {};\n }\n };\n\nexport const verifyPromoCodeAction =\n promoCode =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const uniqueId = state?.user?.tiktok?.uniqueId;\n const hasRedeemedPromoCode = state.user?.hasRedeemedPromoCode;\n if (hasRedeemedPromoCode) {\n dispatch(updateHasRedeemedStatus(true, false));\n return false;\n }\n const { isPromoCodeValid, referrerUid } = await apis.firebase.verifyPromoCode(\n promoCode,\n uniqueId,\n );\n if (isPromoCodeValid) {\n dispatch(updateIsPendingRedeemPromoCode(true, referrerUid));\n dispatch(saveReferrerInfo(referrerUid, promoCode));\n }\n\n return isPromoCodeValid;\n } catch (e) {\n if (__DEV__) {\n console.log('verifyPromoCode error', e);\n }\n return false;\n }\n };\n\nexport const redeemedPromoCodeAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state?.user;\n const currentStars = state?.user?.stars ?? 0;\n const uniqueId = state?.user?.tiktok?.uniqueId ?? '';\n const referrerUid = state?.user?.referrerUid;\n const referrerUniqueId = state?.user?.referrerUniqueId;\n dispatch(updateHasRedeemedStatus(true, false));\n dispatch(updateStarsCount(currentStars + 20));\n dispatch(updateIsPendingRedeemPromoCode(false));\n apis.firebase.redeemPromoCode({ stars: 20, uniqueId, referrerUid });\n logEvent({ name: 'redeem_promo_code', referrerUid, uniqueId });\n apis.slack.newReferral({\n ...user,\n referrerUid,\n referrerUniqueId,\n });\n } catch (e) {\n if (__DEV__) {\n console.log('redeemedPromoCode error', e);\n }\n }\n };\n\nexport const createUserDbRecord =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const uniqueId = state?.user?.tiktok?.uniqueId;\n apis.firebase.createUserDbRecord({ uniqueId });\n dispatch(updateHasUserDbRecord(true));\n } catch (e) {\n if (__DEV__) {\n console.log('createUserDbRecord error', e);\n }\n }\n };\n\nexport const getUserVideoListAction =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const { uniqueId, secUid, id, videos: prevVideos } = state?.user?.tiktok;\n\n dispatch(requestUserTikTokVideo());\n const curVideos = await apis.tiktok.getUserVideoList({\n uniqueId,\n secUid,\n uid: id,\n });\n const videos = prevVideos?.length > 0 && curVideos?.length === 0 ? prevVideos : curVideos;\n dispatch(receiveUserTikTokVideo(videos));\n } catch (e) {\n if (__DEV__) {\n console.log('getVideoListAction error', e);\n }\n dispatch(resetUserTikTokVideo());\n }\n };\n\nexport const rewardDailyLoginAction =\n ({ date }) =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const uniqueId = state.user?.tiktok?.uniqueId;\n const dailyRewardCount = state.user?.dailyRewardCount + 1;\n const stars = 5;\n await delay(1000);\n dispatch(rewardDailyLogin(stars, date));\n logEvent({ name: 'daily_reward', uniqueId });\n await apis.firebase.rewardDailyLogin({\n stars,\n uniqueId,\n date,\n dailyRewardCount,\n });\n apis.slack.rewardDailyLogin({\n ...state?.user,\n dailyRewardCount,\n });\n } catch (e) {\n if (__DEV__) {\n console.log('rewardDailyLoginAction error', e);\n }\n }\n };\n\nexport const flagUseRedeemIOSFirstLoginRewardAction =\n (used = true) =>\n async (dispatch, getState, { apis }) => {\n try {\n await apis.firebase.flagUserHasUsedWithIOSReward({ used });\n dispatch(flagUseRedeemIOSFirstLoginReward(used));\n } catch (e) {\n if (__DEV__) {\n console.log('flagUseRedeemIOSFirstLoginReward error', e);\n }\n }\n };\n\nexport const createTransactionRecordAction =\n ({ purchase = {}, productInfo = {}, paypal = {}, applePay = {}, tapPay = {} }) =>\n async (dispatch, getState, { apis }) => {\n const state = getState();\n try {\n const uniqueId = state?.user?.tiktok?.uniqueId;\n const { uid, timezone, countryCode, platform } = state?.user;\n const { purchaseToken, productId, orderId, purchaseTime } = purchase;\n const { price } = productInfo;\n const { details, productId: paypalProductId, price: paypalPrice } = paypal;\n const language = window?.navigator?.language;\n const user = { uid, timezone, countryCode, platform, uniqueId, language };\n\n const payload =\n platform === 'android' || platform === 'iOS'\n ? {\n ...user,\n purchaseToken,\n orderId,\n purchaseTime,\n productId,\n price,\n paymentType: 'IAP',\n }\n : !_.isEmpty(paypal)\n ? {\n ...user,\n transactionId: details?.purchase_units[0]?.payments?.captures[0]?.id,\n orderId: details?.id,\n purchaseTime: new Date(),\n productId: paypalProductId,\n price: paypalPrice,\n email: details?.payer?.email_address,\n name: Object.values(details?.payer?.name).join(' '),\n paymentType: 'paypal',\n }\n : !_.isEmpty(applePay)\n ? {\n ...user,\n ...applePay.content,\n ...applePay.payByPrimeResult,\n paymentType: 'applePay',\n }\n : !_.isEmpty(tapPay) && {\n ...user,\n ...tapPay.content,\n ...tapPay.result,\n paymentType: 'tapPay',\n };\n await apis.firebase\n .createTransactionRecord({\n ...payload,\n createdAt: new Date(),\n })\n .then(result => {\n if (window.dataLayer) {\n const content = applePay.content || tapPay.content;\n window.dataLayer.push({\n event: 'onCompleteTransaction',\n amount: compose(\n applySpec({\n value: identity,\n currency_code: always('USD'),\n }),\n Number.parseFloat,\n replace(/[^0-9.-]+/g, ''),\n propOr('0', 'price'),\n )(content),\n transactionId: result?.id,\n productId: prop('productId', content),\n });\n }\n if (__DEV__) {\n console.log('createTransactionRecordAction success');\n }\n dispatch(resetUnprocessedTransaction());\n })\n .catch(e => {\n if (__DEV__) {\n console.log('createTransactionRecordAction error', e);\n }\n });\n } catch (e) {\n if (__DEV__) {\n console.log('createTransactionRecordAction error', e);\n }\n dispatch(\n slackLog({ logName: 'createTransactionRecordAction', logMessage: `error: ${String(e)}` }),\n );\n apis.slack.errorLog({\n ...state?.user,\n functionName: 'createTransactionRecordAction',\n errorMessage: String(e),\n });\n }\n };\n\nexport const suspiciousTransaction =\n props =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const user = state?.user;\n const payload = {\n ...user,\n purchaseToken: props?.purchaseToken,\n orderId: props?.orderId,\n };\n apis.slack.suspiciousTransaction(payload);\n } catch (e) {\n if (__DEV__) {\n console.log('suspiciousTransaction error', e);\n }\n }\n };\n\nexport const pressSkipAction =\n props =>\n async (dispatch, getState, { apis }) => {\n try {\n logEvent({ name: 'pressSkip', type: props?.type });\n } catch (e) {\n if (__DEV__) {\n console.log('pressSkipError e', e);\n }\n }\n };\n\nexport const directPurchaseAction =\n ({ stars, type }) =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const currentStars = state?.user?.stars;\n dispatch(updateStarsCount(currentStars + stars));\n dispatch(updatePurchaseStatus(true));\n await dispatch(redeemStars({ type, stars, orderCount: stars / 2.0, isDirectPurchase: true }));\n } catch (e) {\n if (__DEV__) {\n console.log('directPurchaseAction error', e);\n }\n }\n };\n\nexport const newPayPalEventAction =\n data =>\n async (dispatch, getState, { apis }) => {\n const state = getState();\n const user = state?.user;\n try {\n apis.slack.newPayPalEvent({\n ...user,\n ...data,\n });\n } catch (e) {\n if (__DEV__) {\n console.log('newPayPalEventAction error', e);\n }\n apis.slack.errorLog({\n ...user,\n functionName: 'newPayPalEventAction',\n errorMessage: String(e),\n });\n }\n };\n\nexport const slackLog =\n data =>\n async (dispatch, getState, { apis }) => {\n const state = getState();\n const user = state?.user;\n apis.slack.log({\n logName: data?.logName,\n logMessage: data?.logMessage,\n ...user,\n });\n };\n\nexport const checkIsExistLinkedAppleIdInDb =\n () =>\n async (dispatch, getState, { apis }) => {\n try {\n const state = getState();\n const uid = state?.user?.uid;\n const appleId = await getAppleLoginResult();\n if (appleId) {\n if (!appleId) {\n return;\n }\n dispatch(updateAppleId(appleId));\n const data = await apis.firebase.getUserInfoByAppleId(appleId);\n if (data) {\n dispatch(updateUidAndStars(data));\n } else {\n apis.firebase.updateUserAppleId({ uid, appleId });\n }\n }\n } catch (e) {\n if (__DEV__) {\n console.log('checkIsExistLinkedAppleIdInDb error', e);\n }\n }\n };\n","import i18n from 'i18n-js';\nimport { NativeModules, Platform } from 'react-native';\nconst el = require('./dict/el.json');\nconst en = require('./dict/en.json');\nconst es = require('./dict/es.json');\nconst fr = require('./dict/fr.json');\nconst id = require('./dict/id.json');\nconst it = require('./dict/it.json');\nconst ja = require('./dict/ja.json');\nconst ko = require('./dict/ko.json');\nconst pl = require('./dict/pl.json');\nconst pt = require('./dict/pt.json');\nconst ru = require('./dict/ru.json');\nconst tr = require('./dict/tr.json');\nconst zh = require('./dict/zh.json');\nconst vi = require('./dict/vi.json');\n\n// const deviceLanguage = Platform.select({\n// android: NativeModules.I18nManager?.localeIdentifier,\n// ios: NativeModules.SettingsManager?.settings?.AppleLocale || NativeModules.SettingsManager?.settings?.AppleLanguages[0], // iOS 13\n// web: Intl.DateTimeFormat().resolvedOptions().locale,\n// });\n\nlet deviceLanguage = 'en-US';\nif (Platform.OS === 'android') {\n deviceLanguage = NativeModules.I18nManager?.localeIdentifier;\n} else if (Platform.OS === 'ios') {\n deviceLanguage = NativeModules.SettingsManager?.settings?.AppleLocale || NativeModules.SettingsManager?.settings?.AppleLanguages[0];\n} else if (Platform.OS === 'web') {\n deviceLanguage = Intl.DateTimeFormat().resolvedOptions().locale;\n}\n\ni18n.locale = deviceLanguage.replace('_', '-');\ni18n.fallbacks = true;\ni18n.translations = {\n el,\n en,\n es,\n fr,\n id,\n it,\n ja,\n ko,\n pl,\n pt,\n ru,\n tr,\n zh,\n vi,\n};\n\nexport default i18n;","import * as React from 'react';\nimport { path } from 'ramda';\nimport { View, Text, Image, TouchableOpacity } from 'react-native';\nimport AsyncStorage from '@react-native-async-storage/async-storage';\nimport styled from 'styled-components/native';\nimport { isIosBrowser, getIOSVersion } from 'utils/system';\nimport i18n from 'i18n';\n\nconst PWAInstructionView = ({ shouldCheckLaunchTimes = false }) => {\n const [shouldDisplay, setShouldDisplay] = React.useState(false);\n\n React.useEffect(() => {\n const shouldDisplay = isIosBrowser() && getIOSVersion() > 14;\n setShouldDisplay(shouldDisplay);\n }, []);\n\n React.useEffect(() => {\n const checkLaunchTimes = async () => {\n try {\n const value = await AsyncStorage.getItem('pwaLaunchTimes') ?? 0;\n if (parseInt(value) > 1) {\n setShouldDisplay(false);\n return;\n }\n await AsyncStorage.setItem('pwaLaunchTimes', parseInt(value) + 1)\n } catch (e) {\n if (__DEV__) {\n console.log('CheckLaunchTimes error', e);\n }\n }\n };\n if (shouldCheckLaunchTimes) {\n checkLaunchTimes();\n }\n }, []);\n\n if (!shouldDisplay) {\n return ();\n }\n return (\n \n \n setShouldDisplay(false)} />\n TikFans App\n {i18n.t('pwa_instruction_subtitle')}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst backgroundColor = 'rgba(255, 255, 255, 1)';\n\nconst Container = styled(View)`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.6);\n z-index: 22;\n align-items: center;\n`;\n\nconst InstructionView = styled(View)`\n position: absolute;\n bottom: 60;\n width: 90%;\n max-width: 358;\n height: 200;\n background-color: ${backgroundColor};\n margin: auto;\n z-index: 99;\n border-radius: 24;\n align-items: center;\n`;\n\nconst Title = styled(Text)`\n font-size: 20;\n font-weight: bold;\n color: ${path(['theme', 'primary', 'purple'])};\n margin-top: 15;\n`;\n\nconst SubTitle = styled(Text)`\n font-size: 14;\n margin-top: 5;\n`;\n\nconst IconWithTitle = ({ source, title }) => {\n return (\n \n \n {title}\n \n );\n};\n\nconst ArrowIcon = styled(Image)`\n width: 12;\n height: 21;\n`;\n\nconst Icons = styled(View)`\n flex-direction: row;\n margin-top: 13;\n justify-content: space-around;\n align-items: center;\n width: 95%;\n`;\n\nconst ArrowBottom = styled(View)`\n position: absolute;\n bottom: -30;\n width: 10;\n height: 0;\n background-color: transparent;\n border-style: solid;\n border-left-width: 25;\n border-right-width: 25;\n border-top-width: 30;\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: ${backgroundColor};\n`;\n\nconst CloseButton = ({ onPress }) => {\n return (\n \n \n \n );\n};\n\nexport default PWAInstructionView;","import * as React from 'react';\nimport { path } from 'ramda';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n View,\n Text,\n Image,\n Platform,\n Dimensions,\n TouchableOpacity,\n} from 'react-native';\nimport delay from 'delay';\n\nimport styled from 'styled-components/native';\n\nimport { rewardDailyLoginAction } from 'actions/userActions';\nimport i18n from 'i18n';\n\nconst DailyReward = () => {\n const dispatch = useDispatch();\n const [visible, setVisible] = React.useState(false);\n const state = useSelector(state => state);\n const dailyReward = state?.user?.dailyReward;\n const dailyRewardCount = state?.user?.dailyRewardCount;\n const serverTime = state?.time?.data;\n const serverTimeDate = new Date(serverTime?.datetime).getDate();\n const today = new Date();\n const countryCode = state?.user?.countryCode;\n const isRestrictedCountries = (countryCode === 'IN' || countryCode === 'PK' || countryCode === 'VN' || countryCode === 'IQ' || countryCode === 'PH');\n\n React.useEffect(() => {\n const checkIsVisible = async () => {\n if (isRestrictedCountries) {\n return setVisible(false);\n }\n if (!dailyReward) {\n await delay(300);\n return setVisible(true);\n }\n if (dailyReward === today.getDate()) {\n return setVisible(false);\n }\n if (serverTimeDate !== today.getDate()) {\n return setVisible(false);\n }\n await delay(300);\n setVisible(true);\n };\n checkIsVisible();\n }, [serverTimeDate]);\n\n const onPress = React.useCallback(() => {\n dispatch(rewardDailyLoginAction({ date: today.getDate() }));\n setVisible(false);\n }, [today]);\n\n if (visible) {\n return (\n \n \n DAILY REWARD\n \n \n {\n DATES.map((date, index) => {\n return ();\n })\n }\n \n \n {i18n.t('general_continue')}\n \n \n \n );\n }\n return null;\n};\n\nexport default DailyReward;\n\nconst Container = styled(View)`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%; \n height: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n justify-content: center;\n align-items: center;\n`;\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst ContentWrapper = styled(View)`\n width: ${screenWidth * 0.8};\n max-width: 350;\n height: ${screenWidth * 0.8 * 1.189};\n max-height: 415;\n border-radius: 24;\n background-color: #FFFFFF;\n align-items: center;\n justify-content: space-evenly;\n`;\n\nconst Title = styled(Text)`\n font-size: 16;\n font-weight: bold;\n line-height: 19;\n align-self: center;\n`;\n\nconst GiftImage = styled(Image)`\n width: 85;\n height: 115;\n`;\n\nconst ActionButton = styled(TouchableOpacity)`\n width: 62%;\n max-width: 220;\n height: 49;\n border-radius: 24;\n justify-content: center;\n align-items: center;\n background-color: ${path(['theme', 'primary', 'purple'])};\n`;\n\nconst ActionButtonText = styled(Text)`\n color: #FFFFFF;\n font-size: 18;\n`;\n\nconst DATES = [\n new Date(new Date().setDate(new Date().getDate() - 2)),\n new Date(new Date().setDate(new Date().getDate() - 1)),\n new Date(),\n new Date(new Date().setDate(new Date().getDate() + 1)),\n new Date(new Date().setDate(new Date().getDate() + 2)),\n];\n\nconst Calendar = styled(View)`\n width: 100%;\n height: 82;\n flex-direction: row;\n justify-content: space-evenly;\n`;\n\nconst CalendarDateUnit = ({ date }) => {\n const today = new Date();\n const isToday = date.getDate() === today.getDate();\n const isFuture = date > today;\n return (\n \n {date?.getMonth() + 1}\n {date?.getDate()}\n {\n isFuture && \n }\n \n );\n};\n\nconst CalendarDateUnitWrapper = styled(View)`\n height: 82;\n width: 17.5%;\n border-width: ${props => props.isToday ? 3 : 1};\n border-color: ${props => props.isToday ? path(['theme', 'primary', 'purple']) : '#CDCDCDCD'};\n border-radius: 12;\n justify-content: center;\n align-items: center;\n`;\n\nconst CalendarDateUnitMonthText = styled(Text)`\n color: #000000;\n font-size: 18;\n font-weight: 500;\n`;\n\nconst CalendarDateUnitDateText = styled(Text)`\n color: #000000;\n font-size: 20;\n font-weight: bold;\n`;\n\nconst LockImage = styled(Image)`\n width: 16;\n height: 16;\n position: absolute;\n top: -8;\n left: 50%;\n margin-left: -8;\n`;\n\n","import * as React from 'react';\nimport {\n Text,\n Linking,\n TouchableOpacity,\n} from 'react-native';\nimport styled from 'styled-components/native';\nimport { Ionicons } from '@expo/vector-icons';\nimport { path } from 'ramda';\nimport i18n from 'i18n';\n\nconst SelfPromotionBanner = ({ content, style, linkUrl = 'https://instarapp.page.link/invite' }) => {\n return (\n {\n const supported = await Linking.canOpenURL(linkUrl);\n if (supported) {\n await Linking.openURL(linkUrl);\n }\n }}\n >\n \n {i18n.t('ins_promo_text')}\n Ad sponsored\n \n );\n};\n\nexport default SelfPromotionBanner;\n\nconst Container = styled(TouchableOpacity)`\n width: 100%;\n height: 60;\n background-color: #c90586;\n padding-left: 10;\n flex-direction: row;\n align-items: center;\n`;\n\nconst ContentText = styled(Text)`\n color: #FFFFFF;\n font-size: 16;\n font-weight: bold;\n max-height: 100%;\n margin-left: 10;\n`;\n\nconst AdText = styled(Text)`\n color: ${path(['theme', 'primary', 'gray'])};\n position: absolute;\n top: 0;\n left: 6;\n font-size: 10;\n`;\n","import * as React from 'react';\nimport { Alert, Platform } from 'react-native';\n\nexport default ({ title, body, actions, onConfirm }) => {\n if (Platform.OS === 'web') {\n const confirm = window?.confirm(body);\n if (confirm) {\n onConfirm && onConfirm();\n }\n }\n return Alert.alert(title, body, actions);\n};","// @format\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { Image, TouchableOpacity } from 'react-native';\n\nconst CloseButton = ({ onPress }) => (\n \n \n \n);\n\nCloseButton.propTypes = {\n onPress: PropTypes.func,\n};\n\nexport default CloseButton;\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport _ from 'lodash';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Image, Text, ImageBackground, TouchableOpacity, View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { useNavigation } from '@react-navigation/native';\n\nimport { signInWithApple, SUPPORTED_LANG_OF_APPLE_BUTTON } from 'modules/LoginWithApple/index.js';\nimport CloseButton from 'components/Header/CloseButton';\nimport i18n from 'i18n';\n\n// Params for using sign in from apple directly(not firebase)\n// const params = {\n// client_id: 'com.bumbumapp.tikfans',\n// redirect_uri: 'https://f451-118-166-99-93.ngrok.io',\n// response_type: 'code id_token',\n// response_mode: 'fragment',\n// };\n// const searchParams = new URLSearchParams(params);\n\nconst queryLang =\n Object.values(SUPPORTED_LANG_OF_APPLE_BUTTON).indexOf(navigator.language.replace('-', '_')) === -1\n ? ''\n : `&locale=${navigator.language.replace('-', '_')}`;\n\nconst Container = styled(View)`\n flex: 1;\n background-color: ${path(['theme', 'primary', 'darkBlue2'])};\n align-items: center;\n`;\n\nconst StyledImageBackground = styled(ImageBackground)`\n width: 100%;\n height: 62%;\n margin-top: -20%;\n`;\n\nconst style = `\n color: #fff;\n text-align: center;\n`;\n\nconst Title = styled(Text)`\n ${style}\n font-size: 24px;\n font-weight: 800;\n margin-top: 18px;\n`;\n\nconst Content = styled(Text)`\n ${style}\n font-size: 16px;\n width: 80%;\n margin-top: 16px;\n`;\n\nconst SkipText = styled(Text)`\n ${style}\n textDecorationLine: underline;\n font-weight: 700;\n margin-top: 22px;\n`;\n\nconst AppleLoginButton = styled(TouchableOpacity)`\n width: 250px;\n align-items: center;\n margin-top: 44px;\n`;\n\nconst LeftWrapper = styled(View)`\n position: absolute;\n left: 10;\n top: 30;\n`;\n\nconst AppleLoginScreen = ({\n route,\n setAppleLoginModalStatus,\n loginType,\n nextRoute,\n}) => {\n const [isAppleButtonLoadError, setIsAppleButtonLoadError] = React.useState(false);\n const navigation = useNavigation();\n\n const type = route?.params?.type || loginType || 'default';\n\n const onPressClose = () => {\n setAppleLoginModalStatus && setAppleLoginModalStatus({ visible: false });\n if (nextRoute === 'Back') {\n navigation?.goBack();\n }\n if (!_.isEmpty(nextRoute)) {\n navigation.navigate(nextRoute);\n }\n };\n\n const goToNextScreen = () => {\n if (nextRoute === 'Back') {\n navigation?.goBack();\n }\n if (!_.isEmpty(nextRoute)) {\n navigation.navigate(nextRoute);\n }\n };\n\n const text =\n type === 'default'\n ? {\n title: i18n.t('login_with_apple_title_1'),\n content: i18n.t('login_with_apple_content_1'),\n skip: i18n.t('login_with_apple_skip_1'),\n }\n : {\n title: i18n.t('login_with_apple_title_2'),\n content: '',\n skip: i18n.t('login_with_apple_skip_2'),\n };\n\n return (\n \n \n \n \n \n {text.title}\n {text.content} \n {\n // Usage of sign in from apple directly(not firebase)\n // const url = `https://appleid.apple.com/auth/authorize?${searchParams}`;\n // const supported = await Linking.canOpenURL(url);\n // if (supported) {\n // Linking.openURL(url);\n // }\n signInWithApple();\n goToNextScreen();\n }}\n >\n setIsAppleButtonLoadError(true)}\n />\n \n {text.skip}\n \n );\n};\n\nexport default AppleLoginScreen;\n","import * as React from 'react';\nimport { View } from 'react-native';\nimport WebModal from 'modal-enhanced-react-native-web';\nimport styled from 'styled-components/native';\nimport { getMobileOperatingSystem } from 'utils/system';\n\nimport AppleLoginScreen from 'screens/AppleLoginScreen';\n\nconst os = getMobileOperatingSystem();\n\nconst Wrapper = styled(View)`\n flex: 1;\n margin: 35px;\n border-radius: 15;\n overflow: hidden;\n`;\n\nconst AppleLoginModal = ({\n appleLoginModalStatus = { visible: false, type: 'default' },\n setAppleLoginModalStatus\n}) => {\n const { visible, type = 'default', nextRoute = '' } = appleLoginModalStatus;\n if (os !== 'iOS') {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n};\n\nexport default AppleLoginModal;\n","import i18n from 'i18n';\nimport _ from 'lodash';\n\nconst insMasterBannerTitle = _.shuffle([\n i18n.t('login_slogan_2'),\n i18n.t('login_slogan_1'),\n i18n.t('login_slogan_3'),\n]);\n\nexport const BANNER_LIST = [\n // IG star config\n // {\n // iconSource: {\n // uri:\n // 'https://play-lh.googleusercontent.com/g1gfx1c01ASqBkWELk6DG_LFM6xiAPrN4IeFdOQfnvssqSGec9ydpUDc1_ewi6J4jQ=s360-rw',\n // },\n // linkUrl: 'http://onelink.to/uereen',\n // title: i18n.t('ins_promo_title'),\n // subtitle: i18n.t('ins_promo_subtitle'),\n // },\n // {\n // iconSource: {\n // uri:\n // 'https://play-lh.googleusercontent.com/tTnu7K0UQHnAKM_lNOse-ej4cmrdc1Pd9_69FvH0mzbH8Q4wIxkfiEo4fngvjCn1r4GL=s360-rw',\n // },\n // linkUrl: 'http://onelink.to/4kfcum',\n // title: insMasterBannerTitle[0],\n // subtitle: `Instagram ${i18n.t('purchase_promo_title_4')}`,\n // },\n // {\n // iconSource: {\n // uri:\n // 'https://play-lh.googleusercontent.com/2W2US9ORows_zhrDpuPYXwFIxmMGoDUFQ5zwPNX7C8gwZOpYnuGovBc5T1JLNJZRvb8=s180',\n // },\n // linkUrl: 'https://iscan.page.link/tsad',\n // title: i18n.t('iscan_promo_title'),\n // subtitle: i18n.t('iscan_promo_subtitle'),\n // },\n // {\n // iconSource: {\n // uri:\n // 'https://play-lh.googleusercontent.com/hFEJ1DTEtW77ak4mrNivgbVBuibv_4F4sDSTsjRJWSzkWxzb5wZTavetNPvnGMH2XFw=w480-h960',\n // },\n // linkUrl: 'https://tiksave.page.link/ad',\n // title: i18n.t('tiksave_promo_title'),\n // subtitle: i18n.t('tiksave_promo_subtitle'),\n // },\n // {\n // iconSource: {\n // uri:\n // 'https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/45/b2/00/45b200a5-47b7-1745-5732-a5ffb9db7faf/AppIcon-0-0-1x_U007emarketing-0-0-0-10-0-0-sRGB-0-0-0-GLES2_U002c0-512MB-85-220-0-0.png/460x0w.png',\n // },\n // linkUrl: 'http://onelink.to/be89ry',\n // title: '𝒮𝓅𝑒𝒸𝒾𝒶𝓁 𝒻𝑜𝓃𝓉𝓈 𝒻𝑜𝓇 𝐼𝓃𝓈𝓉𝒶𝑔𝓇𝒶𝓂',\n // subtitle: '𝔽𝕣𝕖𝕖 𝔽𝕠𝕟𝕥𝕤 𝔸𝕡𝕡',\n // },\n {\n iconSource: {\n uri:\n 'https://dashboard-assets.dappradar.com/document/17394/floorpricepredictionmarket-dapp-defi-ethereum-logo-166x166_0b9131e45980075558e7633adb1cd418.png',\n },\n linkUrl: 'https://floorprice.finance/',\n title: 'NFT Floor Price Prediction 🔥🔥',\n subtitle: 'Predict and win rewards (BAYC, CryptoPunks...)',\n },\n];\n\nexport const FULLSCREEN_LIST = [\n {\n iconSource: {\n uri:\n 'https://play-lh.googleusercontent.com/tTnu7K0UQHnAKM_lNOse-ej4cmrdc1Pd9_69FvH0mzbH8Q4wIxkfiEo4fngvjCn1r4GL=s360',\n },\n mediaSource:\n // 'https://player.vimeo.com/video/494025163?autoplay=1&muted=1&loop=1',\n 'https://www.dailymotion.com/embed/video/x7zfhsg?autoplay=1&mute=1&queue-enable=0',\n linkUrl: 'http://onelink.to/4yd2mx',\n title: 'Reports for Instagram',\n subtitle: 'Ins Master 🚀',\n },\n {\n iconSource: {\n uri:\n 'https://play-lh.googleusercontent.com/_IUCAuZzsIlTWL0DqvLgFpALKpKq25NV93zX5JbYsGpN2knE8rvtIk2dr6Kmh_wk03o=s360-rw',\n },\n mediaSource: 'https://www.dailymotion.com/embed/video/x81e4lq?autoplay=1&mute=1&queue-enable=0',\n linkUrl: 'http://onelink.to/msrvgm',\n title: i18n.t('promo_title_pv'),\n subtitle: i18n.t('promo_subtitle_pv'),\n },\n // {\n // iconSource: {\n // uri:\n // 'https://play-lh.googleusercontent.com/g1gfx1c01ASqBkWELk6DG_LFM6xiAPrN4IeFdOQfnvssqSGec9ydpUDc1_ewi6J4jQ=s360-rw',\n // },\n // mediaSource: 'https://www.dailymotion.com/embed/video/x81e4xc?autoplay=1&mute=1&queue-enable=0',\n // linkUrl: 'http://onelink.to/uereen',\n // title: i18n.t('ins_promo_title'),\n // subtitle: i18n.t('ins_promo_subtitle'),\n // },\n {\n iconSource: {\n uri:\n 'https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/45/b2/00/45b200a5-47b7-1745-5732-a5ffb9db7faf/AppIcon-0-0-1x_U007emarketing-0-0-0-10-0-0-sRGB-0-0-0-GLES2_U002c0-512MB-85-220-0-0.png/460x0w.png',\n },\n mediaSource: 'https://www.dailymotion.com/embed/video/x81e4fe?autoplay=1&mute=1&queue-enable=0',\n linkUrl: 'http://onelink.to/be89ry',\n title: '𝒮𝓅𝑒𝒸𝒾𝒶𝓁 𝒻𝑜𝓃𝓉𝓈 𝒻𝑜𝓇 𝐼𝓃𝓈𝓉𝒶𝑔𝓇𝒶𝓂',\n subtitle: '𝔽𝕣𝕖𝕖 𝔽𝕠𝕟𝕥𝕤 𝔸𝕡𝕡',\n },\n {\n iconSource: {\n uri:\n 'https://play-lh.googleusercontent.com/2W2US9ORows_zhrDpuPYXwFIxmMGoDUFQ5zwPNX7C8gwZOpYnuGovBc5T1JLNJZRvb8=s180',\n },\n mediaSource:\n 'https://www.dailymotion.com/embed/video/k69CZHXxeGfe84x8O6D?autoplay=1&mute=1&queue-enable=0',\n linkUrl: 'https://iscan.page.link/tsad',\n title: i18n.t('iscan_promo_title'),\n subtitle: i18n.t('iscan_promo_subtitle'),\n },\n];\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport _ from 'lodash';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Ionicons, FontAwesome } from '@expo/vector-icons';\nimport {\n View,\n Image,\n Dimensions,\n TouchableOpacity,\n Text,\n Linking,\n ActivityIndicator,\n RefreshControl,\n} from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport styled from 'styled-components/native';\n\nimport useAppState from 'hooks/useAppState';\nimport apis from 'apis';\nimport {\n getUserProfileInfoAction,\n checkFollowStatusAction,\n updateShowSuspiciousAlert,\n pressSkipAction,\n checkIsExistLinkedAppleIdInDb,\n updateShowLoginScreenCount,\n} from 'actions/userActions';\nimport PWAInstructionView from 'components/LoginScreen/PWAInstructionView';\n// import { AdBanner, showFullScreenAd } from 'components/Ads';\n// import { AdBanner, showADInterstitial } from 'components/Ads/FacebookAds';\nimport SelfPromotionBanner from 'components/Ads/SelfPromotionBanner';\n// import TSAdBanner from 'components/Ads/TSAdBanner';\n// import { TSAdBanner, TSAdFullScreen, useAdModal } from 'ts-ad-modules';\nimport DailyReward from 'components/DailyReward';\nimport Alert from 'components/Alert';\nimport AppleLoginModal from 'screens/AppleLoginModal';\nimport i18n from 'i18n';\nimport { BANNER_LIST, FULLSCREEN_LIST } from 'constants/TsadConfig';\n\n// const showSelfPromotionBanner = false;\nconst bannerConfig = _.shuffle(BANNER_LIST)[0];\n\nconst HomeScreen = ({ navigation }) => {\n const dispatch = useDispatch();\n const [orders, setOrders] = React.useState([]);\n const [displayedOrderCount, setDisplayedOrderCount] = React.useState(1);\n const [isLoading, setIsLoading] = React.useState(false);\n const [shouldLoadMore, setShouldLoadMore] = React.useState(true);\n const [refreshing, setRefreshing] = React.useState(false);\n const [wentToTikTok, setWentToTikTok] = React.useState(false);\n const [currentVideoInfo, setCurrentVideoInfo] = React.useState({});\n\n const [appleLoginModalStatus, setAppleLoginModalStatus] = React.useState({\n visible: false,\n type: 'default',\n });\n\n const authUser = useSelector(state => state.user);\n const showSuspiciousAlert = useSelector(state => state.user?.showSuspiciousAlert);\n const countryCode = authUser?.countryCode;\n const followingListObject = authUser?.followingList;\n\n const onRefresh = React.useCallback(() => {\n setRefreshing(true);\n dispatch(getUserProfileInfoAction({ username: authUser?.tiktok?.uniqueId })).finally(() =>\n setRefreshing(false),\n );\n setShouldLoadMore(true);\n }, [refreshing]);\n\n React.useEffect(() => {\n if (_.isEmpty(authUser?.tiktok?.uniqueId)) {\n navigation.navigate('Login');\n return;\n }\n if (!shouldLoadMore) {\n return;\n }\n setIsLoading(true);\n\n apis.firebase\n .getOrders({ followingListObject })\n .then(orders => {\n const updatedOrders = orders.filter(order => order.uniqueId !== authUser?.tiktok?.uniqueId);\n setOrders(updatedOrders);\n })\n .finally(() => {\n setIsLoading(false);\n setShouldLoadMore(false);\n });\n }, [shouldLoadMore, authUser?.tiktok?.uniqueId]);\n\n React.useEffect(() => {\n dispatch(getUserProfileInfoAction({ username: authUser?.tiktok?.uniqueId }));\n }, [authUser.uid, authUser?.tiktok?.uniqueId]);\n\n React.useEffect(() => {\n if (!_.isEmpty(authUser?.appleId) || authUser?.showLoginCount >= 2 || authUser?.hasPurchased) {\n setAppleLoginModalStatus({ visible: false });\n return;\n }\n\n if (\n (authUser?.showLoginCount < 1 && authUser?.stars >= 10) ||\n (authUser?.showLoginCount < 2 && authUser?.stars >= 20)\n ) {\n dispatch(updateShowLoginScreenCount());\n setAppleLoginModalStatus({ visible: true, type: 'default' });\n }\n }, [authUser?.stars, authUser?.appleId, authUser.hasPurchased]);\n\n React.useEffect(() => {\n const checkAppleId = async () => {\n if (authUser?.tiktok?.uniqueId) {\n dispatch(checkIsExistLinkedAppleIdInDb());\n }\n };\n if (!authUser?.appleId) checkAppleId();\n }, [authUser?.tiktok?.uniqueId]);\n\n // React.useEffect(() => {\n // if (!showSuspiciousAlert) {\n // return;\n // }\n // Alert({\n // title: `🚫${i18n.t('unfollow_alert_title')}`,\n // body: i18n.t('unfollow_alert_body'),\n // actions: [\n // {\n // text: 'OK',\n // onPress: () => {\n // dispatch(updateShowSuspiciousAlert(false));\n // },\n // },\n // ],\n // onConfirm: () => {\n // dispatch(updateShowSuspiciousAlert(false));\n // },\n // });\n // }, [showSuspiciousAlert]);\n\n const shuffleAdConfig = _.shuffle(FULLSCREEN_LIST)[0];\n // const { openAd, ...adConfig } = useAdModal(shuffleAdConfig);\n\n const order = orders?.[0] ?? {};\n const { id, type, avatar, uniqueId, nickName, orderId, webVideoUrl, coverImage, videoUrl } =\n order;\n const imgUrl = type === 'follower' ? avatar : coverImage?.length ? coverImage : avatar;\n const emptyAvatar = isLoading\n ? avatar\n : 'https://i.pinimg.com/474x/ae/8a/c2/ae8ac2fa217d23aadcc913989fcc34a2---page-empty-page.jpg';\n const isEmpty = !id;\n\n useAppState({\n onForeground: async () => {\n // console.log('onForeground');\n if (wentToTikTok) {\n setWentToTikTok(false);\n setIsLoading(true);\n try {\n await dispatch(\n checkFollowStatusAction({\n id,\n type,\n targetUniqueId: uniqueId,\n orderId,\n order,\n currentVideoInfo,\n }),\n );\n } catch (e) {\n if (__DEV__) {\n console.log('onForeground error', e);\n }\n } finally {\n setIsLoading(false);\n updateOrderItems({\n countryCode,\n orders,\n setOrders,\n setShouldLoadMore,\n displayedOrderCount,\n setDisplayedOrderCount,\n // openAd,\n });\n }\n }\n },\n onBackground: () => {\n // console.log('onBackground');\n },\n });\n\n React.useEffect(() => {\n const getVideoInfoFromLink = async () => {\n try {\n const { webVideoUrl } = order || {};\n const videoInfo = await apis.tiktok.getVideoInfoFromLink({ url: webVideoUrl });\n setCurrentVideoInfo(videoInfo);\n } catch (e) {\n if (__DEV__) {\n console.log('Home getVideoInfoFromLink error', e);\n }\n }\n };\n if (authUser?.tiktok?.openFavorite === false && order?.type !== 'follower') {\n getVideoInfoFromLink();\n }\n }, [order.id, authUser?.tiktok?.openFavorite]);\n\n return (\n \n \n }\n >\n {isLoading && }\n \n {isEmpty ? (\n setShouldLoadMore(true)} />\n ) : (\n <>\n {type === 'like' && {}} />}\n \n @{uniqueId || nickName}\n \n )}\n \n \n {\n updateOrderItems({\n countryCode,\n orders,\n setOrders,\n setShouldLoadMore,\n displayedOrderCount,\n setDisplayedOrderCount,\n // openAd,\n });\n dispatch(pressSkipAction());\n }}\n />\n {\n if (orders.length <= 0) {\n return;\n }\n onPressFollowButton({\n type,\n uniqueId,\n webVideoUrl,\n setWentToTikTok,\n });\n }}\n isFollowButton\n />\n \n {i18n.t('unfollow_warning')}\n \n {/* showSelfPromotionBanner && (\n \n )*/}\n \n \n {/* */}\n \n );\n};\n\nexport default HomeScreen;\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst Container = styled(View)`\n flex: 1;\n`;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n contentContainerStyle: {\n flex: 1,\n backgroundColor: 'white',\n alignItems: 'center',\n },\n})``;\n\nconst UserProfilePic = styled(Image)`\n width: 100%;\n height: 100%;\n border-radius: 18;\n`;\n\nconst UserProfilePicWrapper = styled(View)`\n width: ${screenWidth - 80};\n height: ${screenWidth - 80};\n border-radius: 18;\n max-width: 500;\n max-height: 500;\n background-color: ${path(['theme', 'primary', 'gray'])};\n`;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n background-color: rgba(0, 0, 0, 0.3);\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 99;\n`;\n\nconst IdText = styled(Text)`\n position: absolute;\n bottom: 16;\n left: 16;\n color: #ffffff;\n font-size: 20;\n font-weight: bold;\n line-height: 24;\n shadow-color: #4a4a4a;\n shadow-opacity: 1;\n shadow-offset: 0 0;\n`;\n\nconst FollowButtonText = styled(Text)`\n color: #ffffff;\n font-size: 18;\n font-weight: 900;\n line-height: 21;\n`;\n\nconst FollowTouchableOpacity = styled(TouchableOpacity)`\n width: ${screenWidth / 2 - 40};\n max-width: 180;\n height: 49;\n border-radius: 24;\n align-items: center;\n justify-content: center;\n background-color: ${props =>\n props.isSkipButton ? path(['theme', 'primary', 'gray']) : path(['theme', 'primary', 'purple'])};\n margin-left: ${props => (props.isSkipButton ? 0 : 22)};\n`;\n\nconst PlayButtonWrapper = styled(TouchableOpacity)`\n position: absolute;\n margin-left: -45;\n margin-top: -45;\n top: 50%;\n left: 50%;\n z-index: 90;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 45;\n`;\n\nconst PlayButton = ({ onPress }) => {\n return (\n \n \n \n );\n};\n\nconst FollowButtonTypeIcon = styled(Image)`\n width: 24;\n height: 24;\n margin-right: 5;\n`;\n\nconst FollowButton = ({ type, title, isFollowButton, ...props }) => {\n const rewardNumber = type === 'comment' ? 2 : 1;\n const iconSource =\n type === 'comment'\n ? require('assets/images/commentbn.png')\n : type === 'like'\n ? require('assets/images/likebn.png')\n : require('assets/images/followbn.png');\n return (\n \n {isFollowButton ? (\n \n {type === 'comment' ? (\n \n ) : (\n \n )}\n \n {`+${rewardNumber}`}\n \n \n \n ) : (\n {title}\n )}\n \n );\n};\n\nconst SkipButton = props => {\n return ;\n};\n\nconst ButtonWrapper = styled(View)`\n flex-direction: row;\n margin-top: 40;\n`;\n\nconst onPressFollowButton = ({ type, uniqueId, webVideoUrl, setWentToTikTok }) => {\n const link = type === 'follower' ? `https://www.tiktok.com/@${uniqueId}` : webVideoUrl;\n // const mobileUrl = `https://www.tiktok.com/@${uniqueId}`;\n Linking.canOpenURL(link)\n .then(supported => {\n if (supported) {\n Linking.openURL(link);\n setWentToTikTok(true);\n } else {\n console.log('not supported');\n // WebBrowser.openBrowserAsync(webUrl);\n }\n })\n .catch(err => {\n console.log('openURL error occurred', err);\n setWentToTikTok(false);\n });\n};\n\nconst updateOrderItems = ({\n countryCode,\n orders,\n setOrders,\n setShouldLoadMore,\n displayedOrderCount,\n setDisplayedOrderCount,\n // openAd,\n}) => {\n if (orders.length > 0) {\n const newOrders = orders.slice(1);\n setOrders(newOrders);\n if (newOrders.length < 1) {\n setShouldLoadMore(true);\n }\n setDisplayedOrderCount(displayedOrderCount + 1);\n // if (displayedOrderCount % 13 === 0) {\n // openAd();\n // }\n }\n};\n\nconst UnfollowWarningText = styled(Text)`\n color: ${path(['theme', 'primary', 'lightGray'])};\n font-size: 12;\n max-width: 70%;\n margin-top: 20;\n line-height: 15;\n`;\n\nconst RefreshButton = ({ onPress }) => {\n return (\n \n \n \n );\n};\n\nconst BacklinkText = styled(UnfollowWarningText)`\n margin-top: 10;\n /* color: transparent; */\n`;\n\nconst BacklinkButton = styled(Text)`\n margin-left: 10;\n font-weight: 600;\n`;\n","import { useEffect, useRef } from 'react';\nimport { AppState } from 'react-native';\n\nexport default function useAppState(settings) {\n const { onChange, onForeground, onBackground } = settings || {};\n const appState = useRef(AppState.currentState);\n\n useEffect(() => {\n const handleAppStateChange = (nextAppState) => {\n if (nextAppState === 'active' && appState.current.match(/inactive|background/)) {\n isValidFunction(onForeground) && onForeground();\n } else if (appState.current === 'active' && nextAppState.match(/inactive|background/)) {\n isValidFunction(onBackground) && onBackground();\n }\n appState.current = nextAppState;\n isValidFunction(onChange) && onChange(nextAppState);\n }\n AppState.addEventListener('change', handleAppStateChange);\n\n return () => AppState.removeEventListener('change', handleAppStateChange);\n }, [onChange, onForeground, onBackground, appState.current]);\n\n // settings validation\n function isValidFunction(func) {\n return func && typeof func === 'function';\n }\n return { appState };\n}\n","const tintColor = '#2f95dc';\n\nexport default {\n tintColor,\n tabIconDefault: '#ccc',\n tabIconSelected: tintColor,\n tabBar: '#fefefe',\n errorBackground: 'red',\n errorText: '#fff',\n warningBackground: '#EAEB5E',\n warningText: '#666804',\n noticeBackground: tintColor,\n noticeText: '#fff',\n primary: {\n purple: '#7A8BFF',\n gray: '#9B9B9B',\n lightGray: '#4A4A4A',\n lightBlue: '#EDF0F9',\n pink: '#C576C7',\n lightPink: '#F07AA3',\n blue: '#82ACFF',\n darkBlue: '#05112a',\n dark: '#030303',\n darkBlue2: '#0C0A2E',\n },\n};\n","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport { TouchableOpacity, Image, Text } from 'react-native';\nimport { useNavigation } from '@react-navigation/native';\nimport Colors from 'constants/Colors';\n\nconst StarsButton = () => {\n const user = useSelector(state => state.user);\n const stars = user.stars;\n const navigation = useNavigation();\n return (\n navigation.navigate('PurchaseStack')}\n >\n \n {stars}\n \n \n \n );\n};\n\nexport default StarsButton;","import * as React from 'react';\nimport { TouchableOpacity, Image } from 'react-native';\nimport { useNavigation } from '@react-navigation/native';\n\nconst QuestionButton = ({ destination = 'Tutorial' }) => {\n const navigation = useNavigation();\n return (\n navigation.navigate(destination)}\n >\n \n \n );\n};\n\nexport default QuestionButton;","import * as React from 'react';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport HomeScreen from 'screens/HomeScreen';\nimport StarsButton from 'components/Header/StarsButton';\nimport QuestionButton from 'components/Header/QuestionButton';\n\nconst Stack = createStackNavigator();\n\nconst HomeStack = () => {\n return (\n \n {\n return ({\n title: \"Get Stars\",\n headerLeft: () => ,\n headerRight: () => ,\n headerTitleAlign: 'center',\n });\n }}\n />\n \n );\n};\n\nexport default HomeStack;","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport { path } from 'ramda';\nimport { Ionicons } from '@expo/vector-icons';\nimport { Text, View, Dimensions, Image, Platform, TouchableOpacity } from 'react-native';\nimport styled from 'styled-components/native';\nimport { useNavigation } from '@react-navigation/native';\nimport { getMobileOperatingSystem } from 'utils/system';\nimport { signInWithApple, SUPPORTED_LANG_OF_APPLE_BUTTON } from 'modules/LoginWithApple/index.js';\nimport i18n from 'i18n';\n\nconst os = getMobileOperatingSystem();\n\nconst AppleLoginButton = styled(TouchableOpacity)`\n width: 250px;\n align-items: center;\n margin-vertical: 20px;\n`;\n\nconst AppleLoginText = styled(Text)`\n color: #fff;\n font-size: 16px;\n text-align: center;\n`;\n\nconst queryLang =\n Object.values(SUPPORTED_LANG_OF_APPLE_BUTTON).indexOf(navigator.language.replace('-', '_')) === -1\n ? ''\n : `&locale=${navigator.language.replace('-', '_')}`;\n\nconst ProfileCard = () => {\n const user = useSelector(state => state.user);\n const navigation = useNavigation();\n const [isAppleButtonLoadError, setIsAppleButtonLoadError] = React.useState(false);\n\n return (\n \n \n \n {Platform.OS === 'ios' && (\n \n {user?.tiktok?.signature}\n navigation.navigate('Bio')} />\n \n )}\n \n \n {Platform.OS === 'web' && !user?.appleId && os === 'iOS' ? (\n \n {i18n.t('login_with_apple_instruction')}\n {\n // const url = `https://appleid.apple.com/auth/authorize?${searchParams}`;\n // const supported = await Linking.canOpenURL(url);\n // if (supported) {\n // Linking.openURL(url);\n // }\n signInWithApple();\n }}\n >\n setIsAppleButtonLoadError(true)}\n />\n \n \n ) : (\n // \n <>\n \n \n \n )}\n \n \n );\n};\n\nexport default ProfileCard;\n\nconst { width: screenWidth } = Dimensions.get('window');\nconst ProfileCardWrapper = styled(View)`\n min-height: 149;\n width: 100%;\n background-color: ${path(['theme', 'primary', 'purple'])};\n padding: 30px;\n align-items: center;\n`;\n\nconst Avatar = styled(Image)`\n width: 70;\n height: 70;\n border-radius: 35;\n margin-bottom: 4;\n border-color: #ffffff;\n border-width: 2;\n background-color: ${props => path(['theme', 'primary', 'gray'])};\n`;\n\nconst ProfileCardText = styled(Text)`\n font-size: 16;\n color: #ffffff;\n margin-top: 4;\n font-weight: bold;\n`;\n\nconst ProfileCardBoldText = styled(ProfileCardText)`\n font-weight: 600;\n`;\n\nconst AvatarWrapper = ({ source, uniqueId }) => (\n \n \n @{uniqueId}\n \n);\n\nconst ProfileCardStarsItemWrapper = styled(View)`\n justify-content: center;\n align-items: center;\n /* margin-left: 30; */\n flex: 1;\n height: 69;\n`;\n\nconst ProfileCardStarsItem = ({ title, number, isStars }) => (\n \n {number}\n \n {title}\n {isStars && }\n \n \n);\n\nconst ProfileCardStatsWrapper = styled(View)`\n flex-direction: row;\n justify-content: center;\n background-color: ${path(['theme', 'primary', 'purple'])};\n shadow-color: #4a4a4a;\n shadow-opacity: 1;\n shadow-offset: 0 0;\n`;\n\nconst GenSignatureButtonWrapper = styled(TouchableOpacity)`\n width: 240;\n height: 41;\n border-radius: 8;\n border-width: 1.5;\n border-color: #ffffff;\n justify-content: center;\n align-items: center;\n margin-top: 20;\n`;\n\nconst GenSignatureButton = ({ onPress }) => {\n return (\n \n Get new bio\n \n );\n};\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport { isEmpty } from 'lodash';\nimport {\n View,\n TextInput,\n Image,\n Text,\n TouchableOpacity,\n ActivityIndicator,\n} from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { useNavigation } from '@react-navigation/native';\nimport styled from 'styled-components/native';\nimport { Entypo } from '@expo/vector-icons';\n\nimport { getVideoInfoFromLink } from 'apis/tiktok';\nimport Alert from 'components/Alert';\nimport Colors from 'constants/Colors';\nimport i18n from 'i18n';\n\nconst UploadVideoFromLink = () => {\n const [isLoading, setIsLoading] = React.useState(false);\n return (\n \n {isLoading && }\n \n \n {i18n.t('upload_video_step_1')}\n \n \n \n {i18n.t('upload_video_step_2')}\n \n \n \n );\n};\n\nexport default UploadVideoFromLink;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: '#FFFFFF',\n width: '100%',\n contentContainerStyle: {\n backgroundColor: '#FFFFFF',\n alignItems: 'flex-start',\n width: '100%',\n maxWidth: 500,\n padding: 16,\n alignSelf: 'center',\n },\n})``;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 99;\n`;\n\nconst VideoLinkAreaWrapper = styled(View)`\n margin-top: 15;\n width: 100%;\n margin-bottom: 20;\n`;\n\nconst VideoLinkTitle = styled(Text)`\n font-size: 16;\n font-weight: bold;\n margin-bottom: 12;\n margin-left: 4;\n`;\n\nconst VideoLinkArea = ({ isLoading, setIsLoading }) => {\n const navigation = useNavigation();\n const [url, setUrl] = React.useState('');\n const onPress = async ({ url }) => {\n console.log('url', url.length);\n if (url?.length <= 0 || isLoading) {\n return;\n }\n setIsLoading(true);\n const item = await getVideoInfoFromLink({ url });\n setIsLoading(false);\n if (isEmpty(item)) {\n Alert({\n title: '⚠️',\n body: `⚠️ ${i18n.t('upload_video_alert')} `,\n actions: [{ text: 'OK', onPress: undefined }],\n });\n return;\n }\n navigation.navigate('RedeemLikesConfirm', { item });\n };\n return (\n \n {i18n.t('upload_video_link')}:\n setUrl(text)}\n autoCapitalize=\"none\"\n placeholder=\"https://vt.tiktok.com/AhYhKC/\"\n />\n onPress({ url })}>\n \n \n \n );\n};\n\nconst StyledTextInput = styled(TextInput)`\n width: 100%;\n height: 60;\n border-color: #000000;\n border-width: 1;\n align-self: center;\n border-radius: 5;\n padding-left: 20;\n padding-right: 20;\n font-size: 20;\n`;\n\nconst ConfirmButton = styled(TouchableOpacity)`\n width: 85%;\n height: 49;\n margin-top: 16;\n margin-bottom: 16;\n background-color: ${path(['theme', 'primary', 'purple'])};\n align-self: center;\n border-radius: 12;\n justify-content: center;\n align-items: center;\n`;\n\nconst TutorialImage = styled(Image)`\n width: 100%;\n height: 209;\n`;\n\nconst ParaText = styled(Text)`\n font-size: 16;\n font-weight: 500;\n line-height: 19;\n margin-left: 14;\n max-width: 80%;\n`;\n\nconst ListNumber = ({ number }) => (\n \n {number}\n \n);\n\nconst Paragraph = ({ number, children }) => (\n \n \n {children}\n \n);\n","import * as React from 'react';\nimport {\n View,\n FlatList,\n Platform,\n TouchableOpacity,\n Image,\n RefreshControl,\n Text,\n ActivityIndicator,\n} from 'react-native';\nimport { AntDesign, FontAwesome } from '@expo/vector-icons';\nimport { path } from 'ramda';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport styled from 'styled-components/native';\n\nimport UploadVideoFromLink from 'components/RedeemScreen/UploadVideoFromLink';\nimport Colors from 'constants/Colors';\nimport i18n from 'i18n';\n\nconst LikesTab = ({ }) => {\n const dispatch = useDispatch();\n const ifFetchingUserTikTokVideos = useSelector(\n (state) => state?.user?.ifFetchingUserTikTokVideos\n );\n const [shouldReload, setShouldReload] = React.useState(false);\n const items = useSelector((state) => state?.user?.tiktok?.videos) ?? [];\n return (\n // \n \n {/* */}\n {/* \n Service will come back soon \n */}\n {Platform.OS === 'web' && ifFetchingUserTikTokVideos && (\n \n )}\n index.toString()}\n numColumns={3}\n renderItem={({ item }) => }\n ListHeaderComponent={\n {i18n.t('redeem_content')}\n }\n refreshControl={\n setShouldReload(true)}\n />\n }\n />\n \n );\n};\n\nexport default LikesTab;\n\nconst Container = styled(View)`\n flex: 1;\n background-color: ${path(['theme', 'primary', 'lightBlue'])};\n align-items: center;\n`;\n\nconst ListItemWrapper = styled(TouchableOpacity)`\n background-color: #FFFFFF;\n height: 184;\n width: 103;\n border-radius: 12;\n margin-top: 24;\n margin-left: 12;\n margin-right: 12;\n overflow: hidden;\n`;\n\nconst VideoPreview = styled(Image)`\n width: 103;\n height: 123;\n`;\n\nconst LikesNumberText = styled(Text)`\n color: #000000;\n margin-left: 8;\n margin-top: 8;\n`;\n\nconst ListItem = ({ item }) => {\n const navigation = useNavigation();\n const isEmpty = item && Object.keys(item)?.length === 0;\n return isEmpty ? (\n navigation.navigate('UploadVideoLink')}\n >\n \n \n ) : (\n {\n navigation.navigate('RedeemLikesConfirm', { item });\n }}\n >\n \n ❤ {item.diggCount}\n {item.commentCount >= 0 && item.commentCount}\n \n );\n};\n\nconst ListHeaderText = styled(Text)`\n color: #000000;\n font-size: 16;\n font-weight: bold;\n letter-spacing: 0.19;\n margin-top: 24;\n align-self: center;\n`;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 99;\n`;\n","import * as React from 'react';\nimport { Platform, View } from 'react-native';\nimport styled from 'styled-components/native';\nimport {\n AdMobBanner,\n AdMobInterstitial,\n AdMobRewarded,\n setTestDeviceIDAsync,\n} from 'expo-ads-admob';\n\n// import AdSense from 'react-adsense';\n\nconst unitIDs = __DEV__\n ? Platform.select({\n // DEV\n android: {\n banner: 'ca-app-pub-3940256099942544/6300978111',\n interstitial: 'ca-app-pub-3940256099942544/1033173712',\n rewarded: 'ca-app-pub-3940256099942544/5224354917',\n },\n ios: {},\n web: {\n banner: {\n client: 'ca-pub-2563903975834912',\n slot: '2454280209',\n },\n },\n })\n : Platform.select({\n // PROD\n android: {\n banner: 'ca-app-pub-2563903975834912/1900408174',\n interstitial: 'ca-app-pub-2563903975834912/4824038696',\n rewarded: 'ca-app-pub-2563903975834912/7358896216',\n },\n ios: {},\n });\n\nif (Platform.OS !== 'web') {\n setTestDeviceIDAsync('EMULATOR');\n AdMobRewarded.setAdUnitID(unitIDs.rewarded);\n AdMobInterstitial.setAdUnitID(unitIDs.interstitial);\n}\n\nconst AdSenseDevWrapper = styled(View)`\n flex: 1;\n flex-basis: 100%;\n display: flex;\n height: 60px;\n border: 1px solid red;\n bottom: 0;\n right: 0;\n left: 0;\n`;\n\nexport const AdBanner = ({ style }) => {\n return ();\n // if (Platform.OS === 'web') {\n // return __DEV__ ? (\n // \n // ) : (\n // \n // );\n // }\n // return (\n // console.log('AdBanner error', e)}\n // />\n // );\n};\n\nexport const showADRewarded = async () => {\n if (Platform.OS === 'web') {\n return;\n }\n await AdMobRewarded.requestAdAsync();\n await AdMobRewarded.showAdAsync();\n};\n\nexport const showADInterstitial = async () => {\n if (Platform.OS === 'web') {\n return;\n }\n await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true });\n await AdMobInterstitial.showAdAsync();\n};\n\nexport const showFullScreenAd = () => {\n if (Platform.OS === 'web') {\n return;\n }\n Math.random() < 0.5 ? showADInterstitial() : showADRewarded();\n};\n","import * as React from 'react';\nimport { View, TouchableOpacity } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst SegmentedControl = ({\n selectedTab,\n setSelectedTab,\n values,\n containerStyle = {}\n}) => {\n return (\n \n {\n values.map((value, idx) => (\n setSelectedTab(idx)}\n key={idx}\n isLast={idx === values.length - 1}\n >\n {value()}\n \n ))\n }\n \n );\n};\n\nexport default SegmentedControl;\n\nconst Container = styled(View)`\n width: 100%;\n max-width: 358;\n height: 49;\n margin-top: 12;\n border-radius: 12;\n border-color: #FFFFFF;\n border-width: 5;\n /* background-color: #000000; */\n justify-content: space-evenly;\n flex-direction: row;\n`;\n\nconst Tab = styled(TouchableOpacity)`\n border-right-color: #FFFFFF;\n border-right-width: ${props => props.isLast ? 0 : 5};\n background-color: ${props => props.isSelected ? '#FFFFFF' : 'transparent'};\n width: 50%;\n height: 100%;\n justify-content: center;\n align-items: center;\n`;\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport {\n Text,\n View,\n Linking,\n Image,\n Dimensions,\n AsyncStorage,\n TouchableOpacity,\n} from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport delay from 'delay';\nimport styled from 'styled-components/native';\n\nimport Colors from 'constants/Colors';\nimport { redeemStars } from 'actions/userActions';\nimport { showFullScreenAd } from 'components/Ads';\nimport Alert from 'components/Alert';\nimport SegmentedControl from 'components/RedeemScreen/SegmentedControl';\n\nconst getListContents = (countryCode = 'US', type = 'follower') => {\n const contents = [\n { amount: 5, stars: 10, bonusAmount: 20 },\n { amount: 10, stars: 20, bonusAmount: 30 },\n { amount: 15, stars: 30, bonusAmount: 35 },\n { amount: 20, stars: 40, bonusAmount: 60 },\n { amount: 25, stars: 50, bonusAmount: 90 },\n { amount: 37, stars: 75, bonusAmount: 110 },\n { amount: 50, stars: 100, bonusAmount: 130 },\n { amount: 75, stars: 150, bonusAmount: 160 },\n { amount: 100, stars: 200, bonusAmount: 200 },\n { amount: 200, stars: 400, bonusAmount: 400 },\n { amount: 300, stars: 600, bonusAmount: 600 },\n { amount: 400, stars: 800, bonusAmount: 800 },\n { amount: 500, stars: 1000, bonusAmount: 1000 },\n { amount: 1000, stars: 2000, bonusAmount: 2000 },\n { amount: 2000, stars: 4000, bonusAmount: 4000 },\n { amount: 3500, stars: 6000, bonusAmount: 7000 },\n ];\n\n const commentContents = [\n { amount: 5, stars: 20, bonusAmount: 20 },\n { amount: 10, stars: 40, bonusAmount: 30 },\n { amount: 15, stars: 60, bonusAmount: 35 },\n { amount: 20, stars: 80, bonusAmount: 60 },\n { amount: 25, stars: 100, bonusAmount: 90 },\n ];\n\n if (type === 'comment') {\n return commentContents;\n }\n return contents;\n};\n\nconst RedeemContentList = ({ type, selectedItem = {}, setIsLoading }) => {\n const countryCode = useSelector(state => state.user?.countryCode);\n const [selectedTab, setSelectedTab] = React.useState(0);\n const currentType = type === 'follower' ? 'follower' : selectedTab === 0 ? 'like' : 'comment';\n const listContents = getListContents(countryCode, currentType);\n\n return (\n \n {currentType !== 'follower' && (\n ,\n () => ,\n ]}\n />\n )}\n {listContents.map((content, index) => (\n \n ))}\n \n );\n};\n\nexport default RedeemContentList;\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst ListItemContainer = styled(View)`\n height: 60;\n width: ${screenWidth - 56};\n max-width: 358;\n background-color: #ffffff;\n margin-top: 20;\n border-radius: 12;\n justify-content: space-between;\n padding-left: 18;\n padding-right: 18;\n align-items: center;\n flex-direction: row;\n`;\n\nconst ItemNameText = styled(Text)`\n font-size: 18;\n font-weight: 700;\n letter-spacing: 0.21;\n line-height: 25;\n color: #000000;\n`;\n\nconst StarsNumberText = styled(ItemNameText)`\n color: ${props => path(['theme', 'primary', 'purple'])};\n`;\n\nconst ItemNameImage = styled(Image)`\n width: 24;\n height: 24;\n`;\n\nconst ItemName = ({ type, amount }) => {\n const ItemIcon = () => {\n if (type === 'follower') {\n return ;\n } else if (type === 'like') {\n return ;\n }\n return (\n \n {' '}\n \n \n );\n };\n\n return (\n // IS_REVIEWING\n // \n // Highlight for\n // {\" \"}\n // {amount}\n // {\" \"}\n // Days\n // \n \n +\n \n {amount}\n \n {/* {type} */}\n {ItemIcon()}\n \n );\n};\n\nconst ItemButtonWrapper = styled(TouchableOpacity)`\n width: 100;\n height: 32;\n border-radius: 8;\n background-color: ${props => path(['theme', 'primary', 'purple'])};\n justify-content: center;\n align-items: center;\n flex-direction: row;\n`;\n\nconst ItemButtonText = styled(Text)`\n color: #ffffff;\n font-size: 16;\n font-weight: 700;\n line-height: 19;\n margin-right: 5;\n`;\n\nconst ItemButton = ({ stars, onPress, disabled }) => (\n \n {`- ${stars}`}\n \n \n);\n\n// AsyncStorage.removeItem('@promotionCount');\n\nconst promotionAlert = async () => {\n try {\n const promotionCount = (await AsyncStorage.getItem('@promotionCount')) ?? 0;\n if (parseInt(promotionCount) > 1) {\n return;\n }\n\n const onConfirm = async () => {\n const url = 'instagram://media?id=2289232146745005007_32721043111';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n await Linking.openURL(url);\n }\n };\n\n await AsyncStorage.setItem('@promotionCount', JSON.stringify(parseInt(promotionCount) + 1));\n Alert({\n title: '🎁 FREE 100 stars giveaway',\n body: 'Check out TikFans Instagram, we send out 100 stars⭐ to 10 lucky winners everyday',\n actions: [\n {\n text: '🙅NO',\n onPress: undefined,\n },\n {\n text: '😍YES',\n onPress: () => onConfirm(),\n },\n ],\n onConfirm: () => onConfirm(),\n });\n } catch (error) {\n if (__DEV__) {\n console.log('promotionAlert', error);\n }\n }\n};\n\nconst ListItem = ({ type, selectedItem, content, setIsLoading }) => {\n const dispatch = useDispatch();\n const [disableRedeem, setDisabledRedeem] = React.useState(false);\n const currentStars = useSelector(state => state.user?.stars ?? 0);\n const uniqueId = useSelector(state => state.user?.tiktok?.uniqueId);\n const isSecret = useSelector(state => state.user?.tiktok?.isSecret);\n const hasPurchased = useSelector(state => state.user?.hasPurchased);\n const countryCode = useSelector(state => state.user?.countryCode);\n const navigation = useNavigation();\n const onPress = React.useCallback(() => {\n const onConfirm = async () => {\n setIsLoading(true);\n setDisabledRedeem(true);\n const orderCount = hasPurchased ? content.bonusAmount : content.amount;\n const adjustedOrderCount = countryCode === 'IN' ? Math.floor(orderCount * 0.9) : orderCount;\n if (adjustedOrderCount <= 0) {\n setIsLoading(false);\n setDisabledRedeem(false);\n return;\n }\n\n const isSuccessful = await dispatch(\n redeemStars({ type, selectedItem, stars: content.stars, orderCount: adjustedOrderCount }),\n );\n setIsLoading(false);\n setDisabledRedeem(false);\n if (isSuccessful) {\n Alert({\n title: '💜Success💜',\n body: 'Congrats🎉, it usually takes couple minutes to hours. WARNING🚫: DO NOT TURN YOUR ACCOUNT TO \"PRIVATE\"',\n // IS_REVIEWING\n // body: '🎉🎉🎉🎉',\n actions: [\n {\n text: 'OK',\n onPress: async () => {\n if (!hasPurchased) {\n // showFullScreenAd();\n await delay(1800);\n // promotionAlert();\n }\n },\n },\n ],\n // onConfirm: () => promotionAlert(),\n });\n } else {\n Alert({\n title: 'Please Try Again :(',\n body: 'Something went wrong, please try again',\n actions: [{ text: 'OK', onPress: undefined }],\n });\n }\n };\n\n if (!uniqueId) {\n Alert({\n title: 'Please Login Again😢',\n body: 'Something went wrong ',\n actions: [\n {\n text: 'OK',\n onPress: () => {\n navigation.navigate('Login');\n },\n },\n ],\n onConfirm: () => navigation.navigate('Login'),\n });\n return;\n }\n\n if (isSecret) {\n Alert({\n title: 'Your account is private, Please set it to public to continue😢',\n actions: [{ text: 'OK', onPress: undefined }],\n });\n return;\n }\n\n if (currentStars >= content.stars && content.stars >= content.amount && content.amount > 0) {\n onConfirm();\n // Alert({\n // title: `Use ${content.stars} Stars?`,\n // body: `You will use ${content.stars} stars`,\n // // IS_REVIEWING\n // // body: 'Your profile and videos will show on home page',\n // actions: [\n // { text: 'Cancel', onPress: undefined },\n // { text: 'Confirm', onPress: onConfirm },\n // ],\n // onConfirm: () => onConfirm(),\n // })\n } else {\n Alert({\n title: `You don't have enough stars 😢`,\n body: 'Win more stars 💪💪💪',\n actions: [{ text: 'OK', onPress: undefined }],\n });\n }\n }, [currentStars, hasPurchased, type]);\n return (\n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport { View, ActivityIndicator } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport styled from 'styled-components/native';\nimport { useSelector, useDispatch } from 'react-redux';\nimport _ from 'lodash';\n\nimport Colors from 'constants/Colors';\nimport ProfileCard from 'components/ProfileCard';\nimport LikesTab from 'components/RedeemScreen/LikesTab';\nimport { getUserVideoListAction } from 'actions/userActions';\n\n// import { AdBanner } from 'components/Ads';\n// import TSAdBanner from 'components/Ads/TSAdBanner';\n// import { TSAdBanner } from 'ts-ad-modules';\nimport RedeemContentList from 'components/RedeemScreen/RedeemContentList';\nimport i18n from 'i18n';\nimport { BANNER_LIST } from 'constants/TsadConfig';\n\n// const showSelfPromotionBanner = false;\nconst bannerConfig = _.shuffle(BANNER_LIST)[0];\n\nconst RedeemScreen = ({ route }) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = React.useState(false);\n const user = useSelector(state => state.user);\n const ifFetchingUserTikTokVideos = user?.ifFetchingUserTikTokVideos;\n React.useEffect(() => {\n if (user?.tiktok?.uniqueId && route.name !== 'RedeemLikes') {\n dispatch(getUserVideoListAction());\n }\n }, [user?.tiktok?.uniqueId]);\n return (\n \n {isLoading && }\n {route?.name === 'Redeem' ? (\n \n \n {/* showSelfPromotionBanner && (\n \n )*/}\n \n \n ) : (\n \n )}\n \n );\n};\n\nexport default RedeemScreen;\n\nconst Container = styled(View)`\n flex: 1;\n background-color: ${path(['theme', 'primary', 'lightBlue'])};\n align-items: center;\n`;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: Colors.primary?.lightBlue,\n contentContainerStyle: {\n backgroundColor: Colors.primary?.lightBlue,\n alignItems: 'center',\n },\n})``;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 99;\n`;\n","import * as React from 'react';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nimport RedeemScreen from 'screens/RedeemScreen';\nimport StarsButton from 'components/Header/StarsButton';\nimport QuestionButton from 'components/Header/QuestionButton';\n\n\nconst Stack = createStackNavigator();\n\nconst RedeemStack = () => {\n return (\n \n {\n return ({\n title: \"\",\n headerLeft: () => ,\n headerRight: () => ,\n headerTitleAlign: 'center',\n });\n }}\n />\n \n );\n};\n\nexport default RedeemStack;","import * as React from 'react';\nimport {\n View,\n ScrollView,\n Image,\n TouchableOpacity,\n Text,\n ActivityIndicator,\n} from 'react-native';\nimport { path } from 'ramda';\nimport styled from 'styled-components/native';\nimport { FontAwesome } from '@expo/vector-icons';\n\nimport RedeemContentList from 'components/RedeemScreen/RedeemContentList';\nimport Colors from 'constants/Colors';\n\nconst RedeemLikesScreen = ({ route, navigation }) => {\n const { item } = route.params;\n const [isLoading, setIsLoading] = React.useState(false);\n return (\n \n {\n isLoading && \n }\n \n \n \n \n \n );\n};\n\nexport default RedeemLikesScreen;\n\nconst Container = styled(View)`\n flex: 1;\n background-color: ${path(['theme', 'primary', 'lightBlue'])};\n align-items: center;\n`;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: Colors.primary?.lightBlue,\n contentContainerStyle: {\n backgroundColor: Colors.primary?.lightBlue,\n alignItems: 'center',\n }\n})``;\n\n\nconst ListItemWrapper = styled(TouchableOpacity)`\n background-color: #ffffff;\n height: 184;\n width: 103;\n border-radius: 12;\n margin-top: 24;\n margin-left: 12;\n margin-right: 12;\n overflow: hidden;\n`;\n\nconst VideoPreview = styled(Image)`\n width: 103;\n height: 123;\n`;\n\nconst LikesNumberText = styled(Text)`\n color: #000000;\n margin-left: 8;\n margin-top:8;\n`;\n\nconst ListItem = ({ item }) => {\n return (\n { }}>\n \n ❤ {item?.diggCount}\n {item.commentCount >= 0 && item.commentCount}\n \n );\n};\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0; \n left: 0; \n bottom: 0; \n right: 0;\n z-index: 99;\n`;\n\n","import React from \"react\";\nimport {\n View,\n Text,\n} from \"react-native\";\nimport UploadVideoFromLink from 'components/RedeemScreen/UploadVideoFromLink';\n\nconst UploadVideoLinkScreen = (props) => (\n \n \n \n)\nexport default UploadVideoLinkScreen;\n","import * as React from 'react';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nimport RedeemScreen from 'screens/RedeemScreen';\nimport RedeemLikesScreen from 'screens/RedeemLikesScreen';\nimport UploadVideoLinkScreen from 'screens/UploadVideoLinkScreen';\nimport StarsButton from 'components/Header/StarsButton';\nimport QuestionButton from 'components/Header/QuestionButton';\n\n\nconst Stack = createStackNavigator();\n\nconst RedeemLikesStack = () => {\n return (\n \n {\n return ({\n title: \"\",\n headerLeft: () => ,\n headerRight: () => ,\n headerTitleAlign: 'center',\n });\n }}\n />\n {\n return ({\n title: \"\",\n headerRight: () => ,\n headerTitleAlign: 'center',\n });\n }}\n />\n {\n return ({\n title: \"\",\n headerRight: () => ,\n headerTitleAlign: 'center',\n });\n }}\n />\n\n \n );\n};\n\nexport default RedeemLikesStack;","// @format\nimport { useNavigation } from '@react-navigation/native';\nimport { purchaseItemAsync } from 'expo-in-app-purchases';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { path } from 'ramda';\nimport React, { useCallback } from 'react';\nimport {\n View,\n Text,\n Dimensions,\n TouchableOpacity,\n Image,\n Platform,\n} from 'react-native';\nimport styled from 'styled-components/native';\n\nimport Alert from 'components/Alert';\nimport * as slack from 'apis/slack';\nimport i18n from 'i18n';\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst ListItemContainer = styled(View)`\n height: 80;\n width: ${screenWidth - 56};\n max-width: 358;\n background-color: #ffffff;\n margin-top: 20;\n border-radius: 12;\n justify-content: space-between;\n padding-left: 18;\n padding-right: 18;\n align-items: center;\n flex-direction: row;\n`;\n\nconst ItemNameText = styled(Text)`\n font-size: 19;\n font-weight: 700;\n letter-spacing: 0.21;\n line-height: 25;\n color: #000000;\n`;\n\nconst DiscountLabelWrapper = styled(View)`\n height: 22.5;\n width: 80;\n background-color: ${path(['theme', 'primary', 'blue'])};\n position: absolute;\n top: 0;\n left: 20;\n justify-content: center;\n align-items: center;\n`;\n\nconst DiscountLabelText = styled(Text)`\n font-size: 13;\n font-weight: 800;\n color: #ffffff;\n`;\n\nconst DiscountLabel = ({ discount }) => (\n \n {`${discount}% OFF`}\n \n);\n\nDiscountLabel.propTypes = {\n discount: PropTypes.string,\n};\n\nconst ItemButtonWrapper = styled(TouchableOpacity)`\n width: 120;\n height: 40;\n border-radius: 8;\n background-color: ${(props) => path(['theme', 'primary', 'pink'])};\n justify-content: center;\n align-items: center;\n`;\n\nconst ItemButtonText = styled(Text)`\n color: #ffffff;\n font-size: 14;\n font-weight: 700;\n line-height: 19;\n`;\n\nconst ItemButton = ({ onPress, price, customText }) => (\n onPress()}>\n {customText ? customText : price}\n \n);\n\nItemButton.propTypes = {\n onPress: PropTypes.func,\n price: PropTypes.string,\n};\n\nconst StarsNumberText = styled(ItemNameText)`\n color: ${(props) => path(['theme', 'primary', 'lightPink'])};\n`;\n\nconst ItemName = ({ stars, promotion }) => (\n \n {promotion && (\n \n )}\n +{stars}\n \n {/* stars */}\n \n \n);\n\nconst FreeItemName = ({ stars }) => (\n \n +{stars}\n \n \n \n);\n\nconst FreeDiscountLabel = () => (\n \n {i18n.t('purchase_free')}\n \n);\n\nItemName.propTypes = {\n stars: PropTypes.number,\n};\n\nexport const FreePurchaseItem = ({ onPress }) => {\n return (\n \n \n \n \n \n );\n};\n\nconst SubscriptionText = styled(Text)`\n color: ${path(['theme', 'primary', 'lightGray'])};\n font-size: 13;\n font-weight: 900;\n`;\n\nconst StarPurchaseItem = ({ content = {}, onPress }) => {\n const price = content?.localPrice || content?.price;\n return (\n \n \n \n \n {content.isSubscription && (\n (Weekly Subscription)\n )}\n \n \n \n );\n};\n\nStarPurchaseItem.propTypes = {\n content: PropTypes.object,\n onPress: PropTypes.func,\n};\n\nexport default StarPurchaseItem;\n\nexport const WebStarPurchaseItem = (props) => {\n const navigation = useNavigation();\n const user = useSelector((state) => state.user);\n const applePay = useSelector((state) => state.payment?.applePay);\n const onPress = useCallback(() => {\n slack.tapWebPurchase({\n ...user,\n price: props?.content?.price,\n applePay: applePay?.canMakePaymentsWithActiveCard,\n });\n\n // if (applePay?.canMakePaymentsWithActiveCard) {\n // ApplePay.paymentRequest({\n // user,\n // content: props?.content,\n // onApplePayApprove: props?.onApplePayApprove,\n // setIsLoading: props?.setIsLoading,\n // });\n // return;\n // }\n navigation.navigate('SelectPayment', {\n content: props?.content,\n price: props?.content?.price,\n localPrice: props?.content?.localPrice,\n productId: props?.content?.productId,\n onPayPalCaptureApprove: props?.onPayPalCaptureApprove,\n onApplePayApprove: props?.onApplePayApprove,\n onTapPayCreditCardApprove: props?.onTapPayCreditCardApprove,\n });\n }, [props.content]);\n return ;\n};\n\nWebStarPurchaseItem.propTypes = {\n content: PropTypes.object,\n onPayPalCaptureApprove: PropTypes.func,\n};\n\nexport const StarPurchaseItemWithIAP = (props) => {\n const onPress = useCallback(async () => {\n props.setIsLoading(true);\n // TODO: Victor if the content productId would changed in list item,\n // should put the content as dependency\n const res = await purchaseItemAsync(props?.content?.productId).catch(\n (e) => {\n if (__DEV__) {\n console.log('purchaseItemAsync error: ', e);\n }\n }\n );\n props.setIsLoading(false);\n return;\n }, []);\n return ;\n};\n\nStarPurchaseItemWithIAP.propTypes = {\n setIsLoading: PropTypes.func,\n};\n","import React, { useCallback } from \"react\";\nimport {\n View,\n Text,\n Dimensions,\n TouchableOpacity,\n Image,\n} from \"react-native\";\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { path } from 'ramda';\nimport styled from 'styled-components/native';\nimport { useNavigation } from '@react-navigation/native';\n\nimport * as slack from 'apis/slack';\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst ListItemContainer = styled(View)`\n height: 80;\n width: ${screenWidth - 56};\n max-width: 358;\n background-color: #ffffff;\n margin-top: 20;\n border-radius: 12;\n justify-content: space-between;\n padding-left: 18;\n padding-right: 18;\n align-items: center;\n flex-direction: row;\n`;\n\nconst DiscountLabelWrapper = styled(View)`\n height: 22.5;\n width: 80;\n background-color: ${path(['theme', 'primary', 'blue'])};\n position: absolute;\n top: 0;\n left: 20;\n justify-content: center;\n align-items: center;\n`;\n\nconst DiscountLabelText = styled(Text)`\n font-size: 13;\n font-weight: 800;\n color: #ffffff;\n`;\n\nconst DiscountLabel = ({ discount }) => (\n \n {`${discount}% OFF`}\n \n);\n\nconst ItemNameText = styled(Text)`\n font-size: 19;\n font-weight: 700;\n letter-spacing: 0.21;\n line-height: 25;\n color: #000000;\n`;\n\nconst ItemNumberText = styled(ItemNameText)`\n color: ${(props) => path(['theme', 'primary', 'lightPink'])};\n`;\n\nconst ItemButtonWrapper = styled(TouchableOpacity)`\n width: 120;\n height: 40;\n border-radius: 8;\n background-color: ${(props) => path(['theme', 'primary', 'pink'])};\n justify-content: center;\n align-items: center;\n`;\n\nconst ItemButtonText = styled(Text)`\n color: #ffffff;\n font-size: 14;\n font-weight: 700;\n line-height: 19;\n`;\n\nconst ItemButton = ({ onPress, price, customText }) => (\n onPress()}>\n {customText ? customText : price}\n \n);\n\nItemButton.propTypes = {\n onPress: PropTypes.func,\n price: PropTypes.string,\n};\n\nconst ItemName = ({ itemNumber, promotion, type }) => (\n \n {promotion && (\n \n )}\n +{itemNumber}\n \n \n \n);\n\n\nexport const DirectPurchaseItem = (props) => {\n const { content, type = 'follower', onPress = () => { } } = props;\n const price = content?.localPrice || content?.price;\n return (\n \n \n \n \n \n );\n};\n\nexport const WebDirectPurchaseItem = props => {\n const navigation = useNavigation();\n const user = useSelector((state) => state.user);\n const applePay = useSelector((state) => state.payment?.applePay);\n const onPress = useCallback(() => {\n slack.tapWebPurchase({\n ...user,\n price: props?.content?.price,\n applePay: applePay?.canMakePaymentsWithActiveCard,\n });\n\n // if (applePay?.canMakePaymentsWithActiveCard) {\n // ApplePay.paymentRequest({\n // user,\n // content: props?.content,\n // onApplePayApprove: props?.onApplePayApprove,\n // setIsLoading: props?.setIsLoading,\n // });\n // return;\n // }\n navigation.navigate('SelectPayment', {\n content: props?.content,\n price: props?.content?.price,\n localPrice: props?.content?.localPrice,\n productId: props?.content?.productId,\n onPayPalCaptureApprove: props?.onPayPalCaptureApprove,\n onApplePayApprove: props?.onApplePayApprove,\n isDirectPurchase: true,\n type: props?.type,\n });\n }, [props]);\n return ;\n};\n","import React from 'react';\nimport { View, Platform } from 'react-native';\nimport { useDispatch } from 'react-redux';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport styled from 'styled-components/native';\n\nimport { IAP_PRODUCTS, getProductList } from 'constants/Products';\nimport { WebDirectPurchaseItem } from 'modules/payment/components/DirectPurchaseItem';\nimport SegmentedControlTab from 'components/RedeemScreen/SegmentedControlTab';\nimport Colors from 'constants/Colors';\nimport { directPurchaseAction } from 'actions/userActions';\nimport Alert from 'components/Alert';\n\nconst initialListContents = getProductList({ purchaseHistory: [] });\n\nconst PurchaseItem = Platform.select({\n web: WebDirectPurchaseItem,\n default: WebDirectPurchaseItem,\n});\n\nconst segmentTypeDict = {\n 0: 'follower',\n 1: 'like',\n};\n\nconst DirectPurchaseScreen = props => {\n const dispatch = useDispatch();\n const [listContents, setListContents] = React.useState(initialListContents);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [selectedType, setSelectedType] = React.useState('follower');\n\n const onTabPress = React.useCallback(\n index => {\n const type = segmentTypeDict[index];\n setSelectedIndex(index);\n setSelectedType(type);\n },\n [selectedIndex],\n );\n\n return (\n \n {/* onTabPress(index)}\n style={{ alignSelf: 'center' }}\n /> */}\n \n {listContents.map(content => {\n return (\n {\n dispatch(directPurchaseAction({ stars, details }));\n Alert({\n title: '💜Success💜',\n body: '💜Success💜',\n // IS_REVIEWING\n // body: '🎉🎉🎉🎉',\n actions: [\n {\n text: 'OK',\n onPress: async () => {\n // if (!hasPurchased) {\n // // showFullScreenAd();\n // await delay(1800);\n // // promotionAlert();\n // }\n },\n },\n ],\n // onConfirm: () => promotionAlert(),\n });\n }}\n onApplePayApprove={({ stars }) => {\n dispatch(directPurchaseAction({ stars, isApplePay: true }));\n }}\n onTapPayCreditCardApprove={({ starts }) => {\n dispatch(purchaseStarsAction({ stars }));\n }}\n />\n );\n })}\n \n \n );\n};\n\nexport default DirectPurchaseScreen;\n\nconst Container = styled(View)`\n flex: 1;\n /* align-items: center; */\n`;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: Colors.primary?.lightBlue,\n width: 100,\n height: 100,\n contentContainerStyle: {\n backgroundColor: Colors.primary?.lightBlue,\n alignItems: 'center',\n },\n})``;\n","import * as React from 'react';\nimport SegmentedControlTab from \"react-native-segmented-control-tab\";\n\nimport Colors from 'constants/Colors';\n\nconst StyleSegmentedControlTab = ({ style, ...props }) => {\n return (\n \n );\n};\n\nexport default StyleSegmentedControlTab;\n","import * as React from \"react\";\nimport { path } from \"ramda\";\nimport _ from \"lodash\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n Platform,\n ActivityIndicator,\n Linking,\n Dimensions,\n View,\n} from \"react-native\";\nimport { ScrollView } from \"react-native-gesture-handler\";\nimport styled from \"styled-components/native\";\nimport * as InAppPurchases from \"expo-in-app-purchases\";\nimport * as StoreReview from \"expo-store-review\";\nimport useAppState from \"react-native-appstate-hook\";\n\nimport Colors from \"constants/Colors\";\nimport { IAP_PRODUCTS, getProductList } from \"constants/Products\";\nimport {\n purchaseStarsAction,\n purchaseErrorAction,\n rewardReviewAction,\n createTransactionRecordAction,\n newPayPalEventAction,\n slackLog,\n} from \"actions/userActions\";\nimport {\n syncPurchaseHistory,\n unprocessedPurchaseAction,\n unprocessedTransactionAction,\n checkStillUnprocessedPurchase,\n checkStillUnprocessedTransaction,\n} from \"actions/paymentActions\";\nimport { newPayPalEvent } from \"apis/slack\";\nimport {\n WebStarPurchaseItem,\n StarPurchaseItemWithIAP,\n FreePurchaseItem,\n} from \"modules/payment/components/StarPurchaseItem\";\nimport Alert from \"components/Alert\";\nimport DirectPurchaseScreen from \"screens/DirectPurchaseScreen\";\n\nconst { height: screenHeight } = Dimensions.get(\"window\");\n\nconst PurchaseItem = Platform.select({\n web: WebStarPurchaseItem,\n default: StarPurchaseItemWithIAP,\n});\n\n// const initialListContents = [\n// { stars: 700, productId: 'com.tikfans.www.10dollars.weekly', discount: '60', price: '$9.99', isSubscription: true },\n// { stars: 50, productId: 'com.tikfans.www.2dollars', discount: '0', price: '$1.99' },\n// // { stars: 75, productId: 'com.tikfans.www.3dollars', discount: '0', price: '$2.99' },\n// { stars: 150, productId: 'com.tikfans.www.5dollars', discount: '17', price: '$4.99' },\n// { stars: 350, productId: 'com.tikfans.www.10dollars', discount: '29', price: '$9.99' },\n// { stars: 750, productId: 'com.tikfans.www.20dollars', discount: '33', price: '$19.99', promotion: true },\n// { stars: 1000, productId: 'com.tikfans.www.25dollars', discount: '36', price: '$24.99' },\n// { stars: 2000, productId: 'com.tikfans.www.50dollars', discount: '40', price: '$48.99' },\n// { stars: 4000, productId: 'com.tikfans.www.80dollars', discount: '50', price: '$79.99' },\n// { stars: 6000, productId: 'com.tikfans.www.100dollars', discount: '60', price: '$99.99' },\n// ];\n\nconst initialListContents = getProductList({ purchaseHistory: [] });\n\nconst PurchaseScreen = ({ route, navigation }) => {\n const [listContents, setListContents] = React.useState(initialListContents);\n const [isLoading, setIsLoading] = React.useState(false);\n const [wentToReview, setWentToReview] = React.useState(false);\n const user = useSelector((state) => state.user);\n const { unprocessedPurchase, unprocessedTransaction } = useSelector(\n (state) => state.payment\n );\n const purchaseHistory = useSelector((state) => state?.payment?.history);\n const hasReviewed = user?.hasReviewed ?? false;\n const countryCode = user?.countryCode;\n const uniqueId = user?.tiktok?.uniqueId;\n const showDirectPurchaseScreen =\n countryCode === \"TW\" && uniqueId !== \"vvan989\";\n\n const dispatch = useDispatch();\n\n useAppState({\n onForeground: async () => {\n if (wentToReview) {\n dispatch(rewardReviewAction());\n setWentToReview(false);\n }\n },\n });\n\n // React.useEffect(() => {\n // if (showDirectPurchaseScreen) {\n // navigation.setOptions({\n // title: 'Products',\n // headerRight: null,\n // });\n // }\n // }, [showDirectPurchaseScreen]);\n\n const targetOrigin = __DEV__\n ? `http://localhost:19007`\n : \"https://www.monido.co\";\n\n // const receiveMessage = async event => {\n // event.preventDefault();\n // const data = event.data;\n\n // if (event.origin !== targetOrigin) {\n // if (__DEV__) {\n // // console.log('event.origin !== targetOrigin', event.origin);\n // // console.log('event.data', event.data);\n // }\n // return;\n // }\n\n // if (data?.eventName === 'onPayPalEvent') {\n // if (data?.type === 'onApprove') {\n // const purchase = {\n // stars: data?.stars,\n // details: data?.message,\n // };\n // const transaction = {\n // paypal: {\n // details: data?.message,\n // price: data?.price,\n // productId: data?.productId,\n // },\n // };\n // dispatch(unprocessedPurchaseAction(purchase));\n // dispatch(unprocessedTransactionAction(transaction));\n // await dispatch(purchaseStarsAction(purchase));\n // await dispatch(createTransactionRecordAction(transaction));\n // if (window.dataLayer) {\n // window.dataLayer.push({\n // event: 'onPayPalCaptureApprove',\n // amount: path(['purchase_units', 0, 'payments', 'captures', 0, 'amount'])(data?.message),\n // transactionId: path(['purchase_units', 0, 'payments', 'captures', 0, 'id'])(\n // data?.message,\n // ),\n // productId: data?.productId,\n // });\n // }\n // }\n // dispatch(\n // newPayPalEventAction({\n // ...data,\n // postMessage: true,\n // }),\n // );\n // }\n // };\n\n // React.useEffect(() => {\n // window.addEventListener('message', receiveMessage, false);\n // return () => {\n // window.removeEventListener('message', receiveMessage);\n // };\n // }, [user?.tiktok?.uniqueId, window.dataLayer]);\n\n // React.useEffect(() => {\n // // console.log('unprocessedPurchase', unprocessedPurchase);\n // setTimeout(() => {\n // if (!_.isEmpty(unprocessedPurchase) && !dispatch(checkStillUnprocessedPurchase())) {\n // dispatch(purchaseStarsAction(unprocessedPurchase));\n // }\n // }, 5000);\n // }, [unprocessedPurchase, unprocessedTransaction]);\n\n // React.useEffect(() => {\n // // console.log('unprocessedTransaction', unprocessedTransaction);\n // setTimeout(() => {\n // if (!_.isEmpty(unprocessedTransaction) && !dispatch(checkStillUnprocessedTransaction())) {\n // dispatch(createTransactionRecordAction(unprocessedTransaction));\n // }\n // }, 5000);\n // }, [unprocessedTransaction]);\n\n // return ();\n\n return (\n \n {isLoading && (\n \n )}\n {listContents.map((content) => (\n {\n dispatch(purchaseStarsAction({ stars, details }));\n }}\n onApplePayApprove={({ stars }) => {\n dispatch(purchaseStarsAction({ stars, isApplePay: true }));\n }}\n onTapPayCreditCardApprove={({ stars }) => {\n dispatch(purchaseStarsAction({ stars }));\n }}\n />\n ))}\n {!hasReviewed && Platform.OS === \"web\" && (\n {\n const url =\n \"https://itunes.apple.com/app/id1511867825?action=write-review\";\n Alert({\n // title: 'Rate us 5 stars',\n body: \"If you like our product, pleas rate us 5 stars and write a positive comment❤️\",\n actions: [\n {\n text: \"OK\",\n onPress: async () => {\n setWentToReview(true);\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n }\n },\n },\n ],\n onConfirm: async () => {\n setWentToReview(true);\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n }\n },\n });\n }}\n />\n )}\n {/* {\n countryCode !== 'IN' && !hasReviewed && Platform.OS !== 'web' &&\n {\n Alert({\n title: 'Rate us 5 stars',\n body: 'Write a positive comment❤️, we will detect the comment then give you 10 free stars as reward',\n actions: [{\n text: 'OK', onPress: () => {\n setWentToReview(true);\n StoreReview.requestReview();\n }\n }],\n });\n }}\n />\n } */}\n \n );\n};\nexport default PurchaseScreen;\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: Colors.primary?.lightBlue,\n contentContainerStyle: {\n backgroundColor: Colors.primary?.lightBlue,\n alignItems: \"center\",\n },\n})``;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n top: ${screenHeight / 2.5};\n left: 0;\n right: 0;\n z-index: 99;\n`;\n","import * as React from \"react\";\nimport { createStackNavigator } from \"@react-navigation/stack\";\n\nimport PurchaseScreen from \"screens/PurchaseScreen\";\nimport StarsButton from \"components/Header/StarsButton\";\nimport QuestionButton from \"components/Header/QuestionButton\";\nimport i18n from \"i18n\";\n\nconst Stack = createStackNavigator();\n\nconst PurchaseStack = ({ route }) => {\n return (\n \n {\n return {\n title: i18n.t(\"purchase_title\"),\n // headerLeft: () => ,\n headerRight: () => ,\n headerTitleAlign: \"center\",\n };\n }}\n />\n \n );\n};\n\nexport default PurchaseStack;\n","// @format\nimport Constants from 'expo-constants';\nimport { path } from 'ramda';\nimport { View, Platform } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst Header = styled(View)`\n width: 100%;\n max-width: 500;\n height: ${\n Platform.select({\n android: 56,\n default: 44,\n }) + Constants.statusBarHeight\n };\n background-color: #FFFFFF;\n flex-direction: row;\n align-items: center;\n padding-left: 15;\n padding-right: 15;\n padding-top: ${Constants.statusBarHeight};\n background-color: #FFFFFF;\n /* background-color: ${path(['theme', 'primary', 'lightBlue'])} */\n`;\n\nexport default Header;\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport {\n Platform,\n View,\n Text,\n Image,\n TouchableOpacity,\n Modal as NativeModal,\n ActivityIndicator,\n Share\n} from 'react-native';\nimport { useSelector, useDispatch } from 'react-redux';\nimport styled from 'styled-components/native';\nimport WebModal from 'modal-enhanced-react-native-web';\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\nimport dedent from 'dedent';\nimport i18n from 'i18n';\n\nimport { createUserDbRecord } from 'actions/userActions';\n\nconst Modal = Platform.select({\n web: WebModal,\n default: NativeModal,\n});\n\nexport const onPressShare = (uniqueId) => {\n if (Platform.OS === 'web') {\n if (navigator.share) {\n navigator.share({\n title: `${i18n.t('share_message_1')} ${uniqueId} ${i18n.t('share_message_2')}`,\n text: `${i18n.t('share_message_1')} ${uniqueId} ${i18n.t('share_message_2')}`,\n url: 'https://tikfans.page.link/invite'\n })\n }\n } else {\n Share.share({\n message: `Try TikFans App: https://tikfans.page.link/invite. Use my Promo Code: ${uniqueId} to get FREE 20 Stars for TikTok followers and likes.`,\n })\n }\n};\n\nconst InviteModal = ({ visible, setIsInviteModalOpen }) => {\n const dispatch = useDispatch();\n const uniqueId = useSelector(state => state.user?.tiktok?.uniqueId);\n const hasUserDbRecord = useSelector(state => state.user?.hasUserDbRecord);\n const onPressInviteButton = async () => {\n if (!hasUserDbRecord) {\n dispatch(createUserDbRecord());\n }\n onPressShare(uniqueId);\n };\n\n return (\n \n \n \n \n \n \n {\n dedent`${i18n.t('invite_message_1')}\n ${i18n.t('invite_message_2')}`\n }\n \n \n {uniqueId}\n \n \n \n setIsInviteModalOpen(false)}\n >\n Cancel\n \n \n Invite\n \n \n \n \n \n \n );\n};\n\nexport default InviteModal;\n\nconst StyledTextInput = styled(TouchableOpacity)`\n width: 100%;\n height: 40;\n border-bottom-width: 1;\n border-color: ${path(['theme', 'primary', 'lightGray'])};\n margin-top: 10;\n padding-left: 10;\n padding-right: 10;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n`;\n\nconst CopyIcon = styled(Image)`\n width: 25;\n height: 26;\n`;\n\nconst InviteModalWrapper = styled(KeyboardAwareScrollView)`\n flex: 1;\n background-color: rgba(0, 0, 0, 0.3);\n`;\n\nconst InviteModalBody = styled(View)`\n width: 90%;\n height: 400;\n max-width: 370;\n background-color: #FFFF;\n border-radius: 24px;\n overflow: hidden;\n shadow-opacity: 0.65;\n shadow-radius: 5px;\n shadow-color: black;\n shadow-offset: 0px 0px;\n justify-content: center;\n`;\n\nconst InviteModalImage = styled(Image)`\n width: 66;\n height: 66;\n align-self: center;\n margin-bottom: 10;\n`;\n\nconst InviteModalBottomArea = styled(View)`\n width: 100%;\n height: 54%;\n padding: 22px;\n`;\n\nconst InviteModalBottomAreaInstruction = styled(Text)`\n font-size: 18;\n font-weight: 600;\n line-height: 20;\n color: ${path(['theme', 'primary', 'lightGray'])}\n`;\n\nconst ButtonsWrapper = styled(View)`\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n margin-top: 10;\n`;\n\nconst InviteModalButton = styled(TouchableOpacity)`\n width: 124;\n height: 49;\n border-radius: 24;\n margin-top: 16;\n justify-content: center;\n align-items: center;\n background-color: ${props => props.isCancel ? path(['theme', 'primary', 'gray']) : path(['theme', 'primary', 'purple'])}\n`;\n\nconst ButtonText = styled(Text)`\n font-size: 18;\n font-weight: bold;\n color: #FFFF;\n`;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0; \n left: 0; \n bottom: 0; \n right: 0;\n z-index: 99;\n`;\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport {\n Platform,\n View,\n Text,\n Image,\n TextInput,\n TouchableOpacity,\n Modal as NativeModal,\n ActivityIndicator,\n ScrollView,\n Share\n} from 'react-native';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport styled from 'styled-components/native';\nimport WebModal from 'modal-enhanced-react-native-web';\nimport { verifyPromoCodeAction } from 'actions/userActions';\nimport i18n from 'i18n';\n\nconst Modal = Platform.select({\n web: WebModal,\n default: NativeModal,\n});\n\nconst PromoCodeModal = ({\n visible,\n setIsPromoCodeModalOpen,\n}) => {\n const navigation = useNavigation();\n const dispatch = useDispatch();\n const uniqueId = useSelector(state => state.user?.tiktok?.uniqueId);\n const [hasCompleted, setHasCompleted] = React.useState(false);\n const [showActivityIndicator, setActivityIndicator] = React.useState(false);\n const [promoCode, setPromoCode] = React.useState('');\n const [isInvalidCode, setIsInvalidCode] = React.useState(false);\n\n const onPressConfirm = async (promoCode) => {\n try {\n setActivityIndicator(true);\n const isPromoCodeValid = await dispatch(verifyPromoCodeAction(promoCode));\n if (isPromoCodeValid) {\n setHasCompleted(true);\n } else {\n setIsInvalidCode(true);\n }\n setActivityIndicator(false);\n } catch (e) {\n setActivityIndicator(false);\n setIsInvalidCode(true);\n }\n };\n\n return (\n \n {\n showActivityIndicator && \n }\n \n {\n !hasCompleted ?\n \n \n \n \n {i18n.t('settings_promo_code')}\n \n setPromoCode(text.toLowerCase())}\n />\n {\n isInvalidCode &&\n Promo code is not valid\n }\n \n setIsPromoCodeModalOpen(false)}\n >\n Cancel\n \n onPressConfirm(promoCode)}\n >\n Confirm\n \n \n \n \n :\n \n
{i18n.t('redeem_promo_code_instruction_title')}
\n \n \n \n {i18n.t('redeem_promo_code_instruction')}\n \n \n \n {\n setIsPromoCodeModalOpen(false);\n navigation.navigate('HomeStack');\n }}\n >\n OK\n \n \n
\n }\n\n \n \n );\n};\n\nexport default PromoCodeModal;\n\nconst StyledTextInput = styled(TextInput)`\n width: 100%;\n height: 40;\n border-bottom-width: 1;\n border-color: ${path(['theme', 'primary', 'lightGray'])};\n margin-top: 10;\n padding-left: 3;\n padding-right: 3;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n`;\n\nconst PromoCodeModalWrapper = styled(ScrollView)`\n flex: 1;\n margin: 0px;\n background-color: rgba(0, 0, 0, 0.3);\n`;\n\nconst PromoCodeModalBody = styled(View)`\n width: 90%;\n height: 370;\n max-height: 370;\n max-width: 370;\n background-color: #FFFF;\n border-radius: 24px;\n overflow: hidden;\n shadow-opacity: 0.65;\n shadow-radius: 5px;\n shadow-color: black;\n shadow-offset: 0px 0px;\n justify-content: center;\n`;\n\nconst CompleteBody = styled(View)`\n width: 90%;\n height: 270;\n max-height: 270;\n max-width: 370;\n background-color: #FFFF;\n border-radius: 24px;\n overflow: hidden;\n shadow-opacity: 0.65;\n shadow-radius: 5px;\n shadow-color: black;\n shadow-offset: 0px 0px;\n justify-content: center;\n`;\n\nconst PromoCodeModalImage = styled(Image)`\n width: 66;\n height: 66;\n align-self: center;\n margin-bottom: 10;\n`;\n\nconst PromoCodeModalBottomArea = styled(View)`\n width: 100%;\n height: 54%;\n padding: 22px;\n`;\n\nconst PromoCodeModalBottomAreaInstruction = styled(Text)`\n font-size: 18;\n font-weight: 600;\n line-height: 20;\n color: ${path(['theme', 'primary', 'lightGray'])}\n`;\n\nconst ButtonsWrapper = styled(View)`\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n margin-top: 15;\n`;\n\nconst PromoCodeModalButton = styled(TouchableOpacity)`\n width: 124;\n height: 49;\n border-radius: 24;\n margin-top: 16;\n justify-content: center;\n align-items: center;\n background-color: ${props => props.isCancel ? path(['theme', 'primary', 'gray']) : path(['theme', 'primary', 'purple'])}\n`;\n\nconst ButtonText = styled(Text)`\n font-size: 18;\n font-weight: bold;\n color: #FFFF;\n`;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0; \n left: 0; \n bottom: 0; \n right: 0;\n z-index: 99;\n`;\n\nconst InvalidText = styled(Text)`\n color: #FF0000;\n`;\n\nconst Header = styled(Text)`\n font-size: 20;\n font-weight: bold;\n color: #000000;\n align-self: center;\n margin-bottom: 10;\n`;\n\n","import * as React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { path } from 'ramda';\nimport { shuffle } from 'lodash';\nimport { Text, View, Dimensions, TouchableOpacity, Linking, Platform, Modal } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport * as StoreReview from 'expo-store-review';\nimport Constants from 'expo-constants';\nimport styled from 'styled-components/native';\nimport * as MailComposer from 'expo-mail-composer';\nimport dedent from 'dedent';\nimport useAppState from 'react-native-appstate-hook';\nimport { WebView } from 'react-native-webview';\n\nimport Colors from 'constants/Colors';\nimport ProfileCard from 'components/ProfileCard';\nimport Alert from 'components/Alert';\nimport Header from 'components/Header/Header';\nimport CloseButton from 'components/Header/CloseButton';\nimport { rewardReviewAction, rewardFollowIgAction } from 'actions/userActions';\nimport { AdBanner } from 'components/Ads';\nimport InviteModal, { onPressShare } from 'components/SettingsScreen/InviteModal';\nimport PromoCodeModal from 'components/SettingsScreen/PromoCodeModal';\n// import TSAdBanner from 'components/Ads/TSAdBanner';\n// import { TSAdBanner } from 'ts-ad-modules';\nimport * as slack from 'apis/slack';\nimport i18n from 'i18n';\nimport { BANNER_LIST } from 'constants/TsadConfig';\nimport { getExpoBundleVersion } from 'utils/system';\n\nconst bannerConfig = shuffle(BANNER_LIST)[0];\n\nconst VersionText = styled(Text)`\n margin-top: 10px;\n color: ${path(['theme', 'primary', 'gray'])};\n`;\n\nconst onTapPromotion = async user => {\n slack.tapPromotion(user);\n const url = 'https://www.instagram.com/p/B_SkhNTpeck/?igshid=l9o20t74xxwz';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n await Linking.openURL(url);\n }\n};\n\nconst positiveReviews = [\n {\n author: 'Beatriz Segovia',\n url: 'https://play.google.com/store/apps/details?id=com.tikfans.www&hl=en_US&reviewId=gp%3AAOqpTOHWQFTbE622BXN0YnzZ7g04w-booQcSBPw76ldosKROHn-qoUrZoxTEWWPhC8EAsZJ7_K3Llu672BLHrKI',\n },\n];\n\nconst SettingsScreen = ({ navigation }) => {\n const dispatch = useDispatch();\n const user = useSelector(state => state.user);\n const [wentToReview, setWentToReview] = React.useState(false);\n const [isInviteModalOpen, setIsInviteModalOpen] = React.useState(false);\n const [isPromoCodeModalOpen, setIsPromoCodeModalOpen] = React.useState(false);\n const [isReviewModalVisible, setIsReviewModalVisible] = React.useState(false);\n const hasReviewed = user?.hasReviewed ?? false;\n const hasFollowedIg = user?.hasFollowedIg ?? false;\n const hasRedeemedPromoCode = user?.hasRedeemedPromoCode ?? false;\n const hasPurchased = user?.hasPurchased ?? false;\n const canRedeemPromoCode = user?.canRedeemPromoCode;\n const countryCode = user?.countryCode;\n const positiveReview = shuffle(positiveReviews)[0];\n const shouldLinkToReview = Math.random() < 0;\n const reviewTitle = shouldLinkToReview\n ? `👍 ${i18n.t('settings_review_title_upvote')}`\n : i18n.t('settings_review_title_rate');\n const reviewIntroText = shouldLinkToReview\n ? i18n.t('settings_review_text_upvote')\n : i18n.t('settings_review_text_rate');\n\n useAppState({\n onForeground: async () => {\n if (wentToReview) {\n dispatch(rewardReviewAction());\n setWentToReview(false);\n }\n },\n });\n\n return (\n \n \n {/* */}\n {/* */}\n {/* {\n {\n Alert({\n title: 'Share TikFans on Instagram 💜💜',\n body:\n 'Share our Instagram post to your story, every 2 viewers = 1 star ⭐, go check it out',\n actions: [\n {\n text: 'OK',\n onPress: () => {\n onTapPromotion(user);\n },\n },\n ],\n onConfirm: () => onTapPromotion(user),\n });\n }}\n />\n } */}\n {!(\n countryCode === 'IN' ||\n countryCode === 'PK' ||\n countryCode === 'VN' ||\n countryCode === 'IQ' ||\n countryCode === 'PH'\n ) && (\n {\n setIsInviteModalOpen(true);\n slack.tapPromotion(user);\n }}\n />\n )}\n {/* {!hasReviewed && Platform.OS === 'web' && Math.random < 0.20 && (\n {\n const url =\n 'https://itunes.apple.com/app/id1511867825?action=write-review';\n Alert({\n // title: 'Rate us 5 stars',\n body: i18n.t('settings_review_text_rate'),\n actions: [\n {\n text: 'OK',\n onPress: async () => {\n setWentToReview(true);\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n }\n },\n },\n ],\n onConfirm: async () => {\n setWentToReview(true);\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n }\n },\n });\n }}\n />\n )} */}\n {!hasFollowedIg && Math.random() < 0.01 && (\n {\n Alert({\n // title: reviewTitle,\n body: i18n.t('settings_review_follow_ig'),\n actions: [\n {\n text: 'OK',\n onPress: async () => {\n const url =\n Platform.OS === 'web'\n ? 'https://www.instagram.com/tikfans.app/'\n : 'instagram://user?username=tikfans.app';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n dispatch(rewardFollowIgAction());\n }\n },\n },\n ],\n onConfirm: async () => {\n const url =\n Platform.OS === 'web'\n ? 'https://www.instagram.com/tikfans.app/'\n : 'instagram://user?username=tikfans.app';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n dispatch(rewardFollowIgAction());\n }\n },\n });\n }}\n />\n )}\n {/* {\n Platform.OS === 'web' &&\n {\n const url = 'https://itunes.apple.com/app/id1497287140';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n Linking.openURL(url);\n }\n }}\n />\n } */}\n {!(\n countryCode === 'IN' ||\n countryCode === 'PK' ||\n countryCode === 'VN' ||\n countryCode === 'IQ' ||\n countryCode === 'PH'\n ) &&\n canRedeemPromoCode &&\n !hasRedeemedPromoCode && (\n {\n setIsPromoCodeModalOpen(true);\n }}\n />\n )}\n {\n onPressShare(user?.tiktok?.uniqueId);\n }}\n />\n {((countryCode !== 'IN' && countryCode !== 'NP') || hasPurchased) && (\n {\n const options = {\n recipients: ['ttapp.service@gmail.com'],\n subject: 'TikFans issue',\n body:\n '\\n\\n\\n\\n\\n\\n\\n' +\n dedent`\n ------ Don't delete infos below ------\n user: ${user?.uid}\n platform: ${user?.platform}\n country: ${user?.countryCode}\n uniqueId: ${user?.tiktok?.uniqueId}\n version: ${process.env?.APP_MANIFEST?.version || Constants.manifest.version}\n p: ${user?.hasPurchased}`,\n };\n MailComposer.composeAsync(options);\n }}\n />\n )}\n {/* {\n const url =\n Platform.OS === 'web'\n ? 'https://www.instagram.com/tikfans.app/'\n : 'instagram://user?username=tikfans.app';\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n await Linking.openURL(url);\n }\n }}\n /> */}\n {\n Linking.openURL('https://get-more-ttfans.webflow.io/terms-of-use-policy');\n }}\n />\n {!(\n user?.hasRedeemedIOSFirstLoginReward === true &&\n user?.hasRedeemedIOSFirstLoginRewardUsed === false\n ) && (\n {\n navigation.navigate('Login');\n }}\n />\n )}\n Current version: {getExpoBundleVersion()}\n \n \n {/* {\n Platform.OS !== 'web' &&\n \n \n \n \n {\n setIsReviewModalVisible(false);\n }}\n />\n \n {`Upvote 👍${positiveReview?.author}'s review`}\n \n \n \n \n } */}\n \n );\n};\n\nexport default SettingsScreen;\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nconst StyledScrollView = styled(ScrollView).attrs({\n flex: 1,\n backgroundColor: Colors.primary?.lightBlue,\n contentContainerStyle: {\n backgroundColor: Colors.primary?.lightBlue,\n alignItems: 'center',\n paddingBottom: 100,\n },\n})``;\n\nconst ListItemContainer = styled(TouchableOpacity)`\n height: 55;\n width: ${screenWidth - 56};\n max-width: 358;\n background-color: #ffffff;\n margin-top: 20;\n border-radius: 12;\n justify-content: space-between;\n padding-left: 18;\n padding-right: 18;\n align-items: center;\n flex-direction: row;\n`;\n\nconst ItemNameText = styled(Text)`\n font-size: 18;\n font-weight: 700;\n letter-spacing: 0.21;\n line-height: 25;\n color: ${props => props.color ?? path(['theme', 'primary', 'purple'])};\n`;\n\nconst ListItem = ({ title, onPress, color }) => {\n return (\n \n {title}\n \n );\n};\n\nconst StyledHeader = styled(Header)`\n justify-content: center;\n position: relative;\n background-color: transparent;\n align-items: center;\n /* max-width: none; */\n`;\n\nconst LeftWrapper = styled(View)`\n position: absolute;\n left: 10;\n top: 0;\n bottom: 0;\n justify-content: center;\n`;\n\nconst HeaderTitle = styled(Text)`\n font-size: 20;\n line-height: 24;\n /* color: ${path(['theme', 'primary', 'dark'])}; */\n color: #ffffff;\n font-weight: bold;\n letter-spacing: -0.48;\n max-width: 88%;\n`;\n","import * as React from 'react';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nimport SettingsScreen from 'screens/SettingsScreen';\nimport StarsButton from 'components/Header/StarsButton';\nimport QuestionButton from 'components/Header/QuestionButton';\nimport i18n from 'i18n';\n\nconst Stack = createStackNavigator();\n\nconst SettingsStack = () => {\n return (\n \n {\n return {\n title: i18n.t('settings'),\n headerLeft: null,\n headerRight: () => ,\n headerTitleAlign: 'center',\n };\n }}\n />\n \n );\n};\n\nexport default SettingsStack;\n","import { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { compose, path } from 'ramda';\nimport queryString from 'query-string';\nimport { isExist } from 'utils/ramdaUtils';\n\nconst useListenFromTapPay = () => {\n const isLogin = useSelector(compose(isExist, path(['user', 'tiktok', 'uniqueId'])));\n const uid = useSelector(path(['user', 'uid']));\n const { bank_transaction_id: bankTxId, rec_trade_id: recTradeId } = queryString.parse(\n window.location.search,\n );\n\n useEffect(() => {\n if ((bankTxId || recTradeId) && isLogin && uid) {\n window.close();\n }\n }, [bankTxId, recTradeId, isLogin, uid]);\n};\n\nexport default useListenFromTapPay;\n","import * as React from 'react';\nimport { createBottomTabNavigator } from '@react-navigation/bottom-tabs';\nimport TabBarIcon from 'components/TabBarIcon';\nimport HomeStack from 'navigation/HomeStackNavigator';\nimport RedeemStack from 'navigation/RedeemStackNavigator';\nimport RedeemLikesStack from 'navigation/RedeemLikesStackNavigator';\nimport PurchaseStack from 'navigation/PurchaseStackNavigator';\nimport SettingsStack from 'navigation/SettingsStackNavigator';\nimport useListenFromTapPay from 'modules/tappay/useListenFromTapPay';\n\nconst BottomTab = createBottomTabNavigator();\nconst INITIAL_ROUTE_NAME = 'HomeStack';\n\nexport default function BottomTabNavigator({ navigation, route }) {\n // Set the header title on the parent stack navigator depending on the\n // currently active tab. Learn more in the documentation:\n // https://reactnavigation.org/docs/en/screen-options-resolution.html\n // navigation.setOptions({ headerTitle: getHeaderTitle(route) });\n\n useListenFromTapPay();\n return (\n \n (\n \n ),\n }}\n />\n (\n \n ),\n }}\n />\n (\n \n ),\n }}\n />\n {\n return null;\n },\n tabBarIcon: props => (\n \n ),\n }}\n />\n (\n \n ),\n }}\n />\n \n );\n}\n\nfunction getHeaderTitle(route) {\n const routeName = route.state?.routes[route.state.index]?.name ?? INITIAL_ROUTE_NAME;\n\n switch (routeName) {\n case 'Home':\n return 'GET STARS';\n case 'Links':\n return 'Links to learn more';\n }\n}\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport {\n Platform,\n View,\n Text,\n Image,\n TextInput,\n TouchableOpacity,\n Modal as NativeModal,\n ActivityIndicator,\n} from 'react-native';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation } from '@react-navigation/native';\nimport styled from 'styled-components/native';\nimport WebModal from 'modal-enhanced-react-native-web';\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\nimport * as TikTokApi from 'apis/tiktok';\nimport { getUserProfileInfoAction } from 'actions/userActions';\nimport Alert from 'components/Alert';\n\nconst Modal = Platform.select({\n web: WebModal,\n default: NativeModal,\n});\n\nconst HelpModal = ({ visible, setIsHelpModalOpen }) => {\n const [shareUrl, setShareUrl] = React.useState('');\n const isFetchingUser = useSelector(state => state.user?.isFetchingUser);\n const dispatch = useDispatch();\n const navigation = useNavigation();\n\n const onPressContinueButton = async () => {\n const username = await TikTokApi.getUsernameFromShareLink(shareUrl);\n if (!username || username?.length === 0 || username === '__iamgjheiroumei__') {\n Alert({\n title: 'Username not found',\n body: `@${username} does not exist. Please confirm your username again.`,\n actions: [{ text: 'OK', onPress: undefined }],\n });\n return;\n }\n const userSuccessfullyFetched = await dispatch(getUserProfileInfoAction({ username, isLogin: true }));\n if (!userSuccessfullyFetched) {\n Alert({\n title: 'Username not found',\n body: `@${username} does not exist. Please confirm your username again.`,\n actions: [{ text: 'OK', onPress: undefined }],\n });\n return;\n }\n setIsHelpModalOpen(false);\n navigation.navigate('Tutorial');\n };\n\n return (\n \n {\n isFetchingUser && \n }\n \n \n \n \n {/* \n Go to TikTok app > Go to your Profile > Tap “…” icon on the top right > Tap “Share Profile” > Tap \"Copy Link\" => paste it below\n \n setShareUrl(text)}\n /> */}\n \n {/* setIsHelpModalOpen(false)}\n >\n Cancel\n */}\n {/* \n Continue\n */}\n setIsHelpModalOpen(false)}\n >\n OK\n \n \n \n \n \n \n );\n};\n\nexport default HelpModal;\n\nconst StyledTextInput = styled(TextInput)`\n width: 100%;\n height: 24;\n border-bottom-width: 0.5;\n margin-top: 20;\n font-size: 18;\n padding-left: 20;\n font-weight: bold;\n padding-bottom: 5;\n color: #000000;\n`;\n\nconst HelpModalWrapper = styled(KeyboardAwareScrollView)`\n flex: 1;\n /* justify-content: center; */\n /* align-items: center; */\n background-color: rgba(0, 0, 0, 0.3);\n`;\n\nconst HelpModalBody = styled(View)`\n width: 90%;\n height: 387;\n max-width: 370;\n background-color: #FFFF;\n border-radius: 24px;\n overflow: hidden;\n shadow-opacity: 0.65;\n shadow-radius: 5px;\n shadow-color: black;\n shadow-offset: 0px 0px;\n`;\n\nconst HelpModalImage = styled(Image)`\n width: 100%;\n height: 46%;\n background-color: #8765;\n`;\n\nconst HelpModalBottomArea = styled(View)`\n width: 100%;\n height: 54%;\n padding: 22px;\n`;\n\nconst HelpModalBottomAreaInstruction = styled(Text)`\n font-size: 14;\n font-weight: 500;\n line-height: 17;\n`;\n\nconst HelpButtonsWrapper = styled(View)`\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n margin-top: 10;\n`;\n\nconst HelpModalButton = styled(TouchableOpacity)`\n width: 124;\n height: 49;\n border-radius: 24;\n margin-top: 16;\n justify-content: center;\n align-items: center;\n background-color: ${props => props.isCancel ? path(['theme', 'primary', 'gray']) : path(['theme', 'primary', 'purple'])}\n`;\n\nconst ButtonText = styled(Text)`\n font-size: 18;\n font-weight: bold;\n color: #FFFF;\n`;\n\nconst StyledActivityIndicator = styled(ActivityIndicator)`\n position: absolute;\n margin: auto;\n top: 0; \n left: 0; \n bottom: 0; \n right: 0;\n z-index: 99;\n`;\n","import * as React from 'react';\nimport {\n View,\n Text,\n Image,\n Linking,\n Platform,\n TouchableOpacity,\n} from 'react-native';\nimport styled from 'styled-components/native';\nimport { path } from 'ramda';\nimport TextTicker from 'react-native-text-ticker'\n\nimport i18n from 'i18n';\n\n// TS = TouShih ad banner\nconst TSAdBanner = ({\n style = {},\n iconSource,\n title = 'Reports for Instagram',\n subtitle = 'Ins Master 🚀',\n linkUrl,\n}) => {\n return (\n {\n const supported = Linking.canOpenURL(linkUrl);\n if (Platform.OS === 'web') {\n window.open(linkUrl, '_blank');\n return;\n }\n if (supported) {\n Linking.openURL(linkUrl);\n }\n }}>\n \n \n \n Ad Sponsored\n \n );\n};\n\nexport default TSAdBanner;\n\nconst Container = styled(TouchableOpacity)`\n width: 100%;\n height: 66;\n border-radius: 12;\n background-color: ${path(['theme', 'primary', 'lightBlue'])};\n padding-left: 12;\n padding-right: 12;\n padding-top: 19;\n padding-bottom: 19;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst IconImage = styled(Image)`\n flex-shrink: 1;\n width: 49;\n height: 49;\n background-color: #000000;\n border-radius: 10;\n`;\n\nconst Title = styled(Text)`\n font-size: 14;\n`;\n\nconst SubTitle = styled(TextTicker)`\n font-weight: bold;\n font-size: 14;\n`;\n\nconst TextArea = ({ style = {}, title, subtitle }) => {\n return (\n \n {title}\n \n {subtitle}\n \n \n );\n};\n\nconst ActionButton = styled(Image)`\n flex-shrink: 1;\n width: 48;\n height: 48;\n border-radius: 24;\n background-color: #000000;\n`;\n\nconst AdText = styled(Text)`\n color: ${path(['theme', 'primary', 'gray'])};\n position: absolute;\n top: -1;\n right: 10;\n font-size: 7;\n`;\n\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport { Image, View, Text, TouchableOpacity, Platform } from 'react-native';\nimport { AntDesign } from '@expo/vector-icons';\nimport * as MailComposer from 'expo-mail-composer';\nimport dedent from 'dedent';\nimport styled from 'styled-components/native';\n\nimport TSAdBanner from 'components/Ads/TSAdBanner';\nimport i18n from 'i18n';\n\nconst ServiceDownScreen = () => {\n return (\n \n \n Service Maintenance\n We'll return shortly\n {/* */}\n \n \n \n );\n};\n\nexport default ServiceDownScreen;\n\nconst Container = styled(View)`\n flex: 1;\n background-color: ${path(['theme', 'primary', 'darkBlue'])};\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledImage = styled(Image)`\n width: 210;\n height: 210;\n`;\n\nconst Title = styled(Text)`\n font-size: 24;\n font-weight: 900;\n margin-top: 45;\n color: #FFFFFF;\n`;\n\nconst Subtitle = styled(Text)`\n font-size: 16;\n margin-top: 12;\n margin-bottom: 12;\n color: #FFFFFF;\n`;\n\nconst EmailIcon = () => {\n return (\n {\n const options = {\n recipients: ['ttapp.service@gmail.com'],\n subject: 'App issue',\n body:\n '\\n\\n\\n\\n\\n\\n\\n' +\n dedent`\n ------ Don't delete infos below ------\n platform: ${Platform.OS}\n version: ${process.env?.APP_MANIFEST?.version}`,\n };\n MailComposer.composeAsync(options);\n }}>\n \n \n );\n};\n","import * as React from 'react';\nimport { path } from 'ramda';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n View,\n Dimensions,\n Image,\n Text,\n TextInput,\n TouchableOpacity,\n ActivityIndicator,\n Keyboard,\n Platform,\n Linking,\n} from 'react-native';\nimport * as MailComposer from 'expo-mail-composer';\nimport { AntDesign } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport styled from 'styled-components/native';\nimport dedent from 'dedent';\n\nimport Colors from 'constants/Colors';\nimport {\n getUserProfileInfoAction,\n newTikTokLogin,\n resetTikTokUser,\n} from 'actions/userActions';\nimport HelpModal from 'components/LoginScreen/HelpModal';\nimport PWAInstructionView from 'components/LoginScreen/PWAInstructionView';\nimport Alert from 'components/Alert';\nimport AppleLoginModal from 'screens/AppleLoginModal';\nimport { AdBanner } from 'components/Ads';\nimport ServiceDownScreen from 'screens/ServiceDownScreen';\nimport i18n from 'i18n';\n\n// Usage of sign in from apple directly(not firebase)\n// const validateIdToken = async idToken => {\n// const keysResponse = await fetch('https://appleid.apple.com/auth/keys');\n// const keySet = await keysResponse.json();\n// const headerObj = KJUR.jws.JWS.readSafeJSONString(b64utoutf8(idToken.split('.')[0]));\n// const payloadObj = KJUR.jws.JWS.readSafeJSONString(b64utoutf8(idToken.split('.')[1]));\n// const key = keySet?.keys?.filter(key => key?.kid === headerObj?.kid)[0];\n// const pubkey = KEYUTIL.getKey(key);\n// const isValid = KJUR.jws.JWS.verifyJWT(idToken, pubkey, { alg: [headerObj.alg] });\n\n// if (isValid) {\n// const isFromApple = payloadObj?.iss === 'https://appleid.apple.com';\n// const isClientIdCorrect = payloadObj?.aud === 'com.bumbumapp.tikfans';\n// const isBeforeExpiration = payloadObj?.exp >= Date.now() / 1000;\n// return isFromApple && isClientIdCorrect && isBeforeExpiration ? payloadObj : false;\n// } else {\n// return false;\n// }\n// };\n\nconst LoginScreen = () => {\n const dispatch = useDispatch();\n const [isHelpModalOpen, setIsHelpModalOpen] = React.useState(false);\n const [username, setUsername] = React.useState('');\n const isFetchingUser = useSelector(state => state.user?.isFetchingUser);\n const user = useSelector(state => state.user);\n const [appleIdPayload, setAppleIdPayload] = React.useState();\n React.useEffect(() => {\n dispatch(resetTikTokUser());\n // Usage of sign in from apple directly(not firebase)\n // const checkIsLoginWithApple = async () => {\n // const url = await Linking.getInitialURL();\n // if (url.indexOf('id_token') !== -1) {\n // const idToken = url.slice(url.indexOf('id_token')).replace('id_token=', '');\n // const validatedIdToken = await validateIdToken(idToken);\n // setAppleIdPayload(validatedIdToken);\n // console.log('validatedIdToken', validatedIdToken);\n // }\n // };\n // checkIsLoginWithApple();\n }, []);\n\n return (\n \n {isFetchingUser && }\n \n \n \n \n {/*