{"version":3,"sources":["assets/icons/close.svg","assets/defaults/avatar-test.png","assets/defaults/profile-photo.png","assets/logotipos/logo.png","assets/icons/copy-blue.svg","assets/icons/arrow-blue-down.svg","assets/icons/arrow-blue-up.svg","assets/icons/no-register-icon.svg","assets/icons/copy.svg","assets/defaults/sphere-small.png","assets/banners/banner-prompt-ease.png","assets/defaults/sphere-large.png","assets/defaults/sphere-large-mob.png","assets/icons/cc-default.svg","assets/icons/facebook-icon.svg","assets/icons/twitter-icon.svg","assets/icons/whatsapp-circle-icon.svg","assets/defaults/gold1.svg","assets/defaults/silver2.svg","assets/defaults/bronze3.svg","assets/icons/check.svg","assets/icons/cc-visa-dark.svg","assets/icons/cc-mastercard-dark.svg","assets/icons/cc-discover-dark.svg","assets/icons/cc-amex-dark.svg","assets/icons/student-icon.svg","assets/icons/affiliate-icon.svg","assets/icons/franchise-purple-icon.svg","assets/icons/cc-visa.svg","assets/icons/cc-mastercard.svg","assets/icons/cc-discover.svg","assets/icons/cc-amex.svg","assets/icons/quote.svg","assets/icons/twitter-icon-blue.svg","assets/icons/facebook-icon-blue.svg","assets/icons/telegram-icon-blue.svg","assets/icons/instagram-icon-blue.svg","assets/icons/founder-icon.svg","assets/defaults/thumb-video-modal.png","assets/defaults/safe_secure.svg","assets/defaults/money_back.svg","assets/defaults/privacy_proteced.svg","assets/icons/search-icon.svg","assets/icons/notes.svg","assets/defaults/photo-profile.png","assets/icons/wallet.svg","assets/icons/play-icon.svg","assets/defaults/banner-leaderboard.svg","assets/defaults/banner-leaderboard-mobile-new.svg","assets/defaults/example-post.png","assets/defaults/bg-ai-connector.png","assets/icons/check-payment.svg","assets/icons/check-plus.svg","assets/icons/referrals-icon.svg","assets/logotipos/gift-card-logo.svg","assets/defaults/support-new.png","assets/icons/attention-icon.svg","assets/icons/arrows-double-right.svg","assets/defaults/bg-first-mobile-new.png","assets/defaults/vip-last.png","assets/animations/no-data-found.gif","assets/icons/delete.svg","assets/icons/dashboard-icon.svg","assets/icons/dashboard-icon-active.svg","assets/icons/courses-icon.svg","assets/icons/courses-icon-active.svg","assets/icons/profile-icon.svg","assets/icons/profile-icon-active.svg","assets/icons/resources-icon.svg","assets/icons/resources-icon-active.svg","assets/icons/wallet-icon.svg","assets/icons/wallet-icon-active.svg","assets/icons/my-referrals-icon.svg","assets/icons/my-referrals-icon-active.svg","assets/icons/social-media-icon.svg","assets/icons/social-media-icon-active.svg","assets/icons/notification-icon.svg","assets/icons/notification-icon-active.svg","assets/icons/trainings-icon.svg","assets/icons/trainings-icon-active.svg","assets/icons/traffic-icon.svg","assets/icons/traffics-icon-active.svg","assets/icons/leaderboard-icon.svg","assets/icons/leaderboard-icon-active.svg","assets/icons/log-out-icon.svg","assets/icons/log-out-icon-active.svg","assets/banners/sign-in-bg.png","assets/banners/sign-in-bg2.png","assets/banners/sign-in-bg3.png","assets/banners/sign-in-bg4.png","assets/logotipos/autoAffiliate-name.svg","assets/icons/twitter.svg","assets/icons/facebook.svg","assets/icons/telegram.svg","assets/icons/instagram.svg","assets/icons/success.svg","assets/icons/reveues-icon.svg","assets/icons/total-reveues-icon.svg","assets/icons/magnifier.svg","assets/icons/table-icon.svg","assets/logotipos/logo-profile.png","assets/icons/categories.svg","assets/icons/check-message.svg","assets/icons/calendar-wallet.svg","assets/icons/watch-wallet.svg","assets/icons/profile-photo.svg","assets/icons/check-offers.svg","assets/defaults/bg-masterclass.png","assets/defaults/bg-aa.png","assets/defaults/logoaa.png","assets/defaults/bg-vip.png","assets/defaults/bg-club.png","assets/defaults/bg-postease.png","assets/defaults/bg-profiti.png","assets/defaults/bg-chatgpt.png","assets/defaults/bg-promptease.png","assets/defaults/bg-pe-pro.png","assets/defaults/logo-postease.png","assets/defaults/master-test.svg","assets/defaults/visa-test.svg","assets/icons/add-card-icon.svg","assets/logotipos/binance-logo.png","assets/logotipos/binance-logo.svg","assets/logotipos/tether-logo.png","assets/logotipos/tether-logo.svg","assets/defaults/qr-code-tether.png","assets/defaults/img-example1.png","assets/logotipos/credit-card-logo.png","assets/defaults/gift-card.png","assets/logotipos/wiserr-white-logo.svg","assets/defaults/gift.png","assets/icons/nfc-icon.svg","assets/defaults/rocket.png","assets/defaults/facebook-group.png","assets/defaults/whatsapp-group.png","assets/defaults/zoom-group.png","assets/temp/video.png","assets/icons/play-module.svg","assets/icons/quiz-golden-icon.svg","assets/icons/whatsapp-icon.svg","assets/icons/mail-icon.svg","assets/icons/skype-icon.svg","assets/defaults/photo-coach.png","assets/icons/send.svg","assets/icons/locked.svg","assets/icons/btn-history-prompt-pro.svg","assets/icons/arrow-left-prompt-pro.svg","assets/icons/pro.svg","assets/icons/max-icon.svg","assets/icons/min-icon.svg","assets/defaults/affiliates-crowfunding.png","assets/defaults/affiliates-promotional-material.png","assets/defaults/affiliates-training.png","hooks/Language/languages sync /^/.//.*$","assets/defaults/bg-second-mobile.png","assets/icons/eua-flag.png","assets/icons/spain-flag.png","assets/icons/exclamation-icon.svg","assets/logotipos/wire.svg","services/api/index.ts","hooks/Auth.tsx","hooks/Intercom.tsx","pages/_Layouts/Auth/index.tsx","hooks/NextStep.tsx","hooks/Language/index.tsx","components/Info/styles.ts","pages/Lesson/Support/styles.ts","pages/Lesson/Support/index.tsx","components/Player/styles.ts","components/Player/index.tsx","components/Payment/styles.ts","utils/swalError.ts","components/CreditCard/styles.ts","components/RemoveCreditCard/styles.ts","components/RemoveCreditCard/index.tsx","components/CreditCard/index.tsx","utils/format.ts","components/Payment/index.tsx","components/Info/index.tsx","components/Header/styles.ts","components/Header/Notications/index.tsx","components/Header/index.tsx","pages/_Layouts/Default/styles.ts","pages/_Layouts/Default/index.tsx","routes/Route.tsx","pages/CheckLogin/index.tsx","utils/getValidationsErrors.ts","pages/SignIn/styles.ts","components/Input/styles.ts","components/Input/index.tsx","components/BannersTestimonials/styles.ts","components/BannersTestimonials/index.tsx","components/SocialBlueMobile/styles.ts","components/SocialBlueMobile/index.tsx","pages/SignIn/index.tsx","pages/AutoLogin/index.tsx","pages/Passcode/styles.ts","components/InputCode/styles.ts","components/InputCode/index.tsx","pages/Passcode/index.tsx","pages/ForgotPassword/styles.ts","utils/swalSuccess.ts","pages/ForgotPassword/index.tsx","pages/Home/styles.ts","pages/Home/index.tsx","pages/CommissionHistory/styles.ts","components/Table/styles.ts","components/InputDate/index.tsx","components/Table/index.tsx","pages/CommissionHistory/index.tsx","components/Categories/styles.ts","components/Categories/index.tsx","pages/Trainings/List/styles.ts","pages/Trainings/List/index.tsx","pages/Training/styles.ts","components/Notes/styles.ts","components/Notes/index.tsx","pages/Training/index.tsx","pages/MaterialPromocional/styles.ts","pages/MaterialPromocional/Swipe/styles.ts","pages/MaterialPromocional/Swipe/index.tsx","pages/MaterialPromocional/index.tsx","hooks/Chat/styles.ts","hooks/Chat/Chat/styles.ts","hooks/Chat/Chat/index.tsx","hooks/Chat/index.tsx","pages/Referrals/styles.ts","pages/Referrals/index.tsx","pages/Referrals/TeamView/styles.ts","pages/Referrals/TeamView/index.tsx","pages/Wallet/styles.ts","components/TransactionHistory/styles.ts","components/TransactionHistory/index.tsx","components/MyEarnings/styles.ts","components/MyEarnings/index.tsx","pages/Wallet/index.tsx","pages/Profile/styles.ts","pages/Profile/MyProfile/styles.ts","components/InputCheckbox/styles.ts","components/InputCheckbox/index.tsx","pages/Profile/MyProfile/index.tsx","pages/Profile/SubscriptionsCards/styles.ts","pages/Profile/SubscriptionsCards/index.tsx","pages/Profile/Subscriptions/styles.ts","utils/toast.ts","pages/Profile/Subscriptions/index.tsx","pages/Profile/MyOffers/styles.ts","pages/Profile/MyOffers/index.tsx","pages/Profile/Purchase/styles.ts","pages/Profile/Purchase/index.tsx","pages/Profile/Receipts/styles.ts","pages/Profile/Receipts/index.tsx","pages/Profile/PaymentOptions/styles.ts","components/TableData/styles.ts","components/TableData/index.tsx","components/AddCreditCard/styles.ts","components/AddCreditCard/index.tsx","pages/Profile/PaymentOptions/index.tsx","pages/Profile/PaymentPlans/styles.ts","components/GraphParcel/styles.ts","components/GraphParcel/index.tsx","components/BuyButton/styles.ts","components/BinancePay/styles.ts","components/BinancePay/index.tsx","components/Textarea/styles.ts","components/Textarea/index.tsx","components/TetherPay/styles.ts","components/TetherPay/index.tsx","components/CreditCardPay/styles.ts","components/CreditCardPay/index.tsx","components/GiftCardPay/styles.ts","components/InputMask/styles.ts","components/InputMask/index.tsx","components/Card/styles.ts","components/Card/index.tsx","components/GiftCardPay/index.tsx","components/BuyButton/index.tsx","pages/Profile/PaymentPlans/index.tsx","pages/Profile/Documents/styles.ts","pages/Profile/Documents/index.tsx","pages/Profile/index.tsx","pages/Waitlist/styles.ts","components/Copy/styles.ts","services/chatConnection/index.ts","components/Copy/index.tsx","pages/Waitlist/index.tsx","services/socket/index.ts","pages/Live/Vonage/styles.ts","pages/Live/Vonage/index.tsx","pages/Lesson/styles.ts","components/Modules/styles.ts","components/ButtonLesson/styles.ts","components/ButtonLesson/index.tsx","components/Modules/index.tsx","components/Quizzes/styles.ts","components/Quizzes/index.tsx","components/Alert/styles.ts","components/Alert/index.tsx","pages/Lesson/Actions/styles.ts","pages/Lesson/Actions/index.tsx","pages/Lesson/Notes/styles.ts","pages/Lesson/Notes/index.tsx","pages/Lesson/Credentials/styles.ts","pages/Lesson/Credentials/index.tsx","pages/Lesson/index.tsx","pages/Notifications/styles.ts","pages/Notifications/index.tsx","pages/PromptEasePro/styles.ts","services/aiConnectorApi/index.ts","components/Select/styles.ts","components/Select/index.tsx","pages/PromptEasePro/index.tsx","pages/PostEase/styles.ts","pages/PostEase/Carousel/styles.ts","pages/PostEase/PlayerPostEase/styles.ts","pages/PostEase/PlayerPostEase/index.tsx","pages/PostEase/Carousel/index.tsx","pages/PostEase/index.tsx","pages/Leaderboard/styles.ts","pages/Leaderboard/Today/styles.ts","pages/Leaderboard/Today/index.tsx","pages/Leaderboard/AllTime/styles.ts","pages/Leaderboard/AllTime/index.tsx","pages/Leaderboard/indes.tsx","routes/En.tsx","pages/PromptEase/styles.ts","pages/PromptEase/index.tsx","routes/Es.tsx","pages/Traffic/styles.ts","pages/Traffic/index.tsx","routes/Default.tsx","routes/index.tsx","styles/global.ts","hooks/Terms/styles.ts","hooks/Terms/index.tsx","hooks/index.tsx","App.tsx","index.tsx"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","api","axios","create","baseURL","process","AuthContext","createContext","AuthProvider","children","history","useHistory","useState","token","localStorage","getItem","user","defaults","headers","authorization","userData","JSON","parse","name","data","setData","walletPrice","setWalletPrice","walletHistory","setWalletHistory","giftCards","setGiftCards","undefined","credentials","setCredentials","signIn","useCallback","routeAccess","a","email","password","post","response","type","affiliate","affiliatesOffers","length","find","affiliateOffer","offer_id","setItem","stringify","push","autoLogin","tokenData","typeData","get","signInWithPass","user_id","signOut","cacheToken","removeItem","updateUser","setLogin","temp_pass","handleChangeWallet","value","formData","amount","put","wallet","Provider","useAuth","context","useContext","IntercomContext","IntercomProvider","setUserData","useEffect","created_at","Intercom","appID","useIntercom","AuthLayout","location","useLocation","window","scrollTo","NextStepContext","NextStepProvider","nextStep","setNextStep","useNextStep","LanguageContext","LanguageProvider","lang","pathname","substr","document","getElementsByTagName","idiom","setIdiom","handleSelectIdiom","idiomSelected","language","useMemo","require","useLanguage","Container","styled","footer","darken","Profile","div","BoxWelcome","BoxAiBot","Waitlist","AffiliateLink","AvatarWaitlist","props","src","Avatar","Social","CopyAlert","lighten","show","Modal","ModalComponent","support","Support","className","href","target","rel","VideoPlayer","video","Player","controls","autoplay","thumbnail","onPlay","onPause","onComplete","videoRef","useRef","handlePlayVideo","handlePauseVideo","handleCompleteVideo","fileType","split","sources","options","fluid","preload","html5","hls","enableLowInitialPlaylist","smoothQualityChange","overrideNative","current","videojs","on","data-vjs-player","ref","poster","playsInline","autoPlay","Loading","span","swalError","message","textButton","Swal","fire","title","html","frown","customClass","confirmButtonText","form","CreditCards","Button","button","RemoveCreditCard","card","onRemoveCard","setShow","handleClose","handleShow","handleRemove","delete","then","error_component","error_message","onClick","deleteIcon","alt","onHide","centered","size","Header","closeButton","Title","subscriptions_cards","h4_2","Body","p","button_5","button_6","Footer","CreditCard","onChangeCreditCardSelected","stripe","useStripe","elements","useElements","creditCards","setCreditCards","creditCardSelected","setCreditCardSelected","addNewCreditCard","setAddNewCreditCard","loading","setLoading","selectedCard","creditCard","brandIcon","brand","visa","mastercard","discover","amex","ccDefault","creditCardData","number","expirity","primary_card","handleSubmitPaymentMethod","preventDefault","createToken","getElement","CardElement","result","customer_id","last4","exp_month","exp_year","responseCreditCard","handleClick","handleDeleteCreditCard","newCreditCards","slice","patch","cards","filter","primaryCard","onSubmit","key","hidePostalCode","formatPrice","Intl","NumberFormat","style","currency","format","Payment","productName","btnText","onSuccessfullyPaid","productSlug","optionsData","step","setStep","setProductId","setOptions","optionsSecondary","setOptionsSecondary","optionSelected","setOptionSelected","totalPrice","setTotalPrice","setValue","useWallet","setUseWallet","discount","setDiscount","optionSelectedData","option","selected","secondary","console","log","totalData","optionData","price","reduce","total","handleClickConfirmPayment","optionsSelected","discountData","Promise","responses","forEach","index","responseProduct","payment_method","product_id","period","installments","interval","trial_period_days","responsesData","available_amount","parseFloat","toFixed","handleSelectProduct","newOptions","unSelectable","state","handleSelectSecondaryProduct","optionIndex","findIndex","handleChangeCardSelected","handleClickUseWallet","oldState","orderTotal","color","dangerouslySetInnerHTML","__html","toString","check","checkPlus","nameSummary","safe","money","privacy","Info","params","useParams","copied","setCopied","miniBox","setMiniBox","referrers","setReferrers","setLink","showPayment","setShowPayment","showPaymentVip","setShowPaymentVip","isAffiliate","setIsAffiliate","isVip","setIsVip","orderDate","setOrderDate","lessonCardBot","lessonsMiniBox","pageLessons","match","toLowerCase","includes","memoizedTargetDate","zonedTimeToUtc","calculateTimeRemaining","now","Date","difference","differenceInMilliseconds","days","hours","minutes","seconds","Math","floor","timeRemaining","setTimeRemaining","intervalId","setInterval","clearInterval","setTimeout","addDays","parseISO","catch","padStart","slugLesson","referrer","affiliate_id","url","link","copyUrl","el","createElement","referral_code","body","appendChild","select","execCommand","removeChild","handleShare","navigator","share","slug","handleSuccessfullyPaid","vipProduct","dataAux","order","showCardVip","nowUtc","compareDate","isBefore","attention","arrows","aiConnector","bgFirstMobile","bgLast","avatar","avatar_url","trim","founderIcon","copy","h2","p_1","twitter","facebook","telegram","instagram","role","aria-label","thumbModal","header","Menu","active","css","dashboard","resources","socialMedia","notification","courses","traffic","trainings","leaderboard","wallets","referrals","profile","logout","dashboardActive","coursesActive","trafficActive","trainingActive","leaderboardActive","resourcesActive","socialMediaActive","notificationActive","walletsActive","referralsActive","profileActive","logoutActive","Notications","notifications","setNotifications","langSymbol","handleLoadNotifications","notificationData","timeAgo","formatDistanceToNow","socket","io","reconnection","emit","roomID","to","animationData","loop","rendererSettings","preserveAspectRatio","width","setActive","logo","small_1","small_7","small_2","small_4","small_6_1","small_6_2","sessionStorage","small_9","Wrapper","HeaderSpacer","Separator","fullSize","noPadding","FooterSpacer","DefaultLayout","noFullSize","pagePromptEase","pagePostEase","Route","isPrivate","Component","component","rest","Layout","Default","Auth","render","CheckLogin","getValidationErros","errors","validationErrors","inner","error","path","appearFromLeft","keyframes","AnimationContainer","shade","isErrored","isFilled","isFocuses","Input","hasError","onFocus","onBlur","errorData","inputRef","setIsFocuses","setIsFilled","useField","fieldName","defaultValue","registerField","typeInput","setTypeInput","handleInputFocus","handleInputBlur","password_component","button_1","button_2","Background","signInBackgroung","signInBackgroung2","signInBackgroung3","signInBackgroung4","ButtonLeft","ButtonRight","PrevArrow","disabled","NextArrow","BannersTestimonials","settings","infinite","slidesToShow","centerPadding","autoplaySpeed","speed","touchMove","nextArrow","prevArrow","autoAffiliateName","sign_in","img_1","img_2","img_3","img_4","quote","SocialBlueMobile","SignIn","formCelphoneRef","formRef","celPhone","setCelPhone","setEmail","setPassword","celPhoneError","setCelPhoneError","loadingContinue","setLoadingContinue","handleSubmitCelphone","setErrors","schema","Yup","shape","celphone","when","is","celphoneData","required","otherwise","validate","abortEarly","handleSubmit","erro_1","erro_2","erro_3","handleClickContinue","submitForm","htmlFor","placeholder","country","onChange","masks","br","inputClass","containerClass","buttonClass","event","label_2","AutoLogin","search","replace","join","InputCode","codeRef","newValue","setNewValue","handleChange","initialValue","autoSelect","Passcode","setCode","codeError","setCodeError","userId","setUserId","resendMessage","setResendMessage","handleChangeCode","handleClickResendCode","resendSms","codeData","swalSuccess","success","ForgortPassword","formRefPassword","handleSubmitPassword","Welcome","Content","Search","Graph","Home","setWidth","newMembers","setNewMembers","newReferrals","setNewReferrals","totalReferrals","setTotalReferrals","percentReferral","setPercentReferral","months","setMonths","monthSales","setMonthSales","monthMembers","setMonthMembers","commissionsPercent","setCommissionsPercent","monthCommissions","setMonthCommissions","totalCommissions","setTotalCommissions","showMembers","setShowMembers","userName","updateSize","innerWidth","useLayoutEffect","addEventListener","removeEventListener","compare","b","currentDate","currentMonth","getMonth","currentYear","getFullYear","salesArr","monthsNames","membersArr","languageSelected","j","i","monthCalc","year","month","dataByMonth","orders","orderMonth","status","newReferralsData","differenceInDays","date","locale","userMonth","percentNewReferral","responseCommissions","dataCommissions","commission","commissionsMonth","acumulador","currentValue","earning","newCommissions","percentCommissions","sort","finally","series","label_1","chart","height","toolbar","selection","enabled","zoom","dataLabels","stroke","curve","xaxis","categories","tooltip","x","theme","colors","markers","strokeColors","fill","gradient","gradientToColors","shadeIntensity","opacityFrom","opacityTo","stops","grid","h1","h3_1","h3_2","input","searchIcon","member","p_2","reveues","totalReveues","NameUserTable","Skeleton","TableContent","showHeader","rowIsClickable","Pagination","NotFound","InputDate","dateFormat","isError","registerLocale","es","documentElement","showMonthDropdown","showYearDropdown","dropdownMode","Table","showTitle","columns","searchable","onSearch","initialDate","finalDate","onChangeStartDate","onChangeLastDate","exportable","pagination","quantity","onRowClicked","onChangeQuantity","startDate","setStartDate","lastDate","setLastDate","setTotalData","partialData","setPartialData","selectedPage","setSelectedPage","firstButton","setFirstButton","centerButton","setCenterButton","lastButton","setLastButton","customStyles","noData","backgroundColor","fontWeigth","fontSize","headRow","border","rows","headCells","activeSortStyle","outline","inactiveSortStyle","cells","contextMenu","action","hover","tableData","tableDataShow","newDataList","_","dataToExport","totalPages","ceil","onChangePage","page","handleChangeStartDate","handleChangeLastDate","table","magnifier","separator","filename","noDataComponent","p_2_1","p_2_2","Users","users","setUsers","firstLoading","setFirstLoading","setSearch","endDate","setEndDate","transactionDate","orderID","gain_origin","product","course","amountPaid","amount_paid","refund","commission_history","th_1","selector","sortable","th_2","th_3","cell","row","data-tag","th_4","th_5","th_6","handleSearch","handleChangeEndDate","Categories","setCategories","baseUrl","setBaseUrl","affiliates_categories","categoryIcon","activeClassName","exact","nav","category","Card","Link","TrainingList","searchValue","setSearchValue","setCategory","setTrainings","carousel","setCarousel","trainingCategory","training","description","thumbnail_url","affiliates_training","placeholder_1","dots","trainingCarrousel","textareaSelected","Notes","setTextareaSelected","textareaContent","setTextareaContent","handleFocus","handleBlur","notes","Course","setTraining","media_id","video_url","h3","ThumbnailLink","ThumbnailBlog","LinkCopy","Flag","Swipe","linkSelected","setLinkSelected","choiseShare","setChoiseShare","emails","setEmails","socials","setSocials","images","setImages","isPostEase","setIsPostEase","swipeFile","subject","subtitle","content","file","file_url","handleClickCopyTextArea","link_id","closest","querySelector","getSelection","removeAllRanges","banner","readOnly","social","username","social_media","small","FacebookShareButton","TwitterShareButton","WhatsappShareButton","whatsapp","image","SocialMedia","links","setLinks","articles","setArticles","banners","setBanners","showSalesFunnels","setShowSalesFunnels","codeSelected","setCodeSelected","bannerId","setBannerId","setTotalPages","currentPage","setCurrentPage","iframe","thumbnail_id","tag","handleLoadArticles","handleClickLoadMore","handleClickCopy","handleBtnSelected","handleBtnCodeSelected","handleChangeTag","newLinks","affiliates_promotional_material","viewBox","xmlns","d","strokeWidth","strokeLinecap","strokeLinejoin","clipPath","p_1_1","p_1_2","article","meta","articleFiles","Form","close","Chat","chatData","onClose","onMinimize","chatRef","chatClosed","setChatClosed","text","lottie","message01","message02","message03","message04","message05","message06","message07","message08","message09","message10","message11","message12","messages","setMessages","messageSelected","setMessageSelected","messageSent","setMessageSent","contentAux","messageData","handleClickName","handleClickMinimize","yup","chat_id","sendNotification","newMessages","messageIndex","reset","checkMessage","ChatContext","ChatProvider","chats","setChats","handleAddChat","chat","handleMinimize","minimize","newChats","chatIndex","addChat","Values","Referrals","useChat","normalReferrers","setNormalReferrers","qualified","progress","origin","joined","labelsStatus","responseCourse","responseModules","modules","responseLessons","lessons","nameParts","my_referrals","typeIcon","userIcon","maxModuleIndex","maxLessonIndex","lessonsUsers","moduleIndex","lessonIndexData","lesson","lessonIndex","lessonId","lessonUserData","lesson_id","franchise","originParts","isLead","foundersLeadsLead","owner","handleClickChat","sortReferrers","newReferrers","newStatus","labelStatus","referrerData","arrowUp","arrowDown","lead","substring","Others","TeamView","setReferrer","typeUser","setTypeUser","typeIconUser","setTypeIconUser","responseUser","qualifiedData","code_referrer","Option","Board","Price","withdraw","DeleteButton","TransactionHistory","updateData","setPage","walletsHistory","setWalletsHistory","walletHistoryData","giftCard","used","hash","handleClickDelete","giftCardId","dataWalletHistory","withdrawal","newGiftCards","pageSelected","ModalPayout","MyEarnings","showModal","setShowModal","showModalTax","setShowModalTax","allGains","setAllGains","availableWithdrawal","setAvailableWithdrawal","taxFee","setTaxFee","loadingWithdraw","setLoadingWithdraw","selectEarnings","setSelectEarnings","showComplete","setShowComplete","showSuccefully","setShowSuccefully","showFinalized","setShowFinalized","selectedTooltip","setSelectedTooltip","handleLoadAllGains","typeDate","gains","request_amount","handleClickWithdraw","handleClickConfirmWithdraw","handleClickBackToDashboard","handleSelectFilter","handleMouseEnter","tooltipSelected","handleMouseLeave","h5","button_3","button_4","onMouseEnter","onMouseLeave","payout","withdrawTax","Wallet","availableNextWeek","setAvailableNextWeek","outstanding","setOutstanding","watch","calendar","Options","CheckboxInput","label","InputCheckbox","newData","dataIndex","labelHtml","MyProfile","avatarData","setAvatarData","profilePhoto","setAvatar","changePassword","setChangePassword","email_notifications","emailNotification","setEmailNotification","sms_notifications","smsNotification","setSmsNotification","loadingUpdate","setLoadingUpdate","addressId","setAddressId","zipCodeData","setZipCode","countryData","setCountry","streetData","setStreet","numberData","setNumber","neighborhoodData","setNeighborhood","stateData","setState","cityData","setCity","complementData","setComplement","partName","setPartName","fullName","names","firstName","lastNameInitial","charAt","abbreviatedName","first","last","phone","address","zip_code","street","neighborhood","city","complement","files","URL","createObjectURL","handleClickChangePassword","handleChangeZipCode","handleChangeCountry","handleChangeStreet","handleChangeNumber","handleChangeNeighborhood","handleChangeState","handleChangeCity","handleChangeComplement","my_profile","erro_4","erro_5","confirm_password","oneOf","erro_7","old_password","erro_8","zipCode","dataZipCode","dataNumber","dataNeighborhood","dataCity","dataState","dataCountry","dataStreet","avatarFormData","FormData","append","responseAvatar","avatar_id","formDataAddress","assign","formAddressData","responseAddress","addressData","profileData","termUser","initialData","profilePhotoAdd","label_3","label_4","label_11","label_10","label_14","label_13","label_8","label_9","label_12","label_15","h3_3","label_16","label_17","label_18","SubscriptionsCards","formCreditCardRef","showDelete","setShowDelete","expiration","flag","handleShowDelete","handleSubmitCreditCard","cvc","numberMask","creditCardForm","newCreditCardsList","checked","h4_1","Toast","mixin","toast","position","showConfirmButton","timer","timerProgressBar","didOpen","stopTimer","resumeTimer","Subscriptions","setOrders","subscriptionSelected","setSubscriptionSelected","next_billing_date","addMonths","next_payment","expiration_date","subscription_price","started","handleClickChangePaymentMethod","handleChangeCreditCardSelected","icon","confirmButtonColor","showCancelButton","cancelButtonText","cancelButtonColor","reverseButtons","background","popup","iconColor","isConfirmed","orderData","payment_id","noRegister","BgCard","ModalCard","MyOffers","offers","setOffers","linkError","setLinkError","showError","setShowError","showCardProduct","setShowCardProduct","selectedProduct","setSelectedProduct","offerLink","setOfferLink","selIndex","setSelIndex","offerSelected","setOfferSelected","cardOffers","bgMasterclass","rightText","bgaa","bgVip","bgClub","bgPostease","bgProfiti","bgGpt","bgPromptease","bgPePro","offerData","handleLoadProducts","productsResponse","productsData","checkPurchased","affiliatesProducts","affiliateProduct","prices","priceA","priceB","by","old_link","offer","responseAffiliateOffer","offersData","getTime","referrer_code","newOffers","offerIndex","err","handleClickCardProduct","handleClickPurchaseOffer","handleClickHide","handleClickClearCache","todosCookies","Cookies","cookie","remove","clear","reload","idx","cardOffer","logoaa","logoPostease","cleanCache","Purchase","purchases","setPurchases","handleClickAccessCourse","open","purchase","no_register","Orders","Receipts","payment","handleClickQuestion","questionBox","classList","toggle","master","receipts","b_1","b_2","b_3","column","cellClassName","customCell","AddCreditCard","onCreatedCard","buy_component","addCard","add_credit_card_component","closeIcon","PaymentOptions","activeAddCard","setActiveAddCard","handleCreatedCard","handleChangePrimaryCard","primaryCardIndex","cardIndex","TableData","Box","Status","overdue","GraphParcel","installmentsData","percent","setPercent","percentData","installment","seriesAux","plotOptions","pie","startAngle","endAngle","donut","padding","bottom","left","right","borderColor","lineCap","legend","payment_plans","BinancePay","order_id","anticipated","onSucceededPaid","showBinance","setShowBinance","qrCodeLink","setQrCodeLink","handleBinanceClose","handleBinanceShow","orderId","qrcodeLink","binanceLogo","binanceSvg","frameBorder","allow","allowFullScreen","buy_product_button_binance","h4","span_1","span_2","Textarea","handleTextareaFocus","handleTextareaBlur","TetherPay","showTether","setShowTether","alreadyPaid","setAlreadyPaid","handleTetherClose","handleTetherShow","transaction_hash","all_right_message","verification_message","copyAddress","tetherLogo","buy_product_button","buy_product_button_tether","example","tetherSvg","qrCodeTether","stripePromise","loadStripe","REACT_APP_STRIPE_TOKEN","CreditCardPay","showCreditCard","setShowCreditCard","paymentMethods","setPaymentMethods","cardSelected","setCardSelected","showAdd","setShowAdd","processing","setProcessing","handleCreditCardClose","handleCreditCardShow","handleAddCardClose","handlePay","credit_card","confirmCardPayment","client_secret","paymentIntent","responseOrder","cardLogo","ModalGiftCard","GiftInput","MaskInput","kind","errorMessage","maskRef","onChangeText","presentedBy","giftValue","setGiftValue","giftActive","setGiftActive","numcharacters","newState","wiserr","nfc","gift","GiftCardPay","showGiftCard","setShowGiftCard","setPresentedBy","setErrorMessage","handleGiftCardClose","handleGiftCardShow","created_by","gift_required","error_message_axios","giftLogo","buy_product_button_gift_card","InputMask","mask","BuyButton","purchased","info","handleSucceededPaid","PaymentPlans","setInstallments","installmentSelectedData","setInstallmentsSelectedData","current_date","installmentSelected","credit_amount","paid","left_pay","due_day","due_month","due_year","all_paid","save","remaining_amount","payments","anticipated_amount","installmentsDatas","installmentData","descountData","due_date","updated_at","diffDay","day","status_1","status_2","status_3","status_4","status_5","getDate","getYear","current_installment","installmentsOrders","status_6","anticipatedOrder","installmentOrder","subInstallment","deleted_at","subInstallmentData","subOrders","subOrder","merchant_id","handleOnceSucceededPaid","h2_1","h2_2","h2_3","h2_4","h2_5","h2_6","h2_7","h2_8","walletIcon","modal_h2_1","modal_h2_2","modal_h3_1","modal_p_1","modal_p_2","modal_p_3","modal_p_4","modal_p_5","modal_button_1","modal_h3_2","modal_p_6","modal_p_7","modal_p_8","modal_button_2","Documents","optionMobile","setOptionMobile","langSelected","box","handleClickBox","Step","complete","StepLine","hr","session","publisher","publisherScreen","CopyButton","Copy","showConfeti","setShowConfeti","setChecked","setPosition","referralCode","setReferralCode","facebookCheck","setFacebookCheck","whatsappCheck","setWhatsappCheck","zoomCheck","setZoomCheck","waitlist_id","handleAnimationComplete","lastName","route","handleClickAccessDashboard","handleClickFacebook","handleClickWhatsapp","handleClickZoom","confeti","isStopped","eventListeners","eventName","callback","rocket","reconnectionDelay","handleError","dataUser","createVideo","element","roomContainer","getElementById","videoContainerElement","setAttribute","userID","host","videoContentElement","avatarContainer","backgroundImage","firstLetter","toUpperCase","pElement","innerText","nameContainer","insertBefore","firstChild","createScreenVideo","videoHost","removeVideo","videoContainer","removeScreenVideo","toggleCam","contains","transitionDuration","add","getCameras","videoInputs","videoInputsPromise","OT","getDevices","devices","device","getCurrentCamera","currentCameraPromise","getCameraLoop","attemp","cameras","videoSource","getVideoSource","camera","cameraData","deviceId","currentCamera","getMicrophones","audioInputs","audioInputsPromise","getCurrentMicrophone","currentMicrophonePromise","getMicrophoneLoop","microphones","microphoneSource","getAudioSource","microphone","microphoneData","currentMicrophone","getHeadsets","getAudioOutputDevices","getCurrentHeadset","getActiveAudioOutputDevice","disconnect","destroy","typingTimeout","LiveChat","Settings","MessagesArea","MiniAvatar","Typing","FormComponent","Live","vonageData","setVonageData","camStatus","setCamStatus","micStatus","setMicStatus","sharedScreen","setSharedScreen","vonageConnected","setVonageConnected","socketConnected","setSocketConnected","showSettings","setShowSettings","showChat","setShowChat","setCameras","cameraSelected","setCameraSelected","setMicrophones","microphoneSelected","setMicrophoneSelected","headsets","setHeadsets","headsetSelected","setHeadsetSelected","userTyping","setUserTyping","lastPage","setLastPage","connect","initializeSocketEvents","last_page","apiKey","sessionId","sessionInitialized","live","initSession","userDataEvent","stream","subscribe","insertMode","screen","changedProperty","saveUser","publisherOptions","publishVideo","publishAudio","initPublisher","publish","initializePublisher","joinRoom","camerasData","microphonesData","headsetsData","currentHeadset","handleClickCamera","handleClickMic","handleClickSharedScreen","initializePublisherScreen","handleClickDisconnect","handleClickSettings","handleChangeCamera","setVideoSource","setCamera","handleChangeMicrophone","setAudioSource","setMicrophone","handleChangeHeadset","headset","headsetData","setAudioOutputDevice","setHeadset","handleLoad","startTyping","clearTimeout","handleSubmitMessage","toDateString","userContent","scrollLoadThreshold","onInfiniteLoad","flipped","typing","Locked","LessonData","coachLocked","LessonsBox","aside","SideBar","Descriptions","Contents","qtdLessons","ButtonLesson","slugCourse","onClickFinished","play","Modules","moduleSelected","setModuleSelected","setModules","moduleOpen","lessonsModule1","previous","lessonsModule2","lessonsModule3","moduleId","exam","playModule","ButtonQuestion","correct","incorrect","Question","Answer","Quizzes","dataQuestions","onAnsweredQuestions","answered","showQuestions","hideButton","onCloseModal","carouselRef","questions","setQuestions","questionNumber","setQuestionNumber","answers","setAnswers","answersSelected","setAnswersSelected","setHasError","quizAnswered","setQuizAnswered","checkAnswer","setCheckAnswer","handleChangeItem","handleChangeAnswer","question_id","answer_id","answeredQuestions","question","correctAnswer","answer","correct_answer","newAnswersSelected","newAnswers","newCheckAnswer","quiz_component","handleSelectQuestion","goTo","quizGolden","indexQuestion","showArrows","indexOption","answerSelected","Alert","showTime","Action","Actions","courseConclude","setCourseConclude","checkIfReleaseCertificate","modulesData","courseIsConclude","results","allLessonWatched","examsUsers","examUser","module_id","note","lessonData","lessonUser","lessonSelected","completed","noReleaseCertificate","courseUser","end_date","videos","lessonCourse","watch_full_video","coach_unlock","answer_quiz","button_7","handleClickOption","about","special_notes_coach","next_step","coach","mail","skype","special_note","comment","downloads","download","download_url","p_4","Note","typingTimer","annotation","setAnnotation","handleDoneTyping","Credentials","handleClickClose","Lessons","setLesson","showAlert","setShowAlert","showCertificateAlert","setShowCertificateAlert","courseUserId","setCourseUserId","locked","setLocked","setCoachLocked","setModuleVideo","setCompleted","setMin","numberProgress","setNumberProgress","loadNextLesson","setLoadNextLesson","foundersClub","masterclassVideo","firstLoaded","setFirstLoaded","allLessons","boxBot","nextLesson","indexOf","withVideo","withLessons","withLessonUser","lastLessonUser","lessonsData","newLessonUser","lessonUserIndex","time_watched","block","duration","finished","allQuestionsCorrect","moduleUser","lastModule","completedLesson","lastLessonIndex","lessonsSlugs","indexLesson","lastModuleIndex","lastModuleLessonIndex","responseLesson","coach_button","allow_about","allow_next_step","allow_special_note","allow_discussion","allow_downloads","quiz","responseData","course_id","notesData","courseUserSelected","introduction","closeModal","waitlist","handleStartLesson","last_lesson_slug","handleRunningLesson","time","h","m","s","handleCompleteLesson","newModules","lessonDataSelected","lessonSelectedIndex","handleAnsweredQuestions","answeredQuestion","answered_quiz","handleAnsweredExamModule","handleClickFinished","lockedIcon","onChangeTime","callChangeTimeBySeconds","onAnsweredExam","modal_title","modal_p_1_1","modal_p_1_2","modal_a","modal_p_1_3","alert_message","certificate_message","Notifications","newNotification","from_user_id","to_user_id","fromUser","read","handleClickNotification","connected","newNotifications","notificationIndex","bannerEase","BASE_URL","apiRequest","method","payload","onlySelect","values","setValues","valueSelected","setValueSelected","selectedOption","RegExp","newValuesList","handleKeyDown","onKeyDown","autoComplete","PromptEase","showPrompt","setShowPrompt","btnHistory","setBtnHistory","btnMax","setBtnMax","idHistory","setIdHistory","selectCategoryNiche","setSelectCategoryNiche","optionsCategory","setCategoryData","optionsNiche","setNicheData","targetData","setTargetData","contextData","setContextData","sentimentData","setSentimentData","roleData","setRoleData","niche","setNiche","setTarget","searchBy","setSearchBy","sentiment","setSentiment","setRole","setContext","setResult","btnGenerate","setBtnGenerate","isPromptResultGenerate","setIsPromptResultGenerate","showPage","setShowPage","isPromptGenerated","setIsPromptGenerated","filterData","setFilterData","categoryLists","categoryArray","item","nicheLists","nicheArray","targetLists","targetsArray","targets","sentimentLists","sentimentArray","roleLists","roleArray","roles","contextLists","contextArray","generatePrompt","search_by","handleClearSearch","handleChangeCategory","handleChangeNiche","handleChangeTarget","handleChangeRole","handleChangeSentiment","handleChangeContext","handleBtnMax","sphereLg","sphereLgMob","bubble","pro","arrowLeft","btnHistoryImg","sphereSm","resultText","min","max","Select","Item","PlayerPostEase","player","allPlayers","getPlayers","playerId","pause","dispose","Carousel","onSlideChange","videoDownload","setVideoDownload","beforeChange","isImage","showResult","setShowResult","handleSlideChange","AvatarFirst","AvatarSecond","AvatarThird","AvatarOthers","Today","positions","sales","podiumMob","podiumDesk","silver","gold","bronze","pos","AllTime","Leaderboard","btnToday","setBtnToday","En","ForgotPassword","CommissionHistory","Trainings","Training","MaterialPromocional","LiveVonage","Lesson","PromptEasePro","PostEase","selectedTargets","setSelectedTargets","selectedCategory","categoryData","initialRun","setInitial","setTableData","tmpTableData","tmpSetTableData","searchResult","setSearchResult","tabelDataArray","prompt","categoriesArray","changeCategoryByTarget","changeTargetByCategory","filteredData","handleChangeQuantity","Es","Traffic","setTraffic","indexSel","setIndexSel","thumb1","thumb2","thumb3","vidSelected","routes","createGlobalStyle","ultraWhite","blizzard","graniteGray","technologicalGray","grayImmensity","deepGrey","greyMineral","mysteriousGrey","closedGray","asphaltGray","coal","midnight","warning","skeletonTransparent","skeletonQuarter","skeletonMiddle","skeletonFull","TermsContext","TermsProvider","scroll","setName","effectiveDate","setEffectiveDate","dateSigned","setDateSigned","ip","setIp","formattedDate","handleClickResponse","date_signed","scrollDown","ArrowDown","AppProvider","App","Clarity","init","ReactGA","initialize","ReactDOM","StrictMode"],"mappings":"gHAAAA,EAAOC,QAAU,IAA0B,mC,6BCA3CD,EAAOC,QAAU,IAA0B,yC,8BCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,k6J,oBCAjBD,EAAOC,QAAU,IAA0B,uC,sBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,uBCA3CD,EAAOC,QAAU,IAA0B,8C,iBCA3CD,EAAOC,QAAU,IAA0B,kC,wBCA3CD,EAAOC,QAAU,kwL,yCCAjBD,EAAOC,QAAU,IAA0B,gD,ki2BCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,mBCA3CD,EAAOC,QAAU,IAA0B,wC,iBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,iBCA3CD,EAAOC,QAAU,IAA0B,mC,6BCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,iBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,iBCA3CD,EAAOC,QAAU,IAA0B,mC,mCCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,iBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,IAA0B,yC,yBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,iBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,2D,2BCA3CD,EAAOC,QAAU,IAA0B,0C,+DCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,iBCA3CD,EAAOC,QAAU,IAA0B,4C,qiuBCA3CD,EAAOC,QAAU,IAA0B,4C,82gCCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,sC,wBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,oC,iBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,ohjBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,iBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,yBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,cCA3CD,EAAOC,QAAU,s/D,gBCAjBD,EAAOC,QAAU,IAA0B,wC,kohbCA3CD,EAAOC,QAAU,IAA0B,2C,qhokBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mC,cCA3CD,EAAOC,QAAU,0nH,gBCAjBD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,uC,cCA3CD,EAAOC,QAAU,k5Z,kpSCAjBD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,iBCA3CD,EAAOC,QAAU,IAA0B,uC,gBC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","file":"static/js/main.8f558002.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/close.e3fa9dcd.svg\";","module.exports = __webpack_public_path__ + \"static/media/avatar-test.9f8936d9.png\";","module.exports = __webpack_public_path__ + \"static/media/profile-photo.b7d51082.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/copy-blue.738932bc.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-blue-down.29c487da.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-blue-up.1fba1049.svg\";","module.exports = __webpack_public_path__ + \"static/media/no-register-icon.0b1db3a9.svg\";","module.exports = __webpack_public_path__ + \"static/media/copy.80163bcc.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/banner-prompt-ease.6598ea71.png\";","module.exports = __webpack_public_path__ + \"static/media/sphere-large.15eac942.png\";","module.exports = __webpack_public_path__ + \"static/media/sphere-large-mob.cc8c3ec5.png\";","module.exports = __webpack_public_path__ + \"static/media/cc-default.231e95ab.svg\";","module.exports = __webpack_public_path__ + \"static/media/facebook-icon.2fea91ad.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter-icon.b6e90340.svg\";","module.exports = __webpack_public_path__ + \"static/media/whatsapp-circle-icon.e55c0f14.svg\";","module.exports = __webpack_public_path__ + \"static/media/gold1.4eae1f31.svg\";","module.exports = __webpack_public_path__ + \"static/media/silver2.d8b4d6bd.svg\";","module.exports = __webpack_public_path__ + \"static/media/bronze3.c6b89cb3.svg\";","module.exports = __webpack_public_path__ + \"static/media/check.9b0257d5.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-visa-dark.fb0e6107.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-mastercard-dark.9c792ec5.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-discover-dark.322cd83f.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-amex-dark.283cafee.svg\";","module.exports = __webpack_public_path__ + \"static/media/student-icon.d5525ed2.svg\";","module.exports = __webpack_public_path__ + \"static/media/affiliate-icon.1d0b4d06.svg\";","module.exports = __webpack_public_path__ + \"static/media/franchise-purple-icon.7c1a60c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-visa.0baab121.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-mastercard.208a1079.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-discover.b098038d.svg\";","module.exports = __webpack_public_path__ + \"static/media/cc-amex.5eb7031e.svg\";","module.exports = __webpack_public_path__ + \"static/media/quote.8880a378.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter-icon-blue.02f87c19.svg\";","module.exports = __webpack_public_path__ + \"static/media/facebook-icon-blue.7557776f.svg\";","module.exports = __webpack_public_path__ + \"static/media/telegram-icon-blue.492c2d48.svg\";","module.exports = __webpack_public_path__ + \"static/media/instagram-icon-blue.b6d83593.svg\";","module.exports = __webpack_public_path__ + \"static/media/founder-icon.fad34c27.svg\";","module.exports = __webpack_public_path__ + \"static/media/thumb-video-modal.0f5f81ed.png\";","module.exports = __webpack_public_path__ + \"static/media/safe_secure.3684ccae.svg\";","module.exports = __webpack_public_path__ + \"static/media/money_back.a4243cbc.svg\";","module.exports = __webpack_public_path__ + \"static/media/privacy_proteced.e772bf91.svg\";","module.exports = __webpack_public_path__ + \"static/media/search-icon.3ea058e3.svg\";","module.exports = __webpack_public_path__ + \"static/media/notes.d4afe684.svg\";","module.exports = __webpack_public_path__ + \"static/media/photo-profile.dc3853fd.png\";","module.exports = __webpack_public_path__ + \"static/media/wallet.bb05e4da.svg\";","module.exports = __webpack_public_path__ + \"static/media/play-icon.9a764621.svg\";","module.exports = __webpack_public_path__ + \"static/media/banner-leaderboard.b4efdd9a.svg\";","module.exports = __webpack_public_path__ + \"static/media/banner-leaderboard-mobile-new.e22448cd.svg\";","module.exports = __webpack_public_path__ + \"static/media/example-post.e46e3fb7.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-ai-connector.d195317e.png\";","module.exports = __webpack_public_path__ + \"static/media/check-payment.5269143c.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-plus.b2db09bb.svg\";","module.exports = __webpack_public_path__ + \"static/media/referrals-icon.54c336f3.svg\";","module.exports = __webpack_public_path__ + \"static/media/gift-card-logo.b4cb6d50.svg\";","module.exports = __webpack_public_path__ + \"static/media/support-new.17cfe290.png\";","module.exports = __webpack_public_path__ + \"static/media/attention-icon.7d7db0f8.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrows-double-right.2fb3c368.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg-first-mobile-new.aa19075e.png\";","module.exports = __webpack_public_path__ + \"static/media/vip-last.5d6e208b.png\";","module.exports = __webpack_public_path__ + \"static/media/no-data-found.fe7003ad.gif\";","module.exports = __webpack_public_path__ + \"static/media/delete.39c3e19c.svg\";","module.exports = __webpack_public_path__ + \"static/media/dashboard-icon.09d4a240.svg\";","module.exports = __webpack_public_path__ + \"static/media/dashboard-icon-active.de54c8dc.svg\";","module.exports = __webpack_public_path__ + \"static/media/courses-icon.fc96419b.svg\";","module.exports = __webpack_public_path__ + \"static/media/courses-icon-active.d81c85e0.svg\";","module.exports = __webpack_public_path__ + \"static/media/profile-icon.e1cd3b5c.svg\";","module.exports = __webpack_public_path__ + \"static/media/profile-icon-active.079a7b0c.svg\";","module.exports = __webpack_public_path__ + \"static/media/resources-icon.99684763.svg\";","module.exports = __webpack_public_path__ + \"static/media/resources-icon-active.349e2c41.svg\";","module.exports = __webpack_public_path__ + \"static/media/wallet-icon.597907c7.svg\";","module.exports = __webpack_public_path__ + \"static/media/wallet-icon-active.433233a9.svg\";","module.exports = __webpack_public_path__ + \"static/media/my-referrals-icon.9bc05076.svg\";","module.exports = __webpack_public_path__ + \"static/media/my-referrals-icon-active.cf4d7bbd.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-media-icon.1f8b33fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-media-icon-active.2766986f.svg\";","module.exports = __webpack_public_path__ + \"static/media/notification-icon.a33e5622.svg\";","module.exports = __webpack_public_path__ + \"static/media/notification-icon-active.8596d953.svg\";","module.exports = __webpack_public_path__ + \"static/media/trainings-icon.631aa888.svg\";","module.exports = __webpack_public_path__ + \"static/media/trainings-icon-active.a999fe7e.svg\";","module.exports = __webpack_public_path__ + \"static/media/traffic-icon.6de5a4cd.svg\";","module.exports = __webpack_public_path__ + \"static/media/traffics-icon-active.3fb4e906.svg\";","module.exports = __webpack_public_path__ + \"static/media/leaderboard-icon.d52a27c2.svg\";","module.exports = __webpack_public_path__ + \"static/media/leaderboard-icon-active.b1f89021.svg\";","module.exports = __webpack_public_path__ + \"static/media/log-out-icon.cf9db63c.svg\";","module.exports = __webpack_public_path__ + \"static/media/log-out-icon-active.4c35ee97.svg\";","module.exports = __webpack_public_path__ + \"static/media/sign-in-bg.b63a959f.png\";","module.exports = __webpack_public_path__ + \"static/media/sign-in-bg2.f2fe9990.png\";","module.exports = __webpack_public_path__ + \"static/media/sign-in-bg3.71310e3d.png\";","module.exports = __webpack_public_path__ + \"static/media/sign-in-bg4.4d8c3b95.png\";","module.exports = __webpack_public_path__ + \"static/media/autoAffiliate-name.4130b5b8.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter.f92d0ae4.svg\";","module.exports = __webpack_public_path__ + \"static/media/facebook.49f87c96.svg\";","module.exports = __webpack_public_path__ + \"static/media/telegram.d6e10239.svg\";","module.exports = __webpack_public_path__ + \"static/media/instagram.992c9427.svg\";","module.exports = __webpack_public_path__ + \"static/media/success.8378f025.svg\";","module.exports = __webpack_public_path__ + \"static/media/reveues-icon.1175a1b5.svg\";","module.exports = __webpack_public_path__ + \"static/media/total-reveues-icon.73afcac7.svg\";","module.exports = __webpack_public_path__ + \"static/media/magnifier.2d710f3a.svg\";","module.exports = __webpack_public_path__ + \"static/media/table-icon.ef0e83a6.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/categories.9948523f.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-message.66bd54c7.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendar-wallet.f27af339.svg\";","module.exports = __webpack_public_path__ + \"static/media/watch-wallet.9e14cee8.svg\";","module.exports = __webpack_public_path__ + \"static/media/profile-photo.e2b6c721.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-offers.fa77af78.svg\";","module.exports = __webpack_public_path__ + \"static/media/bg-masterclass.47f24450.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-aa.32c23220.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/bg-vip.41cb2a43.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-club.4de407fd.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-postease.aaa0de4f.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-profiti.abc37503.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-chatgpt.a96cfdb7.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-promptease.5b1ccdec.png\";","module.exports = __webpack_public_path__ + \"static/media/bg-pe-pro.5be753cc.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/master-test.7600586e.svg\";","module.exports = __webpack_public_path__ + \"static/media/visa-test.e1134932.svg\";","module.exports = __webpack_public_path__ + \"static/media/add-card-icon.2e662e4c.svg\";","module.exports = __webpack_public_path__ + \"static/media/binance-logo.b5fdeb56.png\";","module.exports = __webpack_public_path__ + \"static/media/binance-logo.66f55165.svg\";","module.exports = __webpack_public_path__ + \"static/media/tether-logo.c34c7b87.png\";","module.exports = __webpack_public_path__ + \"static/media/tether-logo.df353964.svg\";","module.exports = __webpack_public_path__ + \"static/media/qr-code-tether.29369a68.png\";","module.exports = __webpack_public_path__ + \"static/media/img-example1.34801527.png\";","module.exports = __webpack_public_path__ + \"static/media/credit-card-logo.f0328946.png\";","module.exports = __webpack_public_path__ + \"static/media/gift-card.db2fa956.png\";","module.exports = __webpack_public_path__ + \"static/media/wiserr-white-logo.1ab8ee92.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/nfc-icon.76701855.svg\";","module.exports = __webpack_public_path__ + \"static/media/rocket.5df90be6.png\";","module.exports = __webpack_public_path__ + \"static/media/facebook-group.9c12d611.png\";","module.exports = __webpack_public_path__ + \"static/media/whatsapp-group.ab1c64a6.png\";","module.exports = __webpack_public_path__ + \"static/media/zoom-group.729fdca9.png\";","module.exports = __webpack_public_path__ + \"static/media/video.1fd79a6f.png\";","module.exports = __webpack_public_path__ + \"static/media/play-module.65f3ce06.svg\";","module.exports = __webpack_public_path__ + \"static/media/quiz-golden-icon.c27fc688.svg\";","module.exports = __webpack_public_path__ + \"static/media/whatsapp-icon.0f809c35.svg\";","module.exports = __webpack_public_path__ + \"static/media/mail-icon.6dc52c35.svg\";","module.exports = __webpack_public_path__ + \"static/media/skype-icon.eb38436b.svg\";","module.exports = __webpack_public_path__ + \"static/media/photo-coach.eafe2261.png\";","module.exports = __webpack_public_path__ + \"static/media/send.92b7492a.svg\";","module.exports = __webpack_public_path__ + \"static/media/locked.c9a0bf2a.svg\";","module.exports = __webpack_public_path__ + \"static/media/btn-history-prompt-pro.2947bc99.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-left-prompt-pro.5a9d7d2a.svg\";","module.exports = __webpack_public_path__ + \"static/media/pro.fc20b0e0.svg\";","module.exports = __webpack_public_path__ + \"static/media/max-icon.efc2fcd7.svg\";","module.exports = __webpack_public_path__ + \"static/media/min-icon.914223bd.svg\";","module.exports = __webpack_public_path__ + \"static/media/affiliates-crowfunding.311a0433.png\";","module.exports = __webpack_public_path__ + \"static/media/affiliates-promotional-material.0e5310c2.png\";","module.exports = __webpack_public_path__ + \"static/media/affiliates-training.fe25ecd6.png\";","var map = {\n\t\"./en\": 315,\n\t\"./en.json\": 315,\n\t\"./es\": 316,\n\t\"./es.json\": 316\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 600;","module.exports = __webpack_public_path__ + \"static/media/bg-second-mobile.b292f8bd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKNSURBVHgBvVVNaBNBFH5bIpKSWIhCEwoiNfGmNCiNP4311mzBg9oEsV4aRLwk19J4sCDGs+lNND3pIYpKD1XQg5qLglKhRpAED5J2c0lANjRE0XW+186iOc22sB8ksy8zO9/73vtmoumJWSuTPU/5Ww8ICIUCNJPW7TgaDYtPhIrF5xynUmeoWq1T891HutiqkCq0sVNZKxwZolp1jSJiNIwWT7Tbnf9iv99Lptkhn8/LcweCe+jmtQllIk8wGGASjMnkOOXzD3kC5Al9lBYKT21lQaH2UekNx7v8Q7Tv+FFlIm3qwrw1k07whsgUhPrkKC0WX9gEIJUEWLuyUqPOmkE3pk+oE6F0I2KzT+Jl9AcYFGSIUS7LIi5Xo9HiEYloGlH38xdHPeLSYVNsMpebptzcPdGXGquKjoS5lFCaTI3zC1LZ8ICf+vtDykSsKB4/zOXAhlAVjx+h5eX3vAAxkimXVznWJ2Oip3VOrLCQUSbqwxf6ABIAzjLNDY5lz1A2G6KWIHEKLTk1b8HCvecH1tb1GBUKTzaViGf0rFR6zfHB3X/o6uBPdaLExKwlz4ZPbNTYIoUygH8X81IFjIDE9nd/ODMDNshdvyRMcJ9JUEY0HjGAeEz0UJ4n2Bul/PahQocun1QmYkUy66S4Xha3rhoQwPb/nicoLr9dtWMnZvBIE2BsGE1+Ri8QV8WNASAJlMvf9tpX0S/TpI26oUzE9s7fvsImkPbOZM+JePP84DzBeVJZWhjGEAlVnr10fqn2Wliao/dZxkCg2XBGtL7etGibGPjdVV6rWZa1bSIn8Hy9c5fcgLY0fMwdRXtj6n9eO4FrPeojl6C9On3WnR45uUZ2Au374yVXFLlmhr/8Zj5qdpEUuQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAINSURBVHgB7ZZda5JhGMd/6sMzX+Z0aDrnEB0aeyvmDtZJkEkHwQ4K6qQw6qgOoy/QpygIIqIX6LQPUKNAomKJ7KDa3IE4NzfG4+ujjzp9ntZiRtCJMtyJv8OLG343//u6Ly7dJ4tPow/o6RMDUc8IE7ES/UCnxTn5rktLwzRUjgXhf8V3CTCZIFuAxSloKuCfsDOkFTk2UTIFmWUTFs2AlHWQsDrRnC3KljLhe3YEtTfZP9GVdw3Mh2Am0sQ2ayE/ncd7XUQyy4jT9UNJUaYnOiJF1vPgpcpuGWwbJlrfFca+iOTzl/FdXOJU5A47OT2Pnoq0emifjsg0rHIl9hD3CKTem1HOKLQkA6NzS4ymokiV2xitKsaFawg6uqYj+h3byI9NVp+NUKnCi+QUiqmNuF+n1KghV2R+xo14s0UqB2d7Fq2tGsgFL+E5V8fgaBH4rONj8DxvXj/GueijUdjD421Tmb9KJS30LvJ7wPV1BYurzfgNmYVQhnFnjnZBj/T2FtXn93G6VczLH1gvdf+5OiJ7YB977CbmA9ERFwJJorVvKKMCerN2eIlaNMLs2Rbd8veN2hqJ+F1WtsZQ639qgsGFOulF3NAwDrdZ27ZSLT5hS3PTLZ2w00UPFlsQubaNf6aJ3WGmORlhPSQRLhU4PZdhTwzjrgaxDu3QLX0bqsLmKxv9QDdYTgaiI34BaoC+sAL89v4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/exclamation-icon.e86b563e.svg\";","module.exports = __webpack_public_path__ + \"static/media/wire.ffcea9f4.svg\";","import axios from 'axios';\n\nconst api = axios.create({ baseURL: process.env.REACT_APP_API_URL });\n\nexport default api;\n","import React, { createContext, useCallback, useState, useContext } from 'react';\nimport { AxiosResponse } from 'axios';\n\nimport { useHistory } from 'react-router-dom';\nimport api from '../services/api';\n\ninterface IAffiliatesProducts {\n id: string;\n product_id: string;\n product: {\n name: string;\n lines: number;\n };\n}\n\ninterface IAddress {\n id: string;\n city: string;\n complement: string;\n country: string;\n neighborhood?: string;\n number: string;\n state: string;\n street: string;\n zip_code: string;\n}\nexport interface User {\n id: string;\n customer_id: string;\n temp_pass: string;\n name: string;\n email: string;\n username: string;\n phone: string;\n referral_code: string;\n email_notifications: boolean;\n sms_notifications: boolean;\n created_at: string;\n type?: string;\n avatar: {\n id: string;\n avatar_url: string;\n };\n address?: IAddress;\n affiliate: {\n id: string;\n user_id: string;\n product_id: string;\n active_affiliate: boolean;\n affiliate_commission: number;\n crowdfunding_participation: boolean;\n crowdfunding_share: number;\n franchise_owner: boolean;\n franchise_commission: number;\n type: string;\n affiliatesProducts?: IAffiliatesProducts[];\n wallet: {\n id: string;\n amount: string;\n status: string;\n request_amount: string;\n available_amount: string;\n };\n affiliatesOffers: {\n offer_id: string;\n }[];\n };\n waitlist?: {\n id: string;\n position: number;\n };\n referrer?: {\n affiliate_id: string;\n affiliate: {\n user: {\n name: string;\n };\n };\n };\n termUser?: {\n user_id: string;\n name: string;\n ip: string;\n date_signed: string;\n };\n}\n\ninterface AuthState {\n token: string;\n user: User;\n}\n\ninterface SignInCredentials {\n email: string;\n password: string;\n}\n\ninterface IWalletHistory {\n type: string;\n date: string;\n amount: string;\n withdrawal?: boolean;\n}\n\ninterface IGiftCard {\n id: string;\n status: string;\n card: string;\n amount: string;\n}\n\ninterface AuthContextData {\n user: User;\n walletPrice: number;\n setWalletPrice(amount: number): void;\n walletHistory: IWalletHistory[];\n setWalletHistory(walletHistory: IWalletHistory[]): void;\n giftCards: IGiftCard[];\n setGiftCards(giftCards: IGiftCard[]): void;\n signIn(credentials: SignInCredentials, routeAccess?: string): Promise;\n signInWithPass(user_id: string, routeAccess?: string): Promise;\n signOut(): void;\n updateUser(user: User): void;\n setLogin(tokenData: string, user: User, cacheToken: string): void;\n credentials: SignInCredentials | undefined;\n setCredentials: React.Dispatch<\n React.SetStateAction\n >;\n autoLogin(token: string, type: string, path?: string): Promise;\n}\n\nexport const AuthContext = createContext(\n {} as AuthContextData\n);\n\nexport const AuthProvider: React.FC = ({ children }) => {\n const history = useHistory();\n const [data, setData] = useState(() => {\n const token = localStorage.getItem('@AutoAffiliate:token');\n const user = localStorage.getItem('@AutoAffiliate:user');\n\n if (token && user) {\n api.defaults.headers.authorization = `Barear ${token}`;\n const userData = JSON.parse(user);\n return { token, user: { ...userData, name: userData.name || 'Pending' } };\n }\n\n return {} as AuthState;\n });\n const [walletPrice, setWalletPrice] = useState(0);\n const [walletHistory, setWalletHistory] = useState([]);\n const [giftCards, setGiftCards] = useState([]);\n const [credentials, setCredentials] = useState(\n undefined\n );\n\n const signIn = useCallback(\n async ({ email, password }, routeAccess) => {\n const response = await api.post('users/sessions', {\n email,\n password,\n });\n\n const { token, user } = response.data;\n\n let type = 'New Member';\n let affiliate = false;\n\n if (\n user.affiliate &&\n user.affiliate.affiliatesOffers &&\n user.affiliate.affiliatesOffers.length > 0\n ) {\n affiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n type = 'Super Affiliate';\n } else if (affiliate) {\n type = 'Affiliate';\n }\n }\n\n user.type = type;\n\n localStorage.setItem('@AutoAffiliate:token', token);\n localStorage.setItem('@AutoAffiliate:user', JSON.stringify(user));\n\n api.defaults.headers.authorization = `Barear ${token}`;\n\n setData({ token, user });\n\n if (routeAccess) {\n setCredentials({ email, password });\n history.push(`${process.env.PUBLIC_URL}/${routeAccess}`);\n }\n },\n [history]\n );\n\n const autoLogin = useCallback(\n async (tokenData: string, typeData: string, routeAccess?: string) => {\n let response: AxiosResponse;\n\n if (typeData === 'admin') {\n response = await api.get(\n `users/admins/session/${tokenData}`\n );\n } else {\n response = await api.get(\n `users/sessions/auto-login/${tokenData}`\n );\n }\n\n const { token, user } = response.data;\n\n let type = 'New Member';\n let affiliate = false;\n\n if (\n user.affiliate &&\n user.affiliate.affiliatesOffers &&\n user.affiliate.affiliatesOffers.length > 0\n ) {\n affiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n type = 'Super Affiliate';\n } else if (affiliate) {\n type = 'Affiliate';\n }\n }\n\n user.type = type;\n\n localStorage.setItem('@AutoAffiliate:token', token);\n localStorage.setItem('@AutoAffiliate:user', JSON.stringify(user));\n\n api.defaults.headers.authorization = `Barear ${token}`;\n\n setData({ token, user });\n\n if (routeAccess) {\n history.push(`${process.env.PUBLIC_URL}${routeAccess}`);\n }\n },\n [history]\n );\n\n const signInWithPass = useCallback(async (user_id) => {\n const response = await api.post(`users/sessions/${user_id}`, {\n user_id,\n });\n\n const { token, user } = response.data;\n\n let type = 'New Member';\n let affiliate = false;\n\n if (\n user.affiliate &&\n user.affiliate.affiliatesOffers &&\n user.affiliate.affiliatesOffers.length > 0\n ) {\n affiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n type = 'Super Affiliate';\n } else if (affiliate) {\n type = 'Affiliate';\n }\n }\n\n user.type = type;\n\n localStorage.setItem('@AutoAffiliate:token', token);\n localStorage.setItem('@AutoAffiliate:user', JSON.stringify(user));\n\n api.defaults.headers.authorization = `Barear ${token}`;\n\n setData({ token, user });\n }, []);\n\n const signOut = useCallback(() => {\n const cacheToken = localStorage.getItem('@AutoAffiliate:cacheToken');\n localStorage.removeItem('@AutoAffiliate:token');\n localStorage.removeItem('@AutoAffiliate:user');\n localStorage.removeItem('@AutoAffiliate:cacheToken');\n\n if (cacheToken) {\n api.get(`affiliates/sessions/remove-data/${cacheToken}`);\n }\n\n setData({} as AuthState);\n }, []);\n\n const updateUser = useCallback(\n (user) => {\n localStorage.setItem('@AutoAffiliate:user', JSON.stringify(user));\n\n setData({\n token: data.token,\n user,\n });\n },\n [setData, data.token]\n );\n\n const setLogin = useCallback(\n (token, user, cacheToken) => {\n let type = 'New Member';\n let affiliate = false;\n\n if (\n user.affiliate &&\n user.affiliate.affiliatesOffers &&\n user.affiliate.affiliatesOffers.length > 0\n ) {\n affiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer: { offer_id: string }) =>\n affiliateOffer.offer_id === '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!user.affiliate.affiliatesOffers.find(\n (affiliateOffer: { offer_id: string }) =>\n affiliateOffer.offer_id === 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n type = 'Super Affiliate';\n } else if (affiliate) {\n type = 'Affiliate';\n }\n }\n\n // eslint-disable-next-line no-param-reassign\n user.type = type;\n\n localStorage.setItem('@AutoAffiliate:token', token);\n localStorage.setItem('@AutoAffiliate:user', JSON.stringify(user));\n localStorage.setItem('@AutoAffiliate:cacheToken', cacheToken);\n\n api.defaults.headers.authorization = `Barear ${token}`;\n\n if (user.temp_pass) {\n setCredentials({ email: user.email, password: user.temp_pass });\n }\n\n setData({\n token,\n user,\n });\n },\n [setData]\n );\n\n const handleChangeWallet = useCallback(\n async (value) => {\n setWalletPrice(value);\n const formData = {\n user_id: data.user.id,\n amount: value,\n };\n\n await api.put(\n `wallets/affiliates/${data.user.affiliate.wallet.id}`,\n formData\n );\n },\n [data]\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport function useAuth(): AuthContextData {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n\n return context;\n}\n","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport IntercomComponent from 'react-intercom';\nimport { useAuth } from './Auth';\n\ninterface IntercomContextData {\n Intercom: any;\n setUserData: React.Dispatch>;\n}\n\nexport const IntercomContext = createContext(\n {} as IntercomContextData\n);\n\ninterface IUser {\n name?: string;\n email?: string;\n created_at?: string;\n}\n\nexport const IntercomProvider: React.FC = ({ children }) => {\n const [userData, setUserData] = useState({} as IUser);\n const { user } = useAuth();\n\n useEffect(() => {\n if (user && Object.keys(user).length > 0) {\n setUserData({\n name: user.name || 'Pending',\n email: user.email,\n created_at: user.created_at,\n });\n }\n }, [user]);\n\n return (\n 0 && userData.name !== 'Pending' ? (\n \n ) : (\n \n ),\n setUserData,\n }}\n >\n {children}\n \n );\n};\n\nexport function useIntercom(): IntercomContextData {\n const context = useContext(IntercomContext);\n\n if (!context) {\n throw new Error('useIntercom must be used within an IntercomProvider');\n }\n\n return context;\n}\n","import React, { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useIntercom } from '~/hooks/Intercom';\n\nconst AuthLayout: React.FC = ({ children }) => {\n const location = useLocation();\n const { Intercom } = useIntercom();\n\n //\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [location]);\n\n return (\n <>\n {children}\n {Intercom}\n \n );\n};\n\nexport default AuthLayout;\n","import React, { createContext, useState, useContext } from 'react';\n\ninterface INextStep {\n slug: string;\n}\n\ninterface NextStepContextData {\n nextStep: INextStep;\n setNextStep: React.Dispatch>;\n}\n\nexport const NextStepContext = createContext(\n {} as NextStepContextData\n);\n\nexport const NextStepProvider: React.FC = ({ children }) => {\n const [nextStep, setNextStep] = useState({} as INextStep);\n\n return (\n \n {children}\n \n );\n};\n\nexport function useNextStep(): NextStepContextData {\n const context = useContext(NextStepContext);\n\n if (!context) {\n throw new Error('useNextStep must be used within an NextStepProvider');\n }\n\n return context;\n}\n","/* eslint-disable global-require */\n/* eslint-disable import/no-dynamic-require */\nimport React, {\n createContext,\n useCallback,\n useState,\n useContext,\n useMemo,\n} from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\n\ninterface ILanguage {\n sign_in: {\n h1: string;\n h2: string;\n p: string;\n p_2: string;\n label_1: string;\n label_2: string;\n a: string;\n a_2: string;\n button: string;\n erro_1: string;\n erro_2: string;\n erro_3: string;\n erro_4: string;\n img_1: string;\n img_2: string;\n img_3: string;\n img_4: string;\n };\n header: {\n small_1: string;\n small_2: string;\n small_3_1: string;\n small_3_2: string;\n small_4: string;\n small_5: string;\n small_6_1: string;\n small_6_2: string;\n small_7: string;\n small_8: string;\n button_1: string;\n button_2: string;\n small_9: string;\n };\n dashboard: {\n h1: string;\n h3_1: string;\n h3_2: string;\n input: string;\n button: string;\n p_1: string;\n img_1: string;\n p_2: string;\n img_2: string;\n p_3: string;\n img_3: string;\n p_4: string;\n img_4: string;\n label_1: string;\n label_2: string;\n };\n commission_history: {\n h1: string;\n h2: string;\n th_1: string;\n th_2: string;\n th_3: string;\n th_4: string;\n th_5: string;\n th_6: string;\n p_1: string;\n p_2_1: string;\n p_2_2: string;\n button_1: string;\n button_2: string;\n };\n trainings: {\n h1: string;\n input: string;\n };\n training: {\n button: string;\n h2: string;\n p: string;\n h4: string;\n h3: string;\n placeholder: string;\n };\n social_media: {\n h1: string;\n p: string;\n small: string;\n img_1: string;\n img_2: string;\n img_3: string;\n };\n crowdfunding: {\n h1: string;\n p_1: string;\n p_2: string;\n p_3: string;\n p_4: string;\n p_5: string;\n h2: string;\n p_6: string;\n p_7: string;\n p_8: string;\n p_9: string;\n p_10_1: string;\n p_10_b: string;\n p_10_2: string;\n button_1: string;\n button_2: string;\n button_3: string;\n button_4: string;\n };\n footer: {\n h2: string;\n p_1: string;\n h4_1: string;\n h4_2: string;\n h4_3: string;\n h4_4: string;\n b: string;\n p_2: string;\n label_1: string;\n label_2: string;\n button_1: string;\n copy: string;\n wallet_value: string;\n required_value: string;\n h4: string;\n img_1: string;\n img_2: string;\n img_3: string;\n img_4: string;\n };\n password_component: {\n button_1: string;\n button_2: string;\n };\n table: {\n input: string;\n p_1: string;\n p_2_1: string;\n p_2_2: string;\n button_1: string;\n button_2: string;\n a: string;\n };\n wallet: {\n h1: string;\n img_1: string;\n img_2: string;\n p_1_1: string;\n p_1_2: string;\n p_2_1: string;\n p_2_2: string;\n navLink_1: string;\n navLink_2: string;\n h5: string;\n button_1: string;\n button_2: string;\n button_3: string;\n button_4: string;\n button_5: string;\n small_1: string;\n modal_title: string;\n modal_p_1: string;\n modal_p_2: string;\n modal_p_3: string;\n modal_p_4: string;\n modal_p_5: string;\n modal_span_1: string;\n modal_span_2: string;\n modal_span_3: string;\n modal_small: string;\n modal_button_1: string;\n modal_button_2: string;\n modal_value: string;\n modal_value_2: string;\n modal_value_3: string;\n modal_address: string;\n modal_authentication: string;\n modal_authentication_2: string;\n modal_error: string;\n modal_success_1: string;\n modal_success_2: string;\n type: string;\n date: string;\n amount: string;\n status: string;\n card: string;\n };\n update_warning: {\n h1: string;\n p: string;\n };\n affiliates: {\n h1: string;\n h3_1: string;\n h3_2: string;\n h3_3: string;\n p_1: string;\n p_2: string;\n p_3: string;\n a: string;\n };\n affiliates_crowdfunding: {\n h1: string;\n p_1: string;\n p_2: string;\n p_3: string;\n };\n affiliates_crowdfunding_list: {\n col_1: string;\n col_2: string;\n col_3: string;\n col_4: string;\n col_5: string;\n col_6: string;\n button: string;\n title: string;\n label: string;\n span: string;\n };\n affiliates_promotional_material: {\n h1: string;\n p_1_1: string;\n p_1_2: string;\n placeholder_1: string;\n button_1: string;\n h2: string;\n button_2: string;\n button_3: string;\n placeholder_2: string;\n p_2: string;\n small: string;\n error: string;\n };\n affiliates_training: {\n h1: string;\n placeholder_1: string;\n p_1: string;\n p_2: string;\n };\n affiliates_categories: {\n h2: string;\n nav: string;\n };\n my_referrals: {\n h1: string;\n p_1: string;\n p_2: string;\n p_3: string;\n joined: string;\n user: string;\n affiliate: string;\n owner: string;\n };\n team_view: {\n p_1: string;\n p_2: string;\n p_3: string;\n p_4: string;\n };\n profile: {\n h1: string;\n button_1: string;\n button_2: string;\n button_3: string;\n button_4: string;\n button_5: string;\n };\n my_profile: {\n label_1: string;\n h3_1: string;\n label_2: string;\n label_3: string;\n label_4: string;\n h3_2: string;\n label_5: string;\n label_6: string;\n label_7: string;\n label_8: string;\n label_9: string;\n label_10: string;\n label_11: string;\n label_12: string;\n label_13: string;\n label_14: string;\n label_15: string;\n h3_3: string;\n label_16: string;\n label_17: string;\n label_18: string;\n button_1: string;\n button_2: string;\n erro_1: string;\n erro_2: string;\n erro_3: string;\n erro_4: string;\n erro_5: string;\n erro_6: string;\n erro_7: string;\n erro_8: string;\n success_1: string;\n success_2: string;\n };\n payment_plans: {\n h2_1: string;\n span_1: string;\n h2_2: string;\n p: string;\n h2_3: string;\n h2_4: string;\n h2_5: string;\n h2_6: string;\n placeholder: string;\n h2_7: string;\n h2_8: string;\n button: string;\n status_1: string;\n status_2: string;\n status_3: string;\n status_4: string;\n status_5: string;\n status_6: string;\n modal_h2_1: string;\n modal_h2_2: string;\n modal_h3_1: string;\n modal_p_1: string;\n modal_p_2: string;\n modal_p_3: string;\n modal_p_4: string;\n modal_p_5: string;\n modal_button_1: string;\n modal_h3_2: string;\n modal_p_6: string;\n modal_p_7: string;\n modal_p_8: string;\n modal_button_2: string;\n };\n my_purchases: {\n h3_1: string;\n h3_2: string;\n button_1: string;\n button_2: string;\n button_3: string;\n };\n subscriptions_cards: {\n h2: string;\n th_1: string;\n th_2: string;\n th_3: string;\n th_4: string;\n th_5: string;\n th_6: string;\n button_1: string;\n button_2: string;\n h4_1: string;\n input_1: string;\n input_2: string;\n input_3: string;\n input_4: string;\n input_5: string;\n button_3: string;\n button_4: string;\n h4_2: string;\n p: string;\n button_5: string;\n button_6: string;\n };\n receipts: {\n b_1: string;\n b_2: string;\n b_3: string;\n };\n error_component: {\n error_message_axios: string;\n error_message: string;\n verification_message: string;\n all_right_message: string;\n };\n no_register: {\n p: string;\n };\n buy_component: {\n button_1: string;\n button_2: string;\n h4_1: string;\n button_3: string;\n button_5: string;\n error_message: string;\n h4_2: string;\n erro_1: string;\n erro_2: string;\n erro_3: string;\n erro_4: string;\n erro_5: string;\n yup: string;\n };\n add_credit_card_component: {\n title: string;\n button: string;\n };\n buy_product_button: {\n h3: string;\n span: string;\n button_1: string;\n button_2: string;\n };\n buy_product_button_binance: {\n h4: string;\n span_1: string;\n span_2: string;\n p_1: string;\n p_2: string;\n a: string;\n };\n buy_product_button_tether: {\n button_1: string;\n button_2: string;\n h3: string;\n placeholder: string;\n span: string;\n };\n buy_product_button_gift_card: {\n title: string;\n label_1: string;\n label_2: string;\n label_3: string;\n button: string;\n };\n credit_card_component: {\n input_1: string;\n input_2: string;\n input_3: string;\n input_4: string;\n input_5: string;\n label_1: string;\n label_2: string;\n label_3: string;\n label_4: string;\n };\n gift_required: {\n required: string;\n };\n quiz_component: {\n button_1: string;\n button_2: string;\n h4: string;\n p: string;\n button_3: string;\n error_message: string;\n alert_message: string;\n certificate_message: string;\n };\n lesson: {\n p_1: string;\n small: string;\n button_1: string;\n button_2: string;\n button_3: string;\n button_4: string;\n button_5: string;\n button_6: string;\n button_7: string;\n h2_1: string;\n h2_2: string;\n p_2: string;\n p_3: string;\n h3_1: string;\n h3_2: string;\n h2_3: string;\n h2_4: string;\n p_4: string;\n time: string;\n success_1: string;\n success_2: string;\n modal_coach_label: string;\n modal_title: string;\n modal_p_1_1: string;\n modal_p_1_2: string;\n modal_a: string;\n modal_p_1_3: string;\n };\n notes: {\n p: string;\n };\n support: {\n h4: string;\n p: string;\n a: string;\n };\n message_timeout: {\n msg_1: string;\n msg_2: string;\n msg_3: string;\n };\n footer_coach: {\n h4: string;\n p_1: string;\n small: string;\n p_2: string;\n p_3: string;\n span: string;\n };\n footer_next_step: {\n h2: string;\n p: string;\n button: string;\n };\n}\n\ninterface LanguageContextData {\n language: ILanguage;\n handleSelectIdiom(idiom: string): void;\n idiom: string;\n}\n\nexport const LanguageContext = createContext(\n {} as LanguageContextData\n);\n\nexport const LanguageProvider: React.FC = ({ children }) => {\n const location = useLocation();\n const history = useHistory();\n const [idiom, setIdiom] = useState(() => {\n let lang = location.pathname.substr(1, 2);\n if (lang !== 'en' && lang !== 'es') {\n lang = localStorage.getItem('@Membership:language') || 'en';\n }\n const element = document.getElementsByTagName('html');\n element[0].lang = lang;\n return lang;\n });\n\n const handleSelectIdiom = useCallback((idiomSelected) => {\n setIdiom(idiomSelected);\n const element = document.getElementsByTagName('html');\n element[0].lang = idiomSelected;\n }, []);\n\n const language = useMemo(() => {\n const checkIdiom = localStorage.getItem('@Membership:language');\n if (checkIdiom !== idiom) {\n const lang = location.pathname.substr(1, 2);\n if (lang !== 'en' && lang !== 'es') {\n history.push(`${process.env.PUBLIC_URL}/${idiom}${location.pathname}`);\n } else {\n history.push(\n `${process.env.PUBLIC_URL}/${idiom}${location.pathname.substr(3)}`\n );\n }\n }\n\n localStorage.setItem('@Membership:language', idiom);\n\n return require(`./languages/${idiom}`);\n }, [history, idiom, location.pathname]);\n\n return (\n \n {children}\n \n );\n};\n\nexport function useLanguage(): LanguageContextData {\n const context = useContext(LanguageContext);\n\n if (!context) {\n throw new Error('useLanguage must be used within an LanguageProvider');\n }\n\n return context;\n}\n","import { darken, lighten } from 'polished';\nimport styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\ninterface ICopyAlertProps {\n show: boolean;\n}\n\ninterface IAvatarProps {\n src: string;\n}\n\nexport const Container = styled.footer`\n h2 {\n color: #021027;\n }\n\n .bg-user {\n background: #f9f9f9;\n border-radius: 20px;\n }\n\n .btn-copy {\n background-color: transparent;\n border: solid 1.5px #dedede;\n border-radius: 15px;\n height: 56px;\n font-size: 13px;\n color: #626262;\n font-weight: 300;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 20px;\n\n :hover {\n color: ${darken(0.1, '#626262')};\n border: 1.5px solid ${darken(0.1, '#dedede')};\n transition-duration: 0.5s;\n }\n\n :disabled {\n pointer-events: none;\n }\n }\n\n .fw-600 {\n font-weight: 600 !important;\n }\n\n .new {\n font-weight: 400;\n font-size: 14px;\n color: #8c8c8c;\n }\n\n .color-gray {\n color: #8c8c8c;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media (min-width: 768px) and (max-width: 1199px) {\n .w-65 {\n width: 65%;\n }\n\n .w-40 {\n width: 40%;\n }\n }\n\n @media screen and (min-width: 1200px) {\n zoom: 0.85;\n height: 117vh;\n overflow: auto;\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 1;\n height: 100vh;\n }\n`;\n\nexport const Profile = styled.div`\n img {\n padding: 3px;\n background-image: linear-gradient(0deg, #202020, #202020),\n radial-gradient(\n circle at top left,\n rgba(228, 228, 228, 0.5),\n rgba(228, 228, 228, 0.5)\n );\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 50%;\n }\n\n span {\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #ffbb38;\n right: 5px;\n top: 8px;\n }\n\n p {\n color: rgba(247, 247, 247, 0.5);\n }\n`;\n\nexport const BoxWelcome = styled.div`\n background-color: #fff;\n border-radius: 20px;\n padding: 18px;\n\n h2 {\n font-weight: 400;\n font-size: 14px;\n line-height: 17px;\n color: #626262;\n }\n\n h3 {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #242424;\n }\n\n button {\n background: #116bff;\n border-radius: 10px;\n font-weight: 500;\n font-size: 12px;\n color: #ffffff;\n border: none;\n width: 100%;\n padding: 11px;\n }\n\n @media screen and (min-width: 1200px) {\n background-color: #f9f9f9;\n }\n`;\n\nexport const BoxAiBot = styled.div`\n background-color: #fff;\n border-radius: 20px;\n padding: 18px;\n //display: none;\n\n .img-width {\n width: 100%;\n //height: 140px;\n }\n\n .radius-20 {\n border-radius: 20px;\n }\n\n button {\n background: #116bff;\n border-radius: 15px;\n font-weight: 500;\n font-size: 16px;\n color: #ffffff;\n border: none;\n width: 100%;\n padding: 11px;\n }\n\n @media screen and (min-width: 1200px) {\n background-color: #f9f9f9;\n }\n`;\n\nexport const Waitlist = styled.div`\n h2 {\n color: #021027;\n }\n\n .founder-icon {\n width: 30px;\n height: 30px;\n }\n\n .pad-waitlist {\n background-color: #fff;\n border-radius: 0 0 20px 20px;\n padding: 18px;\n }\n\n .text-copy {\n font-weight: 400;\n font-size: 13px;\n line-height: 16px;\n color: #8c8c8c;\n }\n .new {\n font-weight: 400;\n font-size: 14px;\n color: #8c8c8c;\n }\n\n .title-waitlist {\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n color: #242526;\n }\n\n .bg-gray {\n background: #f9f9f9;\n border-radius: 0 0 20px 20px;\n }\n\n .bg-title {\n background: #dedede;\n border-radius: 20px 20px 0px 0px;\n padding: 16px 22px;\n }\n\n .boxes {\n div {\n background: #f1f1f1;\n border: 2px solid #fff;\n border-radius: 20px;\n padding: 15px 17px;\n }\n h3 {\n font-weight: 300;\n font-size: 16px;\n line-height: 19px;\n color: #8c8c8c;\n }\n\n p {\n font-weight: 700;\n font-size: 50px;\n line-height: 61px;\n color: #303030;\n margin-bottom: 0px;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .pad-waitlist {\n background-color: #f9f9f9;\n }\n\n .boxes {\n div {\n background: #ffffff;\n border: 2px solid #f1f1f1;\n }\n }\n }\n`;\n\nexport const AffiliateLink = styled.div`\n h2 {\n color: #021027;\n }\n\n .btn-bot {\n padding: 13px !important;\n }\n\n .img-width {\n width: 100%;\n //height: 140px;\n }\n\n .radius-20 {\n border-radius: 20px;\n }\n\n .positions {\n top: 30px;\n left: 40px;\n h2 {\n font-weight: 600;\n font-size: 38px;\n line-height: 46px;\n color: #f5f5f5;\n margin-bottom: 0px;\n }\n p {\n font-weight: 500;\n font-size: 18px;\n line-height: 22px;\n color: #f5f5f5;\n }\n }\n\n .pad-waitlist {\n background-color: #fff;\n border-radius: 0 0 20px 20px;\n padding: 18px;\n }\n\n .positions-last {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .timer {\n width: 50px;\n span:nth-child(1) {\n color: #ff1a50;\n text-align: center;\n font-family: 'Quicksand';\n font-size: 35px;\n font-weight: 700;\n line-height: 45px;\n }\n\n span:nth-child(2) {\n color: #fff;\n text-align: center;\n font-family: 'Archivo';\n font-size: 20px;\n font-weight: 300;\n line-height: 35px;\n }\n }\n\n .descriptions {\n p {\n font-weight: 400;\n font-size: 13px;\n line-height: 118%;\n\n color: #514f4f;\n span {\n color: #021027;\n }\n }\n a,\n button {\n width: 100%;\n background: #116bff;\n border: 1.5px solid #dedede;\n border-radius: 15px;\n font-weight: 500;\n font-size: 15px;\n line-height: 19px;\n letter-spacing: -0.02em;\n color: #ffffff;\n text-decoration: none;\n padding: 17px 10px;\n display: block;\n :hover {\n transition: 0.3s;\n opacity: 0.8;\n }\n }\n }\n\n .text-copy {\n font-weight: 400;\n font-size: 13px;\n line-height: 16px;\n color: #8c8c8c;\n }\n .new {\n font-weight: 400;\n font-size: 14px;\n color: #8c8c8c;\n }\n\n .bg-title-last {\n background: #116bff;\n border-radius: 20px 20px 0px 0px;\n padding: 16px 22px;\n }\n\n .title-last {\n font-weight: 700;\n font-size: 20px;\n line-height: 24px;\n color: #fff;\n }\n\n .title-waitlist {\n font-weight: 700;\n font-size: 20px;\n line-height: 24px;\n color: #021027;\n }\n\n .bg-gray {\n background: #f9f9f9;\n border-radius: 0 0 20px 20px;\n }\n\n .bg-title {\n background: #dedede;\n border-radius: 20px 20px 0px 0px;\n padding: 16px 22px;\n }\n\n .boxes {\n div {\n background: #f1f1f1;\n border: 2px solid #fff;\n border-radius: 20px;\n padding: 15px 17px;\n }\n h3 {\n font-weight: 300;\n font-size: 16px;\n line-height: 19px;\n color: #8c8c8c;\n }\n\n p {\n font-weight: 700;\n font-size: 50px;\n line-height: 61px;\n color: #303030;\n margin-bottom: 0px;\n }\n }\n\n .descriptions-last {\n p {\n color: #514f4f;\n font-size: 15px;\n font-weight: 400;\n line-height: 118%;\n span {\n color: #021027;\n font-weight: 600;\n }\n }\n button {\n width: 100%;\n background: #116bff;\n border: 1.5px solid #dedede;\n border-radius: 15px;\n font-weight: 500;\n font-size: 15px;\n line-height: 19px;\n letter-spacing: -0.02em;\n color: #ffffff;\n text-decoration: none;\n padding: 17px 10px;\n display: block;\n :hover {\n transition: 0.3s;\n opacity: 0.8;\n }\n }\n\n .red-color {\n color: #ff1a50;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .descriptions a {\n padding: 17px 14px;\n }\n .pad-waitlist {\n background-color: #f9f9f9;\n }\n\n .boxes {\n div {\n background: #ffffff;\n border: 2px solid #f1f1f1;\n }\n }\n }\n`;\n\nexport const AvatarWaitlist = styled.div`\n margin: 0 auto;\n width: 64px;\n height: 64px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px rgba(228, 228, 228, 0.5);\n box-sizing: border-box;\n filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.24));\n background-color: #303030;\n`;\n\nexport const Avatar = styled.div`\n margin: 0 auto;\n width: 91px;\n height: 91px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px rgba(228, 228, 228, 0.5);\n box-sizing: border-box;\n background-color: #303030;\n`;\n\nexport const Social = styled.div`\n h2 {\n font-weight: 500;\n font-size: 14px;\n line-height: 17px;\n color: #242424;\n }\n p {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #8c8c8c;\n }\n\n .bg-gray {\n background: #f9f9f9;\n border-radius: 0 0 20px 20px;\n }\n\n .bg-gray-lessons {\n background: #fff;\n border-radius: 0 0 20px 20px;\n }\n\n .bg-title {\n background: #dedede;\n border-radius: 20px 20px 0px 0px;\n padding: 10px 22px;\n }\n\n @media screen and (min-width: 1200px) {\n .bg-gray-lessons {\n background: #f9f9f9;\n }\n }\n`;\n\nexport const BuyGiftCard = styled.div`\n form {\n > div > div {\n border: 1.5px solid #dedede !important;\n border-radius: 15px !important;\n }\n input {\n padding: 6px 0;\n color: #626262;\n }\n label {\n font-size: 14px;\n font-weight: 400;\n color: #626262;\n }\n button:not(.btn-copy) {\n background-color: var(--technologicalGray);\n color: #f5f5f5;\n font-size: 14px;\n font-weight: 500;\n border-radius: 15px;\n border: none;\n :hover {\n background-color: ${lighten(0.1, '#116BFF')};\n color: ${darken(0.1, '#F5F5F5')};\n transition-duration: 0.5s;\n }\n }\n }\n .titleBuyGift {\n background: #dedede;\n border-radius: 20px 20px 0px 0px;\n h4 {\n font-size: 12px;\n font-weight: 500;\n color: #242424;\n }\n }\n\n .contentBuyGift {\n background: #fff;\n border-radius: 0 0 20px 20px;\n }\n`;\n\nexport const GiftCard = styled.div`\n form {\n > div {\n border: 1.5px solid #dedede !important;\n border-radius: 15px !important;\n }\n\n input {\n padding: 6px 0;\n color: #626262;\n }\n\n button:not(.btn-copy) {\n background-color: var(--technologicalGray);\n color: #f5f5f5;\n font-size: 14px;\n font-weight: 500;\n border-radius: 15px;\n border: none;\n :hover {\n background-color: ${lighten(0.1, '#116BFF')};\n color: ${darken(0.1, '#F5F5F5')};\n transition-duration: 0.5s;\n }\n }\n }\n\n .titleGift {\n background: #dedede;\n border-radius: 20px 20px 0px 0px;\n h4 {\n font-size: 12px;\n font-weight: 500;\n color: #242424;\n }\n }\n\n .contentGift {\n background: #fff;\n border-radius: 0 0 20px 20px;\n }\n`;\n\nexport const Introduction = styled.div`\n background-color: rgba(36, 37, 38, 1);\n border-radius: 20px;\n h3 {\n color: rgba(203, 204, 206, 1);\n }\n hr {\n background-color: rgba(51, 51, 51, 1);\n }\n p {\n color: rgba(96, 96, 96, 1);\n }\n button {\n border: none;\n border-radius: 20px;\n background-color: rgba(150, 150, 150, 1);\n color: rgba(24, 25, 26, 1);\n }\n`;\n\nexport const CopyAlert = styled.div`\n transition-duration: 0.3s;\n position: fixed;\n right: ${(props) => (props.show ? '25px' : '-150px')};\n bottom: 50px;\n`;\n\nexport const Modal = styled(ModalComponent)`\n .modal-content {\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n\n h2 {\n color: #116bff;\n font-size: 38px;\n font-family: 'Quicksand', sans-serif;\n font-weight: 700;\n line-height: 35px;\n }\n\n p {\n color: #151517 !important;\n font-size: 17px;\n font-family: 'Archivo', sans-serif;\n font-weight: 300;\n line-height: 28px;\n span {\n font-weight: 600;\n color: #151517;\n }\n }\n\n .player {\n border-radius: 25px;\n overflow: hidden;\n position: relative;\n }\n\n .video-js .vjs-big-play-button {\n background-color: #116bff !important;\n border: none !important;\n border-radius: 50% !important;\n font-size: 5em !important;\n line-height: 1.5em !important;\n height: 1.5em !important;\n width: 1.5em !important;\n margin-left: 0px !important;\n transition: 0.3s;\n transform: translate(-50%, -50%);\n margin-top: 0px;\n }\n\n .video-js:hover .vjs-big-play-button,\n .video-js .vjs-big-play-button:focus {\n -webkit-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n -moz-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n }\n\n .modal-title {\n font-weight: 600;\n font-size: 24px;\n color: #021027;\n }\n\n .modal-close {\n color: #021027;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .btn-save {\n width: 100%;\n font-weight: 500;\n font-size: 18px;\n line-height: 27px;\n color: #ffffff;\n background: #116bff;\n border-radius: 20px;\n transition-duration: 0.3s;\n padding: 18px;\n\n :hover {\n opacity: 0.8;\n }\n }\n\n .guide {\n display: block;\n color: #116bff;\n text-align: center;\n font-size: 18px;\n font-weight: 500;\n width: 100%;\n text-decoration-line: underline;\n }\n }\n @media screen and (min-width: 1200px) {\n .modal-xl {\n zoom: 0.7;\n }\n }\n @media screen and (min-width: 1400px) {\n .modal-xl {\n max-width: 1040px;\n zoom: 1;\n }\n }\n\n @media screen and (max-width: 991px) {\n .modal-content h2 {\n font-size: 23px;\n }\n\n .modal-content p {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .modal-content h2 {\n font-size: 5vw;\n }\n\n .modal-content p {\n font-size: 15px;\n }\n }\n`;\n","import styled from 'styled-components';\nimport support from '~/assets/defaults/support-new.png';\n\nexport const Container = styled.div`\n background-image: url(${support});\n background-size: cover;\n background-position: center;\n border-radius: 15px;\n min-height: 300px;\n\n /* div {\n background: rgba(255, 255, 255, 0.29);\n opacity: 0.6;\n backdrop-filter: blur(15px);\n border-radius: 12px;\n width: 100%;\n height: 50px;\n } */\n\n h4 {\n background: #ff1a50;\n\n backdrop-filter: blur(15px);\n font-weight: 500;\n font-size: 18px;\n line-height: 22px;\n color: #fff !important;\n padding: 12px;\n border-radius: 12px;\n }\n\n p {\n font-weight: 300;\n font-size: 14px;\n line-height: 17px;\n color: #200e32;\n }\n\n .link-facebook {\n display: block;\n background: rgba(255, 255, 255, 0.68);\n\n backdrop-filter: blur(15px);\n border-radius: 12px;\n text-decoration: none;\n span {\n display: block;\n color: #000;\n text-align: center;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 400;\n line-height: normal;\n }\n .title {\n display: block;\n color: #f5f5f5;\n text-align: center;\n font-family: 'Inter';\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n border-radius: 12px;\n background: #116bff;\n padding: 13px;\n }\n }\n\n .link-whatsapp {\n display: block;\n background: rgba(255, 255, 255, 0.68);\n\n backdrop-filter: blur(15px);\n border-radius: 12px;\n text-decoration: none;\n span {\n display: block;\n color: #000;\n text-align: center;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 400;\n line-height: normal;\n }\n .title {\n display: block;\n color: #f5f5f5;\n text-align: center;\n font-family: 'Inter';\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n border-radius: 12px;\n background: #0dc143;\n padding: 13px;\n }\n }\n\n .link-zoom {\n display: block;\n background: rgba(255, 255, 255, 0.68);\n\n backdrop-filter: blur(15px);\n border-radius: 12px;\n text-decoration: none;\n span {\n display: block;\n color: #000;\n text-align: center;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 400;\n line-height: normal;\n }\n .title {\n display: block;\n color: #f5f5f5;\n text-align: center;\n font-family: 'Inter';\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n border-radius: 12px;\n background: #151616;\n padding: 13px;\n }\n }\n\n @media screen and (max-width: 1199px) {\n min-height: 194px;\n }\n\n @media screen and (max-width: 991px) {\n min-height: 300px;\n }\n`;\n","import React from 'react';\nimport { Container } from './styles';\n\nconst Support: React.FC = () => {\n return (\n \n

\n Next Important Steps\n

\n\n \n \n Step 1 - Join Our Facebook Community\n \n \n Join our FB Group and Introduce yourself, we can’t wait to meet\n you!\n \n \n\n \n \n Step 2 - Join Our WhatsApp Community\n \n \n Stay in the loop! Join our WhatsApp Channel for instant\n updates.\n \n \n \n \n Step 3 - Register for Our Live Webinars\n \n \n Don't miss out! Register now to stay ahead and gain key\n insights.\n \n \n
\n );\n};\n\nexport default Support;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .video-js .vjs-big-play-button {\n top: 50%;\n left: 50%;\n }\n`;\n\nexport const VideoPlayer = styled.video`\n width: 100%;\n height: 42vh;\n`;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport videojs, { VideoJsPlayerOptions } from 'video.js';\nimport 'videojs-contrib-hls';\n\nimport { Container, VideoPlayer } from './styles';\n\ninterface IPlayerProps {\n src: string;\n id?: string;\n controls?: boolean;\n autoplay?: boolean;\n className?: string;\n thumbnail?: string;\n onPlay?(): void;\n onPause?(): void;\n callChangeTimeBySeconds?: number;\n onChangeTime?(time: number): void;\n onComplete?(): void;\n}\n\nconst Player: React.FC = ({\n src,\n id,\n controls,\n autoplay,\n className,\n thumbnail,\n onPlay,\n onPause,\n onComplete,\n}) => {\n const videoRef = useRef(null);\n\n const handlePlayVideo = useCallback(() => {\n if (onPlay) {\n onPlay();\n }\n }, [onPlay]);\n\n const handlePauseVideo = useCallback(() => {\n if (onPause) {\n onPause();\n }\n }, [onPause]);\n\n const handleCompleteVideo = useCallback(() => {\n if (onComplete) {\n onComplete();\n }\n }, [onComplete]);\n\n useEffect(() => {\n const fileType = src.split('.')[src.split('.').length - 1];\n const sources = [\n {\n src,\n type: 'video/mp4',\n },\n ];\n\n if (fileType === 'm3u8') {\n sources[0].type = 'application/x-mpegURL';\n }\n\n const options: VideoJsPlayerOptions = {\n fluid: true,\n preload: 'auto',\n html5: {\n hls: {\n enableLowInitialPlaylist: true,\n smoothQualityChange: true,\n overrideNative: true,\n },\n },\n\n autoplay: false,\n controls: true,\n sources,\n // ended: handleCompleteVideo,\n };\n\n if (videoRef.current) {\n const player = videojs(videoRef.current, options);\n // eslint-disable-next-line no-underscore-dangle\n // player.updateSourceCaches_(src);\n player.on('ended', handleCompleteVideo);\n }\n }, [handleCompleteVideo, src]);\n\n return (\n \n
\n \n Sorry, your browser doesn't support embedded videos.\n \n
\n
\n );\n};\n\nexport default Player;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\nimport { lighten } from 'polished';\n\nexport const Container = styled.div``;\n\nexport const Modal = styled(ModalComponent)`\n background-color: rgba(0, 0, 0, 0.5);\n\n h2 {\n color: #303030;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n }\n\n label {\n color: #8c8c8c;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 400;\n }\n\n input {\n color: #021027;\n\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 400;\n }\n\n .check-position {\n position: absolute;\n right: 3%;\n top: 7%;\n width: 26px;\n }\n\n .bd-dashed {\n border-radius: 16px !important;\n border: 2px dashed #ffb74a !important;\n }\n\n .bd-blue {\n border-radius: 16px;\n border: 1px solid #116bff !important;\n }\n\n .grayscale {\n filter: grayscale(0.8);\n }\n\n .color-item {\n color: #116bff !important;\n font-style: italic !important;\n }\n\n .height {\n height: 45px;\n width: 45px;\n }\n\n .teste {\n background-color: #000;\n }\n\n .step {\n div {\n background-color: #d6d6d6;\n border: solid 2px #d6d6d6;\n\n span {\n font-size: 24px;\n color: #fff;\n }\n }\n\n p {\n font-family: 'Inter';\n color: #8c8c8c;\n font-size: 17px;\n font-weight: 400;\n }\n }\n\n hr {\n background-color: #b7b7b7;\n }\n\n .terms {\n h4,\n p {\n color: #8c8c8c;\n font-family: 'Inter';\n font-size: 10px;\n font-weight: 200;\n line-height: 14px;\n b {\n font-weight: 500;\n }\n }\n }\n\n .selected-step {\n div {\n border: 1px solid #37c694;\n background-color: #fff;\n span {\n font-size: 24px;\n color: #37c694;\n font-weight: 600;\n }\n }\n p {\n font-family: 'Inter';\n color: #021027;\n font-weight: 600;\n font-size: 17px;\n }\n }\n\n .active-step {\n div {\n background-color: #37c694;\n border: solid 2px #37c694;\n\n span {\n font-size: 24px;\n color: #fff;\n font-weight: 600;\n }\n }\n p {\n color: #37c694;\n font-size: 17px;\n }\n }\n\n .active-hr {\n background-color: #37c694;\n }\n\n .bg-input {\n background-color: #f7f7f7;\n border: 0;\n height: 58px;\n border-radius: 15px;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .btn-black {\n background-color: #116bff;\n border-radius: 15px;\n font-size: 24px;\n padding: 13px 20px;\n transition-duration: 0.3s;\n font-family: 'Inter';\n font-weight: 600;\n span {\n font-size: 24px !important;\n font-weight: 600 !important;\n }\n\n :hover {\n background-color: ${lighten(0.1, '#116BFF')};\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2) !important;\n }\n }\n\n .btn-use-wallet {\n background-color: #ffb74a;\n border-radius: 10px;\n color: #000;\n font-weight: 500;\n transition-duration: 0.3s;\n }\n\n .btn-use-wallet.in-use {\n background-color: #ff1a50;\n color: #fff;\n }\n\n .modal-content {\n background: #ffffff;\n box-shadow: 19px 49px 112px rgba(192, 192, 192, 0.4),\n inset 1px 1px 2px rgba(255, 255, 255, 0.3),\n inset -1px -1px 2px rgba(138, 138, 138, 0.5);\n border-radius: 30px;\n border: 0 !important;\n }\n\n .close-button {\n background-color: transparent;\n }\n\n .btn-credit {\n color: #ababab !important;\n font-size: 14px;\n }\n\n .items {\n h2 {\n color: #081f32;\n font-size: 22px;\n }\n h3 {\n color: #303030;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 600;\n }\n h4 {\n font-size: 14px;\n span {\n font-size: 14px;\n }\n }\n p {\n font-size: 12px;\n color: #6e798c;\n }\n\n .total-color {\n color: #116bff;\n }\n\n .gradient-items {\n background: linear-gradient(\n 270.03deg,\n #fb5a43 0.02%,\n #c341ae 92.68%,\n #c341ae 99.97%\n );\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n text-fill-color: transparent;\n }\n\n span {\n color: #303030;\n\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 400;\n }\n\n .btn-cart {\n background-color: #ababab;\n border-radius: 10px;\n padding: 7.5px 20px;\n color: #fff;\n font-size: 14px;\n\n :hover {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2) !important;\n }\n }\n\n .bd-box {\n background: #ffffff;\n box-shadow: 0px 3px 10px 2px rgba(0, 0, 0, 0.05);\n border-radius: 16px;\n }\n }\n\n .price {\n color: #37c694 !important;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n }\n\n .months {\n color: #081f32 !important;\n text-align: right !important;\n font-family: 'Inter' !important;\n font-size: 14px !important;\n font-style: italic !important;\n font-weight: 400 !important;\n }\n\n @media screen and (min-width: 992px) {\n zoom: 0.7;\n }\n\n @media screen and (min-width: 1200px) {\n zoom: 0.8;\n\n .modal-xl {\n max-width: 1034px !important;\n }\n }\n\n @media screen and (min-width: 1500px) {\n zoom: 0.9;\n }\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const Loading = styled.span`\n //margin-top: 0px !important;\n /* display: flex;\n justify-content: center;\n align-items: center;\n height: 86px;\n border-radius: 20px;\n background-color: #116bff;\n width: 207px !important; */\n\n min-width: 36px;\n min-height: 36px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(farthest-side, #0000 calc(100% - 9px), #000 0);\n animation: spinner-c7wet2 1s infinite linear;\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n\nexport const CreditCards = styled.div`\n .btn-credit-card {\n border: 1px solid #69696a;\n border-radius: 20px;\n transition-duration: 0.3s;\n\n p,\n img[alt='deletar cartão'] {\n transition-duration: 0.3s;\n }\n }\n\n .btn-credit-card:hover,\n .btn-credit-card.selected {\n border-color: #116bff;\n background-color: #116bff;\n\n p,\n img[alt='deletar cartão'] {\n color: #fff;\n filter: grayscale(100%) brightness(500%);\n }\n }\n`;\n","import Swal, { SweetAlertResult } from 'sweetalert2';\nimport frown from '~/assets/animations/no-data-found.gif';\n\ninterface ISwalError {\n message: string;\n textButton: string;\n}\n\nexport default async function swalError({\n message,\n textButton,\n}: ISwalError): Promise> {\n return Swal.fire({\n title: '',\n html: `\n
\n \"frown\"\n

Something went wrong...

\n

${message}

\n
\n `,\n customClass: 'error-swal-box',\n confirmButtonText: textButton,\n });\n}\n","import { lighten } from 'polished';\nimport styled from 'styled-components';\n\nexport const Container = styled.form`\n h2 {\n color: #303030;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n }\n\n .credit-cards-group {\n overflow: auto;\n max-height: 275px;\n }\n\n .btn-primary-outline {\n border: 1px solid #116bff;\n color: #116bff;\n border-radius: 15px;\n transition-duration: 0.3s;\n\n svg {\n color: #116bff;\n transition-duration: 0.3s;\n }\n\n :hover {\n background-color: #116bff;\n color: #fff;\n\n svg {\n color: #fff;\n }\n }\n }\n\n .btn-primary-outline.hide {\n opacity: 0;\n visibility: hidden;\n height: 0;\n padding: 0 !important;\n margin: 0 !important;\n border: 0 !important;\n }\n\n .form-credit-card {\n opacity: 0;\n visibility: hidden;\n height: 0;\n transition-duration: 0.3s;\n }\n\n .form-credit-card.show {\n opacity: 1;\n visibility: visible;\n height: unset;\n }\n\n .btn-black {\n background-color: #116bff;\n border-radius: 15px;\n font-size: 24px;\n padding: 13px 20px;\n transition-duration: 0.3s;\n font-family: 'Inter';\n font-weight: 600;\n span {\n font-size: 24px !important;\n font-weight: 600 !important;\n }\n\n :hover {\n background-color: ${lighten(0.1, '#116BFF')};\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2) !important;\n }\n }\n`;\n\nexport const CreditCards = styled.div`\n .btn-credit-card {\n border: 1px solid #69696a;\n border-radius: 20px;\n transition-duration: 0.3s;\n\n p,\n img[alt='deletar cartão'] {\n transition-duration: 0.3s;\n }\n }\n\n .btn-credit-card:hover,\n .btn-credit-card.selected {\n border-color: #116bff;\n background-color: #116bff;\n\n p,\n img[alt='deletar cartão'] {\n color: #fff;\n filter: grayscale(100%) brightness(500%);\n }\n }\n`;\n\nexport const Loading = styled.span`\n min-width: 36px;\n min-height: 36px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(farthest-side, #0000 calc(100% - 9px), #000 0);\n animation: spinner-c7wet2 1s infinite linear;\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const Button = styled.button``;\n","import React, { useCallback, useState } from 'react';\nimport Swal from 'sweetalert2';\nimport { Modal } from 'react-bootstrap';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport { Button } from './styles';\n\nimport deleteIcon from '~/assets/icons/delete.svg';\n\nexport interface IReponseCreditCard {\n id: string;\n name: string;\n number: string;\n expiration: string;\n flag: string;\n primary_card: boolean;\n}\n\ninterface IRemoveCreditCardProps {\n card: IReponseCreditCard;\n onRemoveCard?(data: IReponseCreditCard): void;\n}\n\nconst RemoveCreditCard: React.FC = ({\n card,\n onRemoveCard,\n}) => {\n const { language } = useLanguage();\n const [show, setShow] = useState(false);\n\n const handleClose = useCallback(() => {\n setShow(false);\n }, []);\n\n const handleShow = useCallback(() => {\n setShow(true);\n }, []);\n\n const handleRemove = useCallback(async () => {\n try {\n await api.delete(`payments/customers/credit-cards/${card.id}`);\n Swal.fire('Okay!', 'Successfully deleted.', 'success').then(() => {\n if (onRemoveCard) {\n onRemoveCard(card);\n }\n handleClose();\n });\n } catch (error) {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n }, [card, handleClose, language.error_component.error_message, onRemoveCard]);\n\n return (\n <>\n \n \"deletar\n \n\n \n \n \n {language.subscriptions_cards.h4_2}\n \n \n \n

\n {language.subscriptions_cards.p}\n

\n
\n \n {language.subscriptions_cards.button_5}\n \n \n {language.subscriptions_cards.button_6}\n \n
\n
\n \n \n \n );\n};\n\nexport default RemoveCreditCard;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { AiOutlinePlus } from 'react-icons/ai';\nimport { CardElement, useElements, useStripe } from '@stripe/react-stripe-js';\n\nimport api from '~/services/api';\nimport { useAuth } from '~/hooks/Auth';\nimport swalError from '~/utils/swalError';\n\nimport { Container, CreditCards, Loading } from './styles';\nimport visa from '~/assets/icons/cc-visa-dark.svg';\nimport mastercard from '~/assets/icons/cc-mastercard-dark.svg';\nimport discover from '~/assets/icons/cc-discover-dark.svg';\nimport amex from '~/assets/icons/cc-amex-dark.svg';\nimport ccDefault from '~/assets/icons/cc-default.svg';\nimport RemoveCreditCard from '../RemoveCreditCard';\n\ninterface IResponseCreditCard {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n address: string;\n primary_card: boolean;\n}\n\nexport interface ICreditCard {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n brandIcon: string;\n primary_card: boolean;\n}\n\ninterface creditCardProps {\n type: 'new' | 'change' | 'sale';\n onChangeCreditCardSelected(creditCard: ICreditCard): void;\n className?: string;\n}\n\nconst CreditCard: React.FC = ({\n type,\n onChangeCreditCardSelected,\n className,\n}) => {\n const stripe = useStripe();\n const elements = useElements() as any;\n const { user } = useAuth();\n const [creditCards, setCreditCards] = useState([]);\n const [creditCardSelected, setCreditCardSelected] = useState(\n {} as ICreditCard\n );\n const [addNewCreditCard, setAddNewCreditCard] = useState(false);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n api\n .get('payments/customers/credit-cards')\n .then((response) => {\n let selectedCard: ICreditCard | undefined;\n const data: ICreditCard[] = response.data.map((creditCard) => {\n let brandIcon;\n switch (creditCard.brand) {\n case 'Visa':\n brandIcon = visa;\n break;\n\n case 'MasterCard':\n brandIcon = mastercard;\n break;\n\n case 'Discover':\n brandIcon = discover;\n break;\n\n case 'American Express':\n brandIcon = amex;\n break;\n\n default:\n brandIcon = ccDefault;\n break;\n }\n\n const creditCardData = {\n id: creditCard.id,\n name: creditCard.name,\n number: creditCard.number,\n expirity: creditCard.expirity,\n primary_card: creditCard.primary_card,\n brand: creditCard.brand,\n brandIcon,\n };\n\n if (creditCard.primary_card) {\n selectedCard = creditCardData;\n }\n\n return creditCardData;\n });\n\n if (!selectedCard) {\n // eslint-disable-next-line prefer-destructuring\n selectedCard = data[0];\n }\n setCreditCardSelected(selectedCard);\n setCreditCards(data);\n });\n }, []);\n //\n const handleSubmitPaymentMethod = useCallback(\n async (e) => {\n try {\n e.preventDefault();\n setLoading(true);\n const result = await stripe?.createToken(\n elements.getElement(CardElement)\n );\n\n if (result?.token || Object.keys(creditCardSelected).length === 0) {\n const response = await api.post('payments/payment-methods', {\n type: 'card',\n token: result?.token?.id,\n customer_id: user.customer_id,\n });\n\n const formData = {\n id: response.data.id,\n user_id: user.id,\n name: result?.token?.card?.name,\n number: result?.token?.card?.last4,\n expirity: `${result?.token?.card?.exp_month}/${result?.token?.card?.exp_year}`,\n brand: result?.token?.card?.brand,\n primary_card: false,\n };\n\n const responseCreditCard = await api.post('credit-cards', formData);\n\n let brandIcon;\n switch (responseCreditCard.data.brand) {\n case 'Visa':\n brandIcon = visa;\n break;\n\n case 'MasterCard':\n brandIcon = mastercard;\n break;\n\n case 'Discover':\n brandIcon = discover;\n break;\n\n case 'American Express':\n brandIcon = amex;\n break;\n\n default:\n brandIcon = ccDefault;\n break;\n }\n\n onChangeCreditCardSelected({\n id: responseCreditCard.data.id,\n name: responseCreditCard.data.name,\n number: responseCreditCard.data.number,\n expirity: responseCreditCard.data.expirity,\n primary_card: responseCreditCard.data.primary_card,\n brand: responseCreditCard.data.brand,\n brandIcon,\n });\n setCreditCardSelected({\n id: responseCreditCard.data.id,\n name: responseCreditCard.data.name,\n number: responseCreditCard.data.number,\n expirity: responseCreditCard.data.expirity,\n primary_card: responseCreditCard.data.primary_card,\n brand: responseCreditCard.data.brand,\n brandIcon,\n });\n }\n\n setLoading(false);\n onChangeCreditCardSelected(creditCardSelected);\n } catch (error) {\n setLoading(false);\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n },\n [\n creditCardSelected,\n elements,\n onChangeCreditCardSelected,\n stripe,\n user.customer_id,\n user.id,\n ]\n );\n\n const handleClick = useCallback(async (creditCard) => {\n setCreditCardSelected(creditCard);\n }, []);\n\n const handleDeleteCreditCard = useCallback(\n async (creditCard) => {\n const newCreditCards = creditCards.slice();\n if (creditCard.primary_card && newCreditCards.length > 1) {\n if (creditCard === newCreditCards[0]) {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCards[1].id}`\n );\n newCreditCards[1].primary_card = true;\n } else {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCards[0].id}`\n );\n newCreditCards[0].primary_card = true;\n }\n }\n const cards = newCreditCards.filter(\n (creditCardData) => creditCardData.id !== creditCard.id\n );\n\n const primaryCard = newCreditCards.find(\n (creditCardData) => !!creditCardData.primary_card\n );\n\n if (primaryCard) {\n setCreditCardSelected(primaryCard);\n }\n setCreditCards(cards);\n },\n [creditCards]\n );\n\n return (\n \n
\n
\n

Customer Checkout

\n
\n {creditCards.length > 0 && (\n
\n \n {creditCards.map((creditCard) => (\n
\n handleClick(creditCard)}\n className={`btn btn-credit-card p-3 w-100 ${\n creditCardSelected.id === creditCard.id ? 'selected' : ''\n }`}\n >\n
\n
\n \n
\n
\n

\n {creditCard.brand}:  ****-\n {creditCard.number}\n

\n
\n
\n \n
\n
\n \n
\n ))}\n
\n
\n )}\n
\n setAddNewCreditCard(true)}\n >\n Add new credit card\n \n \n
\n {creditCards.length > 0 && (\n <>\n
\n

New credit card

\n \n )}\n \n
\n
\n
\n
\n \n {loading ? (\n \n ) : (\n `${type === 'sale' ? 'Next' : 'Save'}`\n )}\n \n
\n \n
\n );\n};\n\nexport default CreditCard;\n","export const { format: formatPrice } = new Intl.NumberFormat('en', {\n style: 'currency',\n currency: 'USD',\n});\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n/* eslint-disable react/no-danger */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { IoMdClose } from 'react-icons/io';\nimport { AxiosResponse } from 'axios';\n\nimport api from '~/services/api';\n\nimport { Container, Modal, Loading } from './styles';\n\nimport safe from '~/assets/defaults/safe_secure.svg';\nimport money from '~/assets/defaults/money_back.svg';\nimport privacy from '~/assets/defaults/privacy_proteced.svg';\nimport check from '~/assets/icons/check-payment.svg';\nimport checkPlus from '~/assets/icons/check-plus.svg';\nimport swalError from '~/utils/swalError';\nimport { useAuth } from '~/hooks/Auth';\nimport CreditCard, { ICreditCard } from '../CreditCard';\nimport InputCheckbox from '../InputCheckbox';\nimport { formatPrice } from '~/utils/format';\n\nexport interface IOption {\n price: number;\n selected?: boolean;\n name?: string;\n nameSummary?: string;\n secondary?: boolean;\n src?: string;\n installments?: number;\n period?: number;\n type?: 'lifetime' | 'subscription';\n interval?: 'day' | 'month' | 'week' | 'year';\n productSlug?: string;\n unSelectable?: boolean;\n trial_period_days?: number;\n}\n\ninterface IPayment {\n show: boolean;\n onHide(): void;\n productName: string;\n btnText: string;\n onSuccessfullyPaid(data: any): void;\n productSlug?: string;\n options: IOption[];\n}\n\nconst Payment: React.FC = ({\n show,\n onHide,\n productName,\n btnText,\n onSuccessfullyPaid,\n productSlug,\n options: optionsData,\n}) => {\n const { user, updateUser } = useAuth();\n const [step, setStep] = useState(1);\n const [productId, setProductId] = useState('');\n const [loading, setLoading] = useState(false);\n const [creditCardSelected, setCreditCardSelected] = useState(\n {} as ICreditCard\n );\n const [options, setOptions] = useState([]);\n const [optionsSecondary, setOptionsSecondary] = useState([]);\n const [optionSelected, setOptionSelected] = useState(\n undefined\n );\n const [totalPrice, setTotalPrice] = useState(0);\n const [value, setValue] = useState([]);\n const [useWallet, setUseWallet] = useState(false);\n const [discount, setDiscount] = useState(0);\n\n useEffect(() => {\n const optionSelectedData = optionsData.find((option) => option.selected);\n if (optionSelectedData) {\n setOptionSelected(optionSelectedData);\n }\n\n setOptions(optionsData.filter((option) => !option.secondary));\n setOptionsSecondary(optionsData.filter((option) => option.secondary));\n }, [optionsData]);\n\n useEffect(() => {\n console.log(productSlug);\n api.get(`products/${productSlug}`).then((response) => {\n setProductId(response.data.id);\n });\n }, [productSlug, show]);\n\n useEffect(() => {\n const newPrices = optionsSecondary\n .filter((optionData) => optionData.selected)\n .map((optionData) => optionData.price);\n\n const totalData = newPrices.reduce((total, price) => total + price, 0);\n setTotalPrice(totalData);\n }, [optionsSecondary]);\n\n const handleSetStep = useCallback(() => {\n switch (step) {\n case 1:\n setStep(step + 1);\n\n break;\n\n default:\n setStep(1);\n break;\n }\n }, [step]);\n\n const handleClickConfirmPayment = useCallback(async () => {\n try {\n const optionsSelected = [\n optionSelected,\n ...optionsSecondary.filter((option) => option.selected),\n ];\n if (optionsSelected.length > 0) {\n setLoading(true);\n let discountData = discount;\n const responsesData = await new Promise((resolve) => {\n const responses: AxiosResponse[] = [];\n optionsSelected.forEach(async (option, index) => {\n const responseProduct = await api.get(\n `products/${option?.productSlug || productSlug}`\n );\n const response = await api.post(\n `payments/credit-cards/${user.id}`,\n {\n payment_method: creditCardSelected.id,\n price: option?.price,\n product_id: responseProduct.data.id,\n brand: creditCardSelected.brand,\n number: creditCardSelected.number,\n period: option?.period,\n installments: option?.installments,\n type: option?.type,\n interval: option?.interval,\n trial_period_days: option?.trial_period_days,\n discount:\n option && discountData >= option.price\n ? option.price\n : discountData,\n }\n );\n\n if (option && discountData >= option.price) {\n discountData -= option.price;\n }\n\n responses.push(response.data);\n if (optionsSelected.length === index + 1) {\n resolve(responses);\n }\n });\n });\n\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n wallet: {\n ...user.affiliate.wallet,\n available_amount: (\n parseFloat(user.affiliate.wallet.available_amount) - discount\n ).toFixed(2),\n },\n },\n });\n\n onSuccessfullyPaid(responsesData);\n setLoading(false);\n }\n } catch (error) {\n setLoading(false);\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n }, [\n optionSelected,\n optionsSecondary,\n discount,\n updateUser,\n user,\n onSuccessfullyPaid,\n productSlug,\n creditCardSelected.id,\n creditCardSelected.brand,\n creditCardSelected.number,\n ]);\n\n const handleSelectProduct = useCallback(\n (option: IOption) => {\n const newOptions = options.map((optionData) => {\n let { selected } = optionData;\n if (optionData.name === option.name) {\n selected =\n optionData.src === option.src &&\n (option.unSelectable || !optionData.selected);\n }\n\n return {\n ...optionData,\n selected,\n };\n });\n\n const hasOptionSelected = newOptions.find(\n (optionData) => optionData.selected\n );\n\n if (!hasOptionSelected) {\n setOptionsSecondary((state) =>\n state.map((optionData) => ({ ...optionData, selected: false }))\n );\n }\n\n setOptions(newOptions);\n\n if (!option.secondary) {\n setOptionSelected((state) =>\n state && state.src === option.src && !option.unSelectable\n ? undefined\n : option\n );\n }\n },\n [options]\n );\n\n const handleSelectSecondaryProduct = useCallback(\n (option: IOption) => {\n const optionIndex = optionsSecondary.findIndex(\n (optionData) => optionData.src === option.src\n );\n\n const newOptions = optionsSecondary.map((optionData, index) => {\n let { selected } = optionData;\n if (optionData.name === option.name) {\n selected =\n optionData.src === option.src &&\n (option.unSelectable || !optionData.selected);\n }\n\n if (optionsSecondary[optionIndex].selected && index > optionIndex) {\n selected = false;\n }\n\n return {\n ...optionData,\n selected,\n };\n });\n\n setOptionsSecondary(newOptions);\n\n const newPrices = newOptions\n .filter((optionData) => optionData.selected)\n .map((optionData) => optionData.price);\n\n const totalData = newPrices.reduce((total, price) => total + price, 0);\n setTotalPrice(totalData);\n },\n\n [optionsSecondary]\n );\n\n const handleChangeCardSelected = useCallback(\n (creditCardData: ICreditCard) => {\n setCreditCardSelected(creditCardData);\n setStep(2);\n },\n []\n );\n\n const handleClickUseWallet = useCallback(() => {\n setUseWallet((oldState) => !oldState);\n }, []);\n\n const orderTotal = useMemo(() => {\n if (useWallet) {\n const available_amount = parseFloat(\n user.affiliate.wallet.available_amount\n );\n if (productName !== 'Affiliate Program Community Access & AI Tools') {\n if (optionSelected) {\n const total = optionSelected.price + totalPrice;\n if (available_amount >= total) {\n setDiscount(total);\n return 0;\n }\n\n setDiscount(available_amount);\n return total - available_amount;\n }\n } else {\n if (available_amount >= totalPrice) {\n setDiscount(totalPrice);\n return 0;\n }\n setDiscount(available_amount);\n return totalPrice - available_amount;\n }\n }\n\n setDiscount(0);\n if (optionSelected) {\n return optionSelected.price + totalPrice;\n }\n\n return totalPrice;\n }, [optionSelected, productName, totalPrice, useWallet, user]);\n\n return (\n \n \n \n
\n \n \n \n
\n
\n
\n 1 ? 'active-step cursor-pointer' : ''\n } px-0 col-3 col-lg-2 text-center`}\n onClick={() => setStep(1)}\n >\n \n 1\n
\n

Payment Method

\n
\n
\n
1 ? 'active-hr' : ''} />\n
\n setStep(2)}\n >\n \n 2\n \n

Confirm

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

Item

\n
\n
\n

Price

\n
\n\n
\n \n
\n \n \n ${(optionSelected?.price || 0).toFixed(2)}\n \n {/* {(downsellPage ||\n (blackFridayPage && optionSelected?.period)) && (\n \n in {optionSelected?.period} month\n {optionSelected?.period !== undefined &&\n optionSelected?.period > 1 &&\n 's'}{' '}\n ${(optionSelected?.price || 0).toFixed(2)}\n \n )} */}\n
\n\n {options.map((option, index) => (\n {\n handleSelectProduct(option);\n setValue([option.price]);\n }}\n >\n {option.selected && (\n \"Check\"\n )}\n {!option.selected && option.secondary && (\n \n )}\n \n \n ))}\n\n {optionSelected &&\n optionsSecondary.map((option, index) => (\n \n {(index === 0 ||\n (optionsSecondary[index - 1] &&\n optionsSecondary[index - 1].selected)) && (\n {\n handleSelectSecondaryProduct(option);\n }}\n >\n {option.selected && (\n \n )}\n {!option.selected && option.secondary && (\n \n )}\n \n \n )}\n \n ))}\n
\n

Item

\n
\n
\n

Price

\n
\n\n
\n \n
\n
\n \n ${(optionSelected?.price || 0).toFixed(2)}\n {optionSelected?.interval === 'month' && '/Mo'}\n \n
\n {optionSelected &&\n optionsSecondary.map((option, index) => (\n \n {optionsSecondary[0].selected &&\n optionsSecondary[index] &&\n optionsSecondary[index].selected && (\n <>\n
\n \n {optionsSecondary[index].nameSummary}\n \n
\n
\n \n ${(option.price || 0).toFixed(2)}\n {option.interval === 'month' && '/Mo'}\n \n
\n \n )}\n
\n ))}\n
\n {parseFloat(user.affiliate.wallet.available_amount) > 0 && (\n
\n
\n
\n \n You have{' '}\n {formatPrice(\n parseFloat(user.affiliate.wallet.available_amount)\n )}{' '}\n available in your wallet\n \n
\n
\n \n {useWallet ? 'Remove wallet' : 'Use wallet'}\n \n
\n
\n
\n )}\n {useWallet && (\n
\n
\n
\n Discount\n
\n
\n \n -${discount.toFixed(2)}\n \n
\n
\n
\n )}\n
\n

Order Total:

\n
\n
\n

\n ${' '}\n <>\n {useWallet &&\n optionSelected &&\n optionSelected.type === 'subscription' ? (\n <>\n {optionSelected.period === 1 &&\n `${orderTotal.toFixed(2)} Now - ${formatPrice(\n optionSelected.price\n )} from next month`}\n {optionSelected.period === 12 &&\n `${orderTotal.toFixed(2)} Now - ${formatPrice(\n optionSelected.price\n )} from next year`}\n \n ) : (\n orderTotal.toFixed(2)\n )}\n \n

\n
\n
\n \n\n
\n \n {loading ? (\n \n \n Processing Payment, Please Hold...\n \n ) : (\n btnText\n )}\n \n {useWallet && (\n \n You are using the available balance in your wallet and there\n will be{' '}\n {formatPrice(\n parseFloat(user.affiliate.wallet.available_amount) -\n discount\n )}{' '}\n left in your wallet.\n \n )}\n
\n \n
\n \n
\n
\n
\n
\n \"GUARANTEED\n
\n
\n \"MONEY-BACK\n
\n
\n \"PRIVACY\n
\n
\n

\n Terms of Sale:\n

\n

\n Your purchase will appear on your bank statement under the\n name \"SmartTech Labs, Inc.\" The geographic location\n of your computer has been determined and recorded. All\n attempts at fraud will be prosecuted. Information submitted\n in conjunction with this order is handled within the\n constraints of our privacy policy. Your name, phone, and\n email address may be provided to 3rd parties completion of\n this purchase. You agree to receive marketing emails from\n our company. By purchasing you agree to allow us to send\n information to you via phone and SMS messaging. Message &\n Data rates may apply. Reply stop to be removed. We will\n instantly send your login information to our online training\n program once your purchase is completed. Please review our\n terms and conditions for the 30 day MBG refund policy on\n this purchase.\n

\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default Payment;\n","import React, { useCallback, useState, useEffect, useMemo } from 'react';\n\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\nimport { zonedTimeToUtc } from 'date-fns-tz';\nimport {\n isBefore,\n differenceInMilliseconds,\n parseISO,\n addDays,\n} from 'date-fns';\n\nimport { IoMdClose } from 'react-icons/io';\nimport { BsArrowRightCircle } from 'react-icons/bs';\nimport { useAuth } from '~/hooks/Auth';\nimport { useNextStep } from '~/hooks/NextStep';\nimport { useLanguage } from '~/hooks/Language';\n\nimport {\n Container,\n Profile,\n Social,\n CopyAlert,\n Avatar,\n BoxWelcome,\n Waitlist,\n AvatarWaitlist,\n AffiliateLink,\n Modal,\n BoxAiBot,\n} from './styles';\nimport Support from '~/pages/Lesson/Support';\nimport api from '~/services/api';\nimport copy from '~/assets/icons/copy.svg';\nimport attention from '~/assets/icons/attention-icon.svg';\nimport arrows from '~/assets/icons/arrows-double-right.svg';\nimport twitter from '~/assets/icons/twitter-icon-blue.svg';\nimport facebook from '~/assets/icons/facebook-icon-blue.svg';\nimport telegram from '~/assets/icons/telegram-icon-blue.svg';\nimport instagram from '~/assets/icons/instagram-icon-blue.svg';\nimport founderIcon from '~/assets/icons/founder-icon.svg';\nimport bgFirstMobile from '~/assets/defaults/bg-first-mobile-new.png';\nimport bgSecondMobile from '~/assets/defaults/bg-second-mobile.png';\nimport bgLast from '~/assets/defaults/vip-last.png';\nimport aiConnector from '~/assets/defaults/bg-ai-connector.png';\nimport thumbModal from '~/assets/defaults/thumb-video-modal.png';\n\nimport Player from '../Player';\nimport Payment, { IOption } from '../Payment';\n\ninterface IParams {\n slug: string;\n slugLesson: string;\n}\n\nconst Info: React.FC = () => {\n const { user, updateUser } = useAuth();\n const { language } = useLanguage();\n const params = useParams();\n const history = useHistory();\n const { nextStep } = useNextStep();\n const [copied, setCopied] = useState(false);\n const location = useLocation();\n const [loading, setLoading] = useState(true);\n const [show, setShow] = useState(false);\n const [miniBox, setMiniBox] = useState(false);\n const [referrers, setReferrers] = useState('00');\n const [link, setLink] = useState('');\n const [showPayment, setShowPayment] = useState(false);\n const [showPaymentVip, setShowPaymentVip] = useState(false);\n const [isAffiliate, setIsAffiliate] = useState(true);\n const [isVip, setIsVip] = useState(true);\n const [orderDate, setOrderDate] = useState(undefined);\n const lessonCardBot = [\n 'the-difference-between-traditional-and-online-businesses',\n 'the-truth-about-money',\n 'time-management',\n 'paradigm-shift',\n 'setup-your-ai-connector-bot',\n ];\n\n const lessonsMiniBox = [\n 'setting-up-your-offers',\n 'installing-metamask',\n 'setting-up-the-profiti-offer',\n 'buying-ethereum-with-debit-card',\n 'buy-ethereum-at-gemini',\n ];\n\n const pageLessons = location.pathname.match(/\\/lessons.*/);\n\n const options = useMemo(() => {\n if (user.affiliate.type.toLowerCase().includes('vip')) {\n return [\n {\n price: 47,\n src: 'https://cdn.autoaffiliate.ai/files/become-affiliate-app.png',\n period: 1,\n type: 'subscription',\n interval: 'month',\n name: 'affiliate',\n nameSummary: 'Affiliate Program Community Access & AI Tools',\n productSlug: 'affiliate',\n selected: true,\n unSelectable: true,\n trial_period_days: user.affiliate.type\n .toLowerCase()\n .includes('founder')\n ? 45\n : undefined,\n },\n ];\n }\n\n return [\n {\n price: 47,\n src: 'https://cdn.autoaffiliate.ai/files/become-affiliate-app.png',\n period: 1,\n type: 'subscription',\n interval: 'month',\n name: 'affiliate',\n nameSummary: 'Affiliate Program Community Access & AI Tools',\n productSlug: 'affiliate',\n selected: true,\n unSelectable: true,\n trial_period_days: user.affiliate.type.toLowerCase().includes('founder')\n ? 90\n : undefined,\n },\n {\n price: user.affiliate.type.toLowerCase().includes('founder vip')\n ? 0\n : 97,\n src: 'https://cdn.autoaffiliate.ai/files/upgrade-vip-97-app.png',\n type: 'lifetime',\n name: 'vip',\n secondary: true,\n nameSummary: 'VIP Affiliate Upgrade',\n productSlug: 'vip-upgrade',\n },\n ];\n }, [user.affiliate.type]);\n\n const timeZone = 'America/New_York';\n\n const memoizedTargetDate = useMemo(() => {\n const date = zonedTimeToUtc(orderDate || 0, timeZone);\n\n return date;\n }, [orderDate]);\n\n const calculateTimeRemaining = useCallback(() => {\n const now = new Date();\n const difference = differenceInMilliseconds(memoizedTargetDate, now);\n\n if (difference <= 0) {\n return { days: 0, hours: 0, minutes: 0, seconds: 0 };\n }\n\n const days = Math.floor(difference / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n (difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((difference % (1000 * 60)) / 1000);\n\n return { days, hours, minutes, seconds };\n }, [memoizedTargetDate]);\n\n const [timeRemaining, setTimeRemaining] = useState(calculateTimeRemaining());\n\n useEffect(() => {\n const intervalId = setInterval(() => {\n setTimeRemaining(calculateTimeRemaining());\n }, 1000);\n\n return () => clearInterval(intervalId);\n }, [calculateTimeRemaining]);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n\n useEffect(() => {\n api\n .get('orders/users/b060defe-695a-4ddd-9827-5350c3302f00')\n .then((response) => {\n setOrderDate(addDays(parseISO(response.data.created_at), 7));\n setIsAffiliate(true);\n })\n .catch(() => {\n setIsAffiliate(false);\n });\n }, []);\n\n useEffect(() => {\n api\n .get('orders/users/16ea3f78-caaa-4af0-afcd-503cbdcb465e')\n .then(() => {\n setIsVip(true);\n })\n .catch(() => {\n setIsVip(false);\n });\n }, []);\n\n useEffect(() => {\n api.get(`referrers/${user.affiliate.id}`).then((response) => {\n setReferrers(response.data.length.toString().padStart(2, '0'));\n });\n }, [user.affiliate.id]);\n\n useEffect(() => {\n if (\n params.slugLesson === 'setting-up-your-offers' ||\n params.slugLesson === 'setting-up-the-profiti-offer'\n ) {\n api\n .get(\n `offers/affiliates/${user.referrer?.affiliate_id}/2ffe225b-fbad-4521-a68e-c98e43e4f99b`\n )\n .then((response) => {\n if (\n response.data.affiliateOffer &&\n Object.keys(response.data.affiliateOffer).length > 0\n ) {\n setLink(response.data.affiliateOffer.url);\n } else {\n setLink(response.data.link);\n }\n });\n }\n }, [params.slugLesson, user.referrer]);\n\n const copyUrl = useCallback(() => {\n const el = document.createElement('textarea');\n el.value = `${process.env.REACT_APP_URL}/i/${user.referral_code}`;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 1000);\n }, [user.referral_code]);\n\n const handleShare = useCallback(async () => {\n try {\n await navigator.share({\n url: `https://autoaffiliate.ai/i/${user.referral_code}`,\n });\n } catch (error) {\n // console.error('Error sharing:', error);\n }\n }, [user.referral_code]);\n\n const handleClose = useCallback(() => {\n setShow(false);\n }, []);\n\n const handleShow = useCallback(() => {\n setShow(true);\n }, []);\n\n useEffect(() => {\n if (lessonsMiniBox.includes(nextStep.slug)) {\n setMiniBox(true);\n } else {\n setMiniBox(false);\n }\n }, [lessonsMiniBox, nextStep.slug]);\n\n const handleSuccessfullyPaid = useCallback(\n (data) => {\n const vipProduct = data.find(\n (dataAux: any) =>\n dataAux.order.product_id === '16ea3f78-caaa-4af0-afcd-503cbdcb465e'\n );\n\n let type = vipProduct ? 'Vip Affiliate' : 'Affiliate';\n if (user.affiliate.type.toLowerCase().includes('founder')) {\n type = vipProduct ? 'Vip Founder' : 'Founder';\n }\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n type,\n },\n });\n setShowPayment(false);\n setShowPaymentVip(false);\n\n if (vipProduct) {\n setIsVip(true);\n setIsAffiliate(true);\n } else {\n setIsAffiliate(true);\n setIsVip(false);\n setOrderDate(addDays(new Date(), 7));\n }\n },\n [updateUser, user]\n );\n\n const showCardVip = useMemo(() => {\n const nowUtc = new Date();\n const compareDate = zonedTimeToUtc(orderDate || 0, timeZone);\n return isBefore(nowUtc, compareDate);\n }, [orderDate]);\n\n return (\n \n {pageLessons && (\n <>\n {location.pathname !== '/lessons/welcome' &&\n location.pathname !== '/lessons/welcome/' && (\n \n
\n \"Attention\n

Ready to take action and set up your offers?

\n
\n
\n

\n If you've got a solid understanding of everything, let's get\n started and set up your first offer! Otherwise, continue\n watching the onboarding videos\n

\n \n history.push(\n `${process.env.PUBLIC_URL}/profile/my-purchases`\n )\n }\n >\n Set up Your First Offer{' '}\n \"Double\n \n
\n )}\n {miniBox && (\n \n
\n \n
\n\n \n \n )}\n\n {!isAffiliate && (\n \n
\n
\n

\n Earn 1K Per Referral!\n

\n
\n
\n \n
\n

First

\n

Income Stream

\n
\n
\n

\n Upgrade to our affiliate program open the gates to\n incredible commissions and{' '}\n \n gain free access to all our base products.\n \n

\n

\n By joining our affiliate program,{' '}\n \n you can earn up to 60% commissions.\n {' '}\n Experience easy earning potential with our cutting-edge\n tools and support.\n

\n setShowPayment(true)}\n className=\"text-center\"\n >\n BECOME AN AFFILIATE TODAY!\n \n
\n
\n
\n\n {false && (\n <>\n
\n
\n

\n Get Your Affiliate Link\n

\n
\n
\n \n
\n

Third

\n

Income Stream

\n
\n
\n

\n Click the link below to get your affiliate link for\n Travel Gig the perfect blend of travel and income in\n the gig economy with Travel Gig.\n

\n

\n By guiding others to affordable vacation experiences,\n you create a second income income stream and unlock\n exclusive discounted prices for your own incredible\n getaways.\n

\n \n SIGN UP FOR TRAVEL GIG\n \n
\n
\n
\n \n )}\n {lessonCardBot.includes(params.slugLesson) && (\n
\n
\n

\n Setup Your AI Bot\n

\n
\n
\n \n
\n

\n AI
\n Connector\n

\n
\n
\n

\n Automate your success with the AI Connector Bot! Unlock\n it after signing up for our offers to streamline your\n online business and skyrocket your income. Don't miss\n out on this opportunity to maximize your earning\n potential.\n

\n

\n Set up your AI Connector Bot today and watch your\n business thrive!\n

\n\n \n Download AI Connector\n \n
\n
\n
\n )}\n
\n )}\n {!isVip && showCardVip && (\n \n
\n
\n

\n VIP LAST CHANCE\n

\n
\n
\n
\n \n
\n
\n
\n
\n \n {timeRemaining.days}\n \n \n {timeRemaining.days > 1 ? 'Days' : 'Day'}\n \n
\n
\n \n {timeRemaining.hours}\n \n \n {timeRemaining.hours > 1 ? 'Hrs' : 'Hr'}\n \n
\n
\n
\n
\n \n {timeRemaining.minutes}\n \n \n {timeRemaining.minutes > 1 ? 'Mins' : 'Min'}\n \n
\n
\n \n {timeRemaining.seconds}\n \n \n {timeRemaining.seconds > 1 ? 'Secs' : 'Sec'}\n \n
\n
\n
\n
\n
\n
\n

\n Earn 60% commissions on all our base\n products!\n

\n

\n Upgrade within 7 days of becoming an\n affiliate to get a super discounted rate.\n

\n

\n The price triples once the timer hits zero. Don’t miss\n out!”\n

\n setShowPaymentVip(true)}\n className=\"text-center\"\n >\n UPGRADE TO 60% NOW!\n \n
\n
\n
\n
\n )}\n\n \n
\n

Member Status

\n
\n
\n
\n
\n \n
\n
\n \n {user.name.trim()}\n \n {user.affiliate.type === 'Founder' && (\n \n )}\n
\n

\n {user.affiliate.type}\n

\n
\n
\n {/*
\n

\n Waitlist\n
\n Position\n

\n

\n {user.waitlist && user.waitlist.position > 0\n ? user.waitlist.position.toString().padStart(2, '0')\n : '00'}\n

\n
*/}\n
\n

Your Referrals

\n

{referrers}

\n
\n
\n
\n

\n Refer your friends & earn rewards\n

\n \n {`autoafiiliate.ai/i/${user.referral_code}`}\n \"copy\"\n \n\n \n {`autoaffiliate.ai/i/${user.referral_code}`}\n\n \"Copy\"\n \n
\n
\n
\n \n )}\n {!pageLessons && (\n
\n \n
\n \n
\n\n

\n {user.name.trim()}\n

\n

\n {user.affiliate.type}\n

\n
\n
\n

\n {language.footer.h2}\n

\n

\n {language.footer.p_1}\n

\n \n {`autoafiiliate.ai/i/${user.referral_code}`}\n \"copy\"\n \n\n \n {`autoaffiliate.ai/i/${user.referral_code}`}\n\n \"Copy\"\n \n
\n
\n )}\n \n
\n

\n Join our community and follow us on social media\n

\n
\n
\n

\n IMPORTANT: Stay connected with us and the community, enjoying and\n learning more.\n

\n
\n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n
\n
\n
\n {pageLessons && (\n
\n \n
\n )}\n \n

{language.footer.copy}

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

\n Congrats on taking action!{' '}\n \n 🎉\n \n

\n

\n You were selected to skip the waitlist and start{' '}\n seeing for yourself how AI Connector works\n

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

\n \n You can now download and install the AI Connector bot by clicking\n the button below.\n \n

\n

\n {' '}\n Keep in mind that in order to start earning with it you still need\n to signup and connect your offer affiliate links.\n

\n
\n \n
\n \n Download AI Connector Now\n \n \n \n Here is the step by step guide shown in the video\n \n
\n
\n \n setShowPayment(false)}\n options={options}\n />\n setShowPaymentVip(false)}\n options={[\n {\n price: 97,\n src: 'https://cdn.autoaffiliate.ai/files/upgrade-vip-97-app.png',\n type: 'lifetime',\n name: 'vip',\n selected: true,\n unSelectable: true,\n nameSummary: 'VIP Affiliate Upgrade',\n productSlug: 'vip-upgrade',\n },\n ]}\n />\n
\n );\n};\n\nexport default Info;\n","import styled, { css } from 'styled-components';\n\nimport dashboard from '~/assets/icons/dashboard-icon.svg';\nimport dashboardActive from '~/assets/icons/dashboard-icon-active.svg';\nimport courses from '~/assets/icons/courses-icon.svg';\nimport coursesActive from '~/assets/icons/courses-icon-active.svg';\nimport profile from '~/assets/icons/profile-icon.svg';\nimport profileActive from '~/assets/icons/profile-icon-active.svg';\nimport resources from '~/assets/icons/resources-icon.svg';\nimport resourcesActive from '~/assets/icons/resources-icon-active.svg';\nimport wallets from '~/assets/icons/wallet-icon.svg';\nimport walletsActive from '~/assets/icons/wallet-icon-active.svg';\nimport referrals from '~/assets/icons/my-referrals-icon.svg';\nimport referralsActive from '~/assets/icons/my-referrals-icon-active.svg';\nimport socialMedia from '~/assets/icons/social-media-icon.svg';\nimport socialMediaActive from '~/assets/icons/social-media-icon-active.svg';\nimport notification from '~/assets/icons/notification-icon.svg';\nimport notificationActive from '~/assets/icons/notification-icon-active.svg';\nimport trainings from '~/assets/icons/trainings-icon.svg';\nimport trainingActive from '~/assets/icons/trainings-icon-active.svg';\nimport traffic from '~/assets/icons/traffic-icon.svg';\nimport trafficActive from '~/assets/icons/traffics-icon-active.svg';\nimport leaderboard from '~/assets/icons/leaderboard-icon.svg';\nimport leaderboardActive from '~/assets/icons/leaderboard-icon-active.svg';\n\nimport logout from '~/assets/icons/log-out-icon.svg';\nimport logoutActive from '~/assets/icons/log-out-icon-active.svg';\n\ninterface IMenuProps {\n active: boolean;\n}\n\nexport const Container = styled.header`\n position: fixed;\n top: 0;\n background: #ffffff;\n z-index: 100;\n\n .btn-idiom {\n color: #dadada !important;\n img {\n width: 22px;\n height: 22px;\n transition-duration: 0.3s;\n filter: grayscale(1);\n border-radius: 50%;\n }\n\n :hover img,\n .active-idiom {\n filter: grayscale(0);\n }\n :hover,\n :focus {\n color: #8c8c8c !important;\n }\n }\n\n .flag-text-light {\n color: #8c8c8c !important;\n }\n\n @media screen and (max-width: 991px) {\n height: 60px;\n }\n`;\n\nexport const Menu = styled.div`\n > button {\n width: 30px;\n height: 30px;\n\n span {\n display: block;\n width: 100%;\n height: 4px;\n background-color: #021027;\n border-radius: 30px;\n transition-duration: 0.5s;\n\n :nth-child(2) {\n width: 90%;\n margin: 6px 0 6px auto;\n }\n\n ${(props) =>\n props.active &&\n css`\n :nth-child(1) {\n transform: rotate(225deg);\n }\n\n :nth-child(2) {\n opacity: 0;\n transform: rotate(225deg);\n }\n\n :nth-child(3) {\n transform: rotate(315deg);\n margin-top: -20px;\n }\n `}\n }\n }\n\n .min-height {\n min-height: 50px;\n }\n\n button:focus {\n outline: none;\n }\n\n .menu-group {\n height: calc(100vh - 100px);\n }\n\n .menu,\n .logoff {\n a,\n button {\n background: #ffffff;\n color: #116bff;\n position: relative;\n\n > div:not(.notification-pop-up, .notify) {\n width: 22px;\n height: 22px;\n margin: 0 auto;\n transition-duration: 0.3s;\n }\n\n .dashboard {\n background-image: url(${dashboard});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .resources {\n background-image: url(${resources});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .social-media {\n background-image: url(${socialMedia});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .notifications {\n background-image: url(${notification});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .trainings {\n background-image: url(${courses});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .traffic {\n background-image: url(${traffic});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .trainings-course {\n background-image: url(${trainings});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .leaderboard {\n background-image: url(${leaderboard});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .wallets {\n background-image: url(${wallets});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .referrals {\n background-image: url(${referrals});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .profile {\n background-image: url(${profile});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .logout {\n background-image: url(${logout});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .notification-pop-up {\n width: max-content;\n position: absolute;\n transition-duration: 0.3s;\n z-index: -1;\n left: 110%;\n padding: 0 20px;\n border-radius: 15px;\n border: 1px solid #dedede;\n background: #fff;\n box-shadow: 4px 15px 25px 0px rgba(0, 0, 0, 0.08);\n opacity: 0;\n visibility: hidden;\n\n > p {\n color: #021027;\n text-align: center;\n font-size: 14px;\n font-weight: 400;\n }\n\n .notify {\n position: relative;\n height: 74px;\n border-radius: 12px;\n transition-duration: 0.3s;\n\n .lottie {\n width: 43px;\n height: 43px;\n border-radius: 9px;\n overflow: hidden;\n margin-right: 6px;\n }\n\n .content {\n color: #021027;\n font-size: 12px;\n font-weight: 400;\n }\n\n .small {\n color: #116bff;\n font-size: 10px;\n font-weight: 400;\n }\n\n .detail {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n position: absolute;\n right: 1rem;\n bottom: 1rem;\n background: #ff1a50;\n }\n\n :hover {\n background: #f4f4f4;\n }\n }\n\n button {\n border-radius: 16px;\n border: 1px solid #8c8c8c;\n width: 180px;\n height: 32px;\n color: #737373;\n text-align: center;\n font-size: 12px;\n font-weight: 400;\n }\n }\n\n small {\n width: max-content;\n position: absolute;\n transition-duration: 0.3s;\n z-index: -1;\n left: -100%;\n background: #ffffff;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 0 5px 5px 0;\n }\n\n > .detail {\n width: 8px !important;\n height: 8px !important;\n border-radius: 50%;\n position: absolute;\n right: 35px;\n top: 25px;\n background: #ff1a50;\n }\n }\n\n .become-affiliate-link {\n line-height: 1;\n }\n\n a:hover,\n button:hover,\n a.active {\n text-decoration: none;\n\n .dashboard {\n background-image: url(${dashboardActive});\n }\n\n .trainings {\n background-image: url(${coursesActive});\n }\n\n .traffic {\n background-image: url(${trafficActive});\n }\n\n .trainings-course {\n background-image: url(${trainingActive});\n }\n\n .leaderboard {\n background-image: url(${leaderboardActive});\n }\n\n .resources {\n background-image: url(${resourcesActive});\n }\n\n .social-media {\n background-image: url(${socialMediaActive});\n }\n\n .notifications {\n background-image: url(${notificationActive});\n }\n\n .wallets {\n background-image: url(${walletsActive});\n }\n\n .referrals {\n background-image: url(${referralsActive});\n }\n\n .profile {\n background-image: url(${profileActive});\n }\n\n .logout {\n background-image: url(${logoutActive});\n }\n }\n\n a:hover,\n button:hover {\n small {\n padding: 0 20px;\n left: 100%;\n\n @media screen and (min-width: 992px) {\n min-height: 50px;\n }\n }\n\n .notification-pop-up {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n .menu-group {\n width: 100%;\n height: calc(100vh - 60px);\n background: #ffffff;\n transition-duration: 0.3s;\n top: 60px;\n left: ${(props) => (props.active ? '0px' : '1000px')};\n }\n\n .overflow {\n overflow: auto;\n ::-webkit-scrollbar {\n background-color: #ffffff !important;\n width: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #ffffff !important;\n }\n }\n\n .menu,\n .logoff {\n a,\n button {\n div {\n margin: 0 10px;\n width: 22px;\n height: 22px;\n }\n\n small {\n font-family: Quicksand, sans-serif;\n position: relative;\n z-index: 0;\n text-align: left;\n opacity: 1;\n font-size: 24px;\n justify-content: start;\n left: 0 !important;\n padding: 5px 0 !important;\n color: #000;\n font-size: 28px;\n }\n\n > .detail {\n right: calc(50% - 77px);\n }\n }\n }\n }\n`;\n","/* eslint-disable jsx-a11y/accessible-emoji */\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport Lottie from 'react-lottie';\nimport { io } from 'socket.io-client';\n\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport notification from '~/assets/animations/notification.json';\nimport api from '~/services/api';\nimport { useAuth } from '~/hooks/Auth';\n\ninterface INotificationResponse {\n id: string;\n created_at: string;\n}\n\ninterface INotification {\n id: string;\n timeAgo: string;\n}\n\nconst Notications: React.FC = () => {\n const { user } = useAuth();\n const location = useLocation();\n\n const [notifications, setNotifications] = useState([]);\n\n const lang = useMemo(() => {\n const langSymbol = location.pathname.substr(0, 3);\n if (langSymbol !== '/en' && langSymbol !== '/es') {\n return ``;\n }\n\n return langSymbol;\n }, [location.pathname]);\n\n const handleLoadNotifications = useCallback(async () => {\n const response = await api.get(\n `notifications/news`\n );\n const data = response.data.map((notificationData) => {\n return {\n id: notificationData.id,\n timeAgo: `${formatDistanceToNow(\n parseISO(notificationData.created_at)\n )} ago`,\n };\n });\n setNotifications(data.slice(0, 3));\n }, []);\n\n useEffect(() => {\n if (user) {\n const socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n });\n\n socket.on('connect', () => {\n socket.emit('join-room', { roomID: `notifications-${user.id}` });\n });\n\n socket.on('user-disconnected', () => {\n // console.log('user disconnected-- closing peers', data);\n });\n\n socket.on('disconnect', () => {\n // console.log('socket disconnected --');\n });\n\n socket.on('error', () => {\n // console.log('socket error --', err);\n });\n\n socket.on('check-notification', () => {\n handleLoadNotifications();\n });\n\n socket.on('new-notification', () => {\n handleLoadNotifications();\n });\n }\n }, [handleLoadNotifications, user]);\n\n useEffect(() => {\n handleLoadNotifications();\n }, [handleLoadNotifications]);\n\n return (\n \n Messages\n
\n
\n {notifications.length > 0 ? (\n <>\n

Unread Gems Inside 💎

\n {notifications.map((notificationData) => (\n \n
\n \n
\n
\n

\n A new message is waiting for you to read\n

\n

\n {notificationData.timeAgo}\n

\n
\n
\n
\n ))}\n \n \n ) : (\n

\n Chirp, Chirp... No Alerts Today 🐦\n

\n )}\n
\n {notifications.length > 0 &&
}\n \n );\n};\n\nexport default Notications;\n","import React, { useEffect, useState } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, Menu } from './styles';\n\nimport en from '~/assets/icons/eua-flag.png';\nimport es from '~/assets/icons/spain-flag.png';\nimport logo from '~/assets/logotipos/logo.png';\nimport Notications from './Notications';\n\nconst Header: React.FC = () => {\n const { user, signOut } = useAuth();\n const { language, handleSelectIdiom, idiom } = useLanguage();\n const location = useLocation();\n const [active, setActive] = useState(false);\n const [lang] = useState(() => {\n const langSymbol = location.pathname.substr(0, 3);\n if (langSymbol !== '/en' && langSymbol !== '/es') {\n return ``;\n }\n\n return langSymbol;\n });\n\n const nextStep = localStorage.getItem(`next_step_${user.id}`);\n\n useEffect(() => {\n setActive(false);\n }, [location]);\n\n return (\n \n
\n \n \"logo\"\n \n
\n \n setActive(!active)}\n >\n \n \n \n \n
\n
\n \n
\n Onboarding\n \n \n
\n {language.header.small_1}\n \n {false && (\n \n
\n Traffic\n \n )}\n \n
\n Trainings\n \n \n
\n {language.header.small_7}\n \n {false && (\n \n
\n \n {language.header.small_3_1} {language.header.small_3_2}\n \n \n )}\n \n
\n {language.header.small_2}\n \n \n
\n {language.header.small_4}\n \n\n \n
\n \n {language.header.small_6_1} {language.header.small_6_2}\n \n \n {false && (\n \n
\n Leaderboard\n \n )}\n \n
\n
\n {false && (\n
\n handleSelectIdiom('en')}\n >\n \n \n {language.header.button_1}\n \n \n\n handleSelectIdiom('es')}\n >\n \n \n {language.header.button_2}\n \n \n
\n )}\n {\n signOut();\n sessionStorage.removeItem('moduleSelected');\n }}\n className=\"border-0 my-5 my-lg-0 menu-item px-2 px-lg-0 my-2 my-lg-0 py-lg-3 w-100 w-lg-auto d-flex flex-lg-column justify-content-center align-items-center\"\n >\n
\n {language.header.small_9}\n \n
\n
\n
\n
\n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\n\ninterface ISeparatorProps {\n noPadding: boolean;\n fullSize: boolean;\n}\n\nexport const Wrapper = styled.div`\n display: flex;\n width: 100%;\n min-height: 100vh;\n\n @media (min-width: 768px) and (max-width: 1199px) {\n .bg-mobile {\n background: #f3f2f2;\n }\n }\n\n @media screen and (min-width: 992px) {\n .separator-container {\n width: calc(100% - 90px);\n }\n }\n\n @media screen and (min-width: 1200px) {\n .height-xl {\n height: 100vh;\n overflow: auto;\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: transparent;\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n display: block;\n }\n\n @media screen and (max-width: 767px) {\n .bg-footer-mob {\n background: #f3f2f2;\n }\n }\n`;\n\nexport const HeaderSpacer = styled.div`\n width: 90px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n\n @media screen and (max-width: 991px) {\n width: 100%;\n height: 60px;\n justify-content: flex-start;\n }\n`;\n\nexport const Separator = styled.div`\n background-color: #f9f9f9;\n width: ${(props) => (props.fullSize ? '100%' : 'calc(100% - 298px)')};\n padding: 20px;\n\n @media screen and (min-width: 1400px) {\n width: ${(props) => (props.fullSize ? '100%' : 'calc(100% - 322px)')};\n }\n\n @media screen and (max-width: 1199px) {\n width: 100%;\n padding: ${(props) => (props.noPadding ? '0px' : '8px')};\n }\n\n @media screen and (max-width: 575px) {\n padding: 15px;\n }\n`;\n\nexport const FooterSpacer = styled.div`\n background: #fff;\n\n @media screen and (max-width: 1199px) {\n width: 100%;\n background: #fff;\n }\n\n @media screen and (min-width: 1200px) {\n min-width: 270px;\n max-width: 298px;\n }\n\n @media screen and (min-width: 1400px) {\n min-width: 308px;\n max-width: 322px;\n }\n`;\n","import React, { useEffect, useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAuth } from '~/hooks/Auth';\nimport api from '~/services/api';\n\nimport Info from '~/components/Info';\n\nimport Header from '~/components/Header';\n\nimport { Wrapper, HeaderSpacer, Separator, FooterSpacer } from './styles';\nimport { useIntercom } from '~/hooks/Intercom';\nimport ModalCompleteProfile from '~/components/ModalCompleteProfile';\n\nconst DefaultLayout: React.FC = ({ children }) => {\n const location = useLocation();\n const { user, signOut } = useAuth();\n\n const { Intercom } = useIntercom();\n\n const noFullSize = useMemo(\n () =>\n !location.pathname.match(/\\/commission-history.*/) &&\n !location.pathname.match(/\\/trainings.*/) &&\n !location.pathname.match(/\\/promotional-material.*/) &&\n !location.pathname.match(/\\/crowdfunding.*/) &&\n !location.pathname.match(/\\/affiliates.*/) &&\n !location.pathname.match(/\\/training.*/) &&\n !location.pathname.match(/\\/prompt-ease.*/) &&\n !location.pathname.match(/\\/post-ease.*/) &&\n !location.pathname.match(/\\/leaderboard.*/) &&\n !location.pathname.includes('my-referrals') &&\n !location.pathname.includes('live'),\n [location.pathname]\n );\n\n const pageLessons = location.pathname.match(/\\/lessons.*/);\n\n const pagePromptEase = location.pathname.match(/\\/prompt-ease.*/);\n const pagePostEase = location.pathname.match(/\\/post-ease.*/);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n api.get(`/`).catch(() => {\n signOut();\n });\n }, [location, signOut, user]);\n\n return (\n \n {!pagePromptEase && !pagePostEase && (\n \n
\n \n )}\n \n \n {children}\n \n {noFullSize && (\n \n \n \n )}\n
\n {Intercom}\n {/* */}\n \n );\n};\n\nexport default DefaultLayout;\n","/* eslint-disable react/jsx-indent */\nimport React, { FC, ComponentType, useMemo } from 'react';\nimport {\n Route as ReactDOMRoute,\n RouteProps as ReactDOMRouterProps,\n Redirect,\n} from 'react-router-dom';\n\nimport { useAuth } from '../hooks/Auth';\n\nimport Auth from '~/pages/_Layouts/Auth';\nimport Default from '~/pages/_Layouts/Default';\n\ninterface RouteProps extends ReactDOMRouterProps {\n isPrivate?: boolean;\n component: ComponentType;\n}\n\nconst Route: FC = ({\n isPrivate = false,\n component: Component,\n ...rest\n}) => {\n const { user } = useAuth();\n let nextStep: string | null = null;\n if (user) {\n nextStep = localStorage.getItem(`next_step_${user.id}`);\n }\n const Layout = useMemo(() => {\n return isPrivate ? Default : Auth;\n }, [isPrivate]);\n\n return (\n {\n return isPrivate === !!user ||\n location.pathname.match(/\\/check-login.*/) ? (\n \n \n \n ) : (\n \n );\n }}\n />\n );\n};\n\nexport default Route;\n","import React, { useEffect } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport api from '~/services/api';\n\nimport { useAuth } from '~/hooks/Auth';\n\ninterface IParams {\n token: string;\n}\n\nconst CheckLogin: React.FC = () => {\n const params = useParams();\n const history = useHistory();\n const { setLogin } = useAuth();\n\n useEffect(() => {\n api.get(`users/sessions/get-data/${params.token}`).then((response) => {\n if (response.data) {\n const { token, user } = JSON.parse(response.data);\n setLogin(token, user, params.token);\n history.push(`${process.env.PUBLIC_URL}/lessons/welcome`);\n } else {\n history.push(`${process.env.PUBLIC_URL}/`);\n }\n });\n }, [history, params.token, setLogin]);\n\n return
;\n};\n\nexport default CheckLogin;\n","import { ValidationError } from 'yup';\n\ninterface Errors {\n [key: string]: string;\n}\n\nexport default function getValidationErros(errors: ValidationError): Errors {\n const validationErrors: Errors = {};\n\n errors.inner.forEach((error) => {\n validationErrors[error.path as string] = error.message;\n });\n\n return validationErrors;\n}\n","import styled, { keyframes } from 'styled-components';\nimport { shade, lighten } from 'polished';\n\nexport const Container = styled.div`\n background-color: #fff;\n\n .position-signIn {\n right: 0;\n top: 0;\n }\n\n @media screen and (min-width: 992px) {\n min-height: 100vh;\n }\n`;\n\nconst appearFromLeft = keyframes`\n from {\n opacity: 0;\n transform: translateX(-50px);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nexport const AnimationContainer = styled.div`\n display: flex;\n flex-direction: column;\n //justify-content: center;\n animation: ${appearFromLeft} 1s;\n\n .input-button {\n background: #fff;\n border: none;\n height: 30px;\n top: 17px;\n left: 17px;\n transform: scale(1.5);\n }\n\n .input-container {\n border-radius: 21px;\n border: 1.5px solid #939393;\n height: 65px;\n transform: 0.3s;\n }\n\n .input-phone {\n font-family: 'Archivo';\n font-size: 18px;\n height: 42px;\n width: 100%;\n color: #333;\n padding: 0 0 0 60px;\n border: none;\n :focus {\n box-shadow: none;\n }\n ::placeholder {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 16px;\n color: #ababab;\n }\n }\n\n .input-container:focus-within,\n .input-email:focus-within,\n .input-password:focus-within {\n border: 1.5px solid #116bff !important;\n }\n\n .input-email,\n .input-password {\n input::placeholder {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300 !important;\n font-size: 16px;\n color: #ababab;\n }\n }\n\n .btn-idiom {\n padding: 8px 10px;\n border: 1px solid #eeeeee;\n border-radius: 200px;\n height: max-content;\n\n img {\n border-radius: 50%;\n }\n }\n\n h1 {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 700;\n font-size: 100px;\n line-height: 100px;\n color: #151517;\n }\n\n h2 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n color: #151517;\n }\n\n label {\n font-family: 'Archivo';\n font-weight: 300;\n font-size: 16px;\n line-height: 32px;\n color: #5f5f61;\n }\n\n > div {\n border: none;\n padding: 1px;\n transition-duration: 0.3s;\n top: 0px;\n @media screen and (min-width: 992px) {\n width: 85%;\n margin: 0 auto;\n }\n\n @media screen and (min-width: 1700px) {\n width: 60%;\n }\n }\n\n .forgot {\n font-family: 'Archivo';\n font-weight: 300;\n font-size: 14px;\n line-height: 32px;\n color: #5f5f61;\n }\n\n .normal-sm a {\n color: #303030;\n }\n\n .font-weigth-500 {\n font-weight: 500 !important;\n }\n\n .button-login {\n background-color: var(--technologicalGray);\n border-radius: 21px;\n text-decoration: none;\n border: none;\n\n font-family: 'Archivo';\n font-weight: 500;\n font-size: 22px;\n color: #ffffff;\n\n :hover {\n background-color: ${lighten(0.1, '#606060')};\n transition: 0.5s;\n }\n }\n\n .small {\n color: #828282;\n }\n\n form {\n > div {\n padding: 11.5px 20px;\n border-radius: 21px;\n border: 1px solid #939393;\n }\n\n input {\n width: 100%;\n height: 40px;\n font-size: 18px;\n color: #151517;\n }\n\n input[id='password'] {\n width: 77%;\n }\n\n .btn-show-custom {\n .button-show {\n position: absolute;\n top: -8px;\n right: 0px;\n width: 70px;\n text-align: center;\n background: none;\n border-width: 0px 0px 0px 1px;\n border-top-style: initial;\n border-right-style: initial;\n border-bottom-style: initial;\n border-top-color: initial;\n border-right-color: initial;\n border-bottom-color: initial;\n border-image: initial;\n font-weight: bold;\n padding: 6px;\n color: #303030;\n height: 56px !important;\n border-left: none;\n }\n }\n\n @media screen and (max-width: 1199px) {\n }\n\n @media screen and (max-width: 450px) {\n input[id='password'] {\n width: 68%;\n }\n }\n\n a {\n color: #565656;\n display: block;\n text-decoration: none;\n transition-duration: 0.2s;\n\n :hover {\n color: ${shade(0.2, '#565656')};\n }\n }\n }\n\n .separator {\n position: relative;\n\n hr {\n width: 90%;\n height: 0.5px;\n opacity: 1;\n background-color: #ababab;\n position: absolute;\n }\n\n span {\n position: relative;\n z-index: 1;\n background-color: #fff;\n padding: 10px;\n font-family: 'Archivo';\n font-weight: 300;\n font-size: 16px;\n color: #5f5f61;\n }\n }\n\n @media screen and (max-width: 1199px) {\n h1 {\n font-size: 80px;\n }\n form {\n width: 100%;\n }\n\n .content {\n position: relative;\n z-index: 1;\n opacity: 0.8;\n\n a {\n color: #cbceceff;\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n .size-mobile {\n width: 55px;\n height: 50px;\n }\n }\n`;\n\nexport const Loading = styled.div`\n //margin-top: 0px !important;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 65px;\n border-radius: 20px;\n background-color: #116bff;\n width: 100% !important;\n border: none !important;\n cursor: not-allowed !important;\n .spinner {\n width: 45px;\n height: 45px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(\n farthest-side,\n #0000 calc(100% - 9px),\n #000 0\n );\n animation: spinner-c7wet2 1s infinite linear;\n }\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n","import styled, { css } from 'styled-components';\n\ninterface ContainerProps {\n isFilled: boolean;\n isFocuses: boolean;\n isErrored: boolean;\n}\n\nexport const Container = styled.div`\n border-radius: 10px;\n border: 1.5px solid #3e3e3e;\n padding: 5px 10px;\n width: 100%;\n display: flex;\n align-items: center;\n\n + div {\n margin-top: 8px;\n }\n\n div {\n width: 100%;\n position: relative;\n\n .button-show {\n position: absolute;\n top: -6px;\n right: -10px;\n width: 70px;\n text-align: center;\n background: none;\n border: 0;\n border-left: 1px solid #606060;\n padding: 6px 6px 6px;\n color: #626262;\n height: 52px;\n }\n\n .input-signIn {\n height: 37px !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n div {\n .input-signIn {\n height: 37px !important;\n }\n }\n }\n\n input {\n width: 100%;\n flex: 1;\n background: transparent;\n border: 0;\n color: #626262;\n transition-duration: 0.2s;\n\n ::placeholder {\n color: #666360;\n }\n }\n\n svg {\n margin-right: 16px;\n color: #666360;\n transition-duration: 0.2s;\n }\n\n ${(props) =>\n props.isErrored &&\n css`\n border-color: #c53030;\n `}\n\n ${(props) =>\n props.isFilled &&\n css`\n svg {\n color: #b58533;\n }\n `}\n\n ${(props) =>\n props.isFocuses &&\n css`\n color: #606060;\n border-color: #606060;\n\n svg {\n color: #b58533;\n }\n `}\n`;\n","import React, {\n FC,\n InputHTMLAttributes,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from 'react';\nimport { useField } from '@unform/core';\n\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\n\ninterface InputProps extends InputHTMLAttributes {\n name: string;\n hasError?(hasError: boolean): void;\n error?: string;\n}\n\nconst Input: FC = ({\n name,\n hasError,\n className,\n type,\n onFocus,\n onBlur,\n error: errorData,\n ...rest\n}) => {\n const { language } = useLanguage();\n const inputRef = useRef(null);\n const [isFocuses, setIsFocuses] = useState(false);\n const [isFilled, setIsFilled] = useState(false);\n const { fieldName, defaultValue, error, registerField } = useField(name);\n const [typeInput, setTypeInput] = useState('password');\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n });\n }, [fieldName, registerField]);\n\n useEffect(() => {\n if (hasError) {\n hasError(!!error);\n }\n }, [error, hasError]);\n\n const handleInputFocus = useCallback(\n (e) => {\n if (onFocus) {\n onFocus(e);\n }\n setIsFocuses(true);\n },\n [onFocus]\n );\n\n const handleInputBlur = useCallback(\n (e) => {\n if (onBlur) {\n onBlur(e);\n }\n setIsFocuses(false);\n setIsFilled(!!inputRef.current?.value);\n },\n [onBlur]\n );\n\n const handleClick = useCallback(() => {\n setTypeInput((state) => (state === 'password' ? 'text' : 'password'));\n }, []);\n\n return (\n <>\n \n
\n {type !== 'password' ? (\n \n ) : (\n \n )}\n {type === 'password' && (\n \n {typeInput === 'password'\n ? language.password_component.button_1\n : language.password_component.button_2}\n \n )}\n
\n \n {(error || errorData) && (\n \n {error || errorData}\n \n )}\n \n );\n};\n\nexport default Input;\n","import styled from 'styled-components';\n\nimport signInBackgroung from '~/assets/banners/sign-in-bg.png';\nimport signInBackgroung2 from '~/assets/banners/sign-in-bg2.png';\nimport signInBackgroung3 from '~/assets/banners/sign-in-bg3.png';\nimport signInBackgroung4 from '~/assets/banners/sign-in-bg4.png';\n\nexport const Background = styled.div`\n .slick-list {\n //padding-left: 16px;\n border-radius: 30px 0px 0px 30px !important;\n box-shadow: -9px 4px 60px 0px rgba(0, 0, 0, 0.2);\n }\n .banner {\n background-position: right center;\n background-repeat: no-repeat;\n background-size: cover;\n min-height: 830px;\n position: relative;\n //border-radius: 30px 0px 0px 30px;\n }\n\n .banner-1 {\n background-image: url(${signInBackgroung});\n }\n\n .banner-2 {\n background-image: url(${signInBackgroung2});\n }\n\n .banner-3 {\n background-image: url(${signInBackgroung3});\n }\n\n .banner-4 {\n background-image: url(${signInBackgroung4});\n }\n\n .w-div {\n max-width: 609px;\n }\n\n .phrase {\n color: #fff;\n font-family: 'Source Sans Pro';\n font-size: 18px;\n font-weight: 400;\n line-height: 28px;\n text-align: start;\n margin-left: calc(39px + 1.5rem);\n }\n\n .content {\n position: absolute;\n z-index: 1;\n top: calc(91% - 1.5rem);\n padding: 0 3rem;\n\n a {\n color: #fff;\n }\n }\n\n .quotation {\n margin-bottom: -86px;\n position: relative;\n z-index: 1;\n text-align: center;\n top: 48px;\n\n p {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 18px;\n line-height: 32px;\n color: #ffffff;\n\n a {\n color: #ffffff;\n font-weight: 600;\n }\n }\n }\n\n .testimonial {\n margin-top: 7rem;\n h5 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 32px;\n line-height: 41px;\n letter-spacing: 1px;\n color: #ffffff;\n }\n }\n\n .banner::before {\n content: '';\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 159.91deg,\n rgba(0, 0, 0, 0.7) 11.3%,\n rgba(20, 73, 131, 0) 103.78%\n );\n //border-radius: 30px 0px 0px 30px;\n position: absolute;\n top: 0;\n right: 0;\n }\n\n @media screen and (max-width: 1199px) {\n .testimonial h5 {\n font-size: 20px;\n line-height: 28px;\n }\n }\n\n @media screen and (min-height: 831px) {\n .banner {\n min-height: 100vh;\n }\n }\n`;\n\nexport const ButtonLeft = styled.button`\n position: absolute;\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: transparent;\n border: none;\n transition-duration: 0.3s;\n top: 91%;\n z-index: 2;\n left: unset;\n transform: translateY(-50%);\n color: #fff;\n font-size: 16px;\n line-height: 30px;\n\n right: 6rem;\n\n svg {\n fill: #fff;\n }\n\n :hover,\n :focus {\n svg {\n fill: #ffffff;\n }\n color: #fff;\n }\n\n :before,\n :after {\n display: none;\n }\n`;\n\nexport const ButtonRight = styled.button`\n position: absolute;\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: transparent;\n border: none;\n top: 91%;\n transition-duration: 0.3s;\n\n right: 3rem;\n transform: translateY(-50%);\n z-index: 2;\n left: unset;\n\n color: #fff;\n font-size: 16px;\n line-height: 30px;\n\n svg {\n fill: #fff;\n }\n\n :hover,\n :focus {\n color: #fff;\n\n svg {\n fill: #ffffff;\n }\n }\n\n :before,\n :after {\n display: none;\n }\n`;\n","import React, { useMemo } from 'react';\nimport SliderSlick, { Settings } from 'react-slick';\nimport { HiArrowLeft, HiArrowRight } from 'react-icons/hi';\nimport { Background, ButtonLeft, ButtonRight } from './styles';\n\nimport autoAffiliateName from '~/assets/logotipos/autoAffiliate-name.svg';\nimport quote from '~/assets/icons/quote.svg';\nimport twitter from '~/assets/icons/twitter.svg';\nimport facebook from '~/assets/icons/facebook.svg';\nimport telegram from '~/assets/icons/telegram.svg';\nimport instagram from '~/assets/icons/instagram.svg';\nimport { useLanguage } from '~/hooks/Language';\n\ninterface ICarousel {\n className?: string;\n}\n\ninterface IButtonProps {\n className?: string;\n onClick?(): void;\n}\n\nconst PrevArrow: React.FC = ({ className, onClick }) => {\n const disabled = useMemo(() => {\n if (className) {\n if (className.match('slick-disabled')) {\n return true;\n }\n return false;\n }\n return false;\n }, [className]);\n\n return (\n \n
\n \n

see

\n
\n \n );\n};\n\nconst NextArrow: React.FC = ({ className, onClick }) => {\n const disabled = useMemo(() => {\n if (className) {\n if (className.match('slick-disabled')) {\n return true;\n }\n return false;\n }\n return false;\n }, [className]);\n\n return (\n \n
\n \n

more

\n
\n \n );\n};\n\nconst BannersTestimonials: React.FC = () => {\n const { language } = useLanguage();\n\n const settings: Settings = useMemo(\n () => ({\n infinite: true,\n slidesToShow: 1,\n centerPadding: '0px',\n autoplay: true,\n autoplaySpeed: 5000,\n speed: 800,\n arrows: true,\n touchMove: true,\n\n nextArrow: ,\n prevArrow: ,\n }),\n []\n );\n return (\n \n
\n \"AutoAffiliate\"\n

\n Don’t have an account? Signup\n

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

@autoaffiliateHQ

\n
\n
\n \n
\n
\n
\n \"quote\"\n
\n AutoAffiliate is a total game-changer”\n
\n
\n\n

\n “Automation, AI, and a done-for-you system that accentuates my\n lifestyle. It's prospecting, building relationships, and creating\n multiple income streams for me. It's my freedom business!\"\n

\n
\n
\n
\n
\n
\n \"quote\"\n
\n AutoAffiliate is more than just a platform.”\n
\n
\n

\n “It's a community of like-minded individuals striving for\n financial freedom. Their robust tools and unwavering support have\n helped me build a significant passive income stream.\"\n

\n
\n
\n
\n
\n
\n \"quote\"\n
\n Once skeptical, I'm now all-in with AutoAffiliate.”\n
\n
\n

\n “The earning potential and unique no-selling approach have me\n excited and I am even losing sleep! It's unmatched in the\n affiliate space.”\n

\n
\n
\n
\n
\n
\n \"quote\"\n
\n The AutoAffiliate system is revolutionizing.”\n
\n
\n

\n “The platform is user-friendly, and their bot is a marvel. I'm\n making money even while I sleep. If you're serious about affiliate\n marketing, this is the platform for you”\n

\n
\n
\n
\n
\n );\n};\n\nexport default BannersTestimonials;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n p {\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n color: #116bff;\n }\n`;\n","import React from 'react';\n\nimport { Container } from './styles';\n\nimport twitter from '~/assets/icons/twitter-icon-blue.svg';\nimport facebook from '~/assets/icons/facebook-icon-blue.svg';\nimport telegram from '~/assets/icons/telegram-icon-blue.svg';\nimport instagram from '~/assets/icons/instagram-icon-blue.svg';\nimport { useLanguage } from '~/hooks/Language';\n\nconst SocialBlueMobile: React.FC = () => {\n const { language } = useLanguage();\n return (\n \n
\n
\n \n {language.sign_in.img_1}\n \n \n {language.sign_in.img_2}\n \n \n {language.sign_in.img_3}\n \n \n \n \n
\n

@autoaffiliateHQ

\n
\n
\n );\n};\n\nexport default SocialBlueMobile;\n","import React, { ChangeEvent, FC, useCallback, useRef, useState } from 'react';\nimport { FormHandles } from '@unform/core';\nimport { Form } from '@unform/web';\nimport * as Yup from 'yup';\nimport { Link, useHistory } from 'react-router-dom';\n\nimport PhoneInput from 'react-phone-input-2';\nimport swalError from '~/utils/swalError';\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Container, AnimationContainer, Loading } from './styles';\nimport Input from '~/components/Input';\n\nimport logo from '~/assets/logotipos/logo.png';\n\nimport api from '~/services/api';\nimport BannersTestimonials from '~/components/BannersTestimonials';\nimport SocialBlueMobile from '~/components/SocialBlueMobile';\n\ninterface SignInCelphoneFormData {\n celphone: string;\n}\n\ninterface SignInFormData {\n email: string;\n password: string;\n}\n\nconst SignIn: FC = () => {\n const history = useHistory();\n const formCelphoneRef = useRef(null);\n const formRef = useRef(null);\n const { signIn } = useAuth();\n const { language } = useLanguage();\n const [celPhone, setCelPhone] = useState('');\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [celPhoneError, setCelPhoneError] = useState('');\n const [loadingContinue, setLoadingContinue] = useState(false);\n\n const handleSubmitCelphone = useCallback(\n async (data: SignInCelphoneFormData) => {\n try {\n formCelphoneRef.current?.setErrors({});\n setCelPhoneError('');\n const schema = Yup.object().shape({\n celphone: Yup.string().when('$celphoneData', {\n is: (celphoneData: boolean) => !celphoneData,\n then: Yup.string().required('phone number is required'),\n otherwise: Yup.string(),\n }),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n context: { celphoneData: celPhone.length > 4 },\n });\n\n const response = await api.post('users/2fa', {\n celphone: `+${celPhone}`,\n });\n\n localStorage.setItem(\n '@AutoAffiliate:userData',\n JSON.stringify(response.data)\n );\n\n history.push(`${process.env.PUBLIC_URL}/passcode`);\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formCelphoneRef.current?.setErrors(errors);\n if (errors.celphone) {\n setCelPhoneError(errors.celphone);\n }\n } else {\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n }\n },\n [celPhone, history]\n );\n\n const handleSubmit = useCallback(\n async (data: SignInFormData) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n email: Yup.string()\n .email(language.sign_in.erro_1)\n .required(language.sign_in.erro_2),\n password: Yup.string().required(language.sign_in.erro_3),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n setLoadingContinue(true);\n\n await signIn({\n email: data.email,\n password: data.password,\n });\n } catch (error) {\n setLoadingContinue(false);\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n } else {\n swalError({\n message:\n 'Looks like the code you entered is invalid password or email, please try again.',\n textButton: 'Try Again',\n });\n }\n }\n },\n [\n language.sign_in.erro_1,\n language.sign_in.erro_2,\n language.sign_in.erro_3,\n signIn,\n ]\n );\n\n const handleClickContinue = useCallback(() => {\n if (email && password) {\n formRef.current?.submitForm();\n } else if (celPhone.length > 4) {\n formCelphoneRef.current?.submitForm();\n } else if (email || password) {\n formRef.current?.submitForm();\n }\n }, [celPhone, email, password]);\n\n return (\n \n
\n
\n \n
\n \"Logo\"\n
\n
\n
\n

Hi there!

\n

Welcome back to AutoAffiliate.

\n \n \n setCelPhone(value)}\n masks={{\n br: '(..) .....-....',\n }}\n inputClass=\"input-phone\"\n containerClass=\"input-container\"\n buttonClass=\"input-button\"\n />\n {celPhoneError && (\n {celPhoneError}\n )}\n \n
\n ) =>\n setEmail(event.target.value)\n }\n />\n\n ) =>\n setPassword(event.target.value)\n }\n />\n \n {language.sign_in.a}\n \n {loadingContinue ? (\n \n
\n \n ) : (\n \n \n Continue\n \n \n )}\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n );\n};\n\nexport default SignIn;\n","import React, { useEffect } from 'react';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { useAuth } from '~/hooks/Auth';\n\ninterface IParams {\n token: string;\n}\n\nconst AutoLogin: React.FC = () => {\n const params = useParams();\n const location = useLocation();\n const { autoLogin } = useAuth();\n\n useEffect(() => {\n const path = location.search\n .replace('?', '')\n .replace('&', '')\n .split('page=')\n .join('/');\n autoLogin(params.token, path ? 'user' : 'admin', path);\n }, [autoLogin, location.search, params.token]);\n\n return
;\n};\n\nexport default AutoLogin;\n","import styled, { keyframes } from 'styled-components';\nimport { shade, lighten } from 'polished';\n\nexport const Container = styled.div`\n background-color: #fff;\n min-height: 100vh;\n\n .position-signIn {\n right: 0;\n top: 0;\n }\n`;\n\nconst appearFromLeft = keyframes`\n from {\n opacity: 0;\n transform: translateX(-50px);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nexport const AnimationContainer = styled.div`\n display: flex;\n flex-direction: column;\n //justify-content: center;\n animation: ${appearFromLeft} 1s;\n\n .btn-idiom {\n padding: 8px 10px;\n border: 1px solid #eeeeee;\n border-radius: 200px;\n height: max-content;\n\n img {\n border-radius: 50%;\n }\n }\n\n h1 {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 700;\n font-size: 50px;\n line-height: 54px;\n color: #151517;\n }\n\n h2 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n color: #151517;\n }\n\n > div {\n border: none;\n padding: 1px;\n transition-duration: 0.3s;\n }\n @media screen and (min-width: 992px) {\n > div {\n width: 85%;\n margin: 0 auto;\n }\n }\n\n @media screen and (min-width: 1700px) {\n > div {\n width: 60%;\n }\n }\n\n .different {\n font-family: 'Archivo';\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #021027;\n }\n\n .normal-sm a {\n color: #303030;\n }\n\n .font-weigth-500 {\n font-weight: 500 !important;\n }\n\n .button-login {\n background-color: var(--technologicalGray);\n color: #f5f5f5;\n text-decoration: none;\n border: none;\n border-radius: 15px;\n\n :hover {\n background-color: ${lighten(0.1, '#606060')};\n transition: 0.5s;\n }\n }\n\n .small {\n color: #828282;\n }\n\n form {\n > div {\n padding: 6.5px 10px;\n }\n\n .input {\n display: flex;\n justify-content: center;\n .pincode-input-container {\n input {\n width: 78.29px !important;\n height: 100px !important;\n background: #fafafa !important;\n border: 1px solid #116bff !important;\n border-radius: 20px !important;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 900;\n font-size: 32px;\n line-height: 32px;\n color: #116bff;\n\n ::placeholder {\n color: #ababab;\n }\n }\n }\n }\n\n .btn-show-custom {\n .button-show {\n position: absolute;\n top: -8px;\n right: 0px;\n width: 70px;\n text-align: center;\n background: none;\n border-width: 0px 0px 0px 1px;\n border-top-style: initial;\n border-right-style: initial;\n border-bottom-style: initial;\n border-top-color: initial;\n border-right-color: initial;\n border-bottom-color: initial;\n border-image: initial;\n font-weight: bold;\n padding: 6px;\n color: #303030;\n height: 56px !important;\n border-left: none;\n }\n }\n\n button {\n background: var(--technologicalGray);\n border-radius: 21px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #ffffff;\n border: none;\n height: 65px;\n width: 100%;\n }\n\n button.resend {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #116bff;\n border: none;\n height: 65px;\n width: 100%;\n }\n\n @media screen and (max-width: 1199px) {\n .button-login {\n border-radius: 12px;\n }\n }\n\n @media screen and (max-height: 740px) {\n margin: 20px 0;\n }\n\n @media screen and (max-width: 450px) {\n input[id='password'] {\n width: 68%;\n }\n }\n\n a {\n color: #565656;\n display: block;\n text-decoration: none;\n transition-duration: 0.2s;\n\n :hover {\n color: ${shade(0.2, '#565656')};\n }\n }\n }\n\n .separator {\n position: relative;\n\n hr {\n width: 100%;\n height: 0.5px;\n opacity: 1;\n background-color: #ababab;\n position: absolute;\n }\n\n span {\n position: relative;\n z-index: 1;\n background-color: #fff;\n padding: 10px;\n }\n }\n\n @media screen and (max-width: 1400px) {\n form {\n margin: 40px 0px 0px 0px;\n input {\n }\n }\n }\n\n @media screen and (max-width: 1199px) {\n form {\n width: 100%;\n margin: 25px 0px 0px 0px;\n }\n\n .content {\n position: relative;\n z-index: 1;\n opacity: 0.8;\n\n a {\n color: #cbceceff;\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n form {\n margin: 40px 0px 0px 0px;\n }\n\n .size-mobile {\n width: 55px;\n height: 50px;\n }\n }\n\n @media screen and (max-width: 430px) {\n h1 {\n font-size: 11vw;\n line-height: 11vw;\n }\n\n form .input .pincode-input-container input {\n width: 64.29px !important;\n height: 80px !important;\n }\n }\n`;\n","import styled, { css } from 'styled-components';\n\ninterface ContainerProps {\n isErrored: boolean;\n}\n\nexport const Container = styled.div`\n input.pincode-input-text {\n opacity: 0.8;\n border: 1.5px solid #3d3e3f !important;\n box-sizing: border-box;\n border-radius: 15px;\n width: 70px !important;\n height: 70px !important;\n flex: 1;\n background: transparent;\n border: 0;\n color: #efefef;\n transition-duration: 0.2s;\n margin: 0 5px !important;\n\n ::placeholder {\n color: #efefef;\n }\n\n :focus {\n border: 1.5px solid #efefef !important;\n }\n }\n\n svg {\n margin-right: 16px;\n color: #666360;\n transition-duration: 0.2s;\n }\n\n ${(props) =>\n props.isErrored &&\n css`\n input.pincode-input-text {\n border-color: #c53030 !important;\n }\n `}\n`;\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { useField } from '@unform/core';\nimport PinInput from 'react-pin-input';\n\nimport { Container } from './styles';\n\ninterface InputCodeProps {\n name: string;\n onChange?(event: any): void;\n value?: string;\n id?: string;\n className?: string;\n error?: string;\n length?: number;\n}\n\nconst InputCode: React.FC = ({\n name,\n onChange,\n value,\n id,\n className,\n error,\n length = 6,\n}) => {\n const codeRef = useRef(null);\n const [newValue, setNewValue] = useState(value || '');\n\n const { fieldName, registerField } = useField(name);\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: codeRef.current,\n path: 'props.value',\n });\n }, [fieldName, registerField]);\n\n const handleChange = useCallback(\n (e) => {\n if (onChange) {\n const data = {\n target: {\n name,\n value: e,\n },\n };\n onChange(data);\n }\n setNewValue(e);\n },\n [name, onChange]\n );\n\n return (\n <>\n \n \n \n {error && (\n \n {error}\n \n )}\n \n );\n};\n\nexport default InputCode;\n","import React, { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { FormHandles } from '@unform/core';\nimport { Form } from '@unform/web';\nimport * as Yup from 'yup';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { useAuth } from '~/hooks/Auth';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Container, AnimationContainer } from './styles';\n\nimport logo from '~/assets/logotipos/logo.png';\n\nimport InputCode from '~/components/InputCode';\nimport api from '~/services/api';\nimport BannersTestimonials from '~/components/BannersTestimonials';\nimport SocialBlueMobile from '~/components/SocialBlueMobile';\nimport swalError from '~/utils/swalError';\n\ninterface IFormData {\n code: string;\n}\n\nconst Passcode: FC = () => {\n const history = useHistory();\n const formRef = useRef(null);\n const { signInWithPass } = useAuth();\n\n const [code, setCode] = useState('');\n const [codeError, setCodeError] = useState('');\n const [userId, setUserId] = useState('');\n const [resendMessage, setResendMessage] = useState(false);\n\n useEffect(() => {\n const data = localStorage.getItem('@AutoAffiliate:userData');\n if (data) {\n setUserId(JSON.parse(data).id);\n } else {\n history.push(`${process.env.PUBLIC_URL}/`);\n }\n }, [history]);\n\n const handleChangeCode = useCallback((e) => {\n setCode(e.target.value);\n }, []);\n\n const handleClickResendCode = useCallback(async () => {\n await api.post(\n `users/2fa`,\n {\n user_id: userId,\n },\n {\n params: {\n resendSms: true,\n },\n }\n );\n setResendMessage(true);\n setTimeout(() => {\n setResendMessage(false);\n }, 5000);\n }, [userId]);\n\n const handleSubmit = useCallback(\n async (data: IFormData) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n code: Yup.string().when('$codeData', {\n is: (codeData: boolean) => !codeData,\n then: Yup.string().required('Code is required'),\n otherwise: Yup.string(),\n }),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n context: { codeData: code.length === 4 },\n });\n\n await api.get(`users/2fa/${code}/${userId}`);\n\n signInWithPass(userId);\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n if (errors.code) {\n setCodeError(errors.code);\n }\n } else {\n swalError({\n message:\n 'Looks like the code you entered is invalid or expired, please try again.',\n textButton: 'Try Again',\n });\n }\n }\n },\n [code, userId, signInWithPass]\n );\n\n return (\n \n
\n
\n \n
\n \"Logo\"\n
\n
\n
\n

\n Enter Passcode\n
\n below\n

\n

\n It was sent to the mobile number you entered.\n

\n
\n \n \n \n Resend code\n \n {resendMessage && (\n \n The code was resent to the number informed\n \n )}\n history.push(`${process.env.PUBLIC_URL}`)}\n >\n Try a different number\n \n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nexport default Passcode;\n","import styled, { keyframes } from 'styled-components';\nimport { shade, lighten } from 'polished';\n\nexport const Container = styled.div`\n background-color: #fff;\n min-height: 100vh;\n\n .position-signIn {\n right: 0;\n top: 0;\n }\n`;\n\nconst appearFromLeft = keyframes`\n from {\n opacity: 0;\n transform: translateX(-50px);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nexport const AnimationContainer = styled.div`\n display: flex;\n flex-direction: column;\n //justify-content: center;\n animation: ${appearFromLeft} 1s;\n\n .btn-idiom {\n padding: 8px 10px;\n border: 1px solid #eeeeee;\n border-radius: 200px;\n height: max-content;\n\n img {\n border-radius: 50%;\n }\n }\n\n h1 {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 700;\n font-size: 50px;\n line-height: 45px;\n color: #151517;\n }\n\n h2 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n color: #151517;\n }\n\n > div {\n border: none;\n padding: 1px;\n transition-duration: 0.3s;\n\n @media screen and (min-width: 992px) {\n width: 85%;\n margin: 0 auto;\n }\n\n @media screen and (min-width: 1700px) {\n width: 60%;\n }\n }\n\n .normal-sm a {\n color: #303030;\n }\n\n .font-weigth-500 {\n font-weight: 500 !important;\n }\n\n .button-login {\n background-color: var(--technologicalGray);\n color: #f5f5f5;\n text-decoration: none;\n border: none;\n border-radius: 21px;\n font-size: 22px;\n letter-spacing: -0.04em;\n font-weight: 500;\n\n :hover {\n background-color: ${lighten(0.1, '#606060')};\n transition: 0.5s;\n }\n }\n\n div .button-show {\n top: 1px;\n border-left: none;\n }\n\n label {\n font-family: 'Archivo';\n font-weight: 300;\n font-size: 16px;\n line-height: 32px;\n\n color: #5f5f61;\n }\n\n form {\n > div {\n padding: 11.5px 20px;\n border-radius: 21px;\n border: 1px solid #939393;\n }\n\n input {\n width: 100%;\n height: 40px;\n color: #151517;\n font-size: 18px;\n }\n\n input[id='password'] {\n width: 87%;\n }\n\n > div:focus-within {\n border: 1px solid #116bff !important;\n }\n\n .button-show {\n position: absolute;\n top: -8px;\n right: 0px;\n width: 70px;\n text-align: center;\n background: none;\n border-width: 0px 0px 0px 1px;\n border-top-style: initial;\n border-right-style: initial;\n border-bottom-style: initial;\n border-top-color: initial;\n border-right-color: initial;\n border-bottom-color: initial;\n border-image: initial;\n font-weight: bold;\n padding: 6px;\n color: #151517;\n height: 56px !important;\n border-left: none;\n }\n\n @media screen and (max-width: 1199px) {\n }\n\n @media screen and (max-height: 740px) {\n margin: 20px 0;\n }\n\n @media screen and (max-width: 450px) {\n input[id='password'] {\n width: 82%;\n }\n }\n\n a {\n color: #565656;\n display: block;\n text-decoration: none;\n transition-duration: 0.2s;\n\n :hover {\n color: ${shade(0.2, '#565656')};\n }\n }\n }\n\n .separator {\n position: relative;\n\n hr {\n width: 100%;\n height: 0.5px;\n opacity: 1;\n background-color: #ababab;\n position: absolute;\n }\n\n span {\n position: relative;\n z-index: 1;\n background-color: #fff;\n padding: 10px;\n }\n }\n\n @media screen and (max-width: 1400px) {\n form {\n margin: 40px 0px 0px 0px;\n input {\n }\n }\n }\n\n @media screen and (max-width: 1199px) {\n form {\n width: 100%;\n margin: 25px 0px 0px 0px;\n }\n\n .content {\n position: relative;\n z-index: 1;\n opacity: 0.8;\n\n a {\n color: #cbceceff;\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n form {\n margin: 40px 0px 0px 0px;\n }\n\n .size-mobile {\n width: 55px;\n height: 50px;\n }\n }\n`;\n","import Swal, { SweetAlertResult } from 'sweetalert2';\nimport success from '~/assets/icons/success.svg';\n\ninterface ISwalSuccess {\n title: string;\n message: string;\n textButton: string;\n}\n\nexport default async function swalSuccess({\n title,\n message,\n textButton,\n}: ISwalSuccess): Promise> {\n return Swal.fire({\n title: '',\n html: `\n
\n \"success\"\n

${title}

\n

${message}

\n
\n `,\n customClass: 'success-swal-box',\n confirmButtonText: textButton,\n });\n}\n","import React, { FC, useCallback, useRef } from 'react';\nimport { FormHandles } from '@unform/core';\nimport { Form } from '@unform/web';\nimport * as Yup from 'yup';\n\nimport { Link, useHistory, useLocation, useParams } from 'react-router-dom';\nimport { HiArrowLeft } from 'react-icons/hi';\nimport { useLanguage } from '~/hooks/Language';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Container, AnimationContainer } from './styles';\nimport Input from '~/components/Input';\n\nimport logo from '~/assets/logotipos/logo.png';\n\nimport api from '~/services/api';\nimport BannersTestimonials from '~/components/BannersTestimonials';\nimport SocialBlueMobile from '~/components/SocialBlueMobile';\nimport swalError from '~/utils/swalError';\nimport swalSuccess from '~/utils/swalSuccess';\n\ninterface ForgortPasswordFormData {\n email: string;\n password: string;\n}\n\ninterface IParams {\n slug: string;\n}\n\nconst ForgortPassword: FC = () => {\n const formRef = useRef(null);\n const formRefPassword = useRef(null);\n const params = useParams();\n const { language } = useLanguage();\n const location = useLocation();\n const history = useHistory();\n\n const handleSubmit = useCallback(\n async (data: ForgortPasswordFormData) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n email: Yup.string()\n .email(language.sign_in.erro_1)\n .required(language.sign_in.erro_2),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n await api.post('/users/sessions/forgot-password', {\n email: data.email,\n });\n\n swalSuccess({\n title: 'Email sent with success',\n message:\n 'please check your email to continue with the password change.',\n textButton: 'Close',\n });\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n } else {\n swalSuccess({\n title: 'Email sent with success',\n message:\n 'please check your email to continue with the password change.',\n textButton: 'Close',\n });\n }\n }\n },\n [language.sign_in.erro_1, language.sign_in.erro_2]\n );\n\n const handleSubmitPassword = useCallback(\n async (data: ForgortPasswordFormData) => {\n try {\n formRefPassword.current?.setErrors({});\n const schema = Yup.object().shape({\n password: Yup.string().required('new password is required'),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n await api.post('/users/sessions/change-password', {\n password: data.password,\n token: params.slug,\n });\n\n swalSuccess({\n title: 'Password changed successfully',\n message: 'please log in with the new password',\n textButton: 'Close',\n });\n history.push(`${process.env.PUBLIC_URL}/`);\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRefPassword.current?.setErrors(errors);\n } else {\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n }\n },\n [history, params.slug]\n );\n\n return (\n \n
\n
\n \n
\n \"Logo\"\n
\n
\n
\n

Forgot Password?

\n\n {location.pathname === '/forgot-password' ? (\n <>\n

\n No worries. We’ll send you reset instructions.\n

\n \n \n Enter your email below to receive it.\n \n \n \n \n \n Back to log in\n \n \n \n ) : (\n <>\n

\n No worries. Enter your new password below.\n

\n \n \n Enter your new password.\n \n \n\n \n \n \n Back to log in\n \n \n \n )}\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nexport default ForgortPassword;\n","import styled from 'styled-components';\nimport { darken } from 'polished';\n\nexport const Container = styled.div`\n .pad-dash {\n padding: 30px 0;\n }\n\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.8;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.9;\n }\n }\n\n @media screen and (min-width: 1700px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const AllCourses = styled.div``;\n\nexport const Welcome = styled.div`\n h1 {\n color: #021027;\n }\n p {\n color: #8c8c8c;\n }\n`;\n\nexport const Content = styled.div`\n background: #ffffff;\n border-radius: 20px;\n\n a {\n font-weight: 300;\n color: #8c8c8c;\n border: 1px solid #dedede;\n border-radius: 16px;\n text-decoration: none !important;\n :hover {\n color: ${darken(0.1, '#8c8c8c')};\n border: 1px solid ${darken(0.1, '#dedede')};\n transition-duration: 0.5s;\n }\n }\n\n .pad-left {\n padding-left: 15px;\n }\n\n .pad-right {\n padding-right: 15px;\n }\n\n .pad-graph {\n padding-left: 15px;\n padding-right: 15px;\n }\n\n .pad-refferals {\n padding-left: 15px;\n padding-right: 15px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: block;\n box-shadow: none;\n\n .apexcharts-xaxis {\n opacity: 0 !important;\n }\n\n .apexcharts-text {\n opacity: 0 !important;\n }\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n .title-chart {\n h3,\n p {\n color: #021027;\n }\n }\n\n .bg-gray {\n background: #f9f9f9;\n border-radius: 20px;\n padding: 25px;\n\n h3,\n p {\n color: #303030;\n }\n\n h3 {\n font-size: 18px;\n color: #021027;\n }\n\n p {\n font-weight: 400;\n }\n\n li {\n border-color: #d0d0d0 !important;\n }\n }\n\n .semi-bold {\n font-weight: 600;\n }\n\n .icons {\n height: 30px;\n }\n\n /* .text-green {\n color: #20b27f !important;\n } */\n\n .text-red {\n color: #ff1a50;\n }\n\n .avatar-coach {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background-color: #303030;\n }\n\n p.total-referrals {\n color: #116bff;\n }\n\n @media screen and (min-width: 768px) {\n .pad-left {\n padding-left: 15px;\n }\n\n .pad-right {\n padding-right: 15px;\n }\n\n .pad-graph {\n padding-left: 30px;\n padding-right: 30px;\n }\n\n .pad-refferals {\n padding-left: 30px;\n padding-right: 30px;\n }\n }\n\n @media screen and (min-width: 992px) {\n .pad-refferals {\n padding-left: 0px;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .pad-left {\n padding-left: 15px;\n }\n\n .pad-right {\n padding-right: 15px;\n }\n\n .pad-graph {\n padding-left: 30px;\n padding-right: 30px;\n }\n\n .pad-refferals {\n padding-left: 0px;\n padding-right: 30px;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .pad-left {\n padding-left: 15px;\n }\n\n .pad-right {\n padding-right: 40px;\n }\n\n .pad-graph {\n padding-left: 30px;\n padding-right: 40px;\n }\n\n .pad-refferals {\n padding-left: 0px;\n padding-right: 30px;\n }\n }\n\n @media screen and (min-width: 1750px) {\n .d-1750-block {\n display: block !important;\n }\n\n .d-1750-none {\n display: none !important;\n }\n\n .text-right {\n p:nth-child(2) {\n font-size: 34px;\n }\n }\n }\n\n @media screen and (max-width: 1400px) {\n .bg-gray {\n h3 {\n font-weight: 500;\n }\n }\n }\n`;\n\nexport const Search = styled.div`\n background-color: #fff;\n border: 1px solid #dedede;\n border-radius: 25px;\n height: 41px;\n\n input {\n margin: 5px 0;\n border: none;\n background-color: transparent;\n color: #8c8c8c;\n }\n`;\n\nexport const Graph = styled.div`\n background: #f9f9f9;\n border-radius: 20px;\n padding: 25px;\n`;\n\nexport const TopCoach = styled.div`\n background: #202020;\n border-radius: 20px;\n\n .btn-month {\n background: #242526;\n border: 1px solid rgba(225, 225, 225, 0.2);\n\n span {\n color: #8c8c8c;\n }\n }\n\n .avatar {\n width: 90px;\n height: 90px;\n padding: 3px;\n background-image: linear-gradient(0deg, #202020, #202020),\n linear-gradient(180deg, #825511 0%, #f3bf5c 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 50%;\n }\n`;\n\nexport const TopAfiliate = styled.div`\n background: #202020;\n border-radius: 20px;\n\n .btn-month {\n background: #242526;\n border: 1px solid rgba(225, 225, 225, 0.2);\n\n span {\n color: #8c8c8c;\n }\n }\n\n .avatar {\n width: 90px;\n height: 90px;\n padding: 3px;\n background-image: linear-gradient(0deg, #202020, #202020),\n linear-gradient(180deg, #825511 0%, #f3bf5c 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 50%;\n }\n`;\n","/* eslint-disable global-require */\nimport React, {\n useState,\n useEffect,\n useCallback,\n useMemo,\n useLayoutEffect,\n} from 'react';\nimport ReactApexChart from 'react-apexcharts';\nimport { differenceInDays, format, parseISO } from 'date-fns';\nimport { Link } from 'react-router-dom';\n\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, Welcome, Content, Graph, Search } from './styles';\n\nimport referrals from '~/assets/icons/referrals-icon.svg';\nimport reveues from '~/assets/icons/reveues-icon.svg';\nimport totalReveues from '~/assets/icons/total-reveues-icon.svg';\nimport searchIcon from '~/assets/icons/search-icon.svg';\nimport api from '~/services/api';\nimport { formatPrice } from '~/utils/format';\n\ninterface IOrder {\n id: string;\n status: string;\n created_at: string;\n}\ninterface IRefferer {\n user: {\n id: string;\n name: string;\n avatar: {\n avatar_url: string;\n };\n orders: IOrder[];\n created_at: string;\n };\n created_at: string;\n}\ninterface IUser {\n id: string;\n name: string;\n avatar: string;\n created_at: string;\n}\n\ninterface ICommission {\n id: string;\n earning: string;\n created_at: string;\n}\n\nconst Home: React.FC = () => {\n const { user } = useAuth();\n const { language, idiom } = useLanguage();\n const [width, setWidth] = useState(0);\n const [newMembers, setNewMembers] = useState([]);\n const [newReferrals, setNewReferrals] = useState(0);\n const [totalReferrals, setTotalReferrals] = useState(0);\n const [percentReferral, setPercentReferral] = useState(0);\n const [months, setMonths] = useState([]);\n const [monthSales, setMonthSales] = useState([]);\n const [monthMembers, setMonthMembers] = useState([]);\n const [commissionsPercent, setCommissionsPercent] = useState(0);\n const [monthCommissions, setMonthCommissions] = useState('');\n const [totalCommissions, setTotalCommissions] = useState('0');\n const [loading, setLoading] = useState(false);\n const [showMembers, setShowMembers] = useState(5);\n const userName = user.name.split(' ');\n\n const updateSize = useCallback(() => {\n setWidth(window.innerWidth);\n }, []);\n\n useLayoutEffect(() => {\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, [updateSize]);\n\n useEffect(() => {\n if (width >= 1750) {\n setShowMembers(6);\n } else if (width >= 1600) {\n setShowMembers(5);\n } else if (width >= 1350) {\n setShowMembers(4);\n } else if (width >= 1200) {\n setShowMembers(3);\n } else if (width >= 992) {\n setShowMembers(4);\n } else {\n setShowMembers(5);\n }\n }, [width]);\n\n const compare = useCallback((a, b) => {\n if (a.created_at > b.created_at) {\n return -1;\n }\n if (a.created_at < b.created_at) {\n return 1;\n }\n return 0;\n }, []);\n\n useEffect(() => {\n setLoading(true);\n const currentDate = new Date();\n const currentMonth = currentDate.getMonth();\n const currentYear = currentDate.getFullYear();\n const salesArr: number[] = [];\n const monthsNames: string[] = [];\n const membersArr: number[] = [];\n const languageSelected =\n idiom === 'en'\n ? require('date-fns/locale/en-US')\n : require('date-fns/locale/es');\n api\n .get(`referrers/${user.affiliate.id}`)\n .then(async (response) => {\n const data: IUser[] = response.data.map((referrer) => {\n let j = 0;\n for (let i = 7; i >= 0; i -= 1) {\n const monthCalc = currentMonth - i;\n let year = currentYear;\n if (monthCalc < 0) {\n year -= 1;\n }\n const date = new Date(year, monthCalc);\n const month = date.getMonth();\n\n const dataByMonth = referrer.user.orders.filter((orders) => {\n const orderDate = parseISO(orders.created_at);\n const orderMonth = orderDate.getMonth();\n\n return month === orderMonth && orders.status === 'succeeded';\n });\n\n if (salesArr[j]) {\n salesArr[j] += dataByMonth.length;\n } else {\n salesArr[j] = dataByMonth.length;\n }\n j += 1;\n }\n\n return {\n id: referrer.user.id,\n name: referrer.user.name || 'Pending',\n avatar: referrer.user.avatar.avatar_url,\n created_at: referrer.created_at,\n };\n });\n const newReferralsData = response.data.filter((referrer) => {\n return (\n differenceInDays(new Date(), parseISO(referrer.created_at)) <= 30\n );\n });\n for (let i = 7; i >= 0; i -= 1) {\n const monthCalc = currentMonth - i;\n let year = currentYear;\n if (monthCalc < 0) {\n year -= 1;\n }\n const date = new Date(year, monthCalc);\n monthsNames.push(format(date, 'MMMM', { locale: languageSelected }));\n const month = date.getMonth();\n\n const dataByMonth = response.data.filter((referrer) => {\n const userDate = new Date(referrer.user.created_at);\n const userMonth = userDate.getMonth();\n return month === userMonth;\n });\n membersArr.push(dataByMonth.length);\n }\n\n let percentNewReferral = 0;\n if (newReferralsData.length === 0) {\n percentNewReferral = 0;\n } else if (response.data.length - newReferralsData.length === 0) {\n percentNewReferral = 100;\n } else {\n percentNewReferral =\n (newReferralsData.length * 100) /\n (response.data.length - newReferralsData.length);\n }\n\n const responseCommissions = await api.get('commissions');\n\n const dataCommissions = responseCommissions.data.filter(\n (commission: ICommission) => {\n const commissionsDate = new Date(commission.created_at);\n const commissionsMonth = commissionsDate.getMonth();\n\n return currentMonth === commissionsMonth;\n }\n );\n\n const total = responseCommissions.data.reduce(\n (acumulador: number, currentValue: ICommission) => {\n return acumulador + parseFloat(currentValue.earning);\n },\n 0\n );\n\n const newCommissions = dataCommissions.reduce(\n (acumulador: number, currentValue: ICommission) => {\n return acumulador + parseFloat(currentValue.earning);\n },\n 0\n );\n\n let percentCommissions = 0;\n if (dataCommissions.length === 0) {\n percentCommissions = 0;\n } else if (\n responseCommissions.data.length - dataCommissions.length ===\n 0\n ) {\n percentCommissions = 100;\n } else {\n percentCommissions =\n (dataCommissions.length * 100) /\n (response.data.length - dataCommissions.length);\n }\n\n setCommissionsPercent(percentCommissions);\n setMonthCommissions(formatPrice(newCommissions));\n setTotalCommissions(formatPrice(total));\n setMonthMembers(membersArr);\n setMonths(monthsNames);\n setMonthSales(salesArr);\n setPercentReferral(percentNewReferral);\n setNewReferrals(newReferralsData.length);\n setTotalReferrals(response.data.length);\n setNewMembers(data.sort(compare));\n })\n .finally(() => {\n setLoading(false);\n });\n }, [compare, idiom, user.affiliate.id]);\n\n const series = useMemo(\n () => [\n {\n name: language.dashboard.label_1,\n data: monthMembers,\n },\n {\n name: language.dashboard.label_2,\n data: monthSales,\n },\n ],\n [\n language.dashboard.label_1,\n language.dashboard.label_2,\n monthMembers,\n monthSales,\n ]\n );\n\n const options = useMemo(\n () => ({\n chart: {\n height: 480,\n type: 'area',\n toolbar: {\n show: false,\n },\n selection: {\n enabled: false,\n },\n zoom: {\n enabled: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n curve: 'smooth',\n },\n xaxis: {\n type: 'category',\n categories: months,\n },\n tooltip: {\n x: {\n format: 'dd/MM/yy HH:mm',\n },\n theme: 'dark',\n },\n colors: ['#116BFF', '#37c694'],\n markers: {\n strokeColors: '#4E4F51',\n },\n fill: {\n colors: ['rgba(17,107,255,1)', 'rgba(55, 198, 148, 0.8)'],\n type: 'gradient',\n gradient: {\n gradientToColors: [\n ['rgba(17,107,255,1)', 'rgba(17,107,255,0.5)'],\n ['rgba(55, 198, 148, 1)', 'rgba(55, 198, 148, 0.5)'],\n ],\n shadeIntensity: 1,\n opacityFrom: 1,\n opacityTo: 0,\n stops: [0, 100],\n },\n },\n grid: {\n show: false,\n },\n }),\n [months]\n );\n\n return (\n <>\n \n
\n
\n
\n \n
\n
\n
\n

\n {language.dashboard.h1} {userName[0]?.trim()}!\n

\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n {language.dashboard.h3_1}\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n

\n {language.dashboard.h3_2}\n

\n\n \n {language.dashboard.button}\n \n
\n \n \n \n \n
    \n \n

    \n 00.\n

    \n \n

    \n ##### ########\n

    \n \n \n

    \n 00.\n

    \n \n

    \n ##### ########\n

    \n \n \n

    \n 00.\n

    \n \n

    \n ##### ########\n

    \n \n {newMembers.map((member, index) => (\n <>\n {index < showMembers && (\n
  1. \n

    {index + 1}.

    \n \n

    {member.name}

    \n
  2. \n )}\n \n ))}\n
\n
\n
\n \n {language.dashboard.button}\n \n
\n
\n
\n
\n
\n
\n
\n

\n {language.dashboard.p_1}\n

\n
\n \n
\n \n +{percentReferral.toFixed(2)}%\n

\n \n +{newReferrals}\n

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

\n {language.dashboard.p_2}\n

\n
\n \n
\n

 

\n \n {totalReferrals}\n

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

Earnings This Month

\n
\n \n
\n \n +{commissionsPercent.toFixed(2)}%\n

\n \n +{monthCommissions}\n

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

Total Earnings

\n
\n \n
\n

 

\n \n {totalCommissions}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default Home;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .rdt_TableHeadRow,\n .rdt_TableRow {\n div {\n div,\n p {\n white-space: unset;\n width: 100%;\n text-align: center;\n }\n }\n\n > div:first-child {\n max-width: 150px;\n }\n }\n\n .menu-table {\n align-items: center;\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #303030;\n }\n p {\n color: #6f6f6f;\n }\n`;\n\nexport const NameUserTable = styled.div`\n img {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n }\n`;\n\nexport const Skeleton = styled.div`\n border-radius: 20px;\n background-color: #ffffff;\n z-index: 0;\n\n .h-36 {\n height: 36px;\n }\n\n .img-height {\n height: 40px;\n width: 40px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n .w-40 {\n width: 40%;\n }\n .w-15 {\n width: 15%;\n }\n }\n`;\n","import styled from 'styled-components';\nimport { darken, lighten } from 'polished';\n\ninterface TableContentProps {\n showHeader: boolean;\n rowIsClickable: boolean;\n}\n\nexport const TableContent = styled.div`\n border-radius: 20px;\n /* overflow: hidden; */\n background-color: #ffffff;\n z-index: 0;\n\n h2 {\n color: #242526;\n }\n\n .height {\n height: 20px;\n }\n\n .border-gray {\n border: solid 1px #dedede;\n }\n\n .menu-table {\n z-index: 100;\n top: 15px;\n left: 15px;\n right: 15px;\n\n .search {\n padding: 1px;\n border-radius: 100px;\n\n div {\n background: #fdfdfd;\n border-radius: 100px;\n }\n\n input {\n margin: 5px 0;\n padding: 0 10px;\n border: none;\n border-radius: 100px;\n background-color: #f9f9f9 !important;\n color: #fdfdfd;\n }\n }\n\n .inputDate {\n border: 1px solid #dedede;\n background: #f9f9f9;\n color: #828282;\n padding: 5px 10px;\n border-radius: 100px;\n :hover {\n color: ${lighten(0.1, '#828282')};\n border: 1px solid ${darken(0.1, '#dedede')};\n transition-duration: 0.5s;\n img {\n filter: brightness(1.5);\n transition-duration: 0.5s;\n }\n }\n }\n }\n\n div.tableData {\n .rdt_TableHeader {\n display: ${(props) => (props.showHeader ? 'block' : 'none')};\n }\n\n div {\n background-color: #ffffff;\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #021027 !important;\n }\n }\n\n .rdt_TableRow {\n padding: 5px 0;\n cursor: ${(props) => (props.rowIsClickable ? 'pointer' : 'default')};\n transition-duration: 0.3s;\n min-width: 1000px;\n\n div {\n transition-duration: 0.3s;\n }\n\n :hover {\n background-color: ${darken(0.03, '#F9F9F9')};\n\n div {\n background-color: ${darken(0.03, '#F9F9F9')};\n }\n }\n }\n }\n\n @media screen and (max-width: 1399px) {\n div.tableData {\n max-width: 1200px;\n }\n }\n\n @media screen and (max-width: 991px) {\n .react-datepicker-wrapper {\n width: 100%;\n }\n }\n\n @media screen and (max-width: 355px) {\n .size-xxs {\n font-size: 12px;\n padding: 8px 10px !important;\n }\n\n .svg-xxs {\n img {\n width: 16px !important;\n }\n }\n }\n\n @media screen and (min-width: 575px) {\n .w-100px {\n width: 100px;\n }\n }\n`;\n\nexport const Pagination = styled.div`\n p,\n button {\n color: #8c8c8c;\n }\n\n button {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n font-weight: bold;\n\n :first-child,\n :last-child {\n width: auto;\n border-radius: 5px;\n }\n }\n\n button.active,\n button:hover:not(:disabled) {\n background: linear-gradient(269.95deg, #116bff 0.02%, #116bff 97.45%);\n color: #fff;\n }\n\n @media screen and (max-width: 991px) {\n .btn-page:not(.active) {\n display: none;\n }\n }\n`;\n\nexport const NotFound = styled.div`\n display: flex;\n width: 100% !important;\n height: 350px;\n justify-content: center;\n align-items: center;\n color: #8c8c8c;\n`;\n","import React, { useCallback, useState } from 'react';\nimport DatePicker, { registerLocale } from 'react-datepicker';\nimport es from 'date-fns/locale/es';\nimport Input from '~/components/Input';\n\ninterface InputDateProps {\n name?: string;\n onChange(date: Date | [Date, Date] | null): void;\n selected?: Date | null;\n className?: string;\n dateFormat?: string | string[];\n isError?: boolean;\n}\n\nconst InputDate: React.FC = ({\n name,\n onChange,\n selected,\n className,\n dateFormat,\n isError,\n}) => {\n registerLocale('es', es);\n const [value, setValue] = useState('');\n\n const handleChange = useCallback(\n (e) => {\n setValue(e);\n onChange(e);\n },\n [onChange]\n );\n\n const { lang } = document.documentElement;\n\n return (\n <>\n \n {name && (\n \n )}\n \n );\n};\n\nexport default InputDate;\n","/* eslint-disable react/jsx-wrap-multilines */\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport DataTable, {\n IDataTableColumn,\n IDataTableStyles,\n} from 'react-data-table-component';\n\nimport { MdFindInPage } from 'react-icons/md';\nimport { CSVLink } from 'react-csv';\nimport { useLocation } from 'react-router-dom';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { TableContent, Pagination, NotFound } from './styles';\nimport InputDate from '~/components/InputDate';\n\nimport magnifier from '~/assets/icons/magnifier.svg';\nimport table from '~/assets/icons/table-icon.svg';\n\ninterface IData {\n [key: string]: any;\n}\ninterface ITableProps {\n title?: string;\n showTitle?: boolean;\n data: IData[];\n columns: IDataTableColumn[];\n style?: IDataTableStyles;\n searchable?: boolean;\n onSearch?(value: string): void;\n date?: boolean;\n initialDate?: Date;\n finalDate?: Date;\n onChangeStartDate?(date: Date): void;\n onChangeLastDate?(date: Date): void;\n exportable?: boolean;\n pagination?: boolean;\n quantity?: boolean;\n onRowClicked?(e: IData): void;\n onChangeQuantity?(e: string): void;\n}\n\nconst Table: React.FC = ({\n title,\n showTitle,\n data,\n columns,\n style,\n searchable,\n onSearch,\n date,\n initialDate,\n finalDate,\n onChangeStartDate,\n onChangeLastDate,\n exportable,\n pagination,\n quantity,\n onRowClicked,\n onChangeQuantity,\n}) => {\n const [startDate, setStartDate] = useState(\n initialDate || new Date(new Date().getFullYear(), 0, 1)\n );\n const [lastDate, setLastDate] = useState(\n finalDate || new Date(new Date().getFullYear(), 11, 31)\n );\n const [totalData, setTotalData] = useState(0);\n const [partialData, setPartialData] = useState(0);\n const [selectedPage, setSelectedPage] = useState(1);\n const [firstButton, setFirstButton] = useState(2);\n const [centerButton, setCenterButton] = useState(3);\n const [lastButton, setLastButton] = useState(4);\n const { language } = useLanguage();\n const location = useLocation();\n const [loading, setLoading] = useState(true);\n\n const customStyles: IDataTableStyles = useMemo(() => {\n return {\n noData: {\n style: {\n backgroundColor: '#ffffff',\n color: '#626262',\n fontWeigth: 'bold',\n fontSize: '2rem',\n },\n },\n header: {\n style: {\n backgroundColor: '#ffffff',\n color: '#626262',\n },\n },\n headRow: {\n style: {\n border: 'none',\n },\n },\n rows: {\n style: {\n backgroundColor: '#ffffff',\n '&:not(:last-of-type)': {\n border: 'none',\n },\n },\n },\n headCells: {\n style: {\n backgroundColor: '#ffffff',\n color: '#626262',\n },\n activeSortStyle: {\n color: '#626262',\n '&:focus': {\n outline: 'none',\n },\n '&:hover:not(:focus)': {\n color: '#626262',\n },\n },\n inactiveSortStyle: {\n color: '#626262',\n '&:focus': {\n outline: 'none',\n color: '#626262',\n },\n '&:hover': {\n color: '#626262',\n },\n },\n },\n cells: {\n style: {\n color: '#8c8c8c',\n backgroundColor: '#ffffff',\n },\n },\n contextMenu: {\n style: {\n color: '#626262',\n },\n },\n action: {\n button: '#8c8c8c',\n hover: '#8c8c8c',\n disabled: '#8c8c8c',\n },\n };\n }, []);\n\n const tableData = useMemo(() => {\n setTotalData(data.length);\n return data;\n }, [data]);\n\n const tableDataShow = useMemo(() => {\n const newDataList = tableData.filter(\n (_, index) =>\n index >= (selectedPage - 1) * 10 && index < selectedPage * 10\n );\n if (partialData === 0) {\n setPartialData(newDataList.length);\n }\n return newDataList;\n }, [partialData, selectedPage, tableData]);\n\n const dataToExport = useMemo(() => {\n return tableDataShow;\n }, [tableDataShow]);\n\n const totalPages = useMemo(() => {\n const pages = Math.ceil(tableData.length / 10);\n return pages;\n }, [tableData]);\n\n const onChangePage = useCallback(\n (page) => {\n setSelectedPage(page);\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setFirstButton(page - 1);\n } else if (page === totalPages) {\n if (totalPages === 3) {\n setFirstButton(page - 1);\n } else if (totalPages === 4) {\n setFirstButton(page - 2);\n } else {\n setFirstButton(page - 3);\n }\n } else if (totalPages === 4) {\n setFirstButton(page - 1);\n } else {\n setFirstButton(page - 2);\n }\n } else if (page === 1) {\n setFirstButton(page + 1);\n } else {\n setFirstButton(page);\n }\n\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setCenterButton(page);\n } else if (page === totalPages) {\n if (totalPages === 4) {\n setCenterButton(page - 1);\n } else {\n setCenterButton(page - 2);\n }\n } else if (totalPages === 4) {\n setCenterButton(page);\n } else {\n setCenterButton(page - 1);\n }\n } else if (page === 1) {\n setCenterButton(page + 2);\n } else {\n setCenterButton(page + 1);\n }\n\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setLastButton(page + 1);\n } else if (page === totalPages) {\n setLastButton(page - 1);\n } else {\n setLastButton(page);\n }\n } else if (page === 1) {\n setLastButton(page + 3);\n } else {\n setLastButton(page + 2);\n }\n\n setPartialData(10 * page);\n },\n [totalPages]\n );\n\n const handleChange = useCallback(\n (e) => {\n if (onSearch) {\n setSelectedPage(1);\n onSearch(e.target.value);\n }\n },\n [onSearch]\n );\n\n const handleChangeStartDate = useCallback(\n (e) => {\n setStartDate(e);\n if (onChangeStartDate) {\n setSelectedPage(1);\n onChangeStartDate(e);\n }\n },\n [onChangeStartDate]\n );\n\n const handleChangeLastDate = useCallback(\n (e) => {\n setLastDate(e);\n if (onChangeLastDate) {\n setSelectedPage(1);\n onChangeLastDate(e);\n }\n },\n [onChangeLastDate]\n );\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n\n return (\n \n \n {title && showTitle && (\n <>\n \n

{title}

\n
\n
\n \n )}\n {searchable && (\n
\n
\n
\n \n \"Magnifier\"\n
\n
\n
\n )}\n {(date || exportable) && (\n \n
\n {date && (\n <>\n
\n \n
\n
\n \n
\n \n )}\n {exportable && (\n
\n \n \"Table\"\n \n
\n )}\n
\n
\n )}\n
\n \n \n

\n \n   \n
\n {language.table.p_1}\n

\n \n }\n />\n
\n {pagination && (\n \n
\n

\n {language.table.p_2_1} {partialData < 10 ? 1 : partialData - 9}-\n {partialData > totalData ? totalData : partialData}{' '}\n {language.table.p_2_2} {totalData}\n

\n {quantity && (\n <>\n \n \n onChangeQuantity && onChangeQuantity(e.target.value)\n }\n >\n \n \n \n \n \n \n )}\n
\n
\n
\n onChangePage(1)}\n disabled={selectedPage === 1}\n >\n {language.table.button_1}\n \n onChangePage(1)}\n >\n 01\n \n {totalPages > 1 && (\n <>\n {totalPages > 5 && (\n <>\n {selectedPage > 3 && (\n \n ...\n \n )}\n \n )}\n {totalPages > 2 && (\n onChangePage(firstButton)}\n >\n {`0${firstButton}`.slice(-2)}\n \n )}\n {totalPages > 3 && (\n onChangePage(centerButton)}\n >\n {`0${centerButton}`.slice(-2)}\n \n )}\n {totalPages > 4 && (\n onChangePage(lastButton)}\n >\n {`0${lastButton}`.slice(-2)}\n \n )}\n {totalPages > 5 && (\n <>\n {selectedPage < totalPages - 2 && (\n \n ...\n \n )}\n \n )}\n \n )}\n {totalPages > 1 && (\n onChangePage(totalPages)}\n >\n {`0${totalPages}`.slice(-2)}\n \n )}\n onChangePage(totalPages)}\n disabled={selectedPage === totalPages}\n >\n {language.table.button_2}\n \n
\n
\n
\n )}\n \n );\n};\n\nexport default Table;\n","import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { IDataTableColumn as IColumn } from 'react-data-table-component';\n\nimport { format, parseISO } from 'date-fns';\nimport { formatPrice } from '~/utils/format';\n\nimport { Container, Welcome, NameUserTable, Skeleton } from './styles';\nimport TableData from '~/components/Table';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport logo from '~/assets/logotipos/logo-profile.png';\n\ninterface ITableData {\n id: string;\n transactionDate: string;\n orderID: string;\n avatar: string;\n name: string;\n level: string;\n referrer: string;\n product: string;\n amountPaid: string;\n commission: string;\n refund: boolean;\n}\n\ninterface IUser {\n avatar: {\n avatar_url: string;\n };\n name: string;\n}\ninterface ICourse {\n title: string;\n}\n\ninterface IProduct {\n name: string;\n}\ninterface IOrder {\n affiliate_id: string;\n amount_paid: number;\n created_at: string;\n id: string;\n product_id: string;\n user: IUser;\n course: ICourse;\n product: IProduct;\n}\n\ninterface ICommission {\n id: string;\n amount_paid: number;\n earning: number;\n gain_origin: string;\n created_at: string;\n order?: IOrder;\n}\n\nconst Users: React.FC = () => {\n const { language } = useLanguage();\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const [firstLoading, setFirstLoading] = useState(true);\n const [search, setSearch] = useState('');\n const [startDate, setStartDate] = useState(\n new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n );\n const [endDate, setEndDate] = useState(\n new Date(new Date().getFullYear(), 11, 31, 23, 59, 59, 99)\n );\n\n useEffect(() => {\n if (firstLoading) {\n setLoading(true);\n setFirstLoading(false);\n }\n\n api\n .get(`commissions`, {\n params: {\n search,\n startDate,\n endDate,\n },\n })\n .then((response) => {\n const data = response.data.map((commission: ICommission) => ({\n transactionDate: format(\n parseISO(commission.created_at),\n 'MM-dd-yyyy'\n ),\n\n orderID: commission.order\n ? commission.order.id\n : `${\n commission.gain_origin.match('Crowdfunding')\n ? 'Crowdfunding Distribution'\n : commission.gain_origin\n }`,\n avatar: commission.order\n ? commission.order.user.avatar.avatar_url\n : logo,\n name: commission.order ? commission.order.user.name : 'Wiser',\n product:\n commission.order && commission.order.course\n ? `Course: ${commission.order.course.title}`\n : `${\n commission.gain_origin.match('Crowdfunding')\n ? 'Crowdfunding Distribution'\n : commission.gain_origin\n }${\n commission.order ? `: ${commission.order.product.name}` : ''\n }`,\n amountPaid: formatPrice(commission.amount_paid),\n commission: formatPrice(commission.earning),\n refund: commission.earning < 0,\n }));\n setUsers(data);\n setLoading(false);\n });\n }, [endDate, firstLoading, search, startDate]);\n\n const columns = useMemo(\n () => [\n {\n name: language.commission_history.th_1,\n selector: 'transactionDate',\n sortable: true,\n },\n {\n name: language.commission_history.th_2,\n selector: 'orderID',\n sortable: true,\n },\n {\n name: language.commission_history.th_3,\n selector: 'name',\n sortable: true,\n cell: (row: any) => (\n \n {row.name}\n

{row.name}

\n \n ),\n },\n {\n name: language.commission_history.th_4,\n selector: 'product',\n sortable: true,\n },\n {\n name: language.commission_history.th_5,\n selector: 'amountPaid',\n sortable: true,\n cell: (row: any) =>

{row.amountPaid}

,\n },\n {\n name: language.commission_history.th_6,\n selector: 'commission',\n sortable: true,\n cell: (row: any) => (\n

\n {row.commission}\n

\n ),\n },\n ],\n [\n language.commission_history.th_1,\n language.commission_history.th_2,\n language.commission_history.th_3,\n language.commission_history.th_4,\n language.commission_history.th_5,\n language.commission_history.th_6,\n ]\n );\n\n const handleSearch = useCallback(async (value) => {\n setSearch(value);\n }, []);\n\n const handleChangeStartDate = useCallback((value) => {\n setStartDate(value);\n }, []);\n\n const handleChangeEndDate = useCallback((value) => {\n setEndDate(value);\n }, []);\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n

\n {language.commission_history.h1}\n

\n
\n
\n
\n
\n {loading && (\n \n
\n
\n
\n
\n
\n \n 00/00/0000\n \n \n 00/00/0000\n \n \n 00/00\n \n
\n
\n\n
\n
\n

\n Fecha de la transacción\n

\n
\n
\n

Id del pedido

\n
\n
\n

Usuario

\n
\n
\n

Producto

\n
\n
\n

Cantidad pagada

\n
\n
\n

Comisión

\n
\n
\n
\n
\n

00-00-0000

\n
\n
\n

#######-#######

\n
\n
\n
\n

######

\n
\n
\n

#########

\n
\n
\n

######

\n
\n
\n

######

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

Demostración 1-1 de 1

\n
\n
\n
\n \n Primero\n \n \n 01\n \n \n Último\n \n
\n
\n
\n \n )}\n
\n \n
\n
\n
\n
\n \n );\n};\n\nexport default Users;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n img {\n width: 24px;\n height: 24px;\n }\n .categories {\n overflow: auto;\n height: auto;\n a {\n display: block;\n background-color: transparent;\n border: none;\n text-align: start;\n color: #8c8c8c !important;\n font-weight: 400;\n\n :hover {\n background-color: #d0d0d0;\n border-radius: 15px;\n color: #021027 !important;\n text-decoration: none;\n font-weight: 700;\n }\n }\n\n a.active {\n background-color: #d0d0d0;\n border-radius: 15px;\n color: #021027 !important;\n text-decoration: none;\n font-weight: 700;\n }\n }\n\n @media screen and (min-width: 992px) {\n .categories {\n height: 328px;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport { NavLink } from 'react-router-dom';\nimport api from '~/services/api';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\nimport categoryIcon from '~/assets/icons/categories.svg';\n\ninterface ICategory {\n id: string;\n name: string;\n slug: string;\n}\n\ninterface ICategoriesProps {\n type: 'courses' | 'trainings';\n}\n\nconst Categories: React.FC = ({ type }) => {\n const { language } = useLanguage();\n const [categories, setCategories] = useState([]);\n const [baseUrl, setBaseUrl] = useState('');\n\n useEffect(() => {\n api\n .get('categories/users', {\n params: {\n type,\n },\n })\n .then((response) => {\n setCategories(response.data);\n });\n\n if (type === 'courses') {\n setBaseUrl(`${process.env.PUBLIC_URL}/courses/categories`);\n } else {\n setBaseUrl(`${process.env.PUBLIC_URL}/trainings`);\n }\n }, [type]);\n\n return (\n \n
\n

\n {language.affiliates_categories.h2}\n

\n \"categories\"\n
\n
\n
\n \n {language.affiliates_categories.nav}\n \n
\n {categories.map((category) => (\n
\n \n {category.name}\n \n
\n ))}\n
\n
\n );\n};\n\nexport default Categories;\n","import styled from 'styled-components';\nimport { Link } from 'react-router-dom';\nimport { lighten } from 'polished';\n\nexport const Container = styled.div`\n .container-fluid {\n max-width: 1580px;\n }\n\n .slick-dots {\n z-index: 10 !important;\n }\n\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.8;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.9;\n }\n }\n\n @media screen and (min-width: 1700px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #021027;\n }\n p {\n color: #303030;\n }\n\n .search {\n padding: 1px;\n border-radius: 100px;\n border: 1px solid #4a4b4b;\n background-color: #202020;\n\n input {\n margin: 5px 0;\n padding: 0 10px;\n border: none;\n border-radius: 100px;\n background-color: #202020;\n }\n }\n .add-training {\n border: 1px solid #4a4b4b;\n background-color: #202020;\n color: #e4e4e4;\n text-decoration: none !important;\n font-size: 12px;\n font-weight: 600;\n :hover {\n border-color: ${lighten(0.1, '#4a4b4b')};\n color: ${lighten(0.1, '#e4e4e4')};\n transition-duration: 0.5s;\n img {\n filter: brightness(1.3);\n }\n }\n }\n`;\n\nexport const Search = styled.div`\n padding: 1px;\n border-radius: 100px;\n border: 1px solid #d0d0d0;\n background-color: transparent;\n\n input {\n margin: 5px 0;\n padding: 0 10px;\n border: none;\n border-radius: 100px;\n background-color: transparent;\n color: #8c8c8c;\n }\n`;\n\nexport const Card = styled(Link)`\n border-radius: 20px;\n overflow: hidden;\n\n img {\n border-radius: 20px;\n }\n\n .top_0 {\n top: 0 !important;\n }\n\n .training-img {\n height: 380px;\n }\n\n .mkt-img {\n height: 20vw;\n max-height: 340px;\n }\n\n > div {\n background-color: rgba(0, 0, 0, 0.4);\n bottom: 0px;\n border-radius: 20px;\n height: 380px;\n width: calc(100% - 1rem);\n\n /* p {\n width: 55%;\n } */\n\n .edit {\n background-color: transparent;\n border: none;\n color: rgba(203, 204, 206, 1);\n text-decoration: none;\n img {\n border-radius: 0px;\n }\n :hover {\n color: ${lighten(0.1, 'rgba(203, 204, 206, 1)')};\n transition-duration: 0.5s;\n img {\n filter: brightness(1.3);\n }\n }\n }\n\n a.btn-more {\n width: 40%;\n background: rgba(111, 110, 110, 1);\n border: none;\n color: rgba(203, 204, 206, 1);\n text-align: center;\n\n :hover {\n text-decoration: none;\n color: ${lighten(0.1, 'rgba(203, 204, 206, 1)')};\n background-color: ${lighten(0.1, 'rgba(111, 110, 110, 1)')};\n transition-duration: 0.5s;\n }\n }\n }\n\n .btn-white {\n border-radius: 13px;\n background: #fff;\n color: #021027;\n font-size: 14px;\n font-weight: 600;\n width: 123.848px;\n height: 36.609px;\n }\n\n .big-btn {\n border-radius: 15px;\n width: 237px;\n height: 51.609px;\n }\n\n @media screen and (max-width: 768px) {\n > div {\n height: 300px;\n }\n .training-img {\n height: 300px;\n }\n\n .mkt-img {\n height: 230px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .mkt-img {\n height: 200px;\n }\n .btn-more {\n padding: 10px 40px;\n }\n }\n`;\n\nexport const Skeleton = styled.div`\n .img-height {\n height: 380px;\n }\n\n .bg-skeleton {\n height: 340px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n .img-height {\n height: 231px;\n }\n }\n`;\n","import React, { Fragment, useCallback, useEffect, useState } from 'react';\nimport { useParams, useHistory } from 'react-router-dom';\nimport Slider from 'react-slick';\nimport api from '~/services/api';\nimport Categories from '~/components/Categories';\nimport { Container, Welcome, Search, Card, Skeleton } from './styles';\nimport { useLanguage } from '~/hooks/Language';\n\nimport search from '~/assets/icons/search-icon.svg';\n\ninterface ITrainingResponse {\n id: string;\n title: string;\n description: string;\n thumbnail: {\n thumbnail_url: string;\n };\n slug: string;\n}\n\ninterface ITrainingCategoryResponse {\n id: string;\n training: ITrainingResponse;\n}\n\ninterface ITraining {\n id: string;\n title: string;\n description: string;\n thumbnail: string;\n slug: string;\n}\n\ninterface IParamsProps {\n slug?: string;\n}\n\nconst TrainingList: React.FC = () => {\n const { language } = useLanguage();\n const params = useParams();\n const history = useHistory();\n const [searchValue, setSearchValue] = useState('');\n const [category, setCategory] = useState(\n `${language.affiliates_categories.nav}`\n );\n const [trainings, setTrainings] = useState([]);\n const [loading, setLoading] = useState(true);\n const [carousel, setCarousel] = useState([]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n if (params.slug) {\n setSearchValue('');\n api\n .get(`categories/users/${params.slug}`, {\n params: {\n type: 'trainings',\n },\n })\n .then(async (response) => {\n const data = response.data.trainingCategory.map(\n (trainingCategory: ITrainingCategoryResponse) => ({\n id: trainingCategory.training.id,\n title: trainingCategory.training.title,\n description: trainingCategory.training.description,\n thumbnail: trainingCategory.training.thumbnail.thumbnail_url,\n slug: trainingCategory.training.slug,\n })\n );\n setTrainings(data);\n\n setCategory(response.data.name);\n })\n .finally(() => {\n setLoading(false);\n });\n } else {\n api\n .get('trainings/users/')\n .then(async (response) => {\n const data = response.data.map((training: ITrainingResponse) => ({\n id: training.id,\n title: training.title,\n description: training.description,\n thumbnail: training.thumbnail.thumbnail_url,\n slug: training.slug,\n }));\n setTrainings(data);\n setCarousel(data);\n setCategory(`${language.affiliates_categories.nav}`);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, [language.affiliates_categories.nav, params.slug]);\n\n const handleSearch = useCallback(\n async (e) => {\n history.push(`${process.env.PUBLIC_URL}/trainings`);\n setSearchValue(e.target.value);\n const response = await api.get('trainings/users', {\n params: {\n title: e.target.value,\n },\n });\n\n if (response.data) {\n const data = response.data.map((training: ITrainingResponse) => ({\n id: training.id,\n title: training.title,\n description: training.description,\n thumbnail: training.thumbnail.thumbnail_url,\n slug: training.slug,\n }));\n setTrainings(data);\n }\n },\n [history]\n );\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n

\n {language.affiliates_training.h1}\n

\n

\n Here you will find trainings, guides, and content designed\n to help you grow your business.\n

\n
\n
\n \n \n \"Search\"\n \n
\n
\n
\n
\n
\n {loading && (\n <>\n \n
\n \n\n \n
\n

\n Categorías\n

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

Todos

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )}\n {!loading && (\n <>\n
\n \n {carousel.map((trainingCarrousel) => (\n \n <>\n \n
\n

\n {trainingCarrousel.title}\n

\n \n See More\n \n
\n \n \n ))}\n \n
\n
\n \n
\n
\n
\n
\n

\n {searchValue ? `Filter: ${searchValue}` : category}\n

\n
\n\n {trainings.length > 0 ? (\n <>\n {trainings.map((training) => (\n \n
\n \n \n
\n
\n
\n

\n {training.title}\n

\n \n See More\n \n
\n
\n
\n \n
\n
\n ))}\n \n ) : (\n
\n

\n {language.affiliates_training.p_2}\n

\n
\n )}\n
\n
\n \n )}\n
\n
\n \n );\n};\n\nexport default TrainingList;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 100%;\n\n textarea {\n border-radius: 20px;\n }\n\n h1,\n a {\n color: #021027;\n }\n\n h3 {\n color: #021027;\n }\n\n p {\n color: #8c8c8c;\n font-weight: 400;\n }\n\n textarea {\n resize: none;\n ::-webkit-scrollbar-thumb {\n background: #303030;\n }\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n }\n\n .bg-text {\n background-color: #202020;\n color: #606060;\n }\n\n .old-price {\n color: #ff1a50;\n }\n\n .video-js .vjs-big-play-button {\n background-color: #116bff !important;\n border: none !important;\n border-radius: 50% !important;\n font-size: 5em !important;\n line-height: 1.5em !important;\n height: 1.5em !important;\n width: 1.5em !important;\n margin-left: 0px !important;\n transition: 0.3s;\n transform: translate(-50%, -50%);\n margin-top: 0px;\n }\n\n .video-js:hover .vjs-big-play-button,\n .video-js .vjs-big-play-button:focus {\n -webkit-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n -moz-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n }\n\n .vjs-control-bar {\n border-radius: 0 0 15px 15px !important;\n }\n\n .player {\n border-radius: 15px;\n overflow: hidden;\n position: relative;\n video {\n border-radius: 15px !important;\n cursor: pointer;\n }\n }\n\n .notes button {\n color: #303030;\n font-size: 14px !important;\n }\n\n .notes > div {\n padding-top: 2rem !important;\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n\n .fw-600 {\n font-weight: 600;\n }\n\n .max-h {\n height: auto;\n color: #8c8c8c;\n font-weight: 400;\n }\n\n @media screen and (min-width: 992px) {\n .container-lg-fluid {\n max-width: 1580px !important;\n }\n\n .max-h {\n height: 200px;\n overflow: auto;\n padding-right: 10px;\n ::-webkit-scrollbar-thumb {\n background: #303030;\n }\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n }\n\n .notes > div {\n padding-top: 3rem !important;\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .notes > div {\n margin-right: 3rem !important;\n }\n\n .zoom {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.8;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.9;\n }\n }\n\n @media screen and (min-width: 1700px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const Courses = styled.div`\n .thumb {\n border-radius: 20px;\n height: 230px;\n }\n\n a {\n height: 100%;\n border-radius: 20px;\n\n .short-title {\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 0px 0px 20px 20px;\n\n p {\n color: #fff;\n }\n }\n }\n`;\n","import styled from 'styled-components';\n\ninterface noteProps {\n textareaSelected: boolean;\n}\n\nexport const Container = styled.div`\n background: #ffffff;\n border-radius: 15px;\n\n p {\n color: #303030;\n font-size: 0.8rem;\n }\n\n button {\n cursor: text !important;\n }\n\n textarea {\n background: #ffffff;\n border: none;\n color: #303030;\n min-height: ${(props) => (props.textareaSelected ? '100%' : '92.5%')};\n\n :focus {\n background: #ffffff;\n box-shadow: none;\n color: #606060;\n }\n }\n\n @media screen and (max-width: 991px) {\n min-height: ${(props) => (props.textareaSelected ? '210px' : '200px')};\n }\n`;\n","import React, { useCallback, useState } from 'react';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\nimport notes from '~/assets/icons/notes.svg';\n\nconst Notes: React.FC = () => {\n const { language } = useLanguage();\n const [textareaSelected, setTextareaSelected] = useState(false);\n const [textareaContent, setTextareaContent] = useState(0);\n\n const handleClick = useCallback(() => {\n setTextareaSelected(true);\n }, []);\n\n const handleFocus = useCallback(() => {\n setTextareaSelected(true);\n }, []);\n\n const handleBlur = useCallback(() => {\n setTextareaSelected(false);\n }, []);\n\n const handleChange = useCallback((e) => {\n setTextareaContent(e.target.value.length);\n }, []);\n\n return (\n \n {!textareaSelected && textareaContent === 0 && (\n \n \"File\"\n

{language.training.placeholder}

\n \n )}\n \n \n );\n};\n\nexport default Notes;\n","import React, { useEffect, useState } from 'react';\nimport { Link, useParams } from 'react-router-dom';\n\nimport { FiArrowLeft } from 'react-icons/fi';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport { Container } from './styles';\nimport Player from '~/components/Player';\nimport Notes from '~/components/Notes';\n\ninterface IParams {\n slug: string;\n}\n\ninterface ITraining {\n id: string;\n title: string;\n description: string;\n thumbnail: string;\n video: string;\n slug: string;\n}\n\nconst Course: React.FC = () => {\n const { language } = useLanguage();\n const params = useParams();\n const [training, setTraining] = useState({} as ITraining);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n setLoading(true);\n api.get(`trainings/users/${params.slug}`).then((response) => {\n const data = {\n id: response.data.id,\n title: response.data.title,\n description: response.data.description,\n thumbnail: response.data.thumbnail.thumbnail_url,\n slug: response.data.slug,\n video: response.data.video.media_id\n ? response.data.video.video_url\n : `https://cdn.jwplayer.com/videos/${response.data.video.media_id}.mp4`,\n };\n setTraining(data);\n setLoading(false);\n });\n }, [params.slug]);\n\n return (\n <>\n {Object.keys(training).length > 0 && (\n \n
\n
\n
\n
\n \n \n \n

{training.title}

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

{language.training.h3}

\n \n
\n
\n
\n {loading && (\n
\n
\n Loading...\n
\n
\n )}\n
\n )}\n \n );\n};\n\nexport default Course;\n","import styled from 'styled-components';\n\ninterface IFlagProps {\n show: boolean;\n}\n\ninterface IThumbnailProps {\n src: string;\n}\n\nexport const Container = styled.div`\n .more {\n border-radius: 16px;\n border: 1px solid #116bff;\n background: #116bff;\n width: 237px;\n color: #fff;\n font-family: 'Archivo';\n font-size: 24px;\n font-weight: 500;\n padding: 12px;\n transition-duration: 0.3s;\n :hover {\n opacity: 0.8;\n }\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #021027;\n }\n p {\n color: #515151;\n font-size: 18px;\n font-weight: 400;\n line-height: 146.023%;\n }\n\n .group-btn {\n overflow: unset;\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: transparent;\n }\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n }\n\n .btn-funnels-articles {\n color: #116bff;\n font-size: 16px;\n font-weight: 600;\n line-height: normal;\n border-radius: 33px;\n border: 1px solid #116bff;\n background: #fafafa;\n padding-right: 15px;\n display: flex;\n align-items: center;\n height: 51px;\n transition-duration: 0.3s;\n :hover {\n opacity: 0.8;\n }\n\n span {\n width: 106.5px;\n display: block;\n }\n\n svg,\n img {\n padding: 9px 15px;\n border-radius: 27px;\n background: #116bff;\n margin: 4px;\n margin-right: 10px;\n width: 54px;\n height: 41px;\n }\n }\n\n .btn-active {\n color: #fff;\n font-size: 16px;\n font-weight: 600;\n line-height: normal;\n border-radius: 33px;\n border: 1px solid #116bff;\n background: #116bff;\n padding-right: 15px;\n display: flex;\n align-items: center;\n height: 51px;\n transition-duration: 0.3s;\n :hover {\n opacity: 0.8;\n }\n\n span {\n width: 106.5px;\n display: block;\n }\n\n svg,\n img {\n padding: 9px 15px;\n border-radius: 27px;\n background: #fff;\n margin: 4px;\n margin-right: 10px;\n width: 54px;\n height: 41px;\n }\n }\n\n .search {\n padding: 1px;\n border-radius: 100px;\n border: 1px solid #4a4b4b;\n background-color: #202020;\n\n input {\n margin: 5px 0;\n padding: 0 10px;\n border: none;\n border-radius: 100px;\n background-color: #202020;\n }\n }\n\n .border-golden {\n :hover {\n color: #e4e4e4;\n text-decoration: none;\n }\n }\n\n @media screen and (max-width: 1399px) {\n p {\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 991px) {\n p {\n font-size: 16px;\n }\n .group-btn {\n overflow: auto;\n }\n }\n\n @media screen and (max-width: 400px) {\n h1 {\n font-size: 24px !important;\n }\n }\n`;\n\nexport const Search = styled.div`\n padding: 1px;\n border-radius: 100px;\n border: 1px solid #4a4b4b;\n background-color: #202020;\n\n input {\n margin: 5px 0;\n padding: 0 10px;\n border: none;\n border-radius: 100px;\n background-color: #202020;\n }\n`;\n\nexport const AddButton = styled.button`\n border-radius: 20px;\n overflow: hidden;\n background-color: #202020;\n min-height: 526px;\n\n .tinytext {\n color: #828282;\n }\n\n img {\n border-radius: 20px;\n }\n`;\n\nexport const Card = styled.div`\n border-radius: 20px;\n overflow: hidden;\n background-color: #ffffff;\n border: 1px solid #f2f2f2;\n min-height: 526px;\n\n h3 {\n color: #242526;\n padding: 0.375rem 0.75rem;\n font-size: 18px;\n\n font-weight: 600;\n line-height: normal;\n }\n\n textarea {\n color: #515151 !important;\n max-height: 300px !important;\n height: 135px !important;\n font-family: 'Inter';\n font-size: 12px;\n font-weight: 300;\n line-height: 140%;\n }\n\n .input-tag {\n font-size: 14px;\n color: #515151;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n background: #f2f2f2;\n height: 50px;\n text-align: center;\n }\n\n .btn-code {\n color: #116bff;\n width: 43%;\n text-align: center;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 600;\n border-radius: 27px;\n background: #fff;\n border: 2px solid #116bff;\n padding: 2px;\n :hover {\n color: #fff;\n background: #116bff;\n border: 2px solid #116bff;\n }\n }\n\n .btn-code-active {\n color: #fff;\n background: #116bff;\n border: 2px solid #116bff;\n }\n\n .radius {\n border-radius: 20px !important;\n }\n\n .height-default {\n height: 310px;\n }\n\n .image-banner {\n max-width: fit-content;\n border-radius: 15px;\n border: 2px solid #116bff;\n }\n\n .article-title {\n color: #242526;\n font-size: 18px;\n font-weight: 600;\n min-height: 44px;\n }\n\n .description-h {\n height: 95px;\n overflow: auto;\n }\n\n .img-profile {\n width: 43px;\n height: 43px;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 2px rgb(228 228 228 / 50%);\n box-sizing: border-box;\n //filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.24));\n background-color: #303030;\n }\n\n textarea {\n height: 29px;\n max-height: 180px;\n resize: none;\n overflow: hidden;\n cursor: pointer;\n background-color: transparent;\n border-radius: 5px;\n\n :focus {\n outline: none;\n cursor: unset;\n background-color: #18191a;\n box-shadow: none;\n }\n\n ::placeholder {\n color: #828282;\n }\n }\n\n .username {\n color: #242526;\n }\n\n .tinytext {\n color: #8c8c8c;\n font-weight: 300;\n }\n\n small {\n color: #8c8c8c;\n }\n\n button.btn-top {\n padding: 1px;\n width: 40%;\n text-align: center;\n\n :hover {\n text-decoration: none;\n }\n }\n\n .btn-share {\n background-color: #116bff !important;\n }\n\n button {\n transition-duration: 0.2s;\n }\n\n button:hover {\n opacity: 0.8;\n }\n\n button.border-delete {\n color: #ff4d77;\n }\n\n img {\n border-radius: 20px;\n }\n\n .border-golden {\n padding: 1px !important;\n }\n\n @media screen and (max-width: 767px) {\n .description-h {\n height: auto;\n }\n }\n`;\n\nexport const ThumbnailLink = styled.a`\n height: 222px;\n background-color: #f1f1f1;\n border-radius: 20px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n border: 1px solid #116bff;\n transition-duration: 0.2s;\n :hover {\n opacity: 0.8;\n }\n\n @media screen and (max-width: 767px) {\n height: 200px;\n }\n\n @media screen and (max-width: 575px) {\n height: 160px;\n }\n`;\n\nexport const ThumbnailBlog = styled.div`\n height: 222px;\n background-color: #f1f1f1;\n border-radius: 20px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n border: 1px solid #116bff;\n\n @media screen and (max-width: 767px) {\n height: 200px;\n }\n\n @media screen and (max-width: 575px) {\n height: 160px;\n }\n`;\n\nexport const LinkCopy = styled.div`\n background: #f2f2f2;\n\n textarea {\n height: auto;\n color: #626262;\n }\n input {\n cursor: pointer;\n font-size: 14px;\n color: #515151;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nexport const Flag = styled.div`\n right: -15px;\n top: -20px;\n border-radius: 10px;\n background: #f1f1f1;\n transition-duration: 0.3s;\n opacity: ${(props) => (props.show ? 1 : 0)};\n visibility: ${(props) => (props.show ? 'visible' : 'hidden')};\n\n ::after {\n content: '';\n width: 5px;\n height: 5px;\n background: #f1f1f1;\n position: absolute;\n bottom: -2px;\n z-index: 10000;\n left: 50%;\n transform: rotate(45deg);\n }\n`;\n\nexport const Skeleton = styled.div`\n .img-height {\n height: 222px;\n }\n\n .profile-height {\n height: 43px;\n width: 43px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\n","import styled from 'styled-components';\n\ninterface IFlagProps {\n show: boolean;\n}\n\nexport const Container = styled.div`\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: transparent;\n }\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n button {\n color: #116bff;\n border: 1px solid #116bff;\n background: transparent;\n font-size: 16px;\n width: 144px;\n border-radius: 14px;\n padding: 7px;\n transition: all 0.3s ease-in-out;\n margin: 0 10px;\n\n :hover {\n color: #fff;\n background: #116bff;\n }\n }\n\n .btn-product button {\n color: #9b9b9b;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n background-color: transparent;\n border: none;\n }\n\n .choise-product {\n color: #116bff !important;\n }\n\n .active {\n color: #fff;\n background: #116bff;\n }\n\n .min-width {\n min-width: 1150px;\n }\n`;\n\nexport const Card = styled.div`\n border-radius: 20px;\n overflow: hidden;\n background-color: #ffffff;\n border: 1px solid #f2f2f2;\n //min-height: 526px;\n\n h3 {\n color: #242526;\n\n font-size: 16px;\n\n font-weight: 600;\n line-height: normal;\n }\n\n .subject {\n background: transparent;\n }\n\n .body {\n background: transparent;\n }\n\n .subject textarea {\n height: 85px;\n }\n\n .body textarea {\n height: 510px;\n }\n\n textarea {\n color: #515151 !important;\n\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 300;\n line-height: 140%;\n }\n\n .h-body {\n height: 400px;\n }\n\n .input-tag {\n font-size: 14px;\n color: #515151;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n background: #f2f2f2;\n height: 50px;\n text-align: center;\n }\n\n .btn-code {\n color: #116bff;\n width: 43%;\n text-align: center;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 600;\n border-radius: 27px;\n background: #fff;\n border: 2px solid #116bff;\n padding: 2px;\n :hover {\n color: #fff;\n background: #116bff;\n border: 2px solid #116bff;\n }\n }\n\n .btn-code-active {\n color: #fff;\n background: #116bff;\n border: 2px solid #116bff;\n }\n\n .imgs {\n border: 1px solid #116bff;\n height: 416px;\n object-fit: contain;\n }\n\n .radius {\n border-radius: 20px !important;\n }\n\n .height-default {\n height: 310px;\n }\n\n .image-banner {\n max-width: fit-content;\n border-radius: 15px;\n border: 2px solid #116bff;\n }\n\n .article-title {\n color: #242526;\n font-size: 16px;\n font-weight: 600;\n min-height: 44px;\n }\n\n .description-h {\n height: 95px;\n overflow: auto;\n }\n\n .img-profile {\n width: 43px;\n height: 43px;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 2px rgb(228 228 228 / 50%);\n box-sizing: border-box;\n //filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.24));\n background-color: #303030;\n }\n\n textarea {\n //height: 29px;\n //max-height: 180px;\n resize: none;\n //overflow: hidden;\n cursor: pointer;\n background-color: transparent;\n border-radius: 5px;\n\n :focus {\n outline: none;\n cursor: unset;\n background-color: #18191a;\n box-shadow: none;\n }\n\n ::placeholder {\n color: #828282;\n }\n }\n\n .username {\n color: #242526;\n }\n\n .tinytext {\n color: #8c8c8c;\n font-weight: 300;\n }\n\n small {\n color: #8c8c8c;\n }\n\n button.btn-top {\n padding: 1px;\n width: 40%;\n text-align: center;\n\n :hover {\n text-decoration: none;\n }\n }\n\n .btn-share {\n background-color: #116bff !important;\n }\n\n button {\n transition-duration: 0.2s;\n }\n\n button:hover {\n opacity: 0.8;\n }\n\n button.border-delete {\n color: #ff4d77;\n }\n\n img {\n border-radius: 20px;\n }\n\n .border-golden {\n padding: 1px !important;\n }\n\n @media screen and (max-width: 767px) {\n .description-h {\n height: auto;\n }\n\n .body textarea {\n height: 500px;\n }\n }\n`;\n\nexport const LinkCopy = styled.div`\n background: #f2f2f2;\n\n textarea {\n //height: auto;\n color: #626262;\n }\n input {\n cursor: pointer;\n font-size: 14px;\n color: #515151;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nexport const Flag = styled.div`\n right: 15px;\n top: -20px;\n border-radius: 10px;\n background: #f1f1f1;\n transition-duration: 0.3s;\n opacity: ${(props) => (props.show ? 1 : 0)};\n visibility: ${(props) => (props.show ? 'visible' : 'hidden')};\n\n ::after {\n content: '';\n width: 5px;\n height: 5px;\n background: #f1f1f1;\n position: absolute;\n bottom: -2px;\n z-index: 10000;\n left: 50%;\n transform: rotate(45deg);\n }\n`;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n FacebookShareButton,\n TwitterShareButton,\n WhatsappShareButton,\n} from 'react-share';\nimport { Card, Container, Flag, LinkCopy } from './styles';\nimport { useLanguage } from '~/hooks/Language';\nimport { useAuth } from '~/hooks/Auth';\nimport facebook from '~/assets/icons/facebook-icon.svg';\nimport twitter from '~/assets/icons/twitter-icon.svg';\nimport whatsapp from '~/assets/icons/whatsapp-circle-icon.svg';\nimport api from '~/services/api';\nimport { Skeleton } from '../styles';\n\ninterface ISwipeFile {\n id: string;\n subject: string;\n body: string;\n title: string;\n description: string;\n content: string;\n file: {\n file_url: string;\n };\n}\n\ninterface IEmail {\n id: string;\n subject: string;\n body: string;\n}\n\ninterface ISocial {\n id: string;\n title: string;\n subtitle: string;\n body: string;\n}\n\ninterface IImages {\n id: string;\n url: string;\n}\n\nconst Swipe: React.FC = () => {\n const { user } = useAuth();\n const { language } = useLanguage();\n const [copied, setCopied] = useState(false);\n const [linkSelected, setLinkSelected] = useState('');\n const [choiseShare, setChoiseShare] = useState('emails');\n const [emails, setEmails] = useState([]);\n const [socials, setSocials] = useState([]);\n const [images, setImages] = useState([]);\n const [loading, setLoading] = useState(true);\n const [isPostEase, setIsPostEase] = useState(true);\n\n useEffect(() => {\n setLoading(true);\n if (choiseShare === 'emails') {\n api\n .get('swipe-files', {\n params: {\n type: 'email',\n category: isPostEase ? 'postease' : 'autoaffiliate',\n },\n })\n .then((response) => {\n const data = response.data.map((swipeFile) => ({\n id: swipeFile.id,\n subject: swipeFile.subject,\n body: swipeFile.body,\n }));\n\n setEmails(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n if (choiseShare === 'social') {\n api\n .get('swipe-files', {\n params: {\n type: 'social post',\n category: isPostEase ? 'postease' : 'autoaffiliate',\n },\n })\n .then((response) => {\n const data = response.data.map((swipeFile) => ({\n id: swipeFile.id,\n title: swipeFile.title,\n subtitle: swipeFile.description,\n body: swipeFile.content,\n }));\n\n setSocials(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n if (choiseShare === 'images') {\n api\n .get('swipe-files', {\n params: {\n type: 'image',\n category: isPostEase ? 'postease' : 'autoaffiliate',\n },\n })\n .then((response) => {\n const data = response.data.map((swipeFile) => ({\n id: swipeFile.id,\n url: swipeFile.file.file_url,\n }));\n\n setImages(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, [choiseShare, isPostEase]);\n\n const handleClickCopyTextArea = useCallback((e, link_id) => {\n const element = e.target.closest('.link').querySelector('textarea');\n element.select();\n document.execCommand('copy');\n const selection = window.getSelection;\n if (selection) {\n selection()?.removeAllRanges();\n setCopied(true);\n setLinkSelected(link_id);\n setTimeout(() => {\n setCopied(false);\n setLinkSelected('');\n }, 500);\n }\n }, []);\n\n console.log('up');\n return (\n <>\n \n
\n setChoiseShare('emails')}\n >\n Emails\n \n setChoiseShare('social')}\n >\n Social Posts\n \n\n setChoiseShare('images')}\n >\n Images\n \n {/* setChoiseShare('headlines')}\n >\n Headlines\n \n setChoiseShare('videos')}\n >\n Videos\n \n setChoiseShare('flyers')}\n >\n Flyers\n \n setChoiseShare('business')}\n >\n Business Cards\n */}\n
\n
\n setIsPostEase(true)}\n >\n PostEASE\n \n setIsPostEase(false)}\n >\n AutoAffiliate\n \n
\n
\n\n {choiseShare === 'emails' && (\n <>\n {emails.map((banner, index) => (\n
\n \n

Subject:

\n \n handleClickCopyTextArea(e, banner.id)}\n />\n \n\n

Body:

\n \n handleClickCopyTextArea(e, banner.id)}\n />\n \n \n

{language.footer.copy}

\n \n
\n
\n ))}\n \n )}\n {choiseShare === 'social' && (\n <>\n {socials.map((social, index) => (\n
\n \n
\n
\n \n

\n {user.name || user.username}{' '}\n {language.social_media.p}\n

\n
\n
\n

\n {`Post ${index + 1}: ${social.title}`}\n

\n '),\n }}\n />\n '),\n }}\n className=\"h-body py-2 w-100 bg-transparent border-0\"\n />\n\n
\n \n {language.social_media.small}\n \n
\n /g, '')}\n url={`https://autoaffiliate.ai/i/${user.referral_code}`}\n className=\"btn-share rounded-pill w-100\"\n >\n \n \n
\n
\n /g, '')}\\n`}\n url={`https://autoaffiliate.ai/i/${user.referral_code}`}\n className=\"btn-share rounded-pill w-100\"\n >\n \n \n
\n
\n /g, '*')}\\n\\n`}\n separator={`\\n`}\n url={`https://autoaffiliate.ai/i/${user.referral_code}`}\n className=\"btn-share rounded-pill w-100\"\n >\n \n \n
\n
\n
\n
\n ))}\n \n )}\n {choiseShare === 'images' && (\n <>\n {images.map((image, index) => (\n
\n \n
\n
\n \n

\n {user.name || user.username}{' '}\n {language.social_media.p}\n

\n
\n
\n\n
\n \n
\n\n
\n
\n \n \n \n
\n\n
\n /g, '')}\\n`}\n url={image.url}\n className=\"btn-share rounded-pill w-100\"\n >\n \n \n
\n
\n /g, '*')}`}\n separator={`\\n`}\n url={image.url}\n className=\"btn-share rounded-pill w-100\"\n >\n \n \n
\n
\n
\n
\n ))}\n \n )}\n {loading && (\n <>\n \n \n
\n
\n
\n

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

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

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

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

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n \n \n \n )}\n \n );\n};\n\nexport default Swipe;\n","/* eslint-disable no-param-reassign */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { FiCopy } from 'react-icons/fi';\nimport {\n FacebookShareButton,\n TwitterShareButton,\n WhatsappShareButton,\n} from 'react-share';\n\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport {\n Container,\n Welcome,\n Card,\n ThumbnailLink,\n ThumbnailBlog,\n LinkCopy,\n Flag,\n Skeleton,\n} from './styles';\n\nimport facebook from '~/assets/icons/facebook-icon.svg';\nimport twitter from '~/assets/icons/twitter-icon.svg';\nimport whatsapp from '~/assets/icons/whatsapp-circle-icon.svg';\nimport Swipe from './Swipe';\n\ninterface ILink {\n id?: string;\n title: string;\n description: string;\n image: string;\n thumbnail?: File;\n thumbnail_id?: string;\n link: string;\n tag: string;\n}\n\ninterface IResponseLink {\n id: string;\n title: string;\n description: string;\n link: string;\n thumbnail: {\n id: string;\n thumbnail_url: string;\n };\n}\n\ninterface IArticleFiles {\n id: string;\n file_url: string;\n}\n\ninterface IArticle {\n id: string;\n title: string;\n meta: string;\n body: string;\n slug: string;\n articleFiles: IArticleFiles[];\n}\n\ninterface IBannerResponse {\n id: string;\n title: string;\n link: string;\n thumbnail: {\n id: string;\n thumbnail_url: string;\n };\n}\n\ninterface IBanner {\n id: string;\n title: string;\n thumbnail: string;\n html: string;\n iframe: string;\n}\n\nconst SocialMedia: React.FC = () => {\n const { user } = useAuth();\n const { language } = useLanguage();\n const [links, setLinks] = useState([]);\n const [articles, setArticles] = useState([]);\n const [banners, setBanners] = useState([]);\n const [copied, setCopied] = useState(false);\n const [loading, setLoading] = useState(true);\n const [showSalesFunnels, setShowSalesFunnels] = useState('sales');\n const [codeSelected, setCodeSelected] = useState('html');\n const [linkSelected, setLinkSelected] = useState('');\n const [bannerId, setBannerId] = useState('');\n const [totalPages, setTotalPages] = useState(0);\n const [currentPage, setCurrentPage] = useState(1);\n\n useEffect(() => {\n api.get('banners/users').then((response) => {\n const data = response.data.map((banner) => {\n return {\n id: banner.id,\n title: banner.title,\n thumbnail: banner.thumbnail.thumbnail_url,\n html: `\"Banner`,\n iframe: ``,\n };\n });\n setBanners(data);\n });\n\n window.scrollTo(0, 0);\n\n api.get('links/users').then((response) => {\n const data = response.data.map((link: IResponseLink) => ({\n id: link.id,\n title: link.title,\n description: link.description,\n image: link.thumbnail.thumbnail_url,\n thumbnail_id: link.thumbnail.id,\n link: link.link,\n tag: '',\n }));\n\n setLinks(data);\n setLoading(false);\n });\n }, [user.referral_code]);\n\n const handleLoadArticles = useCallback(async (page) => {\n const response = await api.get('articles', {\n params: {\n page,\n },\n });\n\n if (page === 1) {\n setArticles(response.data.data);\n } else {\n setArticles((state) => [...state, ...response.data.data]);\n }\n setTotalPages(response.data.totalPages);\n }, []);\n\n const handleClickLoadMore = useCallback(\n (page) => {\n if (page <= totalPages) {\n handleLoadArticles(page);\n setCurrentPage(page);\n }\n },\n [handleLoadArticles, totalPages]\n );\n\n const handleClickCopy = useCallback((e, link_id) => {\n const element = e.target.closest('.link').querySelector('input');\n element.select();\n document.execCommand('copy');\n const selection = window.getSelection;\n if (selection) {\n selection()?.removeAllRanges();\n setCopied(true);\n setLinkSelected(link_id);\n setTimeout(() => {\n setCopied(false);\n setLinkSelected('');\n }, 500);\n }\n }, []);\n\n const handleClickCopyTextArea = useCallback((e, link_id) => {\n const element = e.target.closest('.link').querySelector('textarea');\n element.select();\n document.execCommand('copy');\n const selection = window.getSelection;\n if (selection) {\n selection()?.removeAllRanges();\n setCopied(true);\n setLinkSelected(link_id);\n setTimeout(() => {\n setCopied(false);\n setLinkSelected('');\n }, 500);\n }\n }, []);\n\n const handleBtnSelected = useCallback((selected) => {\n setShowSalesFunnels(selected);\n }, []);\n\n const handleBtnCodeSelected = useCallback((code, id) => {\n setCodeSelected(code);\n setBannerId(id);\n }, []);\n\n useEffect(() => {\n handleLoadArticles(1);\n }, [handleLoadArticles]);\n\n const handleChangeTag = useCallback(\n (e, index) => {\n const newLinks = links.slice();\n newLinks[index].tag = e.target.value;\n setLinks(newLinks);\n },\n [links]\n );\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n
\n

\n {language.affiliates_promotional_material.h1}\n

\n
\n
\n handleBtnSelected('sales')}\n >\n \n \n \n Sales Funnels\n \n handleBtnSelected('blog')}\n >\n \n \n \n \n Blog Articles\n \n {/* handleBtnSelected('banners')}\n >\n \n \n \n \n \n Banners\n */}\n handleBtnSelected('swipe')}\n >\n \n \n \n \n \n \n \n \n \n \n \n Swipe Files\n \n
\n
\n
\n
\n

\n {language.affiliates_promotional_material.p_1_1}\n
\n {language.affiliates_promotional_material.p_1_2}\n

\n
\n
\n
\n
\n
\n
\n {loading && (\n <>\n \n \n
\n
\n
\n

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

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

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

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

\n ######### ########## #########\n

\n
\n
\n

\n ######### ########## #########\n

\n
\n \n \n \n
\n
\n \n {language.social_media.small}\n \n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n
\n

####

\n
\n
\n
\n \n \n \n )}\n {showSalesFunnels === 'sales' && (\n <>\n {links.map((link, index) => (\n
\n \n
\n
\n \n

\n {user.name || user.username}{' '}\n {language.social_media.p}\n

\n
\n
\n

{link.title}

\n

\n {link.description}\n

\n \n \n handleClickCopy(e, link.id)}\n />\n handleClickCopy(e, link.id)}\n >\n \n \n \n

\n {language.footer.copy}\n

\n \n \n
\n \n {language.social_media.small}\n \n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n Add Tag\n
\n handleChangeTag(e, index)}\n className=\"w-100 border-0 input-tag px-3 rounded-pill d-flex justify-content-center align-items-center\"\n />\n
\n
\n
\n
\n ))}\n \n )}\n {showSalesFunnels === 'blog' && (\n <>\n {articles.map((article, index) => (\n
\n \n
\n
\n \n

\n {user.name || user.username}{' '}\n {language.social_media.p}\n

\n
\n
\n

{article.title}

\n

\n {article.meta}\n

\n \n \n handleClickCopy(e, article.id)}\n />\n handleClickCopy(e, article.id)}\n >\n \n \n\n \n

\n {language.footer.copy}\n

\n \n
\n
\n \n {language.social_media.small}\n \n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n ))}\n {currentPage !== totalPages && (\n
\n
\n handleClickLoadMore(currentPage + 1)}\n >\n Load more\n \n
\n
\n )}\n \n )}\n {showSalesFunnels === 'banners' && (\n <>\n {banners.map((banner, index) => (\n
\n \n

{banner.title}

\n
\n \n
\n

\n {codeSelected === 'iframe' && banner.id === bannerId\n ? 'iFRAME'\n : 'HTML'}\n

\n \n handleClickCopyTextArea(e, banner.id)}\n />\n handleClickCopyTextArea(e, banner.id)}\n >\n \n \n\n \n

\n {language.footer.copy}\n

\n \n \n
\n \n Tracking Code\n \n
\n \n handleBtnCodeSelected('html', banner.id)\n }\n >\n HTML\n \n
\n
\n
\n
\n ))}\n \n )}\n {showSalesFunnels === 'swipe' && }\n
\n
\n \n );\n};\n\nexport default SocialMedia;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: fixed;\n bottom: 0;\n right: 70px;\n max-width: calc(100% - 160px);\n z-index: 2147483001;\n\n @media screen and (max-width: 991px) {\n max-width: calc(100% - 70px);\n }\n`;\n","import styled from 'styled-components';\nimport { Form } from '@unform/web';\n\ninterface IContainer {\n close: boolean;\n}\n\nexport const Container = styled(Form)`\n width: 360px;\n border: 1px solid #e9e9e9;\n background: #f4f4f4;\n box-shadow: 4px 15px 25px 0px rgba(0, 0, 0, 0.08);\n border-top-right-radius: 15px;\n border-top-left-radius: 15px;\n\n .header {\n background-color: #0c7cff;\n border-top-right-radius: 15px;\n border-top-left-radius: 15px;\n cursor: ${(props) => (!props.close ? 'default' : 'pointer')};\n }\n\n .body {\n transition-duration: 0.3s;\n height: ${(props) => (!props.close ? '335px' : '0')};\n padding: ${(props) => (!props.close ? '1rem 1rem 0 1rem' : '0')};\n\n .scroll-smooth {\n scroll-behavior: smooth;\n }\n\n .btn-message {\n border-radius: 12px;\n background: #fff;\n width: 100%;\n border: 1px solid #fff;\n transition-duration: 0.3s;\n\n .lottie {\n width: 42px;\n height: 42px;\n border-radius: 9px;\n border: 1px solid #116bff;\n background: #f4f4f4;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .message {\n width: calc(100% - 56px);\n margin-left: 14px;\n height: 42px;\n\n > div {\n p {\n color: #021027;\n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: 134.023%;\n }\n .stamp {\n position: absolute;\n top: -10px;\n right: -10px;\n }\n }\n\n > p {\n color: #000;\n font-family: Inter;\n font-size: 10px;\n font-style: normal;\n font-weight: 300;\n line-height: 134.023%;\n overflow: hidden;\n text-overflow: ellipsis;\n height: 25px;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n }\n\n + .btn-message {\n margin-top: 10px;\n }\n\n :disabled {\n opacity: 0.7;\n }\n }\n\n .btn-message.selected {\n border: 1px solid #116bff;\n box-shadow: 4px 15px 25px 0px rgba(0, 0, 0, 0.08);\n }\n }\n\n .footer {\n transition-duration: 0.3s;\n height: ${(props) => (!props.close ? '90.14px' : '0')};\n padding: ${(props) => (!props.close ? '0 1rem 1rem 1rem' : '0')};\n background: #f9f9f9;\n position: relative;\n\n .box-input {\n border-radius: 12px;\n background: #fff;\n box-shadow: ${(props) =>\n !props.close ? '0px -28px 25px 0px rgba(249, 249, 249, 0.94)' : 'none'};\n\n > div {\n width: calc(100% - 49px);\n display: flex;\n align-items: center;\n\n p {\n color: #021027;\n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: 134.023%; /* 16.083px */\n margin: 0;\n }\n\n .message-sent {\n p {\n color: #116bff;\n }\n }\n }\n\n button,\n .btn-loading {\n background: #116bff;\n border-radius: 8px;\n width: 49px;\n }\n }\n\n ::before {\n content: '';\n position: absolute;\n background: #f9f9f9;\n box-shadow: 0px -28px 25px 0px rgba(249, 249, 249, 0.94);\n opacity: ${(props) => (!props.close ? '1' : '0')};\n }\n }\n\n + form {\n margin-left: 10px;\n }\n`;\n\nexport const Loading = styled.div`\n .spinner {\n width: 25px;\n height: 25px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(\n farthest-side,\n #0000 calc(100% - 9px),\n #000 0\n );\n animation: spinner-c7wet2 1s infinite linear;\n }\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { RiSendPlane2Fill } from 'react-icons/ri';\nimport { MdClose, MdMinimize } from 'react-icons/md';\nimport { io } from 'socket.io-client';\nimport { FormHandles } from '@unform/core';\nimport * as yup from 'yup';\n\nimport Lottie from 'react-lottie';\nimport { BsPatchCheck } from 'react-icons/bs';\nimport { useAuth } from '~/hooks/Auth';\nimport getValidationErros from '~/utils/getValidationsErrors';\nimport api from '~/services/api';\nimport swalError from '~/utils/swalError';\n\nimport { Container, Loading } from './styles';\n\nimport message01 from '~/assets/animations/message-01.json';\nimport message02 from '~/assets/animations/message-02.json';\nimport message03 from '~/assets/animations/message-03.json';\nimport message04 from '~/assets/animations/message-04.json';\nimport message05 from '~/assets/animations/message-05.json';\nimport message06 from '~/assets/animations/message-06.json';\nimport message07 from '~/assets/animations/message-07.json';\nimport message08 from '~/assets/animations/message-08.json';\nimport message09 from '~/assets/animations/message-09.json';\nimport message10 from '~/assets/animations/message-10.json';\nimport message11 from '~/assets/animations/message-11.json';\nimport message12 from '~/assets/animations/message-12.json';\nimport checkMessage from '~/assets/icons/check-message.svg';\n\ninterface IData {\n id: string;\n name: string;\n minimize: boolean;\n}\n\ninterface IMessageResponse {\n id: string;\n user_id: string;\n content: string;\n}\n\ninterface IMessage {\n id: string;\n title: string;\n text: string;\n lottie: unknown;\n disabled: boolean;\n}\n\ninterface IChat {\n data: IData;\n onClose(data: IData): void;\n onMinimize(data: IData, minimize: boolean): void;\n}\n\nconst Chat: React.FC = ({ data: chatData, onClose, onMinimize }) => {\n const { user } = useAuth();\n const chatRef = useRef(null);\n const formRef = useRef(null);\n const [chatClosed, setChatClosed] = useState(false);\n const [messages, setMessages] = useState([\n {\n id: '1',\n title: 'Message 1: For a New Referral',\n text:\n \"Hey [Name], welcome to AutoAffiliate! 🎉\\n\\nI noticed you recently joined, and I wanted to extend a warm welcome. If you're wondering what the next steps are, check out the 'Getting Started' guide in your dashboard. \\n\\nExcited for the journey ahead!\\n\\nLooking forward to achieving success together!\",\n lottie: message01,\n disabled: false,\n },\n {\n id: '2',\n title: 'Message 2: Masterclass Reminder',\n text:\n \"Hey [Name], I noticed you haven't started the Masterclass yet. ⌛\\n\\nTrust me, it's designed to set you up for success. If you have any questions, you can use the 'Support' button on your dashboard.\\n\\nAlso, feel free to join our Facebook group where we all hang out!\\n\\nCheers!\",\n lottie: message02,\n disabled: false,\n },\n {\n id: '3',\n title: 'Message 3: Intro to Affiliate Program',\n text:\n \"Hey [Name], did you know you can become a part of our exclusive VIP Affiliate Program? 🌟\\n\\nBy upgrading within 7 Days, you’ll gain access to incredible commissions of up to 60%, free access to all our base products, and cutting-edge tools to boost your earnings. Plus, you'll be part of our special training sessions and benefit from advanced support to maximize your success! You have 7 days to claim this opportunity at 70% off\\n\\nDon’t miss out on this amazing opportunity—upgrade now and start earning!\",\n lottie: message03,\n disabled: false,\n },\n {\n id: '4',\n title: 'Message 4: Masterclass Incomplete',\n text:\n \"Hey [Name], you're almost there! ⏰\\n\\nCompleting the Masterclass will help you make the most out of AutoAffiliate. Need help? Click the 'Support' button on your dashboard or join our Facebook group for guidance.\\n\\nSee you in the community!\",\n lottie: message04,\n disabled: false,\n },\n {\n id: '5',\n title: 'Message 5: Offering Help',\n text:\n \"Hey [Name], if you're feeling stuck or need help figuring things out, remember we're just a click away! 👉\\n\\nOur support team is ready to assist you. Just click the 'Support' button on your dashboard or join our Facebook group for guidance.\\n\\nWe are here for you!\",\n lottie: message05,\n disabled: false,\n },\n {\n id: '6',\n title: 'Message 6: Follow-Up on Affiliate',\n text:\n \"Hey [Name], you're so close! 🎯\\n\\nJust a few more steps and you'll be part of our VIP Affiliate Program, unlocking up to 60% commissions, free access to all our base products, exclusive training, and advanced tools to skyrocket your success.\\n\\nTime is of the essence—complete your upgrade in the next 7 days to unlock these incredible perks and discount!\\n\\nNeed help? Click the 'Support' button on your dashboard or join our Facebook group for guidance.\\n\\nDon't miss out!\",\n lottie: message06,\n disabled: false,\n },\n {\n id: '7',\n title: 'Message 7: VIP Affiliate Last Chance',\n text:\n \"[Name] Time's almost up! 🕒\\n\\nThis is your last chance to join our exclusive VIP Affiliate Program at 70% discount and unlock amazing perks, including up to 60% commissions, free access to all our base products, special training, and advanced tools. Don't let this opportunity slip away!\\n\\nFor any last-minute questions or issues, our support team is here to help. Act now and secure your spot!\\n\\nTo your success!\",\n lottie: message07,\n disabled: false,\n },\n {\n id: '8',\n title: 'Message 8: Masterclass Complete',\n text:\n \"Awesome, you've completed the Masterclass! 🌟\\n\\nNext, check out the Founders Club opportunity, It is life changing!. Don't forget, the 'Support' button and Facebook group are your go-to for assistance\\n\\nKeep it up [Name]!\",\n lottie: message08,\n disabled: false,\n },\n {\n id: '9',\n title: 'Message 9: Reminder to Activate Offer',\n text:\n \"🎉 We see you've completed the Masterclass but haven't activated an offer yet.\\n\\nThese offers are your ticket to earning! Use the 'Support' button or our Facebook group if you have questions.\\n\\nLooking forward to achieving success together [Name]!\",\n lottie: message09,\n disabled: false,\n },\n {\n id: '10',\n title: 'Message 10: No Activity for 7 Days',\n text:\n \"[Name] Hi It's been a while since we've seen you! 😕\\n\\nDon't miss out on great earning opportunities. Got questions? Use the 'Support' button on your dashboard or join our vibrant Facebook group.\\n\\nLooking forward to seeing your success!\",\n lottie: message10,\n disabled: false,\n },\n {\n id: '11',\n title: 'Message 11: Celebrating First Offer',\n text:\n \"Wow, congrats on activating your first offer! 🎉\\n\\nThis is a big step towards earning through AutoAffiliate. Remember, if you need any help you can always hit the 'Support' button on your dashboard or join our vibrant Facebook group.\\n\\nProud of you [Name]!\\n\\nCheers!\",\n lottie: message11,\n disabled: false,\n },\n {\n id: '12',\n title: 'Message 12: Encourage Multiple offers',\n text:\n \"Amazing! You've activated another offer—that's awesome! 🌟\\n\\n[Name] You're really taking your AutoAffiliate game to the next level. Got questions or need some tips? Don't hesitate to use the 'Support' button or connect with us in the Facebook group.\\n\\nExcited for the journey ahead!\",\n lottie: message12,\n disabled: false,\n },\n ]);\n const [messageSelected, setMessageSelected] = useState({} as IMessage);\n const [messageSent, setMessageSent] = useState(false);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n });\n\n socket.on('connect', () => {\n socket.emit('join-room', { roomID: chatData.id });\n });\n\n socket.on('user-disconnected', () => {\n // console.log('user disconnected-- closing peers', data);\n });\n\n socket.on('disconnect', () => {\n // console.log('socket disconnected --');\n });\n\n socket.on('error', () => {\n // console.log('socket error --', err);\n });\n }, [chatData.id]);\n\n useEffect(() => {\n api\n .get(`chats-messages/${chatData.id}`)\n .then((response) => {\n setMessages((state) => {\n const newMessages = state.map((message) => {\n const content = `${message.text\n .replace('[Name]', chatData.name.split(' ')[0])\n .replace(/\\n/g, '
')}

-${user.name}`;\n const contentAux = `${message.text\n .replace('[Name]', chatData.name)\n .replace(/\\n/g, '
')}

-${user.name}`;\n\n const messageSelectedData = response.data.find(\n (messageData) =>\n messageData.content === content ||\n messageData.content === contentAux\n );\n\n if (messageSelectedData) {\n return { ...message, disabled: true };\n }\n return message;\n });\n\n return newMessages;\n });\n });\n }, [chatData.id, chatData.name, user.name]);\n\n const handleClickName = useCallback(() => {\n if (chatClosed) {\n setChatClosed(false);\n onMinimize(chatData, false);\n }\n }, [chatClosed, chatData, onMinimize]);\n\n const handleClickMinimize = useCallback(() => {\n onMinimize(chatData, !chatClosed);\n setChatClosed((state) => !state);\n }, [chatClosed, chatData, onMinimize]);\n\n const handleSubmit = useCallback(\n async (data) => {\n try {\n setLoading(true);\n formRef.current?.setErrors({});\n\n const schema = yup.object().shape({\n message: yup.string().when('$messageData', {\n is: (messageData: boolean) => messageData,\n then: yup.string().required('Message is required'),\n otherwise: yup.string(),\n }),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n context: {\n messageData: Object.keys(messageSelected).length === 0,\n },\n });\n\n const content = `${messageSelected.text\n .replace('[Name]', chatData.name.split(' ')[0])\n .replace(/\\n/g, '
')}

-${user.name}`;\n\n const formData = {\n chat_id: chatData.id,\n user_id: user.id,\n title: messageSelected.title,\n content,\n referral_code: user.referral_code,\n name: user.name,\n };\n\n await api.post('chats-messages/users', formData, {\n params: {\n sendNotification: true,\n },\n });\n\n const newMessages = messages.slice();\n\n const messageIndex = newMessages.findIndex(\n (message) => message.id === messageSelected.id\n );\n\n if (messageIndex >= 0) {\n newMessages[messageIndex].disabled = true;\n }\n\n setMessageSent(true);\n setMessages(newMessages);\n\n formRef.current?.reset();\n setMessageSelected({} as IMessage);\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n } else {\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n } finally {\n setLoading(false);\n }\n },\n [\n chatData.id,\n chatData.name,\n messageSelected,\n messages,\n user.id,\n user.name,\n user.referral_code,\n ]\n );\n\n return (\n \n
\n \n \n {chatData.name}\n \n
\n \n Choose a message below to send\n \n \n
\n \n \n \n onClose(chatData)}\n >\n \n \n
\n
\n
\n \n {messages.map((message) => (\n setMessageSelected(message)}\n disabled={message.disabled}\n title={message.text.replace('[Name]', 'there')}\n >\n
\n \n
\n
\n
\n

{message.title}

\n {message.disabled && (\n \n )}\n
\n

\n {message.text.replace('[Name]', 'there')}\n

\n
\n \n ))}\n
\n
\n
\n
\n
\n {messageSelected.title ? (\n

{messageSelected.title}

\n ) : (\n <>\n {messageSent && (\n
\n \"checkMessage\"\n

Message sent successfuly

\n
\n )}\n \n )}\n
\n {loading ? (\n \n
\n \n ) : (\n \n )}\n
\n
\n \n );\n};\n\nexport default Chat;\n","import React, { createContext, useCallback, useContext, useState } from 'react';\n\nimport { Container } from './styles';\nimport Chat from './Chat';\n\ninterface IChat {\n id: string;\n name: string;\n minimize: boolean;\n}\n\ninterface ChatContextData {\n addChat(chat: IChat): void;\n}\n\nexport const ChatContext = createContext(\n {} as ChatContextData\n);\n\nexport const ChatProvider: React.FC = ({ children }) => {\n const [chats, setChats] = useState([]);\n\n const handleAddChat = useCallback(\n (chat: IChat) => {\n const checkChat = chats.find((chatData) => chatData.id === chat.id);\n\n if (!checkChat) {\n setChats([...chats, chat]);\n }\n },\n [chats]\n );\n\n const handleMinimize = useCallback(\n (chat: IChat, minimize) => {\n const newChats = chats.slice();\n const chatIndex = newChats.findIndex(\n (chatData) => chatData.id === chat.id\n );\n if (chatIndex >= 0) {\n newChats[chatIndex].minimize = minimize;\n }\n setChats(newChats);\n },\n [chats]\n );\n\n const handleClose = useCallback(\n (chat: IChat) => {\n const newChats = chats.filter((chatData) => chatData.id !== chat.id);\n setChats(newChats);\n },\n [chats]\n );\n\n return (\n \n {children}\n \n {chats.map((chat) => (\n \n ))}\n \n \n );\n};\n\nexport function useChat(): ChatContextData {\n const context = useContext(ChatContext);\n\n if (!context) {\n throw new Error('useChat must be used within an ChatProvider');\n }\n\n return context;\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .bg-gray {\n background-color: #ffffff;\n border-radius: 20px;\n padding: 0 15px;\n }\n\n .scroll {\n ::-webkit-scrollbar {\n border-radius: 4px !important;\n height: 8px !important;\n }\n }\n\n .lottie {\n top: 20px;\n left: 20px;\n transition-duration: 0.3s;\n border-radius: 15px;\n border: 1px solid transparent;\n background: transparent;\n box-shadow: 4px 15px 25px 0px transparent;\n display: flex;\n width: max-content;\n padding-right: 26px;\n align-items: center;\n justify-content: center;\n z-index: 2;\n\n p {\n opacity: 0;\n visibility: hidden;\n transition-duration: 0.3s;\n color: #021027;\n font-weight: 500;\n margin-bottom: 0;\n }\n\n :hover {\n border: 1px solid #dedede;\n background: #fff;\n box-shadow: 4px 15px 25px 0px rgba(0, 0, 0, 0.08);\n\n p {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n @media screen and (min-width: 1200px) {\n zoom: 0.7;\n .container {\n max-width: 1620px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1750px) {\n zoom: 1;\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #021027;\n }\n p {\n color: #6f6f6f;\n }\n`;\n\nexport const Values = styled.div`\n background: #fafafa;\n border: 1px solid #e4e4e4;\n box-shadow: -2px 5px 20px rgba(0, 0, 0, 0.03);\n border-radius: 20px;\n\n p {\n color: #8c8c8c;\n font-weight: 400;\n span {\n color: #021027;\n font-weight: 600;\n }\n }\n\n hr {\n background: #d0d0d0;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n .dark-gray {\n color: #606060;\n }\n\n @media screen and (min-width: 768px) {\n .border-md-right {\n border-right: solid 1px #d0d0d0;\n }\n }\n`;\n\nexport const Table = styled.div`\n min-width: 1280px;\n margin-bottom: 10px;\n\n .min-w {\n min-width: 170px;\n }\n\n a {\n text-decoration: none;\n }\n\n .orders {\n width: max-content;\n > div:nth-child(1) {\n width: 254px !important;\n }\n\n > div:nth-child(2) {\n width: 188px !important;\n }\n\n > div:nth-child(3) {\n width: 150px !important;\n }\n\n > div:nth-child(4) {\n width: 220px !important;\n }\n\n > div:nth-child(5) {\n width: 160px !important;\n }\n\n > div:nth-child(6) {\n width: 275px !important;\n }\n\n > div:nth-child(7) {\n width: 190px !important;\n }\n\n > div:nth-child(8) {\n width: 100px !important;\n }\n }\n\n .btn-order {\n color: #021027;\n font-size: 14px;\n font-weight: 700;\n border: none;\n background: transparent;\n }\n\n .message {\n color: #fff;\n font-size: 12px;\n font-weight: 400;\n border-radius: 10px;\n background: #2f2f2f;\n border: none;\n width: 66px;\n height: 30px;\n transition-duration: 0.3s;\n :hover {\n opacity: 0.9;\n }\n }\n\n .hover-row {\n width: max-content;\n\n :hover {\n background-color: #f7f7f7;\n border-radius: 15px;\n }\n }\n\n .fw-600 {\n font-weight: 600;\n }\n\n /* .line {\n > div {\n width: 308px !important;\n overflow-wrap: break-word;\n }\n\n > div:nth-child(2),\n > div:nth-child(3) {\n width: 192px !important;\n }\n\n > div:nth-child(4) {\n width: 300px !important;\n }\n } */\n\n .line {\n > div:nth-child(1) {\n width: 254px !important;\n overflow-wrap: break-word;\n }\n\n > div:nth-child(2) {\n width: 188px !important;\n }\n\n > div:nth-child(3) {\n width: 150px !important;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > div:nth-child(4) {\n width: 220px !important;\n }\n\n > div:nth-child(5) {\n width: 160px !important;\n }\n\n > div:nth-child(6) {\n width: 275px !important;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > div:nth-child(7) {\n width: 190px !important;\n }\n }\n\n .div-message {\n width: 100px !important;\n }\n\n img.avatar {\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background-color: #303030;\n }\n\n div {\n span {\n color: #6f6e6e;\n font-size: 18px;\n }\n }\n\n .color-member,\n .color-affiliate,\n .color-super {\n font-weight: 500;\n }\n\n .color-member {\n color: #0d7cff;\n }\n\n .color-affiliate {\n color: #05b850;\n }\n\n .color-super {\n color: #e82e99;\n }\n\n @media screen and (max-width: 575px) {\n div {\n span {\n color: #6f6e6e;\n }\n }\n }\n`;\n\nexport const Skeleton = styled.div`\n border-radius: 20px;\n background-color: #ffffff;\n z-index: 0;\n\n .img-height {\n height: 60px;\n width: 60px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { format, parseISO } from 'date-fns';\nimport { Link } from 'react-router-dom';\nimport Lottie from 'react-lottie';\n\nimport { useAuth } from '~/hooks/Auth';\nimport api from '~/services/api';\nimport { useLanguage } from '~/hooks/Language';\nimport { useChat } from '~/hooks/Chat';\n\nimport { Container, Welcome, Values, Table, Skeleton } from './styles';\nimport userIcon from '~/assets/icons/student-icon.svg';\nimport arrowDown from '~/assets/icons/arrow-blue-down.svg';\nimport arrowUp from '~/assets/icons/arrow-blue-up.svg';\nimport affiliate from '~/assets/icons/affiliate-icon.svg';\nimport franchise from '~/assets/icons/franchise-purple-icon.svg';\nimport lead from '~/assets/animations/lead.json';\n\ninterface IChat {\n id: string;\n}\n\ninterface ILabelsStatus {\n name: string;\n type: string;\n qualified: string;\n progress: string;\n origin: string;\n email: string;\n joined: string;\n action: string;\n}\n\ninterface ICourse {\n id: string;\n modules: {\n id: string;\n lessons: {\n id: string;\n }[];\n }[];\n}\n\ninterface IOrder {\n id: string;\n amount_paid: string;\n status: string;\n course?: {\n id: string;\n title: string;\n };\n}\n\ninterface IAffiliateOffer {\n offer_id: string;\n}\n\ninterface IReferrerResponse {\n id: string;\n user: {\n id: string;\n name: string;\n email: string;\n referral_code: string;\n origin: string;\n avatar: {\n id: string;\n avatar_url: string;\n };\n affiliate: {\n id: string;\n active_affiliate: boolean;\n franchise_owner: boolean;\n type: string;\n affiliatesOffers: IAffiliateOffer[];\n product: {\n name: string;\n };\n };\n orders: IOrder[];\n lessonsUsers: {\n lesson_id: string;\n }[];\n foundersLeadsLead?: [];\n };\n created_at: string;\n}\n\ninterface IReferrer {\n id: string;\n avatar: string;\n name: string;\n isLead: boolean;\n email: string;\n type: string;\n typeIcon: string;\n progress: string;\n joined: string;\n referral_code: string;\n qualified: boolean;\n className: string;\n origin: string;\n product: string;\n}\n\nconst Referrals: React.FC = () => {\n const { user } = useAuth();\n const { addChat } = useChat();\n const { language } = useLanguage();\n const [referrers, setReferrers] = useState([]);\n const [normalReferrers, setNormalReferrers] = useState([]);\n const [loading, setLoading] = useState(true);\n const [labelsStatus] = useState({\n name: 'normal',\n type: 'normal',\n qualified: 'normal',\n progress: 'normal',\n origin: 'normal',\n email: 'normal',\n joined: 'normal',\n action: 'normal',\n });\n\n useEffect(() => {\n let totalData = 0;\n api\n .get(`referrers/${user.affiliate.id}`)\n .then(async (response) => {\n const responseCourse = await api.get(\n 'courses/users/masterclass-onboarding'\n );\n const course = responseCourse.data;\n const responseModules = await api.get(`modules/users/${course.id}`);\n const modules = responseModules.data;\n let i = 0;\n for (const module of modules) {\n const responseLessons = await api.get(`lessons/modules/${module.id}`);\n modules[i].lessons = responseLessons.data;\n i += 1;\n }\n course.modules = modules;\n\n const data = response.data.map((referrer) => {\n const nameParts = referrer.user.name?.split(' ');\n const joined = `${language.my_referrals.joined} ${format(\n parseISO(referrer.created_at),\n 'MMM dd, yyyy'\n )}`;\n let typeIcon = userIcon;\n let progress = 'Watched Introduction';\n let className = 'color-member';\n let qualified = false;\n\n let maxModuleIndex = -1;\n let maxLessonIndex = -1;\n if (referrer.user.lessonsUsers.length > 0) {\n course.modules.forEach((module, moduleIndex) => {\n let lessonIndexData = -1;\n module.lessons.forEach((lesson, lessonIndex) => {\n const lessonId = lesson.id;\n\n const foundLesson = referrer.user.lessonsUsers.find(\n (lessonUserData) => lessonUserData.lesson_id === lessonId\n );\n\n if (foundLesson && moduleIndex >= maxModuleIndex) {\n maxModuleIndex = moduleIndex;\n if (lessonIndex > lessonIndexData) {\n lessonIndexData = lessonIndex;\n maxLessonIndex = lessonIndex;\n } else {\n maxLessonIndex = lessonIndexData;\n }\n }\n });\n });\n }\n\n if (maxModuleIndex >= 0 && maxLessonIndex >= 0) {\n progress = `Module ${maxModuleIndex + 1}, Video ${\n maxLessonIndex + 1\n }`;\n }\n\n totalData = referrer.user.orders.reduce(\n (acumulador: number, currentValue: IOrder) => {\n if (currentValue.status === 'succeeded') {\n return acumulador + parseFloat(currentValue.amount_paid);\n }\n return acumulador + 0;\n },\n totalData\n );\n\n if (\n referrer.user.affiliate &&\n referrer.user.affiliate.affiliatesOffers &&\n referrer.user.affiliate.affiliatesOffers.length > 0\n ) {\n qualified = !!referrer.user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id ===\n '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!referrer.user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id ===\n 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n typeIcon = franchise;\n progress = 'Completed Offer 2';\n className = 'color-super';\n } else if (qualified) {\n typeIcon = affiliate;\n progress = 'Completed Offer 1';\n className = 'color-affiliate';\n }\n }\n\n const originParts = referrer.user.origin.split(', ');\n\n return {\n id: referrer.id,\n isLead: !!referrer.user.foundersLeadsLead,\n avatar: referrer.user.avatar?.avatar_url || '',\n name:\n nameParts && nameParts.length > 0\n ? `${nameParts[0]} ${nameParts[nameParts.length - 1]}`\n : 'Not added',\n email: referrer.user.email,\n type: referrer.user.affiliate?.type || 'New Member',\n typeIcon,\n progress,\n joined,\n referral_code: referrer.user.referral_code,\n qualified,\n className,\n product: referrer.user.affiliate?.product?.name || 'Free Bot',\n origin: originParts[originParts.length - 1],\n };\n });\n setReferrers(data);\n setNormalReferrers(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [\n language.my_referrals.affiliate,\n language.my_referrals.joined,\n language.my_referrals.owner,\n language.my_referrals.user,\n user.affiliate.id,\n ]);\n\n const handleClickChat = useCallback(\n async (referrer: IReferrer) => {\n const response = await api.get(\n `chats/${user.referral_code}-${referrer.referral_code}`,\n {\n params: {\n type: 'userToUser',\n },\n }\n );\n\n addChat({\n id: response.data.id,\n name: referrer.name,\n minimize: false,\n });\n },\n [addChat, user.referral_code]\n );\n\n const sortReferrers = useCallback(\n (key: keyof IReferrer, status) => {\n const newReferrers = normalReferrers.slice();\n let newStatus = '';\n if (status === 'normal') {\n newStatus = 'asc';\n newReferrers.sort((a, b) => {\n if (a[key] < b[key]) {\n return -1;\n }\n if (a[key] > b[key]) {\n return 1;\n }\n return 0;\n });\n } else if (status === 'asc') {\n newStatus = 'desc';\n newReferrers.sort((a, b) => {\n if (a[key] > b[key]) {\n return -1;\n }\n if (a[key] < b[key]) {\n return 1;\n }\n return 0;\n });\n } else if (status === 'desc') {\n newStatus = 'normal';\n }\n Object.keys(labelsStatus).forEach((labelStatus) => {\n if (labelStatus === key) {\n labelsStatus[labelStatus as keyof ILabelsStatus] = newStatus;\n } else {\n labelsStatus[labelStatus as keyof ILabelsStatus] = 'normal';\n }\n });\n setReferrers(newReferrers);\n },\n [labelsStatus, normalReferrers]\n );\n\n return (\n <>\n \n
\n
\n \n
\n
\n

\n {language.my_referrals.h1}\n

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

\n \n {referrers.length.toString().padStart(2, '0')}\n \n

\n

Total Members

\n
\n\n {/* <>\n
\n
\n

\n \n {referrers\n .filter((referrerData) => !referrerData.qualified)\n .length.toString()\n .padStart(2, '0')}\n \n

\n

Waitlist

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

\n \n {referrers\n .filter((referrerData) => referrerData.qualified)\n .length.toString()\n .padStart(2, '0')}\n \n

\n

Qualified

\n
\n
\n
\n
\n
\n \n {loading && (\n \n
\n
\n
\n #########\n
\n
\n ##########\n
\n
\n ########\n
\n
\n ##########\n
\n\n
\n ##########\n
\n
\n \n )}\n\n {!loading && (\n
\n
\n \n sortReferrers('name', labelsStatus.name)\n }\n >\n Member\n \n \n\n \n \n \n
\n
\n \n sortReferrers('type', labelsStatus.type)\n }\n >\n Member Type\n \n \n\n \n \n \n
\n
\n \n sortReferrers('qualified', labelsStatus.qualified)\n }\n >\n Product\n \n \n\n \n \n \n
\n
\n \n sortReferrers('progress', labelsStatus.progress)\n }\n >\n Progress\n \n \n\n \n \n \n
\n
\n \n sortReferrers('origin', labelsStatus.origin)\n }\n >\n Source\n \n \n\n \n \n \n
\n
\n \n sortReferrers('email', labelsStatus.email)\n }\n >\n Email\n \n \n\n \n \n \n
\n
\n \n sortReferrers('joined', labelsStatus.joined)\n }\n >\n Date Joined\n \n \n\n \n \n \n
\n
\n \n Action\n \n \n\n \n \n \n
\n
\n )}\n\n {referrers.map((referrer) => (\n
\n \n
\n
\n \n {referrer.isLead && (\n
\n \n

Founders Lead

\n
\n )}\n
\n \n {referrer.name.includes('undefined') === true\n ? referrer.name.replace('undefined', '')\n : `${referrer.name}`}\n \n
\n
\n \n \"Icon\"{' '}\n {referrer.type}\n \n
\n
\n {referrer.product}\n
\n
\n \n {referrer.progress}\n \n
\n
\n {referrer.origin}\n
\n
\n \n {`${referrer.email.substring(\n 0,\n 1\n )}****${referrer.email.substring(6)}`}\n \n
\n
\n {referrer.joined}\n
\n \n
\n handleClickChat(referrer)}\n >\n Message\n \n
\n
\n ))}\n
\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default Referrals;\n","import styled from 'styled-components';\n\ninterface IAvatarProps {\n src: string;\n}\n\ninterface IAvatarOthersProps {\n src: string;\n}\n\nexport const Container = styled.div`\n @media screen and (min-width: 1200px) {\n zoom: 0.7;\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #303030;\n }\n p {\n color: #6f6f6f;\n }\n`;\n\nexport const Values = styled.div`\n background: #fafafa;\n border: 1px solid #e4e4e4;\n box-shadow: -2px 5px 20px rgba(0, 0, 0, 0.03);\n border-radius: 20px;\n\n p {\n color: #8c8c8c;\n font-weight: 400;\n span {\n color: #021027;\n font-weight: 600;\n }\n }\n\n hr {\n background: #d0d0d0;\n }\n\n .dark-gray {\n color: #606060;\n }\n\n @media screen and (min-width: 768px) {\n .border-md-right {\n border-right: solid 1px #d0d0d0;\n }\n }\n`;\n\nexport const Table = styled.div`\n background-color: #ffffff;\n border-radius: 20px;\n\n padding: 0 15px;\n margin-bottom: 10px;\n\n p {\n color: #8c8c8c;\n font-size: 18px;\n }\n\n p.type {\n color: #021027;\n }\n\n a:hover {\n //background-color: #f1f1f1;\n font-weight: 600;\n }\n\n a {\n padding: 10px;\n border-radius: 20px;\n text-decoration: none;\n transition: all 0.1s ease;\n }\n\n .w-content {\n width: max-content;\n }\n\n .text-color {\n color: #6e6e6e;\n }\n\n .line {\n > div {\n width: 250px !important;\n overflow-wrap: break-word;\n }\n\n > div:nth-child(2),\n > div:nth-child(3) {\n width: 180px !important;\n }\n\n > div:nth-child(4) {\n width: 300px !important;\n }\n }\n\n img.avatar {\n width: 70px;\n height: 70px;\n border-radius: 50%;\n background-color: #303030;\n }\n\n div {\n span {\n color: #6e6e6e;\n font-size: 18px;\n }\n }\n\n .name-referrer {\n color: #626262;\n }\n\n .scroll {\n ::-webkit-scrollbar {\n border-radius: 4px !important;\n height: 8px !important;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #021027;\n }\n }\n\n @media screen and (max-width: 1399px) {\n .m-width {\n min-width: 1000px;\n > div {\n min-width: 140px;\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n div {\n span {\n color: #ddd;\n }\n }\n }\n`;\n\nexport const Avatar = styled.div`\n width: 141px;\n height: 141px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px rgba(228, 228, 228, 0.5);\n box-sizing: border-box;\n background-color: #303030;\n\n @media screen and (max-width: 1399px) {\n width: 106px;\n height: 106px;\n }\n`;\n\nexport const Others = styled.div`\n width: 100px;\n height: 100px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px rgba(228, 228, 228, 0.5);\n box-sizing: border-box;\n background-color: #303030;\n\n @media screen and (max-width: 1399px) {\n width: 80px;\n height: 80px;\n }\n`;\n\nexport const Skeleton = styled.div`\n .img-height {\n height: 141px;\n width: 141px;\n }\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 1399px) {\n .img-height {\n height: 106px;\n width: 106px;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { format, parseISO } from 'date-fns';\n\nimport api from '~/services/api';\nimport { useLanguage } from '~/hooks/Language';\n\nimport {\n Container,\n Welcome,\n Values,\n Table,\n Avatar,\n Others,\n Skeleton,\n} from './styles';\n\nimport user from '~/assets/icons/student-icon.svg';\nimport affiliate from '~/assets/icons/affiliate-icon.svg';\nimport franchise from '~/assets/icons/franchise-purple-icon.svg';\n\ninterface IAffiliateOffer {\n offer_id: string;\n}\n\ninterface IUser {\n id: string;\n name: string;\n email: string;\n referral_code: string;\n avatar: {\n id: string;\n avatar_url: string;\n };\n affiliate: {\n id: string;\n active_affiliate: boolean;\n franchise_owner: boolean;\n product?: {\n id: string;\n title: string;\n };\n affiliatesOffers: IAffiliateOffer[];\n };\n}\n\ninterface IAffiliateOffer {\n offer_id: string;\n}\n\ninterface IReferrerResponse {\n id: string;\n user: {\n id: string;\n name: string;\n email: string;\n referral_code: string;\n avatar: {\n id: string;\n avatar_url: string;\n };\n affiliate: {\n id: string;\n active_affiliate: boolean;\n franchise_owner: boolean;\n product?: {\n id: string;\n title: string;\n };\n affiliatesOffers: IAffiliateOffer[];\n };\n orders: IOrder[];\n };\n created_at: string;\n}\n\ninterface IReferrer {\n id: string;\n avatar: string;\n name: string;\n email: string;\n type: string;\n typeIcon: string;\n product: string;\n joined: string;\n code_referrer: string;\n qualified: boolean;\n}\n\ninterface IOrder {\n id: string;\n amount_paid: string;\n status: string;\n course?: {\n id: string;\n title: string;\n };\n}\n\ninterface IParams {\n slug: string;\n}\n\nconst TeamView: React.FC = () => {\n const { language } = useLanguage();\n const params = useParams();\n const [loading, setLoading] = useState(true);\n const [referrer, setReferrer] = useState({} as IUser);\n const [referrers, setReferrers] = useState([]);\n const [typeUser, setTypeUser] = useState('New Member');\n const [typeIconUser, setTypeIconUser] = useState(user);\n\n useEffect(() => {\n let totalData = 0;\n api\n .get(`users/${params.slug}`)\n .then(async (responseUser) => {\n if (\n responseUser.data.affiliate &&\n responseUser.data.affiliate.affiliatesOffers &&\n responseUser.data.affiliate.affiliatesOffers.length > 0\n ) {\n const qualified = !!responseUser.data.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliate = !!responseUser.data.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id === 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliate) {\n setTypeUser('Super Affiliate');\n setTypeIconUser(franchise);\n } else if (qualified) {\n setTypeUser('Affiliate');\n setTypeIconUser(affiliate);\n }\n }\n\n const response = await api.get(\n `referrers/${responseUser.data.affiliate.id}`\n );\n const data = response.data.map((referrerData) => {\n const nameParts = referrerData.user.name\n ? referrerData.user.name.split(' ')\n : undefined;\n const joined = `Joined ${format(\n parseISO(referrerData.created_at),\n 'MMM dd, yyyy'\n )}`;\n let type = 'New Member';\n let typeIcon = user;\n let qualifiedData = false;\n const product =\n referrerData.user.orders[referrerData.user.orders.length - 1] &&\n referrerData.user.orders[referrerData.user.orders.length - 1].course\n ?.title;\n\n totalData = referrerData.user.orders.reduce(\n (acumulador: number, currentValue: IOrder) => {\n if (currentValue.status === 'succeeded') {\n return acumulador + parseFloat(currentValue.amount_paid);\n }\n return acumulador + 0;\n },\n totalData\n );\n\n if (\n referrerData.user.affiliate &&\n referrerData.user.affiliate.affiliatesOffers &&\n referrerData.user.affiliate.affiliatesOffers.length\n ) {\n qualifiedData = !!referrerData.user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id ===\n '2ffe225b-fbad-4521-a68e-c98e43e4f99b'\n );\n\n const superAffiliateData = !!referrerData.user.affiliate.affiliatesOffers.find(\n (affiliateOffer) =>\n affiliateOffer.offer_id ===\n 'cee44e14-66f7-42b2-ba1e-adccf8a47b60'\n );\n\n if (superAffiliateData) {\n type = 'Super Affiliate';\n typeIcon = franchise;\n } else if (qualifiedData) {\n type = 'Affiliate';\n typeIcon = affiliate;\n }\n }\n //\n return {\n id: referrerData.id,\n avatar: referrerData.user.avatar.avatar_url,\n name: nameParts\n ? `${nameParts[0]} ${nameParts[nameParts.length - 1][0]}.`\n : 'Not added',\n email: referrerData.user.email,\n type,\n typeIcon,\n product: product || 'N/A',\n joined,\n code_referrer: referrerData.user.referral_code,\n qualified: qualifiedData,\n };\n });\n\n setReferrer(responseUser.data);\n setReferrers(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [params.slug]);\n\n return (\n <>\n \n
\n \n
\n
\n

\n {language.my_referrals.h1}\n

\n
\n
\n
\n {loading && (\n \n \n
\n

\n ##\n

\n

Total Members

\n
\n\n
\n
\n

\n ######\n

\n

Qualified

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

\n ##########\n

\n
\n

\n ###############\n

\n

\n ##### ####### #####\n

\n
\n
\n
\n )}\n {Object.keys(referrer).length > 0 && (\n <>\n
\n \n
\n

\n \n {referrers.length.toString().padStart(2, '0')}\n \n

\n

Total Members

\n
\n {/*
\n
\n

\n \n {referrers\n .filter((referrerData) => !referrerData.qualified)\n .length.toString()\n .padStart(2, '0')}\n \n

\n

Waitlist

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

\n \n {referrers\n .filter((referrerData) => referrerData.qualified)\n .length.toString()\n .padStart(2, '0')}\n \n

\n

Qualified

\n
\n
\n
\n\n \n
\n \n
\n \"Fire\n

{typeUser}

\n
\n

\n {referrer.referral_code}\n

\n

\n {referrer.name}\n

\n
\n
\n
\n {referrers.map((referrerData) => (\n \n \n

\n {referrerData.name}\n

\n \n ))}\n
\n
\n
\n \n )}\n
\n
\n \n );\n};\n\nexport default TeamView;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .justify-content-wallet {\n justify-content: end !important;\n }\n .bg-gray {\n background: #ffffff;\n border-radius: 20px;\n\n .border-right {\n border-color: #393c3d !important;\n }\n\n h2 {\n color: #dadada;\n }\n\n .input {\n border: 1.5px solid #393c3d;\n box-sizing: border-box;\n border-radius: 15px;\n height: 40px;\n\n input {\n color: #efefef !important;\n }\n }\n\n button.btn-gradient {\n border-radius: 15px;\n }\n }\n\n /* .table {\n .rdt_TableHeadRow,\n .rdt_TableRow {\n > div:nth-child(2),\n > div:nth-child(4) {\n max-width: 175px;\n width: 175px;\n }\n }\n } */\n\n .rdt_TableCol,\n .rdt_TableCell {\n width: 150px !important;\n max-width: 150px !important;\n }\n\n .contact {\n cursor: pointer;\n\n input {\n color: #8c8c8c;\n font-size: 13px;\n background-color: transparent;\n border: none;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.8;\n }\n .table-xxl {\n .spacer {\n display: none;\n }\n\n /* .date-and-export {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n } */\n }\n\n .tableData > div:last-child {\n /* max-height: 350px; */\n overflow-x: auto;\n overflow-y: auto;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.9;\n }\n }\n\n @media screen and (min-width: 1700px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #303030;\n }\n\n p {\n color: #6f6f6f;\n }\n\n .btn-month {\n background: #242526;\n border: 1px solid rgba(225, 225, 225, 0.2);\n\n span {\n color: #8c8c8c;\n }\n }\n`;\n\nexport const Option = styled.div`\n .Link:hover {\n text-decoration: none;\n }\n\n .Active {\n color: white;\n border-bottom: solid 2px white;\n }\n\n .Disable {\n color: #484848;\n }\n`;\n\nexport const Cards = styled.div`\n .Cards {\n padding: 0;\n }\n\n .Card {\n background-color: #1d2023;\n border-radius: 20px;\n height: 133px;\n }\n\n .Card .Title {\n color: #ffffff;\n }\n\n .Card .Value {\n color: #6fcf97;\n font-size: 20px;\n }\n\n .Card .Description {\n color: #a09999;\n }\n\n @media screen and (max-width: 991px) {\n .Card {\n width: 158px;\n height: 133px;\n margin-right: 5px;\n }\n\n .Card .Title {\n font-size: 11px;\n }\n .Card .Description {\n font-size: 10px;\n }\n .Card .Value {\n font-size: 18px;\n white-space: nowrap;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .Card .Value {\n font-size: 25px;\n }\n }\n\n @media screen and (min-width: 992px) {\n .Card .Title {\n justify-content: start;\n }\n }\n`;\n\nexport const CV = styled.div`\n .CV {\n background-color: #1d2023;\n border-radius: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .CV .TitleCv {\n white-space: nowrap;\n color: white;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .CV .ImgCv {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .CV .CardCV {\n border: solid 1px #4f4f4f;\n background-color: #222527;\n border-radius: 20px;\n }\n\n .CV .CardCV .TitleCardCV {\n color: white;\n font-size: 14px;\n }\n\n .CV .CardCV .ValueCardCV {\n color: #10c3fc;\n font-size: 24px;\n }\n\n @media screen and (max-width: 576px) {\n .CV {\n }\n\n .CV .CardCV {\n }\n\n .CV .ImgCv img {\n width: 40px;\n }\n\n .CV .CardCV .ValueCardCV {\n font-size: 18px;\n }\n }\n\n @media screen and (max-width: 1200px) {\n .CV .CardCV .ValueCardCV {\n font-size: 20px;\n }\n\n .CV .CardCV .TitleCardCV {\n font-size: 12px;\n }\n }\n`;\n\nexport const Box = styled.div`\n .Box {\n background-color: #222527;\n margin: 5%;\n border-radius: 20px;\n padding: 5%;\n }\n\n .Box .TitleBox {\n color: white;\n display: table;\n margin: 0 auto;\n }\n\n .Box .ValueBox {\n display: table;\n margin: 0 auto;\n color: white;\n font-weight: bolder;\n font-size: 30px;\n margin-bottom: 5%;\n }\n\n .Box .TimeBox {\n color: #828282;\n margin-top: 1%;\n margin-bottom: 5%;\n }\n\n .Box .Active {\n color: white;\n font-weight: bold;\n }\n\n .MonthBox {\n margin-top: 1%;\n margin-bottom: 5%;\n }\n\n .MonthBox .Active {\n border-radius: 15px;\n background-color: #202020;\n border: solid 2px;\n }\n\n .Box .WithDrawBox {\n background-color: #18191a;\n border-radius: 20px;\n margin: 3%;\n }\n\n .Box .WithDrawBox .TitleWithDrawBox {\n color: white;\n font-weight: bold;\n }\n\n .Box .WithDrawBox .ValueWithDrawBox {\n color: white;\n font-weight: bolder;\n font-size: 20px;\n }\n\n .Box .WithDrawBox .ButtonWithDrawBox {\n background-color: #242526;\n color: white;\n }\n\n .Box .WithDrawBox .ButtonBox {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n\nexport const Board = styled.div`\n background-color: #f9f9f9;\n border-radius: 20px;\n width: 100%;\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: table;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n .BoardImg {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .Title {\n text-align: center;\n margin-top: 10%;\n color: #8c8c8c;\n font-size: 12px;\n }\n\n .Value {\n text-align: center;\n color: #626262;\n }\n\n @media screen and (max-width: 576px) {\n /* .BoardImg img {\n width: 30px;\n } */\n\n .Value {\n font-size: 17px;\n }\n }\n\n @media screen and (min-width: 768px) {\n .BoardImg img {\n width: 51px;\n }\n }\n\n @media screen and (min-width: 1200px) {\n height: 100%;\n }\n`;\n","import styled from 'styled-components';\n\ninterface IPrice {\n withdraw: boolean;\n}\n\nexport const Container = styled.div`\n div {\n color: #8c8c8c;\n font-size: 16px;\n }\n\n .title {\n pointer-events: none;\n color: #021027;\n font-size: 18px;\n }\n\n .rdt_TableHeadRow {\n div {\n color: #626262;\n font-weight: 600;\n font-size: 16px;\n }\n }\n\n input.inputDate {\n padding: 8px 10px !important;\n }\n\n a.inputDate,\n input.inputDate {\n background: #f9f9f9 !important;\n }\n\n .size-wallet {\n font-size: 12px !important;\n }\n\n .link-group {\n z-index: 10;\n\n a {\n color: #8c8c8c;\n text-decoration: none;\n }\n\n .active {\n color: #242526;\n }\n }\n\n .rdt_TableRow div:nth-child(3) p {\n font-weight: 500;\n }\n\n .rdt_TableHead,\n .rdt_TableBody,\n .rdt_TableRow {\n min-width: 0px !important;\n }\n\n .rdt_TableHeadRow,\n .rdt_TableRow {\n justify-content: space-between;\n }\n\n .rdt_TableCol,\n .rdt_TableCell {\n width: 180px;\n max-width: 180px;\n }\n\n @media screen and (min-width: 450px) {\n input.inputDate {\n width: 120px !important;\n }\n\n a.inputDate {\n width: 70px !important;\n padding: 5px 20px !important;\n }\n }\n`;\n\nexport const Price = styled.p`\n color: ${(props) => (props.withdraw ? '#FF1A50' : '#8C8C8C')};\n font-weight: ${(props) => (props.withdraw ? '700' : '500')} !important;\n`;\n\nexport const DeleteButton = styled.button`\n border: none;\n background-color: transparent;\n`;\n\nexport const Skeleton = styled.div`\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\n","import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { format, parseISO } from 'date-fns';\nimport { NavLink, useParams, useLocation } from 'react-router-dom';\nimport { HiOutlineTrash } from 'react-icons/hi';\n\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport { formatPrice } from '~/utils/format';\n\nimport { Container, Price, DeleteButton, Skeleton } from './styles';\nimport Table from '~/components/Table';\n\ninterface ITransaction {\n id: string;\n wallet_id: string;\n commission_id: string;\n amount: number;\n type: string;\n member: string;\n status: string;\n created_at: string;\n}\n\ninterface IGiftCard {\n id: string;\n hash: string;\n price: string;\n used: string;\n}\n\ninterface ITableData {\n type: string;\n date: string;\n member: string;\n amount: string;\n status: string;\n discount: boolean;\n}\n\ninterface ITableDataGift {\n id: string;\n status: string;\n card: string;\n amount: string;\n}\n\ninterface ITransactionHistory {\n updateData?: number;\n}\n\ninterface IParams {\n slug: string;\n}\n\nconst TransactionHistory: React.FC = ({ updateData }) => {\n const params = useParams();\n const { language } = useLanguage();\n const location = useLocation();\n const {\n user,\n walletHistory,\n setWalletHistory,\n giftCards,\n setGiftCards,\n setWalletPrice,\n } = useAuth();\n const [page, setPage] = useState('transactions');\n const [walletsHistory, setWalletsHistory] = useState([\n {\n type: 'No commissions yet',\n date: '-',\n amount: '-',\n member: '-',\n status: '-',\n discount: false,\n },\n ]);\n const [loading, setLoading] = useState(true);\n const [lang] = useState(() => {\n const langSymbol = location.pathname.substr(0, 3);\n if (langSymbol !== '/en' && langSymbol !== '/es') {\n return ``;\n }\n\n return langSymbol;\n });\n\n useEffect(() => {\n setPage(params.slug);\n }, [params.slug]);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n\n useEffect(() => {\n if (page === 'transactions') {\n api\n .get(\n `wallets-history/wallets/${user.affiliate.wallet.id}`\n )\n .then((response) => {\n const data: ITableData[] = response.data.map((walletHistoryData) => ({\n type: walletHistoryData.type,\n date: format(parseISO(walletHistoryData.created_at), 'MM-dd-yyyy'),\n amount: `${\n (walletHistoryData.status === 'Refund' ||\n walletHistoryData.status === 'Withdraw' ||\n walletHistoryData.status === 'Processing' ||\n walletHistoryData.status === 'Purchased' ||\n walletHistoryData.status === 'Completed') &&\n walletHistoryData.type !== 'Cancel Withdraw'\n ? '-'\n : ''\n }${formatPrice(walletHistoryData.amount)}`,\n discount:\n (walletHistoryData.status === 'Refund' ||\n walletHistoryData.status === 'Withdraw' ||\n walletHistoryData.status === 'Processing' ||\n walletHistoryData.status === 'Purchased' ||\n walletHistoryData.status === 'Completed') &&\n walletHistoryData.type !== 'Cancel Withdraw',\n member: walletHistoryData.member,\n status: walletHistoryData.status,\n }));\n setWalletsHistory(data);\n setLoading(false);\n });\n } else {\n api.get('gift-cards/users').then((response) => {\n const data = response.data.map((giftCard) => ({\n id: giftCard.id,\n status: giftCard.used ? 'Used' : 'Unused',\n card: giftCard.hash,\n amount: formatPrice(parseFloat(giftCard.price)),\n }));\n setGiftCards(data);\n setLoading(false);\n });\n }\n }, [page, setGiftCards, setWalletHistory, updateData, user.affiliate]);\n\n const handleClickDelete = useCallback(\n async (giftCardId) => {\n try {\n const response = await api.delete(`gift-cards/users/${giftCardId}`);\n if (response.data) {\n const dataWalletHistory = {\n type: response.data.walletHistory.type,\n date: format(\n parseISO(response.data.walletHistory.created_at),\n 'MM-dd-yyyy'\n ),\n amount: formatPrice(response.data.walletHistory.amount),\n withdrawal: response.data.walletHistory.amount < 0,\n };\n\n const newGiftCards = giftCards.filter(\n (giftCard) => giftCard.id !== giftCardId\n );\n\n setWalletPrice(response.data.wallet.amount);\n setWalletHistory([dataWalletHistory, ...walletHistory]);\n setGiftCards(newGiftCards);\n }\n } catch (error) {\n // console.log(error);\n }\n },\n [giftCards, setGiftCards, setWalletHistory, setWalletPrice, walletHistory]\n );\n\n const columns = useMemo(() => {\n if (page === 'transactions') {\n return [\n {\n name: language.wallet.type,\n selector: 'type',\n sortable: true,\n },\n {\n name: language.wallet.date,\n selector: 'date',\n sortable: true,\n },\n {\n name: 'Member',\n selector: 'member',\n sortable: true,\n },\n {\n name: language.wallet.amount,\n selector: 'amount',\n sortable: true,\n cell: (row: ITableData) => (\n \n {row.amount}\n \n ),\n },\n {\n name: 'Status',\n selector: 'status',\n sortable: true,\n cell: (row: ITableData) => (\n \n {row.status}\n \n ),\n },\n ];\n }\n\n return [\n {\n name: language.wallet.status,\n selector: 'status',\n sortable: true,\n },\n {\n name: language.wallet.card,\n selector: 'card',\n sortable: true,\n },\n {\n name: language.wallet.amount,\n selector: 'amount',\n sortable: true,\n cell: (row: ITableData) => (\n \n {row.amount}\n \n ),\n },\n {\n name: '',\n selector: 'id',\n sortable: false,\n cell: (row: ITableDataGift) => (\n <>\n {row.status === 'Unused' && (\n handleClickDelete(row.id)}\n >\n \n \n )}\n \n ),\n },\n ];\n }, [\n handleClickDelete,\n language.wallet.amount,\n language.wallet.card,\n language.wallet.date,\n language.wallet.status,\n language.wallet.type,\n page,\n ]);\n\n const handleClick = useCallback((pageSelected) => {\n setPage(pageSelected);\n }, []);\n\n return (\n \n
\n handleClick('transactions')}\n >\n Commission History\n \n
\n {loading && (\n \n
\n
\n

Tipo

\n
\n
\n

Fecha

\n
\n
\n

Cantidad

\n
\n
\n
\n
\n

Tipo

\n
\n
\n

Fecha

\n
\n
\n

Cantidad

\n
\n
\n
\n
\n

Demostración 1-1 de 1

\n
\n
\n
\n \n Primero\n \n \n 01\n \n \n Último\n \n
\n
\n
\n
\n )}\n
\n \n
\n
\n );\n};\n\nexport default TransactionHistory;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Container = styled.div`\n background: #f9f9f9;\n border-radius: 20px;\n\n .skeleton {\n background-color: #f1f1f1 !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n #f1f1f1 0%,\n rgba(227, 227, 227, 0) 0%,\n rgba(227, 227, 227, 0) 10%,\n rgba(227, 227, 227, 0.2) 20%,\n rgba(227, 227, 227, 0.5) 40%,\n rgba(227, 227, 227, 0.8) 50%,\n rgba(227, 227, 227, 0.2) 80%,\n rgba(227, 227, 227, 0) 90%,\n rgba(227, 227, 227, 0) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n .TitleBox {\n color: #303030;\n display: table;\n margin: 0 auto;\n }\n\n .ValueBox {\n display: table;\n margin: 0 auto;\n color: #021027;\n font-weight: bolder;\n font-size: 30px;\n margin-bottom: 5%;\n }\n\n .TimeBox {\n color: #828282;\n }\n\n .MonthBox {\n margin-top: 1%;\n margin-bottom: 5%;\n }\n\n .ItemMonthBox {\n background-color: #20202000 !important;\n border: none;\n padding: 2px;\n background-image: linear-gradient(180deg, #24252600, #24252600),\n linear-gradient(269.95deg, #e323ff00 0.02%, #79d1f800 97.45%) !important;\n background-origin: border-box !important;\n background-clip: content-box, border-box !important;\n border-image-slice: 1 !important;\n color: #fff;\n }\n\n .ItemMonthBox:hover,\n .ItemMonthBox.Active {\n background-color: #202020 !important;\n border: 1px solid #828282 !important;\n padding: 2px;\n color: #fff;\n }\n\n .WithDrawBox {\n background: #ffffff;\n box-shadow: -2px 5px 25px rgba(0, 0, 0, 0.03);\n border-radius: 20px;\n }\n\n .WithDrawBox .TitleWithDrawBox {\n color: #8c8c8c;\n }\n\n .WithDrawBox .ValueWithDrawBox {\n color: #242526;\n font-weight: bolder;\n font-size: 20px;\n }\n\n .border-gold {\n background-color: #202020 !important;\n border: none;\n padding: 1px;\n background-image: linear-gradient(180deg, #242526, #242526),\n linear-gradient(\n 143.88deg,\n #825511 -9.17%,\n #f3bf5c 108.32%,\n #f3bf5c 108.32%\n ) !important;\n background-origin: border-box !important;\n background-clip: content-box, border-box !important;\n border-image-slice: 1 !important;\n color: #fff;\n }\n\n .ButtonWithDrawBox {\n border-radius: 20px;\n background: #116bff;\n color: #f5f5f5;\n font-size: 16px;\n font-weight: 700;\n height: 64px;\n padding: 0.5rem 1.5rem;\n transition-duration: 0.2s;\n opacity: 1;\n\n :hover {\n opacity: 0.9;\n }\n\n :disabled {\n background: #116bff55;\n cursor: default;\n cursor: not-allowed;\n }\n }\n\n .WithDrawBox .ButtonBox {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .WithDrawBox .ButtonBox .ButtonWithDrawBox {\n }\n\n .ItemTimeBox {\n transition-duration: 0.3s;\n color: #8c8c8c;\n }\n\n .ItemTimeBox:hover,\n .ItemTimeBox:focus,\n .ItemTimeBox.Active {\n color: #303030;\n font-weight: 700;\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n backdrop-filter: blur(2.5px);\n background-color: rgba(0, 0, 0, 60%);\n label span {\n font-weight: 400;\n font-size: 20px;\n\n color: #5d5b5b;\n }\n\n .modal-content {\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n\n .modal-title {\n font-weight: 600;\n font-size: 22px;\n color: #021027;\n }\n\n .modal-cache-title {\n color: #116bff;\n\n text-align: center;\n font-family: 'Quicksand';\n font-size: 38px;\n font-style: normal;\n font-weight: 700;\n line-height: 124%;\n letter-spacing: 0.96px;\n }\n\n .cache-subtitle {\n color: #021027;\n\n text-align: center;\n font-family: 'Archivo';\n font-size: 22px;\n font-style: normal;\n font-weight: 400;\n line-height: 118%;\n }\n\n .btn-clear-cache {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 18px;\n background: #116bff;\n width: 100%;\n height: 70px;\n padding: 18px 15px;\n color: #fff;\n text-align: center;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 700;\n line-height: normal;\n }\n\n .info-tooltip {\n position: absolute;\n font-size: 14px !important;\n width: 310px;\n line-height: 24px !important;\n text-align: center !important;\n bottom: 40px;\n left: -149px;\n background: #f9f9f9 !important;\n border-radius: 16px;\n border: 1px solid #116bff;\n padding: 10px;\n opacity: 0;\n visibility: hidden;\n transition-duration: 0.3s;\n\n ::after {\n content: '';\n position: absolute;\n width: 15px;\n height: 15px;\n bottom: -9px;\n left: 50%;\n transform: translateX(-50%);\n background-color: #f9f9f9;\n border-right: 0.5px solid #116bff;\n border-bottom: 0.5px solid #116bff;\n transform: rotateZ(45deg);\n }\n }\n\n .info-tooltip.show {\n opacity: 1;\n visibility: visible;\n }\n\n .bg-values {\n border-radius: 12px;\n background: #f3f3f5;\n span:nth-child(1) {\n color: #021027;\n font-family: 'Archivo';\n font-size: 20px;\n font-weight: 300;\n line-height: 26px;\n width: 220px;\n }\n span:nth-child(2) {\n color: #021027;\n\n text-align: right;\n font-family: 'Archivo';\n font-size: 24px;\n font-weight: 400;\n line-height: 26px;\n }\n }\n\n .fw-600 {\n font-weight: 600 !important;\n }\n\n .btn-close {\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .btn-cancel {\n color: #ff1a50;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n }\n\n .color-span {\n color: #a6a2a2 !important;\n font-weight: 500 !important;\n }\n\n .btn-save {\n font-weight: 600;\n font-size: 22px;\n line-height: 27px;\n color: #ffffff;\n background: #116bff;\n border-radius: 20px;\n transition-duration: 0.3s;\n padding: 20px;\n width: 370px;\n :hover {\n opacity: 0.8;\n }\n }\n\n .create {\n padding: 20px 30px;\n }\n }\n\n @media screen and (min-width: 992px) {\n zoom: 0.7;\n .modal-xl {\n max-width: unset;\n width: 1066px;\n }\n\n .btn-clear-cache {\n font-size: 24px;\n }\n\n .modal-content {\n .modal-title {\n font-size: 48px;\n }\n .bg-values {\n span:nth-child(1) {\n line-height: 32px;\n width: auto;\n }\n span:nth-child(2) {\n line-height: 32px;\n }\n }\n }\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const ModalPayout = styled(ModalComponent)`\n label span {\n font-weight: 400;\n font-size: 20px;\n\n color: #5d5b5b;\n }\n\n .modal-content {\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n\n .modal-title {\n font-weight: 600;\n font-size: 24px;\n color: #021027;\n }\n\n .modal-cache-title {\n color: #116bff;\n text-align: center;\n font-family: 'Quicksand';\n font-size: 35px;\n font-style: normal;\n font-weight: 700;\n line-height: 45px;\n }\n\n .cache-subtitle {\n color: #151517;\n text-align: center;\n font-family: 'Archivo';\n font-size: 24px;\n font-style: normal;\n font-weight: 400;\n line-height: 40px;\n }\n\n .cache-content {\n color: #585656;\n text-align: center;\n font-family: 'Archivo';\n font-size: 18px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n display: block;\n }\n\n .btn-clear-cache {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 18px;\n background: #116bff;\n width: 100%;\n height: 70px;\n padding: 18px 10px;\n flex-shrink: 0;\n color: #fff;\n text-align: center;\n font-family: 'Archivo';\n font-size: 18px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n\n text-transform: uppercase;\n }\n\n .input {\n border: 1px solid #d0d0d0;\n border-radius: 20px;\n height: 72px !important;\n background: transparent;\n font-weight: 300;\n color: #151517;\n padding: 5px 20px;\n\n input::placeholder {\n color: #8c8c8c;\n font-weight: 300;\n font-size: 14px;\n }\n }\n\n .modal-close {\n color: #021027;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .color-span {\n color: #a6a2a2 !important;\n font-weight: 500 !important;\n }\n\n .btn-save {\n font-weight: 600;\n font-size: 22px;\n line-height: 27px;\n color: #ffffff;\n background: #116bff;\n border-radius: 20px;\n transition-duration: 0.3s;\n padding: 20px;\n width: 370px;\n :hover {\n opacity: 0.8;\n }\n }\n\n .btn-cancel {\n font-weight: 600;\n font-size: 22px;\n line-height: 27px;\n color: #dadada;\n background: #021027;\n border-radius: 20px;\n padding: 20px;\n width: 142px;\n }\n\n .create {\n padding: 20px 30px;\n }\n }\n\n .animation div:nth-child(1) {\n width: 180px !important;\n height: 180px !important;\n pointer-events: none;\n }\n\n .animation.almost div:nth-child(1) {\n width: 110px !important;\n height: 110px !important;\n }\n\n @media screen and (min-width: 992px) {\n zoom: 0.7;\n .modal-xl {\n max-width: unset;\n width: 870px;\n }\n\n .modal-content {\n .modal-cache-title {\n font-size: 44px;\n }\n\n .cache-subtitle {\n font-size: 28px;\n line-height: 45px;\n }\n\n .cache-content {\n font-size: 20px;\n }\n\n .btn-clear-cache {\n font-size: 30px;\n padding: 18px 28px;\n }\n }\n\n .animation div:nth-child(1) {\n width: 281px !important;\n height: 281px !important;\n }\n\n .animation.almost div:nth-child(1) {\n width: 164px !important;\n height: 164px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const Loading = styled.div`\n .spinner {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(\n farthest-side,\n #0000 calc(100% - 9px),\n #000 0\n );\n animation: spinner-c7wet2 1s infinite linear;\n }\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport Lottie from 'react-lottie';\nimport { AiOutlineInfoCircle } from 'react-icons/ai';\nimport { IoIosClose } from 'react-icons/io';\nimport { io } from 'socket.io-client';\n\nimport { formatPrice } from '~/utils/format';\nimport api from '~/services/api';\nimport { useAuth } from '~/hooks/Auth';\n\nimport { Container, Loading, Modal, ModalPayout } from './styles';\nimport { useLanguage } from '~/hooks/Language';\nimport withdraw from '~/assets/animations/withdraw.json';\nimport payout from '~/assets/animations/payout.json';\nimport withdrawTax from '~/assets/animations/withdraw-tax.json';\nimport success from '~/assets/animations/success.json';\n\ninterface IUser {\n id: string;\n}\n\ninterface ICommission {\n id: string;\n earning: string;\n amount_paid: string;\n created_at: string;\n}\n\ninterface ITransaction {\n id: string;\n wallet_id: string;\n commission_id: string;\n amount: string;\n type: string;\n member: string;\n status: string;\n created_at: string;\n}\n\nconst socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n});\n\nconst MyEarnings: React.FC = () => {\n const { setWalletPrice, user, updateUser } = useAuth();\n const [showModal, setShowModal] = useState(false);\n const [showModalTax, setShowModalTax] = useState(false);\n const [allGains, setAllGains] = useState(0);\n const [availableWithdrawal, setAvailableWithdrawal] = useState(0);\n const [taxFee, setTaxFee] = useState(0);\n const { language } = useLanguage();\n const [loading, setLoading] = useState(true);\n const [loadingWithdraw, setLoadingWithdraw] = useState(false);\n const [selectEarnings, setSelectEarnings] = useState('lifetime');\n const [showComplete, setShowComplete] = useState(false);\n const [showSuccefully, setShowSuccefully] = useState(false);\n const [showFinalized, setShowFinalized] = useState(false);\n const [selectedTooltip, setSelectedTooltip] = useState('');\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n\n const handleLoadAllGains = useCallback(async (typeDate) => {\n const response = await api.get('commissions', {\n params: {\n typeDate,\n },\n });\n const gains = response.data.reduce(\n (acumulador: number, currentValue: ICommission) => {\n return acumulador + parseFloat(currentValue.earning);\n },\n 0\n );\n\n setAllGains(gains);\n }, []);\n\n useEffect(() => {\n handleLoadAllGains(selectEarnings);\n }, [\n handleLoadAllGains,\n selectEarnings,\n user.affiliate.wallet.request_amount,\n ]);\n\n useEffect(() => {\n socket.on(`awaitingReview`, (userData: IUser) => {\n if (userData.id === user.id) {\n setShowComplete(false);\n setShowModal(false);\n setShowSuccefully(true);\n }\n });\n\n //\n\n socket.on(`active`, (userData: IUser) => {\n if (userData.id === user.id) {\n setShowFinalized(true);\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n wallet: {\n ...user.affiliate.wallet,\n request_amount: availableWithdrawal.toString(),\n status: 'Ready to pay',\n },\n },\n });\n setShowSuccefully(false);\n setShowModalTax(false);\n setShowModal(false);\n setShowComplete(false);\n setLoadingWithdraw(false);\n }\n });\n }, [availableWithdrawal, updateUser, user, user.id]);\n\n useEffect(() => {\n api\n .get(\n `wallets-history/wallets/${user.affiliate.wallet.id}`\n )\n .then(async (response) => {\n const gains = response.data.reduce((acumulador, currentValue) => {\n if (\n currentValue.status === 'Withdraw' ||\n currentValue.status === 'Processing' ||\n currentValue.status === 'Purchased'\n ) {\n return acumulador - parseFloat(currentValue.amount);\n }\n\n if (\n (currentValue.status === 'Refund' ||\n currentValue.status === 'Pending' ||\n currentValue.status === 'Paid' ||\n currentValue.status === 'Completed') &&\n currentValue.type !== 'Cancel Withdraw'\n ) {\n return acumulador + 0;\n }\n\n return acumulador + parseFloat(currentValue.amount);\n }, 0);\n\n setAvailableWithdrawal(gains);\n });\n }, [\n setWalletPrice,\n user.affiliate.wallet.id,\n user.affiliate.wallet.request_amount,\n ]);\n\n const handleClickWithdraw = useCallback(() => {\n setTaxFee(availableWithdrawal * 0.03);\n setShowModal(true);\n }, [availableWithdrawal]);\n\n const handleClickConfirmWithdraw = useCallback(async () => {\n setLoadingWithdraw(true);\n const response = await api.post('wallets/withdraw');\n\n if (response.data) {\n setShowModal(false);\n setShowComplete(true);\n setLoadingWithdraw(false);\n } else {\n setShowFinalized(true);\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n wallet: {\n ...user.affiliate.wallet,\n request_amount: availableWithdrawal.toString(),\n status: 'Ready to pay',\n },\n },\n });\n setShowSuccefully(false);\n setShowModalTax(false);\n setShowModal(false);\n setShowComplete(false);\n setLoadingWithdraw(false);\n }\n }, [availableWithdrawal, updateUser, user]);\n\n const handleClickBackToDashboard = useCallback(() => {\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n wallet: {\n ...user.affiliate.wallet,\n request_amount: availableWithdrawal.toString(),\n status: 'Ready to pay',\n },\n },\n });\n\n setShowSuccefully(false);\n }, [availableWithdrawal, updateUser, user]);\n\n const handleSelectFilter = useCallback(async (filter) => {\n setSelectEarnings(filter);\n }, []);\n\n const handleMouseEnter = useCallback((tooltipSelected) => {\n setSelectedTooltip(tooltipSelected);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setSelectedTooltip('');\n }, []);\n\n return (\n \n
\n
\n
\n {language.wallet.h5}\n
\n
\n
\n \n {formatPrice(allGains)}\n \n
\n\n
\n
\n handleSelectFilter('today')}\n className={`${\n selectEarnings === 'today' && 'Active'\n } border-0 bg-transparent ItemTimeBox`}\n >\n {language.wallet.button_1}\n \n handleSelectFilter('month')}\n className={`${\n selectEarnings === 'month' && 'Active'\n } border-0 bg-transparent ItemTimeBox`}\n >\n {language.wallet.button_2}\n \n handleSelectFilter('year')}\n className={`${\n selectEarnings === 'year' && 'Active'\n } border-0 bg-transparent ItemTimeBox`}\n >\n {language.wallet.button_3}\n \n handleSelectFilter('lifetime')}\n className={`${\n selectEarnings === 'lifetime' && 'Active'\n } border-0 bg-transparent ItemTimeBox`}\n >\n {language.wallet.button_4}\n \n
\n
\n\n
\n
\n
\n
\n
\n {language.wallet.small_1}\n
\n
\n
\n \n {formatPrice(availableWithdrawal)}\n \n
\n
\n
\n
\n
\n \n {language.wallet.button_5}\n \n
\n
\n setShowModal(false)}\n show={showModal}\n size=\"xl\"\n centered\n >\n setShowModal(false)}\n type=\"button\"\n className=\"border-0 bg-transparent btn-close\"\n >\n \n \n \n
\n \n \n Confirm withdraw\n \n
\n
\n \n

Review details below:

\n
\n \n Available Withdraw:{' '}\n setShowModalTax(true)}\n className=\"bg-transparent border-0 position-relative\"\n onMouseEnter={() => handleMouseEnter('available-withdraw')}\n onMouseLeave={handleMouseLeave}\n >\n \n \n The estimated total includes processing and transaction fees,\n covering operational and transfer costs, respectively, plus\n any tax reporting obligations of your earnings.\n \n
\n \n {formatPrice(availableWithdrawal)}\n
\n
\n \n Estimated Processing and Transaction Fees:\n setShowModalTax(true)}\n className=\"bg-transparent border-0 position-relative\"\n onMouseEnter={() => handleMouseEnter('transaction-fees')}\n onMouseLeave={handleMouseLeave}\n >\n \n \n We issue payouts on the 15th of each month. You can request\n withdrawals for any available funds, following a 45-day refund\n period, from the 1st to the 10th of each month. This timing\n allows us to process and complete your payout by the 15th.\n \n
\n \n {formatPrice(taxFee)}\n
\n
\n Net Total To Receive:\n \n {formatPrice(availableWithdrawal - taxFee)}\n \n
\n \n \n {loadingWithdraw ? (\n \n
\n \n ) : (\n <>\n \n CONFIRM WITHDRAW\n \n setShowModal(false)}\n className=\"w-100 mt-4 bg-transparent border-0 btn-cancel\"\n >\n Cancel\n \n \n )}\n \n \n setShowModalTax(false)}\n show={showModalTax}\n size=\"xl\"\n centered\n >\n setShowModalTax(false)}\n type=\"button\"\n className=\"border-0 bg-transparent btn-close\"\n >\n \n \n \n
\n \n \n Review Tax\n \n
\n
\n \n

Review Tax below:

\n
\n Tax 1:\n $000.00\n
\n
\n Tax 2:\n $000.00\n
\n
\n Tax 3:\n $000.00\n
\n
\n \n setShowModalTax(false)}\n className=\"w-100 mt-lg-4 bg-transparent border-0 btn-cancel\"\n >\n Close\n \n \n \n \n \n
\n \n \n Almost there!\n \n
\n
\n \n

\n Looks like your payout settings isn't fully set up yet.
\n Let's finish it so we can get you paid \n \n 🚀\n \n

\n \n Click the link below to complete your tax forms and setup the payout\n wallet.
\n Please make sure to use the same email for AutoAffiliate{' '}\n {user.email} to\n setup your payout wallet.\n
\n
\n \n \n COMPLETE PAYOUT SETTINGS NOW\n \n \n \n setShowSuccefully(false)}\n >\n \n
\n \n \n Well done!\n \n
\n
\n \n

\n We are processing your tax documents, this can take some time...\n

\n \n Once they are confirmed you will be able to proceed with the payout\n request, meanwhile keep exploring our dashboard and tools to help\n you earn more!{' '}\n \n 🚀\n \n \n
\n \n \n BACK TO DASHBOARD\n \n \n \n setShowFinalized(false)}\n >\n \n
\n \n \n Withdraw Requested\n \n
\n
\n \n

\n We have added your withdraw request to our next payout. Our payouts\n are processed on the 15th of every month.\n

\n \n No further action is required from you at this time. Keep an eye for\n an email confirmation when your payout is fully processed on the\n 15th.\n \n 💰\n \n \n
\n \n setShowFinalized(false)}\n >\n RETURN TO DASHBOARD\n \n \n \n \n );\n};\n\nexport default MyEarnings;\n","import React, { useEffect, useState } from 'react';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, Welcome, Option, Board } from './styles';\nimport TransactionHistory from '~/components/TransactionHistory';\nimport MyEarnings from '~/components/MyEarnings';\n\nimport calendar from '~/assets/icons/calendar-wallet.svg';\nimport watch from '~/assets/icons/watch-wallet.svg';\nimport api from '~/services/api';\nimport { formatPrice } from '~/utils/format';\n\ninterface ICommission {\n id: string;\n earning: string;\n amount_paid: string;\n created_at: string;\n}\n\nconst Wallet: React.FC = () => {\n const { language } = useLanguage();\n const [availableNextWeek, setAvailableNextWeek] = useState(0);\n const [outstanding, setOutstanding] = useState(0);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n\n useEffect(() => {\n api\n .get('commissions', {\n params: {\n type: 'availableNextWeek',\n },\n })\n .then((response) => {\n const gains = response.data.reduce(\n (acumulador: number, currentValue: ICommission) => {\n return acumulador + parseFloat(currentValue.earning);\n },\n 0\n );\n\n setAvailableNextWeek(gains);\n });\n }, []);\n\n useEffect(() => {\n api\n .get('commissions', {\n params: {\n type: 'lock',\n },\n })\n .then((response) => {\n const gains = response.data.reduce(\n (acumulador: number, currentValue: ICommission) => {\n return acumulador + parseFloat(currentValue.earning);\n },\n 0\n );\n\n setOutstanding(gains);\n });\n }, []);\n\n return (\n \n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n {language.wallet.img_1}\n
\n

\n {language.wallet.p_1_1}\n\n {language.wallet.p_1_2}\n

\n \n {formatPrice(availableNextWeek)}\n

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

\n {language.wallet.p_2_1}\n\n {language.wallet.p_2_2}\n

\n \n {formatPrice(outstanding)}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default Wallet;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n @media screen and (min-width: 1200px) {\n zoom: 0.7;\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const Welcome = styled.div`\n h1 {\n color: #021027;\n }\n p {\n color: var(--technologicalGray);\n }\n .search {\n input {\n background-color: transparent;\n border: 1px solid var(--closedGray);\n border-radius: 20px;\n }\n button {\n right: 10px;\n top: 7px;\n background: transparent;\n border: none;\n }\n }\n`;\n\nexport const Options = styled.div`\n button,\n a {\n text-decoration: none;\n border: none;\n background: none;\n font-weight: 400;\n color: #8c8c8c;\n\n :hover {\n font-weight: 700;\n color: #021027;\n }\n }\n\n .border-profile {\n border-bottom: 1px solid var(--closedGray);\n }\n\n button.active,\n a.active {\n font-weight: 700;\n color: #021027;\n }\n\n @media (min-width: 992px) and (max-width: 1199px) {\n .box-menu {\n z-index: 1;\n width: 200px;\n right: 13px;\n top: 30px;\n background: var(--closedGray);\n border-radius: 12px 0px 12px 12px;\n padding: 10px;\n transition-duration: 0.3s;\n opacity: 0;\n visibility: hidden;\n\n .item-menu {\n border-bottom: 1px solid var(--grayImmensity);\n margin-bottom: 10px;\n padding-bottom: 10px;\n }\n }\n\n .box-menu.active {\n opacity: 1;\n visibility: visible;\n }\n }\n\n @media screen and (max-width: 767px) {\n .border-profile {\n border-bottom: none;\n }\n .options-button {\n transition-duration: 0.3s;\n background: transparent;\n border-radius: 15px;\n border: 1px solid #d0d0d0;\n\n p {\n color: var(--ultraWhite);\n -webkit-text-stroke: 0.5px var(--ultraWhite);\n font-weight: 700 !important;\n }\n\n svg {\n transition-duration: 0.3s;\n color: var(--ultraWhite);\n }\n }\n\n .options {\n transition-duration: 0.3s;\n background: var(--coal);\n color: var(--technologicalGray);\n border-radius: 0 0 20px 20px;\n height: 0;\n overflow: hidden;\n padding-top: 0;\n padding-bottom: 0;\n\n .bg-btn {\n background-color: transparent !important;\n border: none;\n border-radius: 0 !important;\n width: 100%;\n\n + .bg-btn {\n border-top: solid 1px var(--closedGray);\n }\n }\n }\n\n .options-box.active {\n .options-button {\n border-radius: 20px 20px 0px 0px;\n\n svg {\n transform: rotate(180deg);\n }\n }\n\n .options {\n height: 250px;\n padding: 0;\n overflow: none;\n\n ::-webkit-scrollbar {\n background-color: var(--coal);\n width: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--asphaltGray);\n }\n }\n }\n }\n\n @media (min-width: 0px) and (max-width: 767px) {\n .box-menu {\n z-index: 1;\n width: 200px;\n right: 13px;\n top: 30px;\n background: var(--closedGray);\n border-radius: 12px 0px 12px 12px;\n padding: 10px;\n transition-duration: 0.3s;\n opacity: 0;\n visibility: hidden;\n\n .item-menu {\n border-bottom: 1px solid var(--grayImmensity);\n margin-bottom: 10px;\n padding-bottom: 10px;\n }\n }\n\n .box-menu.active {\n opacity: 1;\n visibility: visible;\n }\n }\n`;\n","import styled from 'styled-components';\n\ninterface IAvatarProps {\n src: string;\n}\n\nexport const Container = styled.div`\n h3 {\n color: #021027;\n }\n\n input {\n color: #242424 !important;\n }\n\n input#phone {\n color: #8c8c8c !important;\n }\n\n div .input-signIn {\n height: 58px !important;\n }\n\n div .button-show {\n top: -16px;\n border-left: solid 1.5px #dedede;\n color: #8c8c8c;\n }\n\n .w-75-profile {\n input {\n width: 75%;\n }\n }\n .border-color {\n border: solid 1.5px #dedede;\n border-radius: 15px;\n }\n\n .border-red {\n border-color: #dc3545 !important;\n }\n .bg-gray {\n background: var(--coal);\n padding: 32px;\n border-radius: 20px;\n }\n\n .border-custom {\n border-width: 0;\n border-bottom-width: 1px;\n border-style: solid;\n border-color: #d0d0d0;\n }\n\n .profile-photo-icon {\n right: 0px;\n bottom: 0px;\n cursor: pointer;\n }\n\n label {\n color: #8c8c8c;\n }\n\n .founder-icon {\n width: 100px;\n height: 100px;\n }\n\n .profile-button {\n border: none;\n background: #116bff;\n border-radius: 15px;\n font-weight: 700;\n font-size: 16px;\n color: #f5f5f5;\n\n :hover {\n opacity: 0.8;\n transition: 0.3s;\n }\n }\n\n .py-adress {\n > div {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n }\n\n .profile-photo {\n width: 100px;\n cursor: pointer;\n height: 100px;\n padding: 3px;\n background-image: linear-gradient(0deg, var(--coal), var(--coal)),\n linear-gradient(180deg, var(--blizzardOpacity), var(--blizzardOpacity));\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 50%;\n }\n\n .contact-info {\n input {\n width: 100%;\n }\n }\n\n .button-color {\n font-weight: 500;\n font-size: 18px;\n line-height: normal;\n color: #116bff;\n border-bottom: 1px solid #116bff !important;\n transition-duration: 0.3s;\n :hover {\n opacity: 0.8;\n }\n }\n\n .checkbox-width {\n width: 46px;\n }\n\n .checkbox {\n label {\n font-weight: 400;\n font-size: 16px;\n line-height: 19px;\n color: #6f6e6e;\n }\n }\n\n input[type='checkbox'] {\n height: 20px;\n }\n\n .checkbox,\n .checkbox-active {\n span {\n font-weight: 400;\n font-size: 16px;\n line-height: 19px;\n color: #6f6e6e;\n }\n svg {\n width: 20px;\n height: 20px;\n }\n }\n .checkbox {\n label > div {\n border: none;\n background: #d0d0d0;\n border-radius: 6px;\n width: 26px;\n height: 26px;\n }\n }\n\n .checkbox-active {\n label > div {\n border: none;\n background: #116bff;\n border-radius: 6px;\n width: 26px;\n height: 26px;\n svg {\n color: #f5f5f5 !important;\n }\n }\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 15px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 1199px) {\n .border-custom {\n border-bottom-width: 0;\n }\n }\n\n @media screen and (max-width: 991px) {\n .bg-gray {\n padding: 20px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .max-width {\n width: 172px;\n }\n }\n`;\n\nexport const Avatar = styled.div`\n margin: 0 auto;\n width: 91px;\n height: 91px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px var(--blizzardOpacity);\n box-sizing: border-box;\n background-color: #303030;\n`;\n\nexport const Loading = styled.div`\n //margin-top: 0px !important;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 56px;\n border-radius: 15px;\n background-color: #116bff;\n width: 100% !important;\n border: none !important;\n cursor: not-allowed !important;\n .spinner {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: radial-gradient(farthest-side, #fff 94%, #0000) top/9px 9px\n no-repeat,\n conic-gradient(#0000 30%, #fff);\n -webkit-mask: radial-gradient(\n farthest-side,\n #0000 calc(100% - 9px),\n #000 0\n );\n animation: spinner-c7wet2 1s infinite linear;\n }\n\n @keyframes spinner-c7wet2 {\n 100% {\n transform: rotate(1turn);\n }\n }\n`;\n","import styled from 'styled-components';\n\ninterface ICheckboxInput {\n selected?: boolean;\n}\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const CheckboxInput = styled.label`\n display: flex;\n align-items: center;\n\n span {\n color: #202020;\n font-weight: 500;\n }\n\n > div {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 24px;\n min-height: 24px;\n border-radius: 4px;\n margin-right: 8px;\n transition-duration: 0.3s;\n background: ${(props) => (props.selected ? '#FF6900' : '#fff')};\n border: 1px solid #ff6900;\n }\n\n .inputData {\n display: none;\n }\n\n + label {\n margin-left: 20px;\n }\n`;\n\nexport const Error = styled.span`\n font-size: 11px !important;\n`;\n","/* eslint-disable react/no-danger */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { HiCheck } from 'react-icons/hi';\n\nimport { Container, CheckboxInput, Error } from './styles';\n\nexport interface IOption {\n value: string | number;\n label: string;\n selected?: boolean;\n labelHtml?: boolean;\n}\n\ninterface IInputCheckbox {\n type: 'checkbox' | 'radio';\n name: string;\n options: IOption[];\n className?: string;\n onChange?(options: IOption[]): void;\n error?: string;\n}\n\nconst InputCheckbox: React.FC = ({\n type,\n name,\n options,\n className,\n onChange,\n error,\n}) => {\n const [data, setData] = useState([]);\n\n useEffect(() => {\n setData(options);\n }, [options]);\n\n const handleChange = useCallback(\n (option) => {\n let newData = data.slice();\n const dataIndex = newData.findIndex(\n (optionData) => optionData === option\n );\n if (dataIndex >= 0) {\n if (type === 'radio') {\n newData = newData.map((optionData) => ({\n ...optionData,\n selected: false,\n }));\n }\n newData[dataIndex].selected = !newData[dataIndex].selected;\n setData(newData);\n }\n if (onChange) {\n onChange(newData);\n }\n },\n [data, onChange, type]\n );\n\n return (\n <>\n \n {options.map((option, index) => (\n \n
\n {option.selected && (\n \n )}\n
\n handleChange(option)}\n className=\"inputData\"\n />\n {option.labelHtml ? (\n \n ) : (\n {option.label}\n )}\n \n ))}\n
\n {error && {error}}\n \n );\n};\n\nexport default InputCheckbox;\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Form } from '@unform/web';\nimport { FormHandles } from '@unform/core';\nimport * as Yup from 'yup';\n\nimport { AxiosResponse } from 'axios';\nimport { useAuth, User } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Container, Avatar, Loading } from './styles';\nimport Input from '~/components/Input';\nimport founderIcon from '~/assets/icons/founder-icon.svg';\nimport profilePhoto from '~/assets/defaults/photo-profile.png';\nimport profilePhotoAdd from '~/assets/icons/profile-photo.svg';\nimport swalError from '~/utils/swalError';\nimport InputCheckbox from '~/components/InputCheckbox';\nimport swalSuccess from '~/utils/swalSuccess';\n\ninterface IMyProfileProps {\n active: boolean;\n}\n\ninterface IAddress {\n id?: string;\n user_id?: string;\n zip_code?: string;\n city: string;\n complement: string;\n country: string;\n neighborhood?: string;\n number: string;\n state: string;\n street: string;\n zipCode?: string;\n}\n\ninterface IUser {\n first: string;\n last: string;\n email: string;\n username: string;\n phone: string;\n referral_code: string;\n email_notifications: boolean;\n sms_notifications: boolean;\n password?: string;\n confirm_password?: string;\n old_password?: string;\n address?: IAddress;\n}\n\nconst MyProfile: React.FC = ({ active }) => {\n const formRef = useRef(null);\n const { user, updateUser } = useAuth();\n const { language } = useLanguage();\n const [avatarData, setAvatarData] = useState(null);\n const [avatar, setAvatar] = useState(user.avatar.avatar_url || profilePhoto);\n const [userData, setUserData] = useState({} as IUser);\n const [changePassword, setChangePassword] = useState(false);\n const [emailNotification, setEmailNotification] = useState(\n user.email_notifications\n );\n const [smsNotification, setSmsNotification] = useState(\n user.sms_notifications\n );\n const [loading, setLoading] = useState(true);\n const [loadingUpdate, setLoadingUpdate] = useState(false);\n const [addressId, setAddressId] = useState('');\n const [zipCodeData, setZipCode] = useState('');\n const [countryData, setCountry] = useState('');\n const [streetData, setStreet] = useState('');\n const [numberData, setNumber] = useState('');\n const [neighborhoodData, setNeighborhood] = useState(\n undefined\n );\n const [stateData, setState] = useState('');\n const [cityData, setCity] = useState('');\n const [complementData, setComplement] = useState('');\n const [partName, setPartName] = useState('');\n const fullName = user?.referrer?.affiliate?.user?.name;\n\n useEffect(() => {\n if (fullName) {\n const names = fullName.split(' ');\n const firstName = names[0];\n const lastNameInitial =\n names.length > 1 ? `${names[names.length - 1].charAt(0)}.` : '';\n\n const abbreviatedName = `${firstName} ${lastNameInitial}`;\n setPartName(abbreviatedName);\n }\n }, [fullName]);\n\n useEffect(() => {\n const nameParts = user.name.split(' ');\n const data = {\n first: nameParts[0] === 'Pending' ? '' : nameParts[0],\n last:\n nameParts[nameParts.length - 1] === 'Pending'\n ? ''\n : nameParts[nameParts.length - 1],\n email: user.email,\n username: user.username,\n phone: user.phone,\n referral_code: user.referral_code,\n email_notifications: user.email_notifications,\n sms_notifications: user.sms_notifications,\n address: user.address,\n };\n\n if (user.address) {\n setAddressId(user.address.id);\n setZipCode(user.address.zip_code);\n setCountry(user.address.country);\n setStreet(user.address.street);\n setNumber(user.address.number);\n setNeighborhood(user.address.neighborhood);\n setState(user.address.state);\n setCity(user.address.city);\n setComplement(user.address.complement);\n }\n setUserData((data as unknown) as IUser);\n setLoading(false);\n }, [user]);\n\n const handleChange = useCallback((e) => {\n const file = e.target.files[0];\n setAvatarData(file);\n setAvatar(URL.createObjectURL(file));\n }, []);\n\n const handleClickChangePassword = useCallback(() => {\n setChangePassword((state) => !state);\n }, []);\n\n const handleChangeZipCode = useCallback((e) => {\n setZipCode(e.target.value);\n }, []);\n\n const handleChangeCountry = useCallback((e) => {\n setCountry(e.target.value);\n }, []);\n\n const handleChangeStreet = useCallback((e) => {\n setStreet(e.target.value);\n }, []);\n\n const handleChangeNumber = useCallback((e) => {\n setNumber(e.target.value);\n }, []);\n\n const handleChangeNeighborhood = useCallback((e) => {\n setNeighborhood(e.target.value);\n }, []);\n\n const handleChangeState = useCallback((e) => {\n setState(e.target.value);\n }, []);\n\n const handleChangeCity = useCallback((e) => {\n setCity(e.target.value);\n }, []);\n\n const handleChangeComplement = useCallback((e) => {\n setComplement(e.target.value);\n }, []);\n\n const handleSubmit = useCallback(\n async (data: IUser) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n first: Yup.string().required('First name is required'),\n last: Yup.string().required('Last name is required'),\n email: Yup.string().required(language.my_profile.erro_2),\n username: Yup.string(),\n phone: Yup.string().required(language.my_profile.erro_4),\n referral_code: Yup.string().required(language.my_profile.erro_5),\n email_notifications: Yup.boolean(),\n sms_notifications: Yup.boolean(),\n password: Yup.string(),\n confirm_password: Yup.string().when('password', {\n is: (password: string) => password && password.length > 0,\n then: Yup.string().oneOf(\n [Yup.ref('password'), undefined],\n language.my_profile.erro_7\n ),\n }),\n old_password: Yup.string().when('password', {\n is: (password: string) => password && password.length > 0,\n then: Yup.string().required(language.my_profile.erro_8),\n }),\n zipCode: Yup.string().when('$dataZipCode', {\n is: (dataZipCode: boolean) => !dataZipCode,\n then: Yup.string().required('zip code is required'),\n otherwise: Yup.string(),\n }),\n\n number: Yup.string().when('$dataNumber', {\n is: (dataNumber: boolean) => !dataNumber,\n then: Yup.string().required('number is required'),\n otherwise: Yup.string(),\n }),\n\n neighborhood: Yup.string().when('$dataNeighborhood', {\n is: (dataNeighborhood: boolean) => !dataNeighborhood,\n then: Yup.string(),\n otherwise: Yup.string(),\n }),\n\n city: Yup.string().when('$dataCity', {\n is: (dataCity: boolean) => !dataCity,\n then: Yup.string().required('city is required'),\n otherwise: Yup.string(),\n }),\n\n state: Yup.string().when('$dataState', {\n is: (dataState: boolean) => !dataState,\n then: Yup.string().required('state is required'),\n otherwise: Yup.string(),\n }),\n\n country: Yup.string().when('$dataCountry', {\n is: (dataCountry: boolean) => !dataCountry,\n then: Yup.string().required('country is required'),\n otherwise: Yup.string(),\n }),\n\n street: Yup.string().when('$dataStreet', {\n is: (dataStreet: boolean) => !dataStreet,\n then: Yup.string().required('street is required'),\n otherwise: Yup.string(),\n }),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n setLoadingUpdate(true);\n\n let avatar_id: string;\n let avatar_url: string;\n if (avatarData) {\n const avatarFormData = new FormData();\n avatarFormData.append('avatar', avatarData as File);\n const responseAvatar = await api.post('avatars', avatarFormData);\n\n if (responseAvatar.data) {\n avatar_url = responseAvatar.data.avatar_url;\n avatar_id = responseAvatar.data.id;\n await api.patch(`users/profile/avatar`, {\n avatar_id,\n });\n } else {\n avatar_id = user.avatar.id;\n avatar_url = avatar;\n }\n } else {\n avatar_id = user.avatar.id;\n avatar_url = avatar;\n }\n\n if (zipCodeData) {\n const formDataAddress = {\n user_id: user.id,\n zip_code: zipCodeData,\n number: numberData,\n neighborhood: neighborhoodData,\n city: cityData,\n state: stateData,\n country: countryData,\n street: streetData,\n complement: complementData,\n };\n\n if (user.address) {\n await api.put(`adresses/users/${user.address.id}`, formDataAddress);\n } else {\n await api.post('adresses/users', formDataAddress);\n }\n }\n\n const {\n first,\n last,\n email,\n username,\n phone,\n referral_code,\n address,\n old_password,\n password,\n confirm_password,\n } = data;\n\n const formData = {\n avatar_id,\n customer_id: user.customer_id,\n name: `${first} ${last}`,\n email,\n username,\n phone,\n referral_code,\n address,\n email_notifications: emailNotification,\n sms_notifications: smsNotification,\n };\n\n if (\n old_password &&\n password &&\n confirm_password &&\n password === confirm_password\n ) {\n Object.assign(formData, { old_password, password });\n }\n\n const response = await api.put('users/profile', formData);\n if (response.data) {\n let addressData: IAddress;\n if (zipCodeData) {\n const formAddressData = {\n user_id: response.data.id,\n zip_code: zipCodeData,\n country: countryData,\n street: streetData,\n number: numberData,\n neighborhood: neighborhoodData,\n city: cityData,\n complement: complementData,\n state: stateData,\n };\n\n let responseAddress: AxiosResponse;\n\n if (addressId.length > 0) {\n responseAddress = await api.put(\n `adresses/users/${addressId}`,\n formAddressData\n );\n } else {\n responseAddress = await api.post(\n 'adresses/users',\n formAddressData\n );\n }\n\n addressData = {\n id: responseAddress.data.id,\n user_id: response.data.id,\n zip_code: zipCodeData,\n country: countryData,\n street: streetData,\n number: numberData,\n neighborhood: neighborhoodData,\n city: cityData,\n complement: complementData,\n state: stateData,\n };\n }\n\n swalSuccess({\n title: 'Success',\n message: 'Your profile was updated',\n textButton: 'Ok',\n }).then(() => {\n const profileData = {\n id: response.data.id,\n avatar_id,\n temp_pass: response.data.temp_pass,\n customer_id: response.data.customer_id,\n name: response.data.name,\n email: response.data.email,\n username: response.data.username,\n phone: response.data.phone,\n referral_code: response.data.referral_code.toLowerCase(),\n email_notifications: response.data.email_notifications,\n sms_notifications: response.data.sms_notifications,\n created_at: user.created_at,\n avatar: {\n id: avatar_id,\n avatar_url,\n },\n address: addressData,\n affiliate: user.affiliate,\n termUser: user.termUser,\n referrer: user.referrer,\n };\n\n updateUser(profileData as User);\n });\n }\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n setLoading(false);\n } else {\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n setLoading(false);\n setLoadingUpdate(false);\n }\n } finally {\n setLoading(false);\n setLoadingUpdate(false);\n }\n },\n [\n language.my_profile.erro_2,\n language.my_profile.erro_4,\n language.my_profile.erro_5,\n language.my_profile.erro_7,\n language.my_profile.erro_8,\n avatarData,\n zipCodeData,\n user.customer_id,\n user.avatar.id,\n user.id,\n user.address,\n user.created_at,\n user.affiliate,\n user.termUser,\n user.referrer,\n emailNotification,\n smsNotification,\n avatar,\n numberData,\n neighborhoodData,\n cityData,\n stateData,\n countryData,\n streetData,\n complementData,\n addressId,\n updateUser,\n ]\n );\n\n return (\n <>\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n Your Referrer\n \n

{partName}

\n\n \n Contact Details\n \n
\n
\n
\n
\n \n Username\n \n \n
\n
\n \n {language.my_profile.label_3}\n \n 6 ? 'pe-none' : ''\n }`}\n />\n
\n
\n \n {language.my_profile.label_4}\n \n \n
\n
\n {user.affiliate.type === 'Founder' && (\n \n )}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n First Name\n \n \n
\n
\n \n Last Name\n \n \n
\n
\n \n Email\n \n \n
\n
\n \n {language.my_profile.label_11}\n \n \n
\n
\n \n {language.my_profile.label_10}\n \n \n
\n
\n \n {language.my_profile.label_14}\n \n \n
\n
\n \n {language.my_profile.label_13}\n \n \n
\n\n
\n \n {language.my_profile.label_8}\n \n \n
\n
\n \n {language.my_profile.label_9}\n \n \n
\n\n
\n \n {language.my_profile.label_12}\n \n \n
\n
\n \n {language.my_profile.label_15}\n \n \n
\n
\n

\n {language.my_profile.h3_3}\n

\n
\n {changePassword ? (\n <>\n
\n

\n Fill in all the fields below to change your password\n

\n
\n
\n \n {language.my_profile.label_16}\n \n
\n \n
\n
\n\n
\n \n {language.my_profile.label_17}\n \n \n
\n
\n \n {language.my_profile.label_18}\n \n \n
\n \n ) : (\n
\n \n {language.my_profile.button_1}\n \n
\n )}\n\n
\n \n Notifications\n \n
\n \n \n setEmailNotification(!emailNotification)\n }\n options={[\n {\n label: 'Email notifications',\n value: 'Email notifications',\n labelHtml: true,\n selected: emailNotification,\n },\n ]}\n />\n
\n \n setSmsNotification(!smsNotification)}\n options={[\n {\n label: 'SMS notifications',\n value: 'SMS notifications',\n labelHtml: true,\n selected: smsNotification,\n },\n ]}\n />\n
\n
\n
\n
\n {loadingUpdate ? (\n \n
\n \n ) : (\n \n {language.my_profile.button_2}\n \n )}\n
\n
\n
\n
\n \n
\n \n \n );\n};\n\nexport default MyProfile;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n p,\n td,\n p > small {\n color: var(--grayImmensity);\n }\n\n small,\n .price {\n color: var(--graniteGray);\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n button,\n .button {\n cursor: pointer;\n }\n\n .graph {\n width: 11%;\n opacity: 0.1;\n }\n\n div {\n ::-webkit-scrollbar {\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--technologicalGrayOpacity);\n }\n }\n\n table {\n th,\n td {\n padding: 0 10px;\n }\n\n th {\n font-size: 0.9rem;\n }\n\n .cardId {\n width: 1%;\n }\n\n .cardNumber {\n width: 16%;\n }\n\n .cardExpirationDate {\n width: 15%;\n }\n\n .cardName {\n width: 15%;\n }\n\n .cardBillingAddress {\n width: 20%;\n }\n\n .cardPrimary {\n width: 13%;\n }\n\n .cardAction {\n width: 1%;\n }\n }\n\n @media screen and (max-width: 767px) {\n table {\n min-width: 800px;\n }\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Form } from '@unform/web';\nimport { Modal } from 'react-bootstrap';\nimport { FormHandles } from '@unform/core';\nimport * as Yup from 'yup';\nimport Swal from 'sweetalert2';\n\nimport { useLanguage } from '~/hooks/Language';\nimport getValidationErros from '~/utils/getValidationsErrors';\nimport api from '~/services/api';\n\nimport { Container } from './styles';\nimport CreditCard from '~/components/CreditCard';\n\nimport visa from '~/assets/icons/cc-visa.svg';\nimport mastercard from '~/assets/icons/cc-mastercard.svg';\nimport discover from '~/assets/icons/cc-discover.svg';\nimport amex from '~/assets/icons/cc-amex.svg';\n\ninterface ISubscriptionsCardsProps {\n active: boolean;\n}\n\ninterface IApiCreditCard {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n address: string;\n primary_card: boolean;\n}\n\ninterface IReponseCreditCard {\n id: string;\n name: string;\n number: string;\n expiration: string;\n flag: string;\n primary_card: boolean;\n}\n\ninterface ICreditCard {\n id?: string;\n name: string;\n number: string;\n expiration: string;\n cvc: string;\n flag: string;\n primary_card?: boolean;\n}\n\nconst SubscriptionsCards: React.FC = ({ active }) => {\n const formCreditCardRef = useRef(null);\n const { language } = useLanguage();\n const [show, setShow] = useState(false);\n const [showDelete, setShowDelete] = useState(false);\n const [creditCards, setCreditCards] = useState([]);\n const [creditCardSelected, setCreditCardSelected] = useState<\n IReponseCreditCard\n >({} as IReponseCreditCard);\n\n useEffect(() => {\n api.get('payments/customers/credit-cards').then((response) => {\n const data = response.data.map((card: IApiCreditCard) => ({\n id: card.id,\n name: card.name,\n number: `XXXX-${card.number}`,\n expiration: card.expirity,\n flag: card.brand,\n primary_card: card.primary_card,\n }));\n setCreditCards(data);\n });\n }, []);\n\n const handleClose = useCallback(() => {\n setShow(false);\n setShowDelete(false);\n }, []);\n\n const handleShow = useCallback(() => setShow(true), []);\n\n const handleShowDelete = useCallback((card: IReponseCreditCard) => {\n setCreditCardSelected(card);\n setShowDelete(true);\n }, []);\n\n const handleSubmitCreditCard = useCallback(\n async (data: ICreditCard) => {\n try {\n formCreditCardRef.current?.setErrors({});\n const schema = Yup.object().shape({\n name: Yup.string().required('Name on card is a required'),\n number: Yup.string().required('Card number is a required'),\n expiration: Yup.string().required('Expiration date is a required'),\n cvc: Yup.string().required('CVC is a required'),\n flag: Yup.string().required('Flag is a required'),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n const { name, number, expiration, cvc, flag } = data;\n const [exp_month, exp_year] = expiration.split('/');\n\n const formData = {\n name,\n number: number.replace(/ /g, ''),\n exp_month,\n exp_year,\n cvc,\n primary_card: creditCards.length === 0,\n };\n\n const response = await api.post(\n 'payments/customers/credit-cards',\n formData\n );\n\n if (response.data) {\n const numberMask = `XXXX-${number.substr(-4)}`;\n const creditCardForm: IReponseCreditCard = {\n id: response.data.id,\n name,\n number: numberMask,\n expiration,\n flag,\n primary_card: creditCards.length === 0,\n };\n setCreditCards((state) => [...state, creditCardForm]);\n handleClose();\n }\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formCreditCardRef.current?.setErrors(errors);\n } else {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n }\n },\n [creditCards.length, handleClose, language.error_component.error_message]\n );\n\n const handleDeleteCreditCard = useCallback(async () => {\n try {\n if (creditCardSelected.primary_card && creditCards.length > 1) {\n const newCreditCardsList = creditCards.slice();\n if (creditCardSelected === creditCards[0]) {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[1].id}`\n );\n newCreditCardsList[1].primary_card = true;\n } else {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[0].id}`\n );\n newCreditCardsList[0].primary_card = true;\n }\n setCreditCards(newCreditCardsList);\n }\n await api.delete(\n `payments/customers/credit-cards/${creditCardSelected.id}`\n );\n const cards = creditCards.filter(\n (card) => card.id !== creditCardSelected.id\n );\n setCreditCards(cards);\n Swal.fire('Okay!', 'Successfully deleted.', 'success').then(() => {\n handleClose();\n });\n } catch (error) {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n }, [\n creditCardSelected,\n creditCards,\n handleClose,\n language.error_component.error_message,\n ]);\n\n const handleChange = useCallback(\n async (index) => {\n const newCreditCardsList = creditCards.slice();\n newCreditCardsList.forEach((card) => {\n // eslint-disable-next-line no-param-reassign\n card.primary_card = false;\n });\n newCreditCardsList[index].primary_card = true;\n\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[index].id}`\n );\n\n setCreditCards(newCreditCardsList);\n },\n [creditCards]\n );\n\n return (\n \n
\n
\n
\n
\n
\n

\n {language.subscriptions_cards.h2}\n

\n
\n \"Visa\"\n \"Mastercard\"\n \"Discover\"\n \"Amex\"\n
\n
\n \n {language.subscriptions_cards.button_1}\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n {creditCards.map((card, index) => (\n \n \n \n \n \n \n \n \n \n ))}\n
#\n {language.subscriptions_cards.th_1}\n \n {language.subscriptions_cards.th_2}\n \n {language.subscriptions_cards.th_3}\n \n {language.subscriptions_cards.th_4}\n \n {language.subscriptions_cards.th_5}\n \n {language.subscriptions_cards.th_6}\n
{index + 1}\n {card.flag}:
\n {card.number}\n
{card.expiration}{card.name}\n 34 Ave of the Arts Costa Mesa, CA 92666 United States\n \n handleChange(index)}\n checked={card.primary_card}\n />\n \n handleShowDelete(card)}\n >\n {language.subscriptions_cards.button_2}\n \n
\n
\n
\n
\n
\n \n \n {language.subscriptions_cards.h4_1}\n \n \n
\n \n console.log(creditCard)\n }\n />\n
\n \n {language.subscriptions_cards.button_3}\n \n \n
\n \n
\n \n
\n\n \n \n {language.subscriptions_cards.h4_2}\n \n \n

\n {language.subscriptions_cards.p}\n

\n
\n \n {language.subscriptions_cards.button_5}\n \n \n {language.subscriptions_cards.button_6}\n \n
\n
\n \n \n
\n );\n};\n\nexport default SubscriptionsCards;\n","import { darken, lighten } from 'polished';\nimport styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Container = styled.div`\n p,\n td,\n p > small {\n color: var(--grayImmensity);\n }\n\n small,\n .price {\n color: var(--graniteGray);\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n .text-no-register {\n color: var(--ultraWhite);\n font-weight: 600;\n }\n\n .button-cancel {\n background-color: #d0d0d0;\n border-radius: 12px;\n border: none;\n transition-duration: 0.3s;\n color: #242526;\n\n :hover {\n background-color: ${darken(0.1, '#D0D0D0')};\n }\n }\n\n .button-change-payment {\n background-color: #116bff;\n border-radius: 12px;\n border: none;\n transition-duration: 0.3s;\n color: #fff;\n\n :hover {\n background-color: ${darken(0.1, '#116BFF')};\n }\n }\n\n button,\n .button {\n cursor: pointer;\n }\n\n .graph {\n width: 11%;\n opacity: 0.1;\n }\n\n div {\n ::-webkit-scrollbar {\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--technologicalGrayOpacity);\n }\n }\n\n table {\n th,\n td {\n padding: 0 10px;\n }\n\n th {\n font-size: 0.9rem;\n }\n\n .cardId {\n width: 1%;\n }\n\n .cardNumber {\n width: 16%;\n }\n\n .cardExpirationDate {\n width: 15%;\n }\n\n .cardName {\n width: 15%;\n }\n\n .cardBillingAddress {\n width: 20%;\n }\n\n .cardPrimary {\n width: 13%;\n }\n\n .cardAction {\n width: 1%;\n }\n }\n\n .radius-20 {\n border-radius: 20px;\n }\n\n .img-width {\n width: 100%;\n //height: 140px;\n }\n\n .positions {\n top: 19px;\n left: 15px;\n h2 {\n font-weight: 600;\n font-size: 36px;\n line-height: 46px;\n color: #f5f5f5;\n margin-bottom: 0px;\n }\n p {\n font-weight: 500;\n font-size: 18px;\n line-height: 22px;\n color: #f5f5f5;\n }\n }\n\n @media screen and (max-width: 767px) {\n table {\n min-width: 800px;\n }\n\n .img-width {\n width: 400px;\n max-width: 100%;\n }\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n .modal-content {\n background: #ffffff;\n box-shadow: 19px 49px 112px rgba(192, 192, 192, 0.4),\n inset 1px 1px 2px rgba(255, 255, 255, 0.3),\n inset -1px -1px 2px rgba(138, 138, 138, 0.5);\n border-radius: 30px;\n border: 0 !important;\n\n .terms {\n h4,\n p {\n color: #8c8c8c;\n font-family: 'Inter';\n font-size: 10px;\n font-weight: 200;\n line-height: 14px;\n b {\n font-weight: 500;\n }\n }\n }\n }\n`;\n","import Swal from 'sweetalert2';\n\nconst Toast = Swal.mixin({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: 3000,\n timerProgressBar: true,\n didOpen: (toast) => {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n});\n\nexport default Toast;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { addMonths, format, parseISO } from 'date-fns';\nimport { IoMdClose } from 'react-icons/io';\n\nimport Swal from 'sweetalert2';\nimport { formatPrice } from '~/utils/format';\nimport api from '~/services/api';\n\nimport { Container, Modal } from './styles';\n\nimport noRegister from '~/assets/icons/no-register-icon.svg';\n\nimport safe from '~/assets/defaults/safe_secure.svg';\nimport money from '~/assets/defaults/money_back.svg';\nimport privacy from '~/assets/defaults/privacy_proteced.svg';\nimport CreditCard from '~/components/CreditCard';\nimport Toast from '~/utils/toast';\n\ninterface ISubscriptionsCardsProps {\n active: boolean;\n}\n\ninterface IOrderResponse {\n id: string;\n created_at: string;\n product: {\n name: string;\n thumbnail: {\n title: string;\n thumbnail_url: string;\n };\n };\n price: {\n period: number;\n value: number;\n };\n orders: IOrderResponse[];\n}\n\ninterface IOrder {\n id: string;\n thumbnail: string;\n title: string;\n product: string;\n next_billing_date: string;\n next_payment: string;\n expiration_date: string;\n subscription_price: string;\n started: string;\n}\n\nconst Subscriptions: React.FC = ({ active }) => {\n const [orders, setOrders] = useState([]);\n const [show, setShow] = useState(false);\n const [subscriptionSelected, setSubscriptionSelected] = useState(\n {} as IOrder\n );\n\n useEffect(() => {\n api.get('orders/subscriptions').then((response) => {\n const data: IOrder[] = response.data.map((order) => ({\n id: order.id,\n thumbnail: order.product.thumbnail.thumbnail_url,\n title: order.product.thumbnail.title,\n product: order.product.name,\n next_billing_date: format(\n addMonths(\n parseISO(order.created_at),\n order.price.period + order.orders.length\n ),\n 'yyyy- MMM - dd'\n ),\n next_payment: formatPrice(order.price.value),\n expiration_date: format(\n addMonths(\n parseISO(order.created_at),\n order.price.period + order.orders.length\n ),\n 'yyyy- MMM - dd'\n ),\n subscription_price: `${formatPrice(order.price.value)}/${\n order.price.period === 1 ? 'mo' : 'yr'\n }`,\n started: format(parseISO(order.created_at), 'MMMM d, yyyy'),\n }));\n setOrders(data);\n });\n }, []);\n\n const handleClickChangePaymentMethod = useCallback(async (order) => {\n setSubscriptionSelected(order);\n setShow(true);\n }, []);\n\n const handleClose = useCallback(async () => {\n setShow(false);\n setSubscriptionSelected({} as IOrder);\n }, []);\n\n const handleClickCancelSubscription = useCallback(async (order) => {\n Swal.fire({\n title: 'Cancel subscription?',\n text: `Would you like to cancel your ${order.product} subscription?`,\n icon: 'warning',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#d0d0d0',\n showCancelButton: true,\n cancelButtonText: 'No',\n cancelButtonColor: '#116bff',\n reverseButtons: true,\n background: '#fff',\n customClass: {\n popup: 'swal-cancel-subscription',\n },\n iconColor: '#116bff',\n }).then(async (e) => {\n if (e.isConfirmed) {\n await api.delete(`orders/subscriptions/${order.id}`);\n\n setOrders((oldState) => {\n return oldState.filter((orderData) => orderData.id !== order.id);\n });\n\n Toast.fire({\n icon: 'success',\n title: 'Subscription canceled!',\n customClass: {\n popup: 'swal-cancel-subscription',\n },\n });\n }\n });\n }, []);\n\n const handleChangeCreditCardSelected = useCallback(\n async (creditCard) => {\n console.log(creditCard);\n console.log(subscriptionSelected);\n await api.patch(`orders/subscriptions/${subscriptionSelected.id}`, {\n payment_id: creditCard.id,\n });\n handleClose();\n },\n [handleClose, subscriptionSelected]\n );\n\n return (\n \n
\n
\n
\n
\n {orders.length > 0 ? (\n <>\n {orders.map((order) => (\n
\n
\n
\n
\n
\n \n \n
\n

{order.title.split(' ')[0]}

\n

\n {order.title.slice(\n order.title.split(' ')[0].length\n )}\n

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

Product

\n

{order.product}

\n

Next billing date

\n

{order.next_billing_date}

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

Next payment

\n

{order.next_payment}

\n

Expiration date

\n

{order.expiration_date}

\n

Started {order.started}

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

{order.subscription_price}

\n
\n \n handleClickChangePaymentMethod(order)\n }\n >\n Change payment method\n \n
\n
\n
\n
\n
\n
\n ))}\n \n ) : (\n
\n \n

\n You do not currently have an active paid subscription\n

\n
\n )}\n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n
\n \"GUARANTEED\n
\n
\n \"MONEY-BACK\n
\n
\n \"PRIVACY\n
\n
\n

\n Terms of Sale:\n

\n

\n Your purchase will appear on your bank statement under the\n name \"SmartTech Labs, Inc.\" The geographic location\n of your computer has been determined and recorded. All\n attempts at fraud will be prosecuted. Information submitted\n in conjunction with this order is handled within the\n constraints of our privacy policy. Your name, phone, and\n email address may be provided to 3rd parties completion of\n this purchase. You agree to receive marketing emails from\n our company. By purchasing you agree to allow us to send\n information to you via phone and SMS messaging. Message &\n Data rates may apply. Reply stop to be removed. We will\n instantly send your login information to our online training\n program once your purchase is completed. Please review our\n terms and conditions for the 30 day MBG refund policy on\n this purchase.\n

\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default Subscriptions;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\ninterface IBg {\n src: string;\n}\n\nexport const Container = styled.div`\n p {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 17px;\n color: #8c8c8c;\n }\n\n h3 {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #626262;\n }\n\n hr {\n width: 90%;\n border-top: 1px solid #e1e0e0;\n }\n\n .bg-check-border {\n padding: 2px;\n background: #fff;\n border: 2px solid #f2f2f2;\n border-radius: 18px;\n img {\n padding: 9px;\n border-radius: 14px;\n width: 48px;\n height: 48px;\n background: #116bff;\n box-shadow: -1px 4px 10px 0px rgba(17, 107, 255, 0.5);\n }\n }\n\n .completed {\n border-radius: 22px;\n border: 1px solid #e9e9e9;\n background: #fff;\n padding: 10px 15px;\n }\n\n .completed p {\n color: #232528;\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 500;\n }\n\n .completed span {\n color: #8a8a8a;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 300;\n line-height: 19.5px;\n }\n\n .positions {\n top: 19px;\n left: 15px;\n h2 {\n font-weight: 600;\n font-size: 35px;\n line-height: 46px;\n color: #f5f5f5;\n margin-bottom: 0px;\n }\n p {\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n color: #f5f5f5;\n }\n }\n\n .sign {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #ffffff;\n background: #116bff;\n border-radius: 10px;\n padding: 9px 20px;\n width: 180px;\n transition: 0.3s;\n text-decoration: none;\n :hover {\n opacity: 0.8;\n }\n }\n\n .add {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #242526;\n background: #d0d0d0;\n border-radius: 10px;\n padding: 9px 20px;\n width: 180px;\n transition: 0.3s;\n :hover {\n opacity: 0.8;\n }\n }\n\n .h-40vh {\n height: 40vh;\n }\n\n .text-no-certificates {\n color: #606060;\n font-weight: 600;\n }\n\n small,\n .price {\n color: var(--graniteGray);\n }\n\n .radius-20 {\n border-radius: 20px;\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n button {\n background-color: transparent;\n border: none;\n color: var(--ultraWhite);\n }\n\n .filters {\n background: var(--midnight);\n z-index: 99;\n border-radius: 12px;\n right: 0;\n bottom: -130px;\n\n hr {\n width: 75%;\n margin: 0 auto;\n background-color: var(--mysteriousGrey);\n }\n }\n\n .button-cancel {\n background-color: transparent;\n color: var(--ultraWhite);\n text-decoration: none !important;\n border: 1px solid var(--greyMineral);\n border-radius: 12px;\n :hover {\n background-color: var(--greyMineral);\n }\n }\n\n button,\n .button {\n cursor: pointer;\n }\n\n .graph {\n width: 11%;\n opacity: 0.1;\n }\n\n div {\n ::-webkit-scrollbar {\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--technologicalGrayOpacity);\n }\n }\n\n .img-width {\n width: 100%;\n //height: 140px;\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 15px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n //display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (min-width: 768px) {\n .skeleton.img-width {\n width: 186px;\n height: 170px;\n }\n }\n\n @media screen and (max-width: 767px) {\n .img-width {\n width: 400px;\n max-width: 100%;\n }\n\n .skeleton.img-width {\n max-height: 260px;\n height: 49vw;\n }\n\n .add,\n .sign {\n font-size: 16px;\n width: 100%;\n padding: 15px 20px;\n border-radius: 15px;\n }\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n label span {\n font-weight: 400;\n font-size: 20px;\n\n color: #5d5b5b;\n }\n\n .modal-content {\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n\n .modal-title {\n font-weight: 600;\n font-size: 24px;\n color: #021027;\n }\n\n .modal-cache-title {\n color: #116bff;\n text-align: center;\n font-family: 'Quicksand';\n font-size: 35px;\n font-style: normal;\n font-weight: 700;\n line-height: 45px;\n }\n\n .cache-subtitle {\n color: #151517;\n text-align: center;\n font-family: 'Archivo';\n font-size: 21px;\n font-style: normal;\n font-weight: 400;\n line-height: 35px;\n }\n\n .cache-content {\n color: #585656;\n text-align: center;\n font-family: 'Archivo';\n font-size: 18px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n display: block;\n }\n\n .btn-clear-cache {\n border-radius: 18px;\n background: #116bff;\n width: 100%;\n height: 70px;\n padding: 18px 10px;\n flex-shrink: 0;\n color: #fff;\n text-align: center;\n font-family: 'Archivo';\n font-size: 22px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n letter-spacing: -1.2px;\n text-transform: uppercase;\n }\n\n .input {\n border: 1px solid #d0d0d0;\n border-radius: 20px;\n height: 72px !important;\n background: transparent;\n font-weight: 300;\n color: #151517;\n padding: 5px 20px;\n\n input::placeholder {\n color: #8c8c8c;\n font-weight: 300;\n font-size: 14px;\n }\n }\n\n .modal-close {\n color: #021027;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .color-span {\n color: #a6a2a2 !important;\n font-weight: 500 !important;\n }\n\n .btn-save {\n font-weight: 600;\n font-size: 22px;\n line-height: 27px;\n color: #ffffff;\n background: #116bff;\n border-radius: 20px;\n transition-duration: 0.3s;\n padding: 20px;\n width: 370px;\n :hover {\n opacity: 0.8;\n }\n }\n\n .btn-cancel {\n font-weight: 600;\n font-size: 22px;\n line-height: 27px;\n color: #dadada;\n background: #021027;\n border-radius: 20px;\n padding: 20px;\n width: 142px;\n }\n\n .create {\n padding: 20px 30px;\n }\n }\n\n .animation div:nth-child(1) {\n width: 110px !important;\n height: 110px !important;\n }\n\n @media screen and (min-width: 992px) {\n zoom: 0.7;\n .modal-xl {\n max-width: 874px;\n }\n\n .modal-cache-title {\n font-size: 44px;\n }\n\n .cache-subtitle {\n font-size: 28px;\n line-height: 45px;\n }\n\n .cache-content {\n font-size: 18px;\n }\n\n .btn-clear-cache {\n font-size: 30px;\n padding: 18px 28px;\n }\n\n .animation div:nth-child(1) {\n width: 203px !important;\n height: 203px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const BgCard = styled.div`\n background-image: url(${(props) => props.src});\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n border-radius: 38px 38px 0 0;\n\n @media screen and (min-width: 992px) {\n border-radius: 38px 0 0 38px;\n }\n`;\n\nexport const ModalCard = styled(ModalComponent)`\n background: rgba(0, 0, 0, 0.6) !important;\n backdrop-filter: blur(2.5px) !important;\n\n h2 {\n font-size: 80px;\n color: #fff;\n line-height: 70px;\n font-family: 'Bebas Neue';\n span {\n font-size: 55px;\n }\n }\n .modal-content {\n border: 0;\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n border-radius: 40px;\n }\n\n .close {\n position: absolute;\n right: 30px;\n top: 30px;\n z-index: 1;\n opacity: 1;\n svg {\n color: #fff;\n }\n }\n\n .logo {\n width: 44px;\n height: 40px;\n }\n\n .watch {\n opacity: 0;\n pointer-events: none;\n color: #fff;\n font-size: 27px;\n font-style: normal;\n font-weight: 600;\n line-height: 25px;\n max-width: 262px;\n }\n\n .bg-card {\n border-radius: 38px 0 0 38px;\n }\n\n .postease {\n width: 60px;\n height: 60px;\n }\n\n .left-ride {\n top: 40px;\n left: 40px;\n }\n\n .right-side {\n h2 {\n color: #021027;\n font-family: 'Archivo';\n font-size: 35px;\n font-weight: 600;\n line-height: 108%;\n margin-bottom: 22px;\n }\n p {\n color: #021027 !important;\n font-size: 18px;\n font-weight: 300;\n line-height: 25px;\n margin-bottom: 35px;\n span {\n font-weight: 500;\n }\n }\n a {\n text-decoration: none;\n }\n h3 {\n color: #116bff;\n font-family: 'Archivo';\n font-size: 28px;\n font-weight: 700;\n line-height: 25px;\n margin-bottom: 16px;\n }\n ul {\n margin-bottom: 35px;\n margin-left: 30px;\n }\n li {\n color: #021027;\n font-size: 16px;\n font-weight: 300;\n line-height: 25px;\n span {\n font-weight: 600;\n }\n b {\n color: #116bff;\n font-weight: 700;\n }\n }\n h4 {\n color: #116bff;\n\n text-align: center;\n font-family: 'Archivo';\n font-size: 30px;\n font-weight: 300;\n line-height: 25px;\n margin-bottom: 35px;\n b {\n font-weight: 700;\n }\n }\n .access {\n color: #000;\n font-family: 'Source Sans Pro';\n font-size: 30px;\n font-weight: 900;\n line-height: 24px;\n border: 0;\n border-radius: 16px;\n background: #ffb74a;\n padding: 20px;\n width: 100%;\n }\n }\n\n @media screen and (min-width: 992px) {\n zoom: 0.5;\n\n h2 {\n font-size: 140px;\n line-height: 125px;\n span {\n font-size: 95px;\n }\n }\n\n .postease {\n width: 80px;\n height: 80px;\n }\n .modal-xl {\n max-width: 1700px;\n }\n .watch {\n font-size: 36px;\n }\n .close svg {\n color: #151517;\n }\n .logo {\n width: 66px;\n height: 60px;\n }\n .right-side {\n h2 {\n font-size: 46px;\n }\n p {\n font-size: 20px;\n }\n li {\n font-size: 18px;\n }\n }\n }\n\n @media screen and (min-width: 1200px) {\n zoom: 0.6;\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.7;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1800px) {\n zoom: 0.9;\n }\n`;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\nimport React, {\n useEffect,\n useState,\n useCallback,\n Fragment,\n useRef,\n useMemo,\n} from 'react';\nimport { FormHandles } from '@unform/core';\nimport { Form } from '@unform/web';\nimport * as Yup from 'yup';\nimport Swal from 'sweetalert2';\nimport Cookies from 'js-cookie';\n\nimport Lottie from 'react-lottie';\nimport { parseISO } from 'date-fns';\nimport { IoMdClose, IoMdPlayCircle } from 'react-icons/io';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport getValidationErros from '~/utils/getValidationsErrors';\nimport { useAuth } from '~/hooks/Auth';\n\nimport { BgCard, Container, Modal, ModalCard } from './styles';\nimport Input from '~/components/Input';\nimport Payment from '~/components/Payment';\nimport check from '~/assets/icons/check-offers.svg';\nimport bgMasterclass from '~/assets/defaults/bg-masterclass.png';\nimport bgaa from '~/assets/defaults/bg-aa.png';\nimport logoaa from '~/assets/defaults/logoaa.png';\nimport bgVip from '~/assets/defaults/bg-vip.png';\nimport bgClub from '~/assets/defaults/bg-club.png';\nimport bgPostease from '~/assets/defaults/bg-postease.png';\nimport bgProfiti from '~/assets/defaults/bg-profiti.png';\nimport bgGpt from '~/assets/defaults/bg-chatgpt.png';\nimport bgPromptease from '~/assets/defaults/bg-promptease.png';\nimport bgPePro from '~/assets/defaults/bg-pe-pro.png';\nimport logoPostease from '~/assets/defaults/logo-postease.png';\nimport cleanCache from '~/assets/animations/clean-cache.json';\n\ninterface IOrdersProps {\n active: boolean;\n}\n\ninterface IPrice {\n value: string;\n type: 'lifetime' | 'subscription';\n period: number;\n location: string;\n file: {\n file_url: string;\n };\n interval: string;\n}\n\ninterface IOffer {\n id: string;\n title: string;\n by: string;\n link: string;\n old_link: string;\n commission: string;\n thumbnail: {\n thumbnail_url: string;\n title: string;\n };\n affiliateOffer?: {\n affiliate_id: string;\n url?: string;\n };\n type: 'sales' | 'affiliate';\n slug?: string;\n showPayment: boolean;\n prices: IPrice[];\n created_at: string;\n}\n\ninterface IProduct {\n id: string;\n name: string;\n slug: string;\n thumbnail: {\n thumbnail_url: string;\n title: string;\n };\n affiliatesProducts: {\n affiliate_id: string;\n }[];\n prices: IPrice[];\n created_at: string;\n}\n\ninterface IFormData {\n url: string;\n}\n\nconst MyOffers: React.FC = ({ active }) => {\n const { user, updateUser } = useAuth();\n const formRef = useRef(null);\n const [offers, setOffers] = useState([]);\n const [loading, setLoading] = useState(true);\n const { language } = useLanguage();\n const [linkError, setLinkError] = useState('');\n const [show, setShow] = useState(false);\n const [showError, setShowError] = useState(false);\n const [showCardProduct, setShowCardProduct] = useState(false);\n const [selectedProduct, setSelectedProduct] = useState('');\n const [offerLink, setOfferLink] = useState('');\n const [selIndex, setSelIndex] = useState(-1);\n const [offerSelected, setOfferSelected] = useState({} as IOffer);\n\n const cardOffers = useMemo(\n () => [\n {\n product: 'masterclass',\n background: bgMasterclass,\n title: '

The Ultimate Online Business Masterclass

',\n rightText:\n '

Escape the complexity of making money online with a simple, proven method.

Forget what you’ve heard! What if I told you that you could escape the overwhelming complexity and confusion of making money online, with a method so simple, you’ll kick yourself for not starting sooner?

Why Join This Masterclass?

  • Proven Success: Leverage 20 years of my experience in creating and scaling successful businesses.
  • Step-by-Step Training: Learn the exact steps to start generating income online, even if you have no prior experience.
  • Three Pillars of Traffic: Master cold outreach, paid ads, and social media marketing.
  • Power of AI: Discover how to use AI tools to automate lead generation and content creation.
  • Complete Sales System: Understand how to implement effective funnels, email campaigns, and AI-driven lead generation.

Special Offer & Bonus:

  • Only $97: Learn everything you need to succeed with minimal investment.
  • 30-Day Money-Back Guarantee: Try the masterclass risk-free!
  • 10+ Online business courses bonus - $1,997 Value
  • Lifetime access to the Masterclass - $397 Value
  • Success Mindset training - $197 Value
  • AI Connector Bot - $297 Value

This isn’t just another pitch. I’m sharing the simplest way to earn online that I’ve ever encountered. Learn how to start generating income quickly without the need for a traditional business setup.

READY TO TRANSFORM YOUR FINANCIAL FUTURE?

',\n },\n {\n product: 'affiliate',\n background: bgaa,\n title: '

Base Products Bundle + Affiliate Program

',\n rightText:\n '

Transform Your Financial Future with Our Affiliate Program

Are you ready to create multiple streams of income effortlessly? Imagine connecting others with valuable solutions and earning substantial commissions in return. That’s the power of our Affiliate Program.

Why Join the Affiliate Program?

  • Qualify Through Purchase: Gain access to our Affiliate Program by purchasing our base products bundle.
  • High Earnings Potential: Earn up to $1,000 per sale, plus recurring monthly commissions.
  • Proven System: Access a complete sales system with high-converting products, effective funnels, and pre-built email campaigns.
  • Simple and Scalable: No need to create your own products, handle customer service, or manage technical details.
  • Step-by-Step Training: Learn exactly how to build an audience, even if you’re starting from scratch.
  • Cutting-Edge Tools: Leverage AI bots for lead generation and marketing automation.

Special Offer:

  • 30-Day Money-Back Guarantee: Try the masterclass risk-free!
  • Ongoing Support: Receive continuous training and support from our team of affiliate marketing experts.

By purchasing our base products bundle, you unlock the door to our Affiliate Program, the simplest and most scalable way to make money online. Our system breaks down exactly how you can replicate our success.

Ready to transform your financial future?

',\n },\n {\n product: 'vip-upgrade',\n background: bgVip,\n title: '

VIP AFFILIATE UPGRADE

',\n rightText:\n '

Take Your Earnings to the Next Level with the VIP Affiliate Upgrade

Imagine doubling your commissions and accessing exclusive tools designed to maximize your income. The VIP Affiliate Program is your ticket to unparalleled financial success.

Why Become a VIP Affiliate?

  • Double Commissions: Earn 60% commissions on all base products, maximizing your income potential.
  • High Earnings Potential: Earn up to $1,000 per sale, plus recurring monthly commissions.
  • Proven System: Access a complete sales system with high-converting products, effective funnels, and pre-built email campaigns.
  • Personalized Support: Enjoy dedicated support and priority assistance from our team of affiliate marketing experts.
  • Ongoing Advanced Training: Access exclusive, in-depth training sessions that provide the latest strategies and tactics for maximizing your affiliate success.

Special Offer & Bonus:

  • 30-Day Money-Back Guarantee: Try the masterclass risk-free!
  • Ongoing Support: Receive continuous training and support from our team of affiliate marketing experts.
  • Bonus: Traffic Mastery Course: Gain access to our exclusive Traffic Mastery Course, teaching you advanced techniques to drive more traffic and boost your earnings.

The VIP Affiliate Program is designed for those who are serious about maximizing their earnings and leveraging the full potential of our affiliate system. With higher commissions, and the Traffic Mastery Course, you’ll have everything you need to build a thriving, passive income stream.

Ready to take your earnings to the next level?

',\n },\n {\n product: 'founders-club',\n background: bgClub,\n title: '

Founders Club Exclusive Access

',\n rightText:\n '

Unlock Lifetime Benefits and Unparalleled Earnings Potential - Become a Founder!

Imagine being at the forefront of a revolutionary program that not only boosts your income but also grants you lifetime access to incredible tools and resources. By joining our Founder Program, you’re positioning yourself for long-term success and financial freedom.

Why Join the Founder Program?

  • Lifetime Access: Gain permanent access to all our base products and tools.
  • Exclusive Benefits: Enjoy unique perks reserved only for founders, including priority support and early access to new features.
  • High Earnings Potential: Earn 60% commissions on all sales without any restrictions, significantly boosting your income potential.
  • Founders Level Free Leads Program: Participate in our paid traffic campaigns and lifetime leads giveaway.
  • Advanced Training: Receive ongoing, in-depth training sessions to keep you ahead of the curve in affiliate marketing.
  • System Setup Coaching: Private coaching call to help set up your system.
  • Third-Party Offer Setup: Setup fee and implementation for additional income streams (PROFITi).

Special Founder Pricing:

  • One-Time Payment: $2,997 (limited time offer)
  • 3 Payments: $1,197
  • 30-Day Money-Back Guarantee: Try PostEASE risk-free!

By becoming a Founder, you’re not just investing in a program—you’re investing in your future. The exclusive benefits, high earnings potential, and lifetime access make this a once-in-a-lifetime opportunity. Limited spots are available. Ensure your place as a Founder and start reaping the benefits today.

Ready to transform your income?

',\n },\n {\n product: 'postease',\n background: bgPostease,\n title: '

PostEASE - Social Media Content Automation

',\n rightText:\n '

Automate Your Social Media: Effortlessly Create & Publish Daily Content

Imagine having a personal social media agency working for you around the clock. With PostEASE you can effortlessly create and publish high-quality content daily across all your social media platforms.

Why Choose PostEASE?

  • Done-for-You Content Creation: From ideation to execution, PostEASE ensures your social media accounts are always lively, engaging, and valuable to your followers.
  • Optimal Posting Schedule: Leveraging advanced AI, PostEASE determines and posts content at the times when your audience is most active, maximizing engagement and visibility.
  • Multi-Platform Integration: Extend your reach across top social media platforms without the need to juggle multiple tools and interfaces.
  • Consistency Across All Touch points: PostEASE ensures that every piece of content, across every platform, aligns perfectly with your brand’s unique voice and messaging.
  • Effortless Viral Reels on Autopilot: Our AI crafts engaging, trend-driven reels for your brand, incorporating your unique content with viral sounds and effects.
  • Unlock the Power of AI: Grow your social media following and engagement with our cutting-edge technology.
  • Save Time & Money: In today’s fast-paced world, time is a luxury. PostEASE helps busy entrepreneurs and business owners like you manage social media efficiently.

Flexible Pricing Options:

  • Monthly Plan: Affordable monthly payments designed to fit anyone’s budget.
  • Lifetime Plan: Our best value option—pay once and use forever for just $1,497.
  • Yearly Plan: Save nearly 50% off the monthly price by prepaying for the year at $997.
  • 30-Day Money-Back Guarantee: Try PostEASE risk-free!

Join the future of Social Media Automation! Automate Your Social Media Strategy & Let PostEASE Create & Publish Daily Content For You Effortlessly

READY TO TAKE YOUR SOCIAL MEDIA TO THE NEXT LEVEL?

',\n },\n {\n product: 'profiti',\n background: bgProfiti,\n title: '

PROFITi - decentralized community

',\n rightText:\n '

Unlock a Powerful & Lucrative Income Stream with PROFITi Blockchain Platform

Gain access to the revolutionary AI, trading, and gaming products, along with a highly lucrative on-chain affiliate program. Earn up to 90% of the revenue generated by the community and secure your financial future with unparalleled transparency and security.

Why Choose PROFITi?

  • Decentralized and Transparent: PROFITi uses blockchain and smart contract technology, ensuring no single authority controls the community or its funds. All transactions are immutable and transparent.
  • Unmatched Security: Smart contracts ensure funds are distributed fairly and instantly, without intermediaries. Members’ funds are always safe and secure.
  • Lucrative Affiliate Program: Earn up to 90% of the community’s revenue with PROFITi’s on-chain affiliate program, offering one of the highest payout percentages in the industry.
  • Cutting-Edge AI and Gaming Products: Stay ahead with PROFITi’s advanced AI, trading, and gaming offerings, setting it apart from other platforms.
  • Financial Freedom: PROFITi provides a transparent, secure, and rewarding opportunity for achieving financial freedom, backed by an innovative approach and supportive community.

Special Offer:

  • Instant Commissions: Start earning with PROFITi’s decentralized platform today.
  • Affordable: Memberships range from $50 to $450 per month
  • High Payouts: Earn up to 90% revenue with their lucrative affiliate program.

Don’t miss out on this exclusive offer. PROFITi is designed for those who seek financial freedom and cutting-edge technology. Take action now and unlock your path to secure, high-reward income streams.

READY TO CREATE LIFE-CHANGING INCOME?

',\n },\n {\n product: 'mastering-the-art-of-traffic-e-leads-with-chatgpt',\n background: bgGpt,\n title: '

Mastering the Art of Traffic and Leads with ChatGPT

',\n rightText:\n '

Unlock Unlimited High-Converting Content for with our GPT eBook!

Imagine being able to Instantly Get ALL The High-Converting Content You’ll Ever Need To Sell Your Products & Services Online!

Why You Need It:

  • All-in-One Solution: Get over 3,500+ AI prompts for sales funnels, ads, emails, social media, and more.
  • Time-Saving: Instantly generate high-quality marketing content without expensive copywriters.
  • Proven Results: Transform your marketing efforts with content that attracts and converts.

What You’ll Get:

  • Comprehensive AI Prompts: Perfect for ads, lead generation, social media, copywriting, and more.
  • Easy to Use: Simply copy & paste into ChatGPT for instant results.
  • Limited-Time Offer: Get everything for just $17 (regular price $97).

Special Offer & Bonuses:

  • Immediate Access: Start creating high-converting content today.
  • Affordable: Only $17 for a limited time.
  • 3,500+ AI Prompts: Covering every step of your marketing funnel.
  • 30-Day Money-Back Guarantee: Try PostEASE risk-free!

Don’t miss out on this exclusive offer. Get “Mastering the Art of Traffic and Leads with ChatGPT” now for only $17 before the price goes up!

READY TO TRANSFORM YOUR MARKETING?

',\n },\n {\n product: 'promptease-dynamic-database-of-chatgpt-prompts',\n background: bgPromptease,\n title: '

Promptease lite - Dynamic Prompts Database!

',\n rightText:\n '

Effortlessly Generate Perfect Prompts with PromptEASE Lite!

Unlock your creativity with tailored prompts. PromptEASE Lite provides click-to-copy convenience and an ever-expanding vault of prompts designed to save you time and boost your engagement.

Why Choose PromptEASE Lite?

  • Click-to-Copy Convenience: No more scrolling or fumbling with PDFs. With PromptEASE Lite, simply click, copy, and you’re ready to go. It’s designed for seamless efficiency, allowing you to focus on what matters most.
  • Ever-Expanding Vault: Our database continuously grows, adding new prompts every month. Stay ahead of the curve with the latest and most effective prompts without any extra effort on your part.
  • Time-Saver: Your time is precious. Why spend hours searching for the right prompts when you could be making sales? PromptEASE Lite streamlines your workflow, giving you more time to focus on your business.

Special Offer:

  • Immediate Access: Start creating perfect prompts & high-converting content today.
  • Affordable: $147 Lifetime Access
  • 30-Day Money-Back Guarantee: Try PostEASE risk-free!

Don’t miss out on this exclusive offer. PromptEASE Lite is designed for those who value time and efficiency. Take action now and accelerate your journey to success with ease.

READY TO BOOST YOUR EFFICIENCY?

',\n },\n {\n product: 'promptease-pro-dynamic-database-of-chatgpt-prompts',\n background: bgPePro,\n title: '

Promptease pro - Instant Perfect Prompts

',\n rightText:\n '

Instantly Create Perfect Prompts with PromptEASE Pro!

Say goodbye to one-size-fits-all solutions. PromptEASE Pro offers prompts that are specifically tailored to fit your unique niche, enabling you to create content that truly resonates with your audience.

Why Choose PromptEASE Pro?

  • Custom Tailored Prompts: No more one-size-fits-all. Get prompts specifically designed for your unique niche. Move beyond generic solutions. PromptEASE Pro provides prompts that are meticulously tailored to your specific needs, ensuring that your content deeply resonates with your audience and significantly boosts engagement.
  • Seamless Integration with ChatGPT: Dive into a world where advanced AI meets user-friendly interface. The seamless integration with ChatGPT ensures you’re always leveraging the best of AI technology for your content needs, making your work more efficient and effective.
  • Time-Efficient Content Creation: In the fast-paced world of digital marketing, time is of the essence. PromptEASE Pro streamlines your content creation process, allowing you to produce high-quality content in a fraction of the time. Focus on scaling your business while PromptEASE Pro handles the heavy lifting.

Special Offer:

  • Immediate Access: Start creating perfect prompts & high-converting content today.
  • Affordable: Only $27 Monthly or $197 Yearly
  • 30-Day Money-Back Guarantee: Try PostEASE risk-free!

Don’t miss out on this exclusive offer. Elevate your content game with PromptEASE Pro. This is a one-time opportunity to supercharge your success with advanced AI-powered tools.

READY TO TRANSFORM YOUR MARKETING?

',\n },\n ],\n []\n );\n\n const handleClose = useCallback(() => {\n setShow(false);\n setOfferSelected({} as IOffer);\n }, []);\n\n const handleShow = useCallback((offerData) => {\n setShow(true);\n setOfferSelected(offerData);\n }, []);\n\n const handleLoadProducts = useCallback(async () => {\n api.get('products/users').then(async (productsResponse) => {\n const productsData: IOffer[] = productsResponse.data.map((product) => {\n const checkPurchased = product.affiliatesProducts.find(\n (affiliateProduct) =>\n affiliateProduct.affiliate_id === user.affiliate.id\n );\n\n const prices = product.prices\n .filter((price) => price.location === 'system')\n .map((price) => {\n if (price.type === 'lifetime') {\n return {\n ...price,\n interval: 'One-Time',\n };\n }\n\n if (price.type === 'subscription') {\n return {\n ...price,\n interval: price.period === 1 ? 'Monthly' : 'Yearly',\n };\n }\n\n return price;\n })\n .sort(\n (priceA, priceB) =>\n parseFloat(priceA.value) - parseFloat(priceB.value)\n );\n\n return {\n id: product.id,\n title: `${product.name}`,\n thumbnail: product.thumbnail,\n by: 'AutoAffiliate',\n commission: '60',\n link: 'https://autoaffiliate.ai/slo-1',\n old_link: 'https://autoaffiliate.ai/slo-1',\n affiliateOffer: checkPurchased,\n type: 'sales',\n slug: product.slug,\n showPayment: false,\n prices,\n created_at: product.created_at,\n };\n });\n\n if (user.referrer) {\n const response = await api.get(\n `offers/affiliates/${user.referrer.affiliate_id}`\n );\n const data: IOffer[] = [];\n for (const offer of response.data) {\n try {\n const responseAffiliateOffer = await api.get(\n `affiliates-offers/${user.affiliate.id}/${offer.id}`\n );\n if (responseAffiliateOffer.data) {\n data.push({\n ...offer,\n link: responseAffiliateOffer.data.url,\n old_link: offer.link,\n type: 'affiliate',\n });\n } else {\n let { link } = offer;\n if (offer.affiliateOffer) {\n link = offer.affiliateOffer.url as string;\n }\n data.push({ ...offer, link, old_link: link, type: 'affiliate' });\n }\n } catch (error) {\n data.push({ ...offer, old_link: offer.link, type: 'affiliate' });\n }\n }\n\n const offersData = [\n data[0],\n ...productsData.filter(\n (product) =>\n product.title !==\n 'PromptEASE PRO Lifetime + VIP Bundle + Traffic Mastery Course' &&\n product.title !== 'Affiliate BootCamp'\n ),\n ];\n\n offersData.sort(\n (a, b) =>\n parseISO(a.created_at).getTime() - parseISO(b.created_at).getTime()\n );\n\n console.log(offersData);\n\n setOffers(offersData);\n } else {\n setShowError(true);\n }\n });\n }, [user.affiliate.id, user.referrer]);\n\n useEffect(() => {\n handleLoadProducts().finally(() => {\n setLoading(false);\n });\n }, [handleLoadProducts]);\n\n const handleSubmit = useCallback(\n async (data: IFormData) => {\n try {\n setLinkError('');\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n url: Yup.string().required('Your link is required'),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n const { url } = data;\n\n const referrer_code = url.split('/')[url.split('/').length - 1];\n\n const newOffers = offers.slice();\n const offerIndex = newOffers.findIndex(\n (offer) => offer.id === offerSelected.id\n );\n\n if (!url.includes('https://profiti.io/i/')) {\n throw new Error('Invalid Link');\n }\n\n if (referrer_code.length !== 7) {\n throw new Error('Invalid Link');\n }\n\n if (offerIndex >= 0 && newOffers[offerIndex].link === url) {\n throw new Error('Invalid Link');\n }\n\n const formData = {\n affiliate_id: user.affiliate.id,\n offer_id: offerSelected.id,\n url,\n };\n\n const response = await api.post('affiliates-offers', formData, {\n params: {\n user_id: user.id,\n },\n });\n\n if (offerIndex >= 0) {\n newOffers[offerIndex].link = url;\n }\n setOffers(newOffers);\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n type: response.data.type,\n },\n });\n handleClose();\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n } else {\n const err = error as { message: string };\n if (err.message && err.message === 'Invalid Link') {\n setLinkError(err.message);\n } else {\n Swal.fire(\n 'Opss...',\n language.error_component.error_message,\n 'error'\n );\n }\n }\n }\n },\n [\n handleClose,\n language.error_component.error_message,\n offerSelected.id,\n offers,\n updateUser,\n user,\n ]\n );\n\n const handleClickCardProduct = useCallback(() => {\n const newOffers = offers.slice();\n if (selIndex >= 0) {\n newOffers[selIndex].showPayment = true;\n }\n\n setOffers(newOffers);\n setShowCardProduct(false);\n }, [offers, selIndex]);\n\n const handleClickPurchaseOffer = useCallback((product, index) => {\n setSelIndex(index);\n setSelectedProduct(product);\n setShowCardProduct(true);\n }, []);\n\n const handleClickHide = useCallback(\n (index) => {\n const newOffers = offers.slice();\n if (index >= 0) {\n newOffers[index].showPayment = false;\n }\n\n setOffers(newOffers);\n },\n [offers]\n );\n\n const handleSuccessfullyPaid = useCallback(\n (data, index) => {\n const founderProduct = data.find(\n (dataAux: any) =>\n dataAux.order.product_id === 'a24f0733-e0d1-4cfa-b595-521c55e4b569'\n );\n\n if (founderProduct) {\n let type = 'Founder';\n if (user.affiliate.type.toLowerCase().includes('vip')) {\n type = 'Vip Founder';\n }\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n type,\n },\n });\n }\n\n const vipProduct = data.find(\n (dataAux: any) =>\n dataAux.order.product_id === '16ea3f78-caaa-4af0-afcd-503cbdcb465e'\n );\n\n if (vipProduct) {\n let type = vipProduct ? 'Vip Affiliate' : 'Affiliate';\n if (user.affiliate.type.toLowerCase().includes('founder')) {\n type = vipProduct ? 'Vip Founder' : 'Founder';\n }\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n type,\n },\n });\n }\n\n const affiliateProduct = data.find(\n (dataAux: any) =>\n dataAux.order.product_id === 'b060defe-695a-4ddd-9827-5350c3302f00'\n );\n\n if (affiliateProduct) {\n let type = 'Affiliate';\n if (user.affiliate.type.toLowerCase().includes('vip')) {\n type = 'Vip Affiliate';\n }\n updateUser({\n ...user,\n affiliate: {\n ...user.affiliate,\n type,\n },\n });\n }\n\n handleClickHide(index);\n handleLoadProducts();\n },\n [handleClickHide, handleLoadProducts, updateUser, user]\n );\n\n const handleClickClearCache = useCallback(() => {\n const todosCookies = Cookies.get();\n\n for (const cookie in todosCookies) {\n Cookies.remove(cookie);\n }\n\n localStorage.clear();\n sessionStorage.clear();\n\n window.location.reload();\n }, []);\n\n return (\n <>\n \n
\n
\n
\n
\n {loading ? (\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n PROFITi Decentralized Community & Trading Bot\n \n \n by PROFITi\n

\n \n Affiliate Link\n \n \n -\n

\n
\n
\n
\n
\n
\n
\n \n Affiliate Commission\n \n\n \n Up to 90%\n

\n \n Affiliate Link\n \n \n -\n

\n
\n
\n
\n
\n
\n \n Sign up to get your Link\n \n \n Add Affiliate Link\n \n
\n
\n
\n
\n ) : (\n <>\n {offers.map((offer, index) => (\n \n {index > 0 && (\n
\n
\n
\n )}\n\n 0 ? 'mt-5' : 'mt-4 mt-md-5'\n }`}\n >\n \n
\n
\n
\n \n \n
\n

\n {offer.thumbnail.title.split(' ')[0]}\n

\n

\n {offer.thumbnail.title.slice(\n offer.thumbnail.title.split(' ')[0]\n .length\n )}\n

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

\n {offer.title}\n

\n {!!offer.by && (\n <>\n

by {offer.by}

\n {offer.title ===\n 'PROFITi Decentralized Community & Trading Bot' && (\n <>\n

\n {offer.type === 'affiliate'\n ? 'Affiliate Link'\n : 'Link'}\n

\n

\n {offer.type === 'affiliate' ? (\n <>\n {offer.link !== offer.old_link\n ? offer.link\n : 'You have not signed up for this offer yet.'}\n \n ) : (\n offer.link\n )}\n

\n \n )}\n \n )}\n
\n
\n
\n
\n
\n {!!offer.by && (\n
\n

\n Affiliate Commission\n

\n

\n Up to {offer.commission}%\n

\n {/*

\n Affiliate Link\n

\n

\n {offer.link}\n

*/}\n {offer.title ===\n 'PROFITi Decentralized Community & Trading Bot' ? (\n <>\n

\n Optional Purchase\n

\n

\n $75 - $450\n

\n \n ) : (\n <>\n

\n Optional Purchase\n

\n

\n ${offer.prices[0].value}{' '}\n {offer.prices[0].interval}\n {offer.prices.length > 1 &&\n ` - $${\n offer.prices[\n offer.prices.length - 1\n ].value\n } ${\n offer.prices[\n offer.prices.length - 1\n ].interval\n }`}\n

\n \n )}\n
\n )}\n
\n
\n
\n \n {(!offer.affiliateOffer ||\n offer.type === 'affiliate') &&\n offer.link === offer.old_link ? (\n <>\n {offer.by === 'PROFITi' && (\n {\n handleClickPurchaseOffer(\n offer.by?.toLowerCase(),\n index\n );\n setOfferLink(offer.link);\n }}\n >\n Sign up to get your Link\n \n )}\n {offer.type === 'affiliate' &&\n !!offer.by ? (\n handleShow(offer)}\n type=\"button\"\n className={`${\n index === 0 && 'd-none'\n } add`}\n disabled={index === 1}\n >\n {`${\n index === 1\n ? 'Coming Soon'\n : 'Add Affiliate Link'\n }`}\n \n ) : (\n <>\n \n handleClickPurchaseOffer(\n offer.slug?.toLowerCase(),\n index\n )\n }\n >\n Purchase Offer\n \n handleClickHide(index)}\n onSuccessfullyPaid={(data) =>\n handleSuccessfullyPaid(data, index)\n }\n options={offer.prices.map(\n (price, idx) => ({\n price: parseFloat(price.value),\n type: price.type,\n period: price.period,\n interval:\n price.type === 'subscription'\n ? 'month'\n : undefined,\n src: price.file?.file_url,\n selected: idx === 0,\n })\n )}\n productName={offer.title}\n show={offer.showPayment}\n productSlug={offer.slug}\n />\n \n )}\n \n ) : (\n
\n
\n
\n \"Check\"\n
\n
\n
\n

\n You have successfully\n

\n \n Setup this offer\n \n
\n
\n )}\n
\n
\n
\n
\n \n ))}\n \n )}\n
\n
\n
\n
\n \n {cardOffers.map((cardOffer) => (\n <>\n {cardOffer.product === selectedProduct && (\n \n setShowCardProduct(false)}\n className=\"close bg-transparent border-0\"\n >\n \n \n \n
\n
\n \n
\n \"Logo\"\n \n\n
\n \n Watch Video{' '}\n \n \n \n
\n
\n \n
\n
\n \n {selectedProduct === 'profiti' ? (\n \n GET ACCESS NOW!\n \n ) : (\n \n {selectedProduct === 'founders-club'\n ? 'BECOME A FOUNDER NOW!'\n : 'GET ACCESS NOW!'}\n \n )}\n
\n
\n
\n
\n )}\n \n ))}\n \n
\n \n x\n \n \n
\n \n Add your affiliate link\n \n
\n
\n \n \n \n \n \n Cancel\n \n \n Save Affiliate Link\n \n \n \n \n \n \n
\n \n \n \n 🚀\n {' '}\n Whoops, Looks Like We Hit a Tiny Speed Bump!\n \n
\n
\n \n

\n We've noticed your browser might be having a hiccup loading the\n right links.{' '}\n

\n \n No worries, though! Just give your cache a quick clean-up and try\n again. This should get you zooming along to the latest version of\n our system in no time. Thanks for being awesome and patient!\n \n
\n \n \n Clear Cache And Try Again\n \n \n
\n \n );\n};\n\nexport default MyOffers;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n p {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 17px;\n color: #8c8c8c;\n }\n\n h3 {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #626262;\n }\n\n hr {\n width: 90%;\n border-top: 1px solid #e1e0e0;\n }\n\n .bg-check-border {\n padding: 2px;\n background: #fff;\n border: 2px solid #f2f2f2;\n border-radius: 18px;\n img {\n padding: 9px;\n border-radius: 14px;\n width: 48px;\n height: 48px;\n background: #116bff;\n box-shadow: -1px 4px 10px 0px rgba(17, 107, 255, 0.5);\n }\n }\n\n .completed {\n border-radius: 22px;\n border: 1px solid #e9e9e9;\n background: #fff;\n padding: 10px 15px;\n }\n\n .completed p {\n color: #232528;\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 500;\n }\n\n .completed span {\n color: #8a8a8a;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 300;\n line-height: 19.5px;\n }\n\n .positions {\n top: 19px;\n left: 15px;\n h2 {\n font-weight: 600;\n font-size: 36px;\n line-height: 46px;\n color: #f5f5f5;\n margin-bottom: 0px;\n }\n p {\n font-weight: 500;\n font-size: 18px;\n line-height: 22px;\n color: #f5f5f5;\n }\n }\n\n .sign {\n font-weight: 400;\n font-size: 12px;\n text-align: center;\n line-height: 15px;\n color: #ffffff;\n background: #116bff;\n border-radius: 10px;\n padding: 9px 20px;\n width: 180px;\n transition: 0.3s;\n text-decoration: none;\n :hover {\n opacity: 0.8;\n }\n }\n\n .sign.course {\n background-color: #ffc584;\n color: #000000;\n font-weight: 600;\n }\n\n .add {\n font-weight: 400;\n font-size: 12px;\n text-align: center;\n line-height: 15px;\n color: #242526;\n background: #d0d0d0;\n border-radius: 10px;\n padding: 9px 20px;\n width: 180px;\n transition: 0.3s;\n text-decoration: none;\n :hover {\n opacity: 0.8;\n }\n }\n\n .text-no-register {\n color: var(--ultraWhite);\n font-weight: 600;\n }\n\n .h-40vh {\n height: 40vh;\n }\n\n .text-no-certificates {\n color: #606060;\n font-weight: 600;\n }\n\n small,\n .price {\n color: var(--graniteGray);\n }\n\n .radius-20 {\n border-radius: 20px;\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n button {\n background-color: transparent;\n border: none;\n color: var(--ultraWhite);\n }\n\n .filters {\n background: var(--midnight);\n z-index: 99;\n border-radius: 12px;\n right: 0;\n bottom: -130px;\n\n hr {\n width: 75%;\n margin: 0 auto;\n background-color: var(--mysteriousGrey);\n }\n }\n\n .button-cancel {\n background-color: transparent;\n color: var(--ultraWhite);\n text-decoration: none !important;\n border: 1px solid var(--greyMineral);\n border-radius: 12px;\n :hover {\n background-color: var(--greyMineral);\n }\n }\n\n button,\n .button {\n cursor: pointer;\n }\n\n .graph {\n width: 11%;\n opacity: 0.1;\n }\n\n div {\n ::-webkit-scrollbar {\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--technologicalGrayOpacity);\n }\n }\n\n .img-width {\n width: 100%;\n //height: 140px;\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 15px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n //display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (min-width: 768px) {\n .skeleton.img-width {\n width: 186px;\n height: 170px;\n }\n }\n\n @media screen and (max-width: 767px) {\n .img-width {\n width: 400px;\n max-width: 100%;\n }\n\n .skeleton.img-width {\n max-height: 260px;\n height: 49vw;\n }\n\n .add,\n .sign {\n font-size: 16px;\n width: 100%;\n padding: 15px 20px;\n border-radius: 15px;\n }\n }\n`;\n","/* eslint-disable react/jsx-indent */\n/* eslint-disable react/jsx-indent-props */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\nimport React, { useEffect, useState, useCallback, Fragment } from 'react';\nimport { format, parseISO } from 'date-fns';\n\nimport { Link } from 'react-router-dom';\nimport { useLanguage } from '~/hooks/Language';\nimport { formatPrice } from '~/utils/format';\nimport api from '~/services/api';\n\nimport { Container } from './styles';\n\nimport { useAuth } from '~/hooks/Auth';\n\nimport noRegister from '~/assets/icons/no-register-icon.svg';\n\ninterface IOrdersProps {\n active: boolean;\n}\n\ninterface IAffiliateProductResponse {\n id: string;\n created_at: string;\n product: {\n id: string;\n name: string;\n type: string;\n created_at: string;\n price: number;\n thumbnail: {\n title: string;\n thumbnail_url: string;\n };\n orders: {\n type: string;\n amount_paid: number;\n }[];\n };\n}\n\ninterface IPurchase {\n id: string;\n product_id: string;\n title: string;\n by: string;\n date: string;\n commission: string;\n thumbnail: {\n thumbnail_url: string;\n title: string;\n };\n}\n\nconst Purchase: React.FC = ({ active }) => {\n const { user } = useAuth();\n const [purchases, setPurchases] = useState([]);\n const [loading, setLoading] = useState(true);\n const { language } = useLanguage();\n\n useEffect(() => {\n api\n .get(\n `affiliates-products/affiliates/${user.affiliate.id}`\n )\n .then((response) => {\n response.data.sort(\n (a, b) =>\n parseISO(a.product.created_at).getTime() -\n parseISO(b.product.created_at).getTime()\n );\n const data = response.data.map((affiliateProduct) => {\n let commission = '-';\n\n if (affiliateProduct.product.orders.length > 0) {\n if (affiliateProduct.product.orders[0].type === 'subscription') {\n commission = `${formatPrice(\n affiliateProduct.product.orders[0].amount_paid\n )} per month`;\n } else {\n commission = `${formatPrice(\n affiliateProduct.product.orders[0].amount_paid\n )} x ${affiliateProduct.product.orders.length\n .toString()\n .padStart(2, '0')}`;\n }\n } else {\n commission = formatPrice(0);\n }\n\n return {\n id: affiliateProduct.id,\n product_id: affiliateProduct.product.id,\n title: affiliateProduct.product.name,\n by: 'AutoAffiliate',\n date: format(\n parseISO(affiliateProduct.created_at),\n 'MMMM dd, yyyy'\n ),\n commission,\n thumbnail: affiliateProduct.product.thumbnail,\n };\n });\n\n setPurchases(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [user.affiliate.id]);\n\n const handleClickAccessCourse = useCallback(async () => {\n const response = await api.post('users/wiserr', {\n email: user.email,\n });\n\n window.open(\n `${process.env.REACT_APP_WISERR_URL}/check-login/${response.data}`,\n '_blank'\n );\n }, [user.email]);\n\n return (\n <>\n \n
\n
\n
\n
\n {loading ? (\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n PROFITi Decentralized Community & Trading Bot\n \n \n by PROFITi\n

\n \n Affiliate Link\n \n \n -\n

\n
\n
\n
\n
\n
\n
\n \n Affiliate Commission\n \n\n \n Up to 90%\n

\n \n Affiliate Link\n \n \n -\n

\n
\n
\n
\n
\n
\n \n Sign up to get your Link\n \n \n Add Affiliate Link\n \n
\n
\n
\n
\n ) : (\n <>\n {purchases.length > 0 ? (\n <>\n {purchases.map((purchase, index) => (\n \n {index > 0 && (\n
\n
\n
\n )}\n 0 ? 'mt-5' : 'mt-4 mt-md-5'\n }`}\n >\n \n
\n
\n
\n \n \n
\n

\n {\n purchase.thumbnail.title.split(\n ' '\n )[0]\n }\n

\n

\n {purchase.thumbnail.title.slice(\n purchase.thumbnail.title.split(\n ' '\n )[0].length\n )}\n

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

{purchase.title}

\n\n

by {purchase.by}

\n

\n Purchase Date\n

\n

\n {purchase.date}\n

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

\n Amount Paid\n

\n

{purchase.commission}

\n

\n Purchase Date\n

\n

\n {purchase.date}\n

\n
\n
\n
\n
\n
\n {purchase.product_id ===\n process.env.REACT_APP_CHAT_GPT && (\n \n Access Purchase\n \n )}\n\n {purchase.product_id ===\n process.env.REACT_APP_PROMPT_EASE && (\n \n Access Purchase\n \n )}\n {/* Botão para instalar a extensão */}\n {purchase.product_id ===\n '43e9692d-005b-4c46-997f-6ad4575c023f' && (\n \n Install Now\n \n )}\n\n {(purchase.product_id ===\n process.env.REACT_APP_PROMPT_EASE_PRO ||\n purchase.product_id ===\n process.env.REACT_APP_BLACKFRIDAY) && (\n \n Access Purchase\n \n )}\n\n {(purchase.product_id ===\n process.env.REACT_APP_BLACKFRIDAY ||\n purchase.product_id ===\n process.env.REACT_APP_VIP) && (\n \n Access Bonus\n \n )}\n {purchase.commission !== '$0.00' && (\n \n View Receipt\n \n )}\n
\n
\n
\n
\n \n ))}\n \n ) : (\n
\n
\n
\n \n

\n {language.no_register.p}\n

\n
\n
\n
\n )}\n \n )}\n
\n
\n
\n
\n \n \n );\n};\n\nexport default Purchase;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .h-40vh {\n height: 40vh;\n }\n\n .text-no-register {\n color: var(--ultraWhite);\n font-weight: 600;\n }\n`;\n\nexport const Orders = styled.div`\n b {\n font-weight: 600;\n color: #303030;\n font-size: 18px;\n }\n\n .product {\n color: #8c8c8c;\n font-size: 18px;\n font-weight: 400;\n }\n\n .order {\n transition-duration: 0.3s;\n background: #e3e3e3;\n color: #021027;\n border-radius: 20px;\n padding: 20px;\n\n svg {\n transition-duration: 0.3s;\n color: #626262;\n min-width: 25px;\n min-height: 25px;\n }\n }\n\n .bg-infos {\n background: var(--coal);\n }\n\n .infos {\n transition-duration: 0.3s;\n color: var(--technologicalGray);\n\n height: 0;\n overflow: hidden;\n padding-top: 0;\n padding-bottom: 0;\n\n .gray-dark {\n color: var(--ultraWhite);\n }\n }\n\n .infos img {\n width: 62px;\n height: 35px;\n margin-right: 11px;\n }\n\n .infos p {\n color: #626262;\n font-size: 15px;\n font-weight: 400;\n }\n\n .order-box.active {\n .order {\n border-radius: 20px 20px 0px 0px;\n\n svg {\n transform: rotate(180deg);\n }\n }\n\n .bg-infos {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n border-radius: 0px 0px 20px 20px;\n }\n\n .infos {\n height: 220px;\n\n ::-webkit-scrollbar {\n background-color: var(--coal);\n width: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--asphaltGray);\n }\n }\n }\n\n .total {\n color: #303030;\n font-size: 18px;\n font-weight: 400;\n }\n\n @media screen and (max-width: 575px) {\n .order-box.active .infos {\n height: 260px;\n }\n }\n`;\n\nexport const Skeleton = styled.div`\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { FiChevronDown } from 'react-icons/fi';\nimport { format, parseISO } from 'date-fns';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport { formatPrice } from '~/utils/format';\n\nimport { Container, Orders, Skeleton } from './styles';\n\nimport noRegister from '~/assets/icons/no-register-icon.svg';\nimport master from '~/assets/defaults/master-test.svg';\nimport visa from '~/assets/defaults/visa-test.svg';\n\ninterface IOrderResponse {\n id: string;\n amount_paid: number;\n status: string;\n created_at: string;\n course: {\n title: string;\n };\n product: {\n name: string;\n };\n offer: {\n title: string;\n };\n payment: {\n brand: string;\n number: string;\n };\n}\n\ninterface IOrder {\n id: string;\n amount_paid: string;\n title: string;\n created_at: string;\n brand: string;\n number: string;\n}\n\ninterface IReceiptsProps {\n active: boolean;\n}\n\nconst Receipts: React.FC = ({ active }) => {\n const { language } = useLanguage();\n const [orders, setOrders] = useState([]);\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n api\n .get('orders/users')\n .then((response) => {\n const newData = response.data.filter(\n (order) => order.status === 'succeeded' || order.status === 'active'\n );\n const data: IOrder[] = newData.map((order) => {\n let title = '';\n if (order.course) {\n title = order.course.title;\n }\n if (order.product) {\n title = order.product.name;\n }\n if (order.offer) {\n title = order.offer.title;\n }\n return {\n id: order.id,\n title,\n amount_paid: formatPrice(order.amount_paid),\n created_at: format(parseISO(order.created_at), 'yyyy-MM-dd'),\n brand: order.payment.brand,\n number: order.payment.number,\n };\n });\n setOrders(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n const handleClickQuestion = useCallback((e) => {\n const questionBox = e.target.closest('.order-box');\n if (questionBox) {\n questionBox.classList.toggle('active');\n }\n }, []);\n\n return (\n \n
\n
\n {loading && (\n <>\n \n
\n \n

#############

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

#############

\n \n
\n
\n \n )}\n {orders.length > 0 ? (\n <>\n {orders.map((order) => (\n \n
\n \n {order.title}\n \n \n
\n
\n

\n \n {order.brand === 'Visa' && (\n \"Visa\"\n )}\n {order.brand === 'Mastercard' && (\n \"Mastercard\"\n )}\n {order.brand}\n ····{order.number}\n \n \n {order.created_at}\n \n

\n
\n {language.receipts.b_1}\n {language.receipts.b_2}\n
\n
\n

{order.title}

\n\n

{order.amount_paid}

\n
\n
\n {language.receipts.b_3}\n\n {order.amount_paid}\n
\n
\n
\n
\n
\n ))}\n \n ) : (\n
\n
\n
\n \n

\n {language.no_register.p}\n

\n
\n
\n
\n )}\n
\n
\n
\n );\n};\n\nexport default Receipts;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .dark-text,\n p,\n p > small {\n color: var(--grayImmensity);\n }\n\n a {\n color: var(--grayImmensity);\n text-decoration: none !important;\n }\n\n .colorPayOptions {\n color: var(--graniteGray) !important;\n img {\n filter: brightness(1.3);\n }\n :hover {\n color: var(--graniteGrayLighten) !important;\n img {\n filter: brightness(1.5);\n }\n }\n }\n\n .copy {\n right: 0;\n top: 20px;\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n .qr-code,\n .star-flag {\n width: 98px;\n height: 100px;\n }\n\n .star-flag {\n margin-top: -20px;\n }\n\n hr {\n background-color: var(--closedGray);\n }\n\n .infos {\n .empty {\n width: 97px;\n }\n }\n\n .alert-text {\n width: 81%;\n margin-left: auto;\n margin-bottom: 5px;\n }\n\n .border-bottom {\n border-bottom: solid 1px var(--closedGray) !important;\n }\n\n .bg-skeleton {\n background: var(--coal);\n border-radius: 20px;\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: table;\n margin: 0 auto;\n span {\n color: transparent !important;\n }\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 1199px) {\n .star-flag {\n margin-top: -110px;\n }\n }\n\n @media (min-width: 768px) and (max-width: 1199px) {\n button.height-custom {\n height: 44px;\n padding: 0 !important;\n }\n }\n\n @media screen and (max-width: 350px) {\n .brand-group img {\n width: 60px;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n background: #fff;\n border-radius: 20px;\n\n hr {\n width: 75%;\n margin: 0.5em auto 1em;\n border-top: 1px solid #828282;\n }\n`;\n\nexport const Pagination = styled.div`\n p,\n button {\n color: #8c8c8c;\n }\n\n button {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n font-weight: bold;\n\n :first-child,\n :last-child {\n width: auto;\n border-radius: 5px;\n }\n }\n\n button.active,\n button:hover {\n background-color: rgba(63, 63, 63, 1) !important;\n }\n`;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, Pagination } from './styles';\n\nexport interface IData {\n id: string | number;\n [key: string]: any;\n}\n\nexport interface IColumn {\n id?: string | number;\n name: string | number;\n selector: string;\n className?: string;\n cellClassName?: string;\n customCell?: (row: IData | any, index: number) => React.ReactNode;\n}\n\ninterface ITableProps {\n data: IData[];\n columns: IColumn[];\n className?: string;\n pagination?: boolean;\n}\n\nconst Table: React.FC = ({\n data,\n columns,\n className,\n pagination,\n}) => {\n const { language } = useLanguage();\n const [totalData] = useState(0);\n const [partialData, setPartialData] = useState(0);\n const [selectedPage, setSelectedPage] = useState(1);\n const [firstButton, setFirstButton] = useState(2);\n const [centerButton, setCenterButton] = useState(3);\n const [lastButton, setLastButton] = useState(4);\n\n const tableDataShow = useMemo(() => {\n const newDataList = data.filter(\n (_, index) =>\n index >= (selectedPage - 1) * 10 && index < selectedPage * 10\n );\n if (partialData === 0) {\n setPartialData(newDataList.length);\n }\n return newDataList;\n }, [partialData, selectedPage, data]);\n\n const totalPages = useMemo(() => {\n const pages = Math.ceil(data.length / 10);\n return pages;\n }, [data]);\n\n const onChangePage = useCallback(\n (page) => {\n setSelectedPage(page);\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setFirstButton(page - 1);\n } else if (page === totalPages) {\n if (totalPages === 3) {\n setFirstButton(page - 1);\n } else if (totalPages === 4) {\n setFirstButton(page - 2);\n } else {\n setFirstButton(page - 3);\n }\n } else if (totalPages === 4) {\n setFirstButton(page - 1);\n } else {\n setFirstButton(page - 2);\n }\n } else if (page === 1) {\n setFirstButton(page + 1);\n } else {\n setFirstButton(page);\n }\n\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setCenterButton(page);\n } else if (page === totalPages) {\n if (totalPages === 4) {\n setCenterButton(page - 1);\n } else {\n setCenterButton(page - 2);\n }\n } else if (totalPages === 4) {\n setCenterButton(page);\n } else {\n setCenterButton(page - 1);\n }\n } else if (page === 1) {\n setCenterButton(page + 2);\n } else {\n setCenterButton(page + 1);\n }\n\n if (page >= 3) {\n if (page <= totalPages - 2) {\n setLastButton(page + 1);\n } else if (page === totalPages) {\n setLastButton(page - 1);\n } else {\n setLastButton(page);\n }\n } else if (page === 1) {\n setLastButton(page + 3);\n } else {\n setLastButton(page + 2);\n }\n\n setPartialData(10 * page);\n },\n [totalPages]\n );\n\n return (\n \n
\n
\n {columns.map((column) => (\n <>\n
\n

{column.name}

\n
\n \n ))}\n
\n
\n {tableDataShow.map((content, index) => (\n
\n {index > 0 &&
}\n
\n {columns.map((column) => (\n
\n
\n

{column.name}

\n
\n
\n {column.customCell ? (\n column.customCell(content, index)\n ) : (\n

{content[column.selector]}

\n )}\n
\n
\n ))}\n
\n
\n ))}\n
\n
\n {pagination && (\n \n
\n

\n {language.commission_history.p_2_1}{' '}\n {partialData < 10 ? 1 : partialData - 9}-\n {partialData > totalData ? totalData : partialData}{' '}\n {language.commission_history.p_2_2} {totalData}\n

\n
\n
\n
\n onChangePage(1)}\n >\n {language.commission_history.button_1}\n \n onChangePage(1)}\n >\n 01\n \n {totalPages > 1 && (\n <>\n {totalPages > 5 && (\n <>\n {selectedPage > 3 && (\n \n ...\n \n )}\n \n )}\n {totalPages > 2 && (\n onChangePage(firstButton)}\n >\n {`0${firstButton}`.slice(-2)}\n \n )}\n {totalPages > 3 && (\n onChangePage(centerButton)}\n >\n {`0${centerButton}`.slice(-2)}\n \n )}\n {totalPages > 4 && (\n onChangePage(lastButton)}\n >\n {`0${lastButton}`.slice(-2)}\n \n )}\n {totalPages > 5 && (\n <>\n {selectedPage < totalPages - 2 && (\n \n ...\n \n )}\n \n )}\n \n )}\n {totalPages > 1 && (\n onChangePage(totalPages)}\n >\n {`0${totalPages}`.slice(-2)}\n \n )}\n onChangePage(totalPages)}\n >\n {language.commission_history.button_2}\n \n
\n
\n
\n )}\n
\n );\n};\n\nexport default Table;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Button = styled.button`\n :hover {\n color: var(--graniteGrayLighten);\n background-color: var(--greyMineralLighten);\n transition: 0.5s;\n img {\n filter: brightness(1.5);\n transition: 0.5s;\n }\n }\n\n span {\n color: var(--grayImmensity);\n }\n\n @media (min-width: 768px) and (max-width: 1199px) {\n height: 44px;\n padding: 0 !important;\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n .payment-button {\n :hover {\n color: var(--graniteGrayLighten);\n background-color: var(--greyMineralLighten);\n transition: 0.5s;\n }\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport * as Yup from 'yup';\nimport Swal from 'sweetalert2';\nimport { Form } from '@unform/web';\nimport { FormHandles } from '@unform/core';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Button, Modal } from './styles';\nimport CreditCard from '../CreditCard';\n\nimport addCard from '~/assets/icons/add-card-icon.svg';\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface ICreditCard {\n id?: string;\n name: string;\n number: string;\n expiration: string;\n cvc: string;\n flag: string;\n primary_card?: boolean;\n}\n\ninterface IReponseCreditCard {\n id: string;\n name: string;\n number: string;\n expiration: string;\n flag: string;\n primary_card: boolean;\n}\n\ninterface IAddCreditCardProps {\n className?: string;\n onCreatedCard?(data: IReponseCreditCard): void;\n active?: boolean;\n onClose?(active: boolean): void;\n}\n\nconst AddCreditCard: React.FC = ({\n className,\n onCreatedCard,\n active,\n onClose,\n}) => {\n const { language } = useLanguage();\n const formRef = useRef(null);\n const [show, setShow] = useState(false);\n\n useEffect(() => {\n setShow(active as boolean);\n }, [active]);\n\n const handleShow = useCallback(() => setShow(true), []);\n const handleClose = useCallback(() => {\n setShow(false);\n if (onClose) {\n onClose(active as boolean);\n }\n }, [active, onClose]);\n\n const handleSubmit = useCallback(\n async (data: ICreditCard) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n name: Yup.string().required(language.buy_component.erro_1),\n number: Yup.string().required(language.buy_component.erro_2),\n expiration: Yup.string().required(language.buy_component.erro_3),\n cvc: Yup.string().required(language.buy_component.erro_4),\n flag: Yup.string().required(language.buy_component.erro_5),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n const { name, number, expiration, cvc, flag } = data;\n const [exp_month, exp_year] = expiration.split('/');\n\n const formData = {\n name,\n number: number.replace(/ /g, ''),\n exp_month,\n exp_year,\n cvc,\n primary_card: false,\n };\n\n const response = await api.post(\n 'payments/customers/credit-cards',\n formData\n );\n\n if (response.data) {\n const numberMask = `****-${number.substr(-4)}`;\n const creditCardForm: IReponseCreditCard = {\n id: response.data.card.id,\n name,\n number: numberMask,\n expiration,\n flag,\n primary_card: false,\n };\n if (onCreatedCard) {\n onCreatedCard(creditCardForm);\n }\n }\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n } else {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n }\n },\n [language, onCreatedCard]\n );\n\n return (\n <>\n \n \"Add+{' '}\n {language.subscriptions_cards.button_1}\n \n \n \n \n {language.add_credit_card_component.title}\n \n \n \n \n
\n \n console.log(creditCard)\n }\n />\n
\n
\n \n {language.add_credit_card_component.button}\n \n
\n
\n \n
\n \n \n \n );\n};\n\nexport default AddCreditCard;\n","import React, { useCallback, useEffect, useState, useMemo } from 'react';\n\nimport api from '~/services/api';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\nimport TableData, { IColumn } from '~/components/TableData';\nimport AddCreditCard from '~/components/AddCreditCard';\nimport RemoveCreditCard from '~/components/RemoveCreditCard';\n\nimport visa from '~/assets/icons/cc-visa-dark.svg';\nimport mastercard from '~/assets/icons/cc-mastercard-dark.svg';\nimport discover from '~/assets/icons/cc-discover-dark.svg';\nimport amex from '~/assets/icons/cc-amex-dark.svg';\nimport exclamation from '~/assets/icons/exclamation-icon.svg';\nimport wire from '~/assets/logotipos/wire.svg';\nimport copy from '~/assets/icons/copy.svg';\n\ninterface IPaymentOptionsProps {\n active: boolean;\n}\n\ninterface IApiCreditCard {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n address: string;\n primary_card: boolean;\n}\n\ninterface IReponseCreditCard {\n id: string;\n name: string;\n number: string;\n expiration: string;\n flag: string;\n primary_card: boolean;\n}\n\nconst PaymentOptions: React.FC = ({ active }) => {\n const { language } = useLanguage();\n const [loading, setLoading] = useState(true);\n const [creditCards, setCreditCards] = useState([]);\n const [activeAddCard, setActiveAddCard] = useState(false);\n\n useEffect(() => {\n api.get('payments/customers/credit-cards').then((response) => {\n const data = response.data.map((card: IApiCreditCard) => {\n return {\n id: card.id,\n name: card.name,\n number: `****-${card.number}`,\n expiration: card.expirity,\n flag: card.brand,\n primary_card: card.primary_card,\n };\n });\n setCreditCards(data);\n setLoading(false);\n });\n }, []);\n\n const handleCreatedCard = useCallback(\n async (data) => {\n const creditCard = data;\n setActiveAddCard(true);\n if (creditCards.length === 0) {\n await api.patch(`payments/customers/credit-cards/${creditCard.id}`);\n creditCard.primary_card = true;\n }\n setCreditCards((state) => [...state, creditCard]);\n setActiveAddCard(false);\n },\n [creditCards.length]\n );\n\n const handleDeleteCreditCard = useCallback(\n async (card: IReponseCreditCard) => {\n const newCreditCardsList = creditCards.slice();\n if (card.primary_card && creditCards.length > 1) {\n if (card === creditCards[0]) {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[1].id}`\n );\n newCreditCardsList[1].primary_card = true;\n } else {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[0].id}`\n );\n newCreditCardsList[0].primary_card = true;\n }\n }\n const cards = newCreditCardsList.filter(\n (creditCard) => creditCard.id !== card.id\n );\n setCreditCards(cards);\n },\n [creditCards]\n );\n\n const handleChangePrimaryCard = useCallback(\n async (e) => {\n const newCreditCardsList = creditCards.slice();\n const primaryCardIndex = creditCards.findIndex(\n (creditCard) => !!creditCard.primary_card\n );\n if (primaryCardIndex >= 0) {\n newCreditCardsList[primaryCardIndex].primary_card = false;\n }\n\n const cardIndex = creditCards.findIndex(\n (creditCard) => creditCard.id === e.target.value\n );\n if (cardIndex >= 0) {\n await api.patch(`payments/customers/credit-cards/${e.target.value}`);\n newCreditCardsList[cardIndex].primary_card = true;\n }\n setCreditCards(newCreditCardsList);\n },\n [creditCards]\n );\n\n const columns: IColumn[] = useMemo(\n () => [\n {\n name: '#',\n selector: '',\n className: 'text-center col-md-1',\n cellClassName:\n 'd-flex d-md-block justify-content-between align-items-center text-left text-md-center col-md-1 mb-3 mb-lg-0',\n customCell: (_, index) => (\n

{index + 1}

\n ),\n },\n {\n name: language.subscriptions_cards.th_1,\n selector: 'number',\n className: 'text-center col-md',\n cellClassName:\n 'd-flex d-md-block justify-content-between align-items-center text-right text-md-center col-md mb-3 mb-lg-0',\n customCell: (row) => (\n <>\n

{row.flag}

\n

{row.number}

\n \n ),\n },\n {\n name: language.subscriptions_cards.th_2,\n selector: 'expiration',\n className: 'text-center col-md',\n cellClassName:\n 'd-flex d-md-block justify-content-between align-items-center text-left text-md-center col-md mb-3 mb-lg-0 font-weight-400',\n },\n {\n name: language.subscriptions_cards.th_3,\n selector: 'name',\n className: 'text-center col-md',\n cellClassName:\n 'd-flex d-md-block justify-content-between align-items-center text-right text-md-center col-md mb-3 mb-lg-0 font-weight-400',\n },\n {\n name: language.subscriptions_cards.th_5,\n selector: '',\n className: 'text-center col-md',\n cellClassName:\n 'd-flex d-md-block justify-content-between align-items-center text-right text-md-center col-md mb-3 mb-lg-0',\n customCell: (row: IReponseCreditCard) => (\n \n ),\n },\n {\n name: '',\n selector: '',\n className: 'text-center col-md-1',\n cellClassName: 'text-center col-md-1 text-right',\n customCell: (row: IReponseCreditCard) => (\n \n ),\n },\n ],\n [\n handleChangePrimaryCard,\n handleDeleteCreditCard,\n language.subscriptions_cards.th_1,\n language.subscriptions_cards.th_2,\n language.subscriptions_cards.th_3,\n language.subscriptions_cards.th_5,\n ]\n );\n\n return (\n \n
\n
\n
\n
\n
\n

\n {language.subscriptions_cards.h2}\n

\n
\n \"Visa\"\n \"Mastercard\"\n \"Discover\"\n \"Amex\"\n
\n
\n \n
\n {loading && (\n
\n
\n
\n
\n

##

\n
\n
\n

Card

\n
\n
\n

Expiration Date

\n
\n
\n

Name on Card

\n
\n
\n

Primary Card

\n
\n
\n

\n

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

##

\n
\n
\n

##

\n
\n
\n
\n
\n

\n Card\n

\n
\n
\n

\n MasterCard\n

\n

\n ****-****\n

\n
\n
\n
\n
\n

\n Expiration Date\n

\n
\n
\n

\n 08/2024\n

\n
\n
\n
\n
\n

\n Name on Card\n

\n
\n
\n

\n ##### ##### #####\n

\n
\n
\n
\n
\n

\n Primary Card\n

\n
\n
\n

###

\n
\n
\n
\n
\n

\n

\n
\n \n ###\n \n
\n
\n
\n
\n
\n
\n
\n )}\n \n
\n {false && (\n <>\n
\n

\n Wire | Direct Deposit Payments\n

\n
\n
\n \n
\n
\n Company Name\n

Wiser

\n
\n
\n \n Routing | ABA\n \n

12340567

\n
\n
\n Account #\n

66998989

\n
\n
\n Swift Code\n

CHASU

\n

\n International Wires\n

\n
\n
\n Memo:\n

Product Name

\n

\n Your Name & User Name\n

\n
\n
\n \n \"copy\" copy\n \n
\n
\n
\n
\n

\n Certified Checks | Money Orders\n

\n
\n
\n
\n
\n Company Name\n
\n
\n Address\n
\n
\n Memo:\n
\n
\n
\n
\n
\n

Wiser

\n
\n
\n

1234 Roader Lane

\n

\n Costa Mesa, CA 92626 USA\n

\n
\n
\n

Product Name

\n

\n Your Name & User Name\n

\n
\n
\n
\n
\n \"Exclamation\"\n \n \n To mail a certified check | cashiers check (must be a\n bank check - no personal checks are accepted):\n \n \n
\n
\n
\n
\n

Bank Transfer

\n
\n
\n
\n \"wisser\"\n
\n
\n
\n
\n \n Company Name\n \n

Wiserr, Inc.

\n
\n
\n Account #\n

66998989

\n
\n
\n \n Swift Code:\n \n

CHASU

\n

International Wires

\n
\n
\n
\n
\n Memo:\n

Product Name

\n

Your Name & User Name

\n
\n
\n \n Routing | ABA\n \n

1234567

\n
\n
\n Address\n

\n 1234 Roader Lane, Costa Mesa, CA 92626 USA\n

\n
\n
\n \n \"copy\" copy\n \n
\n
\n
\n \"Exclamation\"\n \n \n To mail a certified check | cashiers check (must be a\n bank check - no personal checks are accepted):\n \n \n
\n
\n
\n \n )}\n
\n
\n
\n );\n};\n\nexport default PaymentOptions;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\ninterface IStatus {\n overdue: boolean;\n}\n\nexport const Container = styled.div`\n h2,\n h3 {\n font-size: 18px;\n color: var(--graniteGray);\n font-weight: 400;\n }\n\n .bg-gray {\n background: var(--coal);\n border-radius: 20px;\n }\n\n .bd-gray {\n border: solid 1px var(--closedGray);\n border-radius: 20px;\n }\n\n .table-skeleton {\n height: 100px;\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 15px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (min-width: 992px) {\n .img-width {\n width: 12vw;\n height: 10vw;\n max-width: 186px;\n max-height: 170px;\n }\n }\n\n @media screen and (max-width: 575px) {\n h2 span {\n font-size: 18px !important;\n font-weight: 500;\n }\n }\n\n @media screen and (min-width: 1200px) {\n height: 81vh;\n }\n\n @media screen and (min-width: 1600px) {\n .text-1600-right {\n text-align: right !important;\n }\n\n .d-1600-flex {\n display: flex;\n }\n }\n`;\n\nexport const Box = styled.div`\n p {\n color: var(--blizzard);\n font-size: 26px;\n font-weight: 500;\n }\n h2 {\n color: var(--technologicalGray);\n font-weight: 400;\n font-size: 18px;\n }\n\n h3 {\n color: var(--blizzard);\n font-weight: 600;\n font-size: 36px;\n }\n\n h4 {\n color: var(--blizzard);\n font-weight: 600;\n font-size: 20px;\n }\n\n .skeleton-graph {\n width: 180px;\n height: 180px;\n }\n\n .bd-radius-20 {\n background-color: transparent !important;\n\n div.tableData div {\n background-color: transparent;\n }\n }\n\n .buy-button {\n background-color: var(--closedGray);\n border: none;\n border-radius: 18px;\n\n :hover {\n background-color: var(--closedGrayLighten);\n transition: 0.5s;\n }\n\n span {\n padding: 12px 0;\n font-weight: 600;\n }\n }\n\n .search {\n border: 1px solid var(--closedGray);\n border-radius: 20px;\n\n input {\n border: none;\n background-color: transparent;\n line-height: 33px;\n }\n button {\n right: 10px;\n top: 5px;\n background: transparent;\n border: none;\n }\n\n svg {\n color: var(--graniteGray);\n }\n }\n\n span svg {\n color: var(--technologicalGray);\n font-weight: 400;\n font-size: 12px;\n }\n\n [aria-label] {\n position: relative;\n }\n\n [aria-label]::after {\n content: attr(aria-label);\n display: none;\n position: absolute;\n top: -103px;\n left: -100px;\n z-index: 5000;\n pointer-events: none;\n padding: 41px 22px;\n text-decoration: none;\n font-size: 10px;\n width: 218px;\n color: var(--technologicalGray);\n background-color: var(--asphaltGray);\n border-radius: 15px;\n text-align: start;\n filter: drop-shadow(10px 5px 12px var(--midnightOpacity));\n }\n\n [aria-label]:hover::after {\n display: block;\n }\n\n .circle {\n color: var(--ultraWhite);\n font-size: 36px;\n font-weight: 500;\n background-color: var(--greyMineral);\n border-radius: 50%;\n height: 78px;\n width: 78px;\n }\n\n @media screen and (min-width: 992px) {\n .h-lg-343 {\n height: 343px;\n }\n\n .mg-box {\n margin-bottom: 2rem !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .h-xxl-30 {\n height: 30%;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .pr-1600-3 {\n padding-right: 1rem !important;\n }\n\n .pl-1600-3 {\n padding-left: 1rem !important;\n }\n }\n\n @media screen and (max-width: 1600px) {\n .px-1600-0 {\n padding: 0 0;\n }\n\n [aria-label]::after {\n left: -110px;\n }\n }\n\n @media screen and (max-width: 1399px) {\n .circle {\n height: 64px;\n width: 64px;\n font-size: 30px;\n }\n }\n\n @media (min-width: 992px) and (max-width: 1199px) {\n p {\n font-size: 22px;\n }\n\n .circle {\n font-size: 25px;\n height: 50px;\n width: 50px;\n }\n }\n\n @media screen and (max-width: 575px) {\n p {\n font-size: 20px;\n }\n h3 {\n font-size: 30px;\n font-weight: 400;\n }\n .buy-button {\n border-radius: 15px;\n\n span {\n padding: 1px 0;\n }\n }\n .circle {\n font-size: 20px;\n height: 40px;\n width: 40px;\n }\n }\n\n @media screen and (max-width: 400px) {\n [aria-label]::after {\n left: -150px;\n }\n\n .bd-radius-20 {\n padding-left: 0px !important;\n padding-right: 0px !important;\n }\n }\n`;\n\nexport const Status = styled.span`\n color: ${(props) => (props.overdue ? 'var(--error)' : 'var(--success)')};\n font-weight: 600;\n\n @media screen and (min-width: 1600px) {\n .d-1600-none {\n display: none !important;\n }\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n p {\n color: var(--technologicalGray) !important;\n }\n h3 {\n font-weight: 400 !important;\n color: var(--ultraWhite);\n }\n h2 {\n color: var(--ultraWhite);\n }\n button {\n border: none;\n }\n\n .bd-card {\n border: 2px solid var(--greyMineral);\n border-radius: 20px;\n\n h3 {\n color: var(--technologicalGray) !important;\n }\n }\n .modal-content {\n background: var(--asphaltGray) !important;\n }\n\n .btn-color .buy-button {\n border-radius: 50px !important;\n font-weight: 400;\n padding: 0.5rem 1.5rem !important;\n background-color: var(--ultraWhite) !important;\n\n :hover {\n background-color: var(--ultraWhiteDarken) !important;\n transition: 0.3s;\n }\n span {\n color: var(--closedGray) !important;\n padding: 8px;\n }\n\n .info-alert {\n font-size: 14px !important;\n }\n }\n\n .btn-continue .buy-button {\n border-radius: 50px !important;\n font-weight: 400;\n padding: 0.5rem 1.5rem !important;\n background-color: var(--closedGray) !important;\n :hover {\n background-color: var(--closedGrayLighten) !important;\n transition: 0.3s;\n }\n span {\n color: var(--ultraWhite) !important;\n padding: 8px;\n }\n\n .info-alert {\n font-size: 14px !important;\n }\n }\n\n .bg-img {\n background-color: var(--closedGray);\n border-radius: 14px;\n }\n\n .card-terms {\n background-color: var(--asphaltGray);\n border-radius: 22px;\n }\n\n /* .height {\n height: 420px;\n p {\n color: var(--graniteGray) !important;\n font-size: 20px;\n font-weight: 300;\n margin-bottom: 1.25rem;\n }\n\n ::-webkit-scrollbar {\n background-color: var(--asphaltGray);\n width: 6px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--deepGrey) !important;\n }\n } */\n\n @media screen and (max-width: 991px) {\n .buy-button .info-alert {\n font-size: 11px !important;\n }\n }\n\n @media screen and (max-width: 450px) {\n /* .height {\n height: 300px;\n p {\n font-size: 16px;\n margin-bottom: 1rem;\n }\n } */\n\n .btn-color .buy-button {\n padding: 0.5rem 0.8rem !important;\n }\n .payment-color {\n text-align: center;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 270px;\n height: 200px;\n position: relative;\n\n .pointer-events-none {\n pointer-events: none;\n }\n\n .background {\n position: absolute;\n width: 270px;\n height: 170px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n .circle-around {\n position: absolute;\n width: 140px;\n height: 140px;\n background: radial-gradient(\n 79.65% 79.65% at 17.75% 20.35%,\n var(--closedGray) 0%,\n var(--coal) 100%\n );\n box-shadow: 1px 3px 6px var(--midnightOpacity);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: -1;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -40%);\n\n .circle-inside {\n width: 105px;\n height: 105px;\n background: radial-gradient(\n 79.65% 79.65% at 17.75% 20.35%,\n var(--asphaltGray) 0%,\n var(--asphaltGray) 12.18%,\n var(--asphaltGray) 100%\n );\n border-radius: 235px;\n transform: rotate(180deg);\n }\n }\n p {\n font-weight: 500;\n font-size: 28px;\n line-height: 34px;\n color: var(--blizzard);\n margin-bottom: 0;\n }\n span {\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n color: var(--technologicalGray);\n margin-bottom: -30px;\n }\n }\n`;\n","import { ApexOptions } from 'apexcharts';\nimport React, { useState, useMemo, useEffect } from 'react';\nimport ReactApexChart from 'react-apexcharts';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\n\ninterface IInstallments {\n status: string;\n}\n\ninterface IGraphParcel {\n installmentsData: IInstallments[];\n}\n\nconst GraphParcel: React.FC = ({ installmentsData }) => {\n const [percent, setPercent] = useState('0');\n const { language } = useLanguage();\n\n useEffect(() => {\n const succeededPaid = installmentsData.filter(\n (installment) => installment.status === 'succeeded'\n );\n\n const percentData = (succeededPaid.length * 100) / installmentsData.length;\n setPercent(percentData.toFixed(0));\n }, [installmentsData]);\n\n const series = useMemo(() => {\n let seriesAux = [];\n\n switch (installmentsData.length) {\n case 2:\n seriesAux = [50, 50];\n break;\n\n case 3:\n seriesAux = [33.33, 33.33, 33.34];\n break;\n\n case 4:\n seriesAux = [25, 25, 25, 25];\n break;\n\n case 5:\n seriesAux = [20, 20, 20, 20, 20];\n break;\n\n default:\n seriesAux = [100];\n break;\n }\n return seriesAux;\n }, [installmentsData.length]);\n\n const colors = useMemo(() => {\n const colorsAux = installmentsData.map((installment) => {\n if (installment.status === 'succeeded') {\n return '#37C694';\n }\n return '#DEDEDE';\n });\n\n return colorsAux;\n }, [installmentsData]);\n\n const options = useMemo(\n () => ({\n chart: {\n type: 'donut',\n width: '100%',\n height: '100%',\n },\n plotOptions: {\n pie: {\n startAngle: -120,\n endAngle: 120,\n donut: {\n size: '77%',\n },\n },\n },\n grid: {\n show: true,\n padding: {\n bottom: -40,\n left: 0,\n right: 0,\n },\n borderColor: '#f00',\n },\n\n tooltip: {\n enabled: false,\n },\n stroke: {\n colors: ['#F9F9F9'],\n curve: 'smooth',\n width: 5,\n lineCap: 'round',\n },\n legend: {\n show: false,\n },\n dataLabels: {\n enabled: false,\n },\n colors,\n }),\n [colors]\n );\n\n return (\n \n
\n \n
\n
\n
\n
\n
\n
 
\n

{percent}%

\n {language.payment_plans.p}\n
\n \n );\n};\n\nexport default GraphParcel;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .buy-button {\n background-color: var(--closedGray);\n border: none;\n border-radius: 20px;\n\n :hover {\n background-color: var(--closedGrayLighten);\n transition: 0.5s;\n }\n\n :disabled {\n background-color: var(--closedGrayOpacity);\n color: var(--blizzardOpacity);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .info-alert {\n display: block;\n background-color: var(--deepGrey);\n position: absolute;\n border-radius: 50px;\n top: -55px;\n left: 0;\n opacity: 0;\n visibility: hidden;\n transition-duration: 0.3s;\n z-index: 1;\n height: 50px;\n min-width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :after {\n content: '';\n position: absolute;\n width: 15px;\n height: 15px;\n transform: rotateZ(45deg);\n background: var(--deepGrey);\n bottom: -3px;\n left: 15%;\n z-index: -1;\n }\n }\n\n :hover {\n .info-alert {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n`;\n","import styled from 'styled-components';\nimport { lighten } from 'polished';\n\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Container = styled.div`\n height: 100%;\n`;\n\nexport const Modal = styled(ModalComponent)`\n .modal-binance-btn {\n color: #303030;\n background-color: #fcd535;\n border-radius: 12px;\n transition-duration: 0.3s;\n\n :hover {\n color: ${lighten(0.1, '#303030')}!important;\n background-color: ${lighten(0.1, '#fcd535')}!important;\n }\n }\n`;\n","import React, { useCallback, useState } from 'react';\nimport { io } from 'socket.io-client';\nimport Swal from 'sweetalert2';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport { Container, Modal } from './styles';\nimport binanceLogo from '~/assets/logotipos/binance-logo.png';\nimport binanceSvg from '~/assets/logotipos/binance-logo.svg';\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface IBinancePayProps {\n order_id?: string;\n product_id: string;\n title: string;\n price: string;\n totalPrice?: string;\n installments?: number;\n anticipated?: boolean;\n onSucceededPaid?(data?: { id: string }): void;\n}\n\nconst socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n});\n\nconst BinancePay: React.FC = ({\n order_id,\n product_id,\n title,\n price,\n totalPrice,\n installments,\n anticipated,\n onSucceededPaid,\n}) => {\n const { language } = useLanguage();\n const [showBinance, setShowBinance] = useState(false);\n const [qrCodeLink, setQrCodeLink] = useState('');\n\n const handleBinanceClose = useCallback(() => setShowBinance(false), []);\n const handleBinanceShow = useCallback(async () => {\n try {\n const data = {\n order_id,\n product_id,\n amount: parseFloat(price),\n installments,\n anticipated,\n };\n const response = await api.post('payments/binance-pay', data);\n if (response.data) {\n let orderId = response.data.id;\n if (!anticipated) {\n orderId = order_id;\n }\n socket.emit('connectRoom', 'payment');\n socket.on(`order-${orderId}`, (status: string) => {\n if (status === 'succeeded' && onSucceededPaid) {\n onSucceededPaid(response.data);\n handleBinanceClose();\n }\n });\n setQrCodeLink(response.data.qrcodeLink);\n setShowBinance(true);\n } else {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n } catch (error) {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n }, [\n anticipated,\n handleBinanceClose,\n installments,\n language.error_component.error_message,\n onSucceededPaid,\n order_id,\n price,\n product_id,\n ]);\n\n return (\n \n \n \"Binace\"\n Bincance Pay\n \n\n \n \n \n \n \"Close\"\n \n \n \n
\n

\n Binance Pay\n \"Binance\"\n

\n
\n
\n
\n \n

{language.buy_product_button_binance.h4}

\n

\n {language.buy_product_button_binance.span_1}{' '}\n {language.buy_product_button_binance.p_1}\n

\n

\n {language.buy_product_button_binance.span_2}{' '}\n {language.buy_product_button_binance.p_2}\n

\n
\n \n {language.buy_product_button_binance.a}\n \n
\n
\n
\n

{title}

\n
\n \n
\n
\n

${price}

\n {totalPrice && ${totalPrice}}\n
\n
\n
\n
\n \n \n
\n );\n};\n\nexport default BinancePay;\n","import styled, { css } from 'styled-components';\n\ninterface ContainerProps {\n isFilled: boolean;\n isFocuses: boolean;\n isErrored: boolean;\n}\n\nexport const Container = styled.div`\n border-radius: 10px;\n border: 1.5px solid #3e3e3e;\n padding: 5px 10px;\n width: 100%;\n display: flex;\n align-items: center;\n\n + div {\n margin-top: 8px;\n }\n\n textarea {\n flex: 1;\n background: transparent;\n border: 0;\n color: #f4ede8;\n transition-duration: 0.2s;\n\n ::placeholder {\n color: #666360;\n }\n }\n\n svg {\n margin-right: 16px;\n color: #666360;\n transition-duration: 0.2s;\n }\n\n ${(props) =>\n props.isErrored &&\n css`\n border-color: #c53030;\n `}\n\n ${(props) =>\n props.isFilled &&\n css`\n svg {\n color: #b58533;\n }\n `}\n\n ${(props) =>\n props.isFocuses &&\n css`\n color: #606060;\n border-color: #606060;\n\n svg {\n color: #b58533;\n }\n `}\n`;\n","import React, {\n FC,\n TextareaHTMLAttributes,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from 'react';\nimport { useField } from '@unform/core';\n\nimport { Container } from './styles';\n\ninterface TextAreaProps extends TextareaHTMLAttributes {\n name: string;\n hasError?(hasError: boolean): void;\n}\n\nconst Textarea: FC = ({\n name,\n hasError,\n className,\n ...rest\n}) => {\n const inputRef = useRef(null);\n const [isFocuses, setIsFocuses] = useState(false);\n const [isFilled, setIsFilled] = useState(false);\n const { fieldName, defaultValue, error, registerField } = useField(name);\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n });\n }, [fieldName, registerField]);\n\n useEffect(() => {\n if (hasError) {\n hasError(!!error);\n }\n }, [error, hasError]);\n\n const handleTextareaFocus = useCallback(() => {\n setIsFocuses(true);\n }, []);\n\n const handleTextareaBlur = useCallback(() => {\n setIsFocuses(false);\n setIsFilled(!!inputRef.current?.value);\n }, []);\n\n return (\n <>\n \n \n \n {error && {error}}\n \n );\n};\n\nexport default Textarea;\n","import styled from 'styled-components';\n\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\ninterface ICopyAlertProps {\n show: boolean;\n}\n\nexport const Container = styled.div`\n height: 100%;\n`;\n\nexport const CopyAlert = styled.div`\n transition-duration: 0.3s;\n position: fixed;\n right: ${(props) => (props.show ? '25px' : '-150px')};\n bottom: 50px;\n z-index: 1400;\n color: var(--success);\n background-color: transparent;\n border-color: var(--success);\n`;\n\nexport const Modal = styled(ModalComponent)`\n .btn-confirm,\n .btn-submit-tether {\n background: var(--technologicalGray);\n border-radius: 15px;\n color: var(--ultraWhite);\n border: 0;\n width: 100%;\n padding: 10px 0;\n height: 54px;\n margin-top: 35px;\n\n :hover {\n background-color: var(--technologicalGrayLighten) !important;\n transition: 0.5s !important;\n }\n }\n`;\n","import React, { useCallback, useState } from 'react';\n\nimport Swal from 'sweetalert2';\nimport { Form } from '@unform/web';\nimport Textarea from '~/components/Textarea';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport { Container, CopyAlert, Modal } from './styles';\n\nimport tetherLogo from '~/assets/logotipos/tether-logo.png';\nimport tetherSvg from '~/assets/logotipos/tether-logo.svg';\nimport closeIcon from '~/assets/icons/close.svg';\nimport qrCodeTether from '~/assets/defaults/qr-code-tether.png';\nimport copy from '~/assets/icons/copy.svg';\nimport example from '~/assets/defaults/img-example1.png';\n\ninterface ITetherPayProps {\n order_id?: string;\n product_id: string;\n title: string;\n price: string;\n totalPrice?: string;\n installments?: number;\n anticipated?: boolean;\n}\n\nconst TetherPay: React.FC = ({ title, price, totalPrice }) => {\n const { language } = useLanguage();\n const [showTether, setShowTether] = useState(false);\n const [orderId] = useState('');\n const [alreadyPaid, setAlreadyPaid] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const handleTetherClose = useCallback(() => setShowTether(false), []);\n const handleTetherShow = useCallback(async () => {\n setShowTether(true);\n }, []);\n\n const handleSubmit = useCallback(\n async ({ transaction_hash }) => {\n try {\n const response = await api.patch(`orders/products/${orderId}`, {\n transaction_hash,\n });\n\n if (response.data) {\n Swal.fire(\n language.error_component.all_right_message,\n language.error_component.verification_message,\n 'success'\n ).then(() => {\n handleTetherClose();\n setAlreadyPaid(false);\n });\n }\n } catch (error) {\n Swal.fire('Opss...', language.error_component.error_message, 'error');\n }\n },\n [\n handleTetherClose,\n language.error_component.all_right_message,\n language.error_component.error_message,\n language.error_component.verification_message,\n orderId,\n ]\n );\n\n const copyAddress = useCallback(() => {\n const el = document.createElement('textarea');\n el.value = 'TMwjeYr7me4M4GVHmwy6MWTtsUXQw3tRTo';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 1000);\n }, []);\n\n return (\n \n \n \"Tether\"\n Tether
\n {language.buy_product_button.span}\n \n\n \n \n \n \n \"Close\"\n \n \n \n {!alreadyPaid ? (\n <>\n
\n

\n {title}\n

\n
\n
\n
\n

\n {price} USDT{' '}\n \n

\n {totalPrice && (\n ${totalPrice}\n )}\n
\n \n
\n \n TMwjeYr7me4M4GVHmwy6MWTtsUXQw3tRTo\n \"copy\"\n \n setAlreadyPaid(true)}\n className=\"btn-confirm\"\n >\n {language.buy_product_button_tether.button_1}\n \n
\n
\n \n ) : (\n <>\n
\n

\n {language.buy_product_button_tether.h3}\n

\n\n
\n

\n \n {language.buy_product_button_tether.span}\n \n

\n \n
\n
\n \n \n \n {language.buy_product_button_tether.button_2}\n \n \n \n )}\n
\n \n
\n \n

Copied

\n
\n
\n );\n};\n\nexport default TetherPay;\n","import styled from 'styled-components';\nimport { lighten } from 'polished';\n\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Container = styled.div`\n height: 100%;\n\n .max-width {\n max-width: 120px !important;\n }\n`;\nexport const Modal = styled(ModalComponent)`\n .gray-button {\n :hover {\n background-color: ${lighten(0.1, '#4a4b4b')}!important;\n transition: 0.5s;\n }\n }\n`;\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useCallback, useState, useRef } from 'react';\nimport { loadStripe } from '@stripe/stripe-js';\n\nimport Swal from 'sweetalert2';\nimport { Form } from '@unform/web';\nimport { FormHandles } from '@unform/core';\nimport * as Yup from 'yup';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport getValidationErros from '~/utils/getValidationsErrors';\nimport RemoveCreditCard, { IReponseCreditCard } from '../RemoveCreditCard';\nimport Input from '../Input';\n\nimport { Container, Modal } from './styles';\nimport AddCreditCard from '../AddCreditCard';\n\nimport visa from '~/assets/icons/cc-visa.svg';\nimport mastercard from '~/assets/icons/cc-mastercard.svg';\nimport discover from '~/assets/icons/cc-discover.svg';\nimport amex from '~/assets/icons/cc-amex.svg';\nimport ccDefault from '~/assets/icons/cc-default.svg';\nimport cardLogo from '~/assets/logotipos/credit-card-logo.png';\nimport wallet from '~/assets/icons/wallet.svg';\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface IBuyCreditCardProps {\n product_id: string;\n onSucceededPaid?(data?: { id: string }): void;\n}\n\ninterface IDataPayment {\n credit_card: string;\n}\n\ninterface ICreditCardResponse {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n primary_card: boolean;\n}\n\ninterface ICreditCard {\n id: string;\n name: string;\n number: string;\n expirity: string;\n brand: string;\n brandIcon: string;\n primary_card: boolean;\n}\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_TOKEN as string);\n\nconst CreditCardPay: React.FC = ({\n product_id,\n onSucceededPaid,\n}) => {\n const formRef = useRef(null);\n const { language } = useLanguage();\n\n const [showCreditCard, setShowCreditCard] = useState(false);\n const [paymentMethods, setPaymentMethods] = useState([]);\n const [cardSelected, setCardSelected] = useState('');\n const [showAdd, setShowAdd] = useState(false);\n const [processing, setProcessing] = useState(false);\n\n const handleCreditCardClose = useCallback(() => setShowCreditCard(false), []);\n const handleCreditCardShow = useCallback(async () => {\n const response = await api.get(\n 'payments/customers/credit-cards'\n );\n if (response.data.length > 0) {\n const data: ICreditCard[] = response.data.map((creditCard) => {\n let brandIcon;\n switch (creditCard.brand) {\n case 'Visa':\n brandIcon = visa;\n break;\n\n case 'MasterCard':\n brandIcon = mastercard;\n break;\n\n case 'Discover':\n brandIcon = discover;\n break;\n\n case 'American Express':\n brandIcon = amex;\n break;\n\n default:\n brandIcon = ccDefault;\n break;\n }\n if (creditCard.primary_card) {\n setCardSelected(creditCard.id);\n }\n return {\n id: creditCard.id,\n name: creditCard.name,\n number: creditCard.number,\n expirity: creditCard.expirity,\n primary_card: creditCard.primary_card,\n brand: creditCard.brand,\n brandIcon,\n };\n });\n setPaymentMethods(data);\n setShowCreditCard(true);\n } else {\n setShowCreditCard(true);\n setShowAdd(true);\n }\n }, []);\n\n const handleAddCardClose = useCallback(\n (active) => {\n if (active) {\n setShowAdd(false);\n }\n if (paymentMethods.length <= 0) {\n setShowCreditCard(false);\n }\n },\n [paymentMethods.length]\n );\n\n const handleClick = useCallback(async (id) => {\n setCardSelected(id);\n }, []);\n\n const handleCreatedCard = useCallback((card) => {\n let brandIcon;\n switch (card.flag) {\n case 'Visa':\n brandIcon = visa;\n break;\n\n case 'MasterCard':\n brandIcon = mastercard;\n break;\n\n case 'Discover':\n brandIcon = discover;\n break;\n\n case 'American Express':\n brandIcon = amex;\n break;\n\n default:\n brandIcon = ccDefault;\n break;\n }\n\n const data = {\n id: card.id,\n name: card.name,\n number: card.number,\n expirity: card.expirity,\n primary_card: card.primary_card,\n brand: card.flag,\n brandIcon,\n };\n setPaymentMethods((state) => [...state, data]);\n setShowAdd(false);\n }, []);\n\n const handlePay = useCallback(\n async (data: IDataPayment) => {\n setProcessing(true);\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n credit_card: Yup.string().required(language.buy_component.yup),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n const payment_method = data.credit_card;\n const stripe = await stripePromise;\n\n if (stripe) {\n const response = await api.post(`payments/credit-cards`, {\n product_id,\n payment_method,\n });\n\n if (response.data) {\n const result = await stripe.confirmCardPayment(\n response.data.payment.client_secret\n );\n\n if (\n result.paymentIntent &&\n result.paymentIntent.status === 'succeeded'\n ) {\n const responseOrder = await api.patch(\n `orders/close/${response.data.order.id}`\n );\n if (onSucceededPaid) {\n onSucceededPaid(responseOrder.data);\n }\n }\n\n if (result.error) {\n Swal.fire('Opss...', result.error.message, 'error').then(() =>\n setProcessing(false)\n );\n }\n }\n }\n } catch (err) {\n if (err instanceof Yup.ValidationError) {\n const errors = getValidationErros(err);\n formRef.current?.setErrors(errors);\n setProcessing(false);\n } else {\n Swal.fire(\n 'Opss...',\n language.error_component.error_message,\n 'error'\n ).then(() => setProcessing(false));\n }\n }\n },\n [\n language.buy_component.yup,\n language.error_component.error_message,\n product_id,\n onSucceededPaid,\n ]\n );\n\n const handleDeleteCreditCard = useCallback(\n async (card) => {\n const newCreditCardsList = paymentMethods.slice();\n if (card.primary_card && paymentMethods.length > 1) {\n if (card === paymentMethods[0]) {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[1].id}`\n );\n newCreditCardsList[1].primary_card = true;\n } else {\n await api.patch(\n `payments/customers/credit-cards/${newCreditCardsList[0].id}`\n );\n newCreditCardsList[0].primary_card = true;\n }\n }\n const cards = newCreditCardsList.filter(\n (creditCard) => creditCard.id !== card.id\n );\n\n const primaryCard = newCreditCardsList.find(\n (creditCard) => !!creditCard.primary_card\n );\n if (primaryCard) {\n setCardSelected(primaryCard.id);\n }\n setPaymentMethods(cards);\n },\n [paymentMethods]\n );\n\n return (\n \n \n \n {language.buy_product_button.button_1}\n \n\n \n \n \n \"Close\"\n \n \n \n

\n \"wallet\"\n {language.buy_component.h4_1}\n

\n
\n
\n
\n \n
\n
\n
\n {paymentMethods.map((card, index) => (\n handleClick(card.id)}\n className={`${\n cardSelected === card.id ? 'gray-button' : ''\n } bg-payment-cards px-4 px-lg-0 py-3 mt-4 d-block`}\n >\n
\n
\n \n
\n
\n

\n {card.brand}:  ****-{card.number}\n

\n
\n
\n \n
\n
\n \n \n ))}\n
\n
\n \n \n {processing ? (\n
\n ) : (\n language.buy_component.button_5\n )}\n \n \n
\n \n
\n
\n \n \n \n \n );\n};\n\nexport default CreditCardPay;\n","import styled, { css } from 'styled-components';\n\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\ninterface IGiftInputProps {\n isError: boolean;\n}\n\nexport const Container = styled.div`\n height: 100%;\n`;\n\nexport const ModalGiftCard = styled(ModalComponent)`\n label {\n color: var(--grayImmensity);\n font-weight: 400;\n font-size: 14px;\n }\n\n form {\n button {\n background-color: var(--greyMineral);\n color: var(--blizzard);\n border-radius: 10px;\n border: 1px solid var(--greyMineral);\n\n :hover {\n background-color: var(--greyMineralLighten);\n transition: 0.5s;\n }\n }\n }\n\n .height-gift {\n height: 22px;\n }\n\n .border-input {\n border-radius: 10px;\n border: 1.5px solid var(--closedGray);\n }\n\n @media screen and (max-width: 350px) {\n .w-80-350 {\n width: 80% !important;\n }\n }\n`;\n\nexport const GiftInput = styled.div`\n span {\n position: absolute;\n padding: 0 10px;\n }\n\n ${(props) =>\n props.isError\n ? css`\n border-color: var(--error) !important;\n `\n : ''}\n`;\n","import styled, { css } from 'styled-components';\n\ninterface ContainerProps {\n isFilled: boolean;\n isFocuses: boolean;\n isErrored: boolean;\n}\n\nexport const Container = styled.div`\n background: var(--asphaltGray);\n border-radius: 10px;\n border: 1.5px solid var(--deepGrey);\n padding: 5px 10px;\n width: 100%;\n display: flex;\n align-items: center;\n\n + div {\n margin-top: 8px;\n }\n\n div {\n width: 100%;\n position: relative;\n\n .button-show {\n position: absolute;\n top: -6px;\n right: -10px;\n width: 60px;\n text-align: center;\n background: none;\n border: 0;\n border-left: 1px solid var(--ultraWhiteOpacity);\n padding: 6px 10px 5px;\n color: var(--graniteGray);\n }\n }\n\n input {\n flex: 1;\n background: transparent;\n border: 0;\n color: var(--graniteGray);\n transition-duration: 0.2s;\n\n ::placeholder {\n color: var(--deepGrey);\n }\n }\n\n svg {\n margin-right: 16px;\n color: var(--deepGrey);\n transition-duration: 0.2s;\n }\n\n ${(props) =>\n props.isErrored &&\n css`\n border-color: var(--error);\n `}\n\n ${(props) =>\n props.isFilled &&\n css`\n svg {\n color: var(--graniteGray);\n }\n `}\n\n ${(props) =>\n props.isFocuses &&\n css`\n color: var(--graniteGray);\n border-color: var(--graniteGray);\n\n svg {\n color: var(--graniteGray);\n }\n `}\n`;\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { useField } from '@unform/core';\nimport TextInputMask from 'react-masked-text';\n\nimport { Container } from './styles';\n\ninterface MaskInputProps {\n kind: string;\n name: string;\n onChange?(event: any): void;\n onFocus?(event: any): void;\n onBlur?(event: any): void;\n value?: string;\n placeholder?: string;\n id?: string;\n className?: string;\n options?: {\n mask?: string;\n format?: string;\n unit?: string;\n separator?: string;\n delimiter?: string;\n };\n required?: boolean;\n errorMessage?: string;\n}\n\nconst MaskInput: React.FC = ({\n kind,\n name,\n onChange,\n onFocus,\n onBlur,\n value,\n placeholder,\n id,\n className,\n options,\n required,\n errorMessage,\n}) => {\n const maskRef = useRef(null);\n const [newValue, setNewValue] = useState(undefined);\n const [isFocuses, setIsFocuses] = useState(false);\n const [isFilled, setIsFilled] = useState(false);\n\n const { fieldName, error, registerField } = useField(name);\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: maskRef.current,\n path: 'props.value',\n });\n }, [fieldName, registerField]);\n\n useEffect(() => {\n setNewValue(value);\n }, [value]);\n\n const handleChange = useCallback(\n (e) => {\n if (onChange && maskRef.current) {\n const data = {\n target: {\n name: maskRef.current.props.name,\n value: e,\n },\n };\n onChange(data);\n }\n setNewValue(e);\n },\n [onChange]\n );\n\n const handleFocus = useCallback(\n (e) => {\n setIsFocuses(true);\n if (onFocus) {\n onFocus(e);\n }\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (e) => {\n setIsFocuses(false);\n if (onBlur) {\n onBlur(e);\n }\n setIsFilled(!!e.target.value);\n },\n [onBlur]\n );\n\n return (\n <>\n \n \n \n {(errorMessage || error) && (\n {errorMessage || error}\n )}\n \n );\n};\n\nexport default MaskInput;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n\n > img {\n opacity: 0;\n width: 90%;\n }\n\n .ReactCreditCard__container {\n position: absolute;\n top: 0;\n left: 0;\n width: 100% !important;\n height: 100%;\n min-height: 160px;\n\n .ReactCreditCard__front {\n display: flex;\n flex-direction: column;\n\n .nfc {\n opacity: 0;\n align-self: flex-end;\n padding: 40px;\n transition: 0.3s;\n }\n\n .wiserr-gift {\n opacity: 0;\n display: flex;\n align-items: center;\n padding: 25px 20px;\n transition: 0.3s;\n\n div {\n display: block;\n height: 25px;\n width: 1px;\n background: #fff;\n margin: 0 10px;\n }\n\n p {\n margin-bottom: 0;\n color: #fff;\n font-size: 22px;\n }\n }\n }\n\n .ReactCreditCard__name {\n text-transform: capitalize;\n max-height: 50px;\n }\n\n .ReactCreditCard--giftcard {\n .ReactCreditCard__front {\n background: linear-gradient(180deg, #ec008c 0%, #fc6767 100%);\n\n .wiserr-gift {\n opacity: 1;\n }\n\n .nfc {\n opacity: 1;\n padding: 0 40px;\n }\n\n .spacer {\n height: 80px;\n }\n\n .ReactCreditCard__logo {\n opacity: 1;\n height: 50px;\n width: 50px;\n top: 10px;\n }\n\n .ReactCreditCard__display {\n opacity: 1;\n width: 100%;\n font-size: 21px;\n span {\n font-size: 14px;\n color: #fff;\n }\n }\n\n .ReactCreditCard__number {\n margin-bottom: 51px;\n }\n }\n }\n }\n\n @media screen and (max-width: 991px) {\n .ReactCreditCard__container {\n .wiserr-gift {\n padding-bottom: 0 !important;\n }\n\n .ReactCreditCard__logo {\n width: 20%;\n margin-top: 5%;\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n .ReactCreditCard__container {\n left: -50%;\n transform: translateX(50%);\n\n .ReactCreditCard__logo {\n margin-top: 0;\n }\n\n .nfc {\n display: none !important;\n }\n }\n }\n\n @media screen and (max-width: 399px) {\n .ReactCreditCard__container {\n .ReactCreditCard__logo {\n margin-top: 10%;\n }\n\n .ReactCreditCard--giftcard {\n .ReactCreditCard__front {\n .ReactCreditCard__display {\n font-size: 18px;\n }\n\n .ReactCreditCard__logo {\n height: 30px;\n width: 30px;\n }\n }\n\n .wiserr-gift p {\n font-size: 18px;\n }\n }\n }\n }\n\n @media screen and (max-width: 330px) {\n .ReactCreditCard__container {\n left: -51%;\n }\n }\n\n @media screen and (max-width: 325px) {\n .ReactCreditCard__container {\n left: -53.5%;\n }\n }\n`;\n","import React, { useState, useEffect } from 'react';\n\nimport { Container } from './styles';\n\nimport giftCard from '~/assets/defaults/gift-card.png';\nimport wiserr from '~/assets/logotipos/wiserr-white-logo.svg';\nimport gift from '~/assets/defaults/gift.png';\nimport nfc from '~/assets/icons/nfc-icon.svg';\n\ninterface ICard {\n value: string;\n presentedBy: string;\n className?: string;\n}\n\nconst Card: React.FC = ({ value, presentedBy, className }) => {\n const [giftValue, setGiftValue] = useState('••••-••••-••••-••••');\n const [giftActive, setGiftActive] = useState(false);\n\n useEffect(() => {\n const placeHolder = '••••-••••-••••-••••';\n if (value.length > 0) {\n const numcharacters = value.length;\n const newState = `${value}${placeHolder.slice(numcharacters)}`;\n setGiftValue(newState);\n } else {\n setGiftValue(placeHolder);\n }\n }, [value]);\n\n useEffect(() => {\n setGiftActive(giftValue !== '••••-••••-••••-••••');\n }, [giftValue]);\n\n return (\n \n \"card\"\n
\n \n
\n
\n \"Wiserr\n
\n

Wiserr Gift Card

\n
\n
\n \"nfc\"\n
\n
\n \"visa\"\n
\n {giftValue}\n
\n
\n Gifted by\n
\n {presentedBy}\n
\n
\n
\n
\n
\n
\n
\n •••\n
\n
\n
\n
\n \n );\n};\n\nexport default Card;\n","import React, { useCallback, useState, useRef } from 'react';\nimport { Form } from '@unform/web';\nimport { FormHandles } from '@unform/core';\nimport * as Yup from 'yup';\nimport Swal from 'sweetalert2';\nimport { AxiosError } from 'axios';\n\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport getValidationErros from '~/utils/getValidationsErrors';\n\nimport { Container, ModalGiftCard, GiftInput } from './styles';\nimport InputMask from '../InputMask';\nimport Card from '../Card';\n\nimport giftLogo from '~/assets/logotipos/gift-card-logo.svg';\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface IPaymentData {\n hash: string;\n}\ninterface IGiftCardPayProps {\n order_id?: string;\n product_id: string;\n price: string;\n anticipated?: boolean;\n onSucceededPaid?(data?: { id: string }): void;\n}\n\nconst GiftCardPay: React.FC = ({\n order_id,\n product_id,\n price,\n anticipated,\n onSucceededPaid,\n}) => {\n const { language } = useLanguage();\n const formRef = useRef(null);\n const [showGiftCard, setShowGiftCard] = useState(false);\n const [giftValue, setGiftValue] = useState('');\n const [presentedBy, setPresentedBy] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n\n const handleGiftCardClose = useCallback(() => setShowGiftCard(false), []);\n const handleGiftCardShow = useCallback(async () => {\n setShowGiftCard(true);\n }, []);\n\n const handleChange = useCallback(async (e) => {\n const hash = e.target.value;\n setGiftValue(hash);\n if (hash.length === 19) {\n try {\n const response = await api.get(`gift-cards/${hash}`);\n if (response.data) {\n const name = response.data.created_by.split(' ');\n setPresentedBy(`${name[0]} ${name[name.length - 1]}`);\n setErrorMessage('');\n }\n } catch (err) {\n const error = err as AxiosError;\n if (error.response?.data) {\n setErrorMessage(error.response.data.message);\n }\n }\n } else {\n setErrorMessage('');\n setPresentedBy('');\n }\n }, []);\n\n const handleSubmit = useCallback(\n async (data: IPaymentData) => {\n try {\n formRef.current?.setErrors({});\n const schema = Yup.object().shape({\n hash: Yup.string().required(language.gift_required.required),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n });\n\n const { hash } = data;\n\n const formData = {\n order_id,\n product_id,\n amount: parseFloat(price),\n hash,\n anticipated,\n };\n\n const response = await api.post('payments/gift-cards', formData);\n\n if (response.data) {\n if (onSucceededPaid) {\n onSucceededPaid(response.data);\n }\n handleGiftCardClose();\n }\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n setErrorMessage(errors.hash);\n } else {\n const err = error as AxiosError;\n if (\n err.response?.data &&\n err.response.data.message ===\n 'Gift card invalid for this franchise or course'\n ) {\n Swal.fire(\n 'Opss...',\n language.error_component.error_message_axios,\n 'error'\n );\n } else {\n Swal.fire(\n 'Opss...',\n language.error_component.error_message,\n 'error'\n );\n }\n }\n }\n },\n [\n anticipated,\n handleGiftCardClose,\n language.error_component.error_message,\n language.error_component.error_message_axios,\n language.gift_required.required,\n onSucceededPaid,\n order_id,\n price,\n product_id,\n ]\n );\n\n return (\n \n \n \"Gift\n Gift Card\n \n\n \n \n \n \n \"Close\"\n \n \n \n
\n

\n {language.buy_product_button_gift_card.title}\n

\n
\n
\n
\n \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {language.buy_product_button_gift_card.button}\n \n \n
\n
\n
\n \n \n
\n );\n};\n\nexport default GiftCardPay;\n","import React, { useCallback, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { Modal } from 'react-bootstrap';\n\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container } from './styles';\nimport BinancePay from '~/components/BinancePay';\nimport TetherPay from '~/components/TetherPay';\nimport CreditPay from '~/components/CreditCardPay';\nimport GiftPay from '~/components/GiftCardPay';\n\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface IBuyButtonProps {\n order_id?: string;\n product_id: string;\n title: string;\n description?: string;\n price: string;\n totalPrice?: string;\n className?: string;\n purchased?: boolean;\n disabled?: boolean;\n info?: string;\n installments?: number;\n anticipated?: boolean;\n onSucceededPaid?(data?: { id: string }): void;\n}\n\nconst BuyButton: React.FC = ({\n order_id,\n product_id,\n title,\n price,\n totalPrice,\n className,\n purchased,\n disabled,\n info,\n installments,\n anticipated,\n onSucceededPaid,\n children,\n}) => {\n const { language } = useLanguage();\n const [show, setShow] = useState(false);\n const location = useLocation();\n\n const handleClose = useCallback(() => setShow(false), []);\n const handleShow = useCallback(async () => {\n setShow(true);\n }, []);\n\n const handleSucceededPaid = useCallback(\n (data) => {\n if (onSucceededPaid) {\n onSucceededPaid(data);\n }\n handleClose();\n },\n [handleClose, onSucceededPaid]\n );\n\n return (\n \n \n \n {purchased ? (\n language.buy_component.button_1\n ) : (\n <>\n {children && children.toString().length > 0\n ? children\n : language.buy_component.button_2}\n \n )}\n \n {info && disabled && {info}}\n \n\n \n \n \n \n \n \n
\n

\n {language.buy_product_button.h3}\n

\n
\n
\n
\n \n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n \n \n \n \n );\n};\n\nexport default BuyButton;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { MdInfoOutline } from 'react-icons/md';\nimport { differenceInDays, parseISO, getDate, getYear, format } from 'date-fns';\n\nimport api from '~/services/api';\n\nimport { Container, Box, Status, Modal } from './styles';\nimport Graph from '~/components/GraphParcel';\nimport Table from '~/components/Table';\nimport BuyButton from '~/components/BuyButton';\nimport { useLanguage } from '~/hooks/Language';\nimport { formatPrice } from '~/utils/format';\nimport closeIcon from '~/assets/icons/close.svg';\nimport walletIcon from '~/assets/icons/wallet.svg';\nimport check from '~/assets/icons/check.svg';\n\ninterface IProduct {\n id: string;\n name: string;\n price: number;\n}\n\ninterface IOffer {\n id: string;\n title: string;\n price: number;\n}\n\ninterface ISubOrderResponse {\n id: string;\n amount_paid: string;\n updated_at: string;\n}\n\ninterface IInstallmentOrderResponse {\n id: string;\n status: string;\n current_installment: number;\n amount_paid: string;\n due_date?: string;\n installments: number;\n updated_at: string;\n subOrders: ISubOrderResponse[];\n merchant_id: string;\n anticipated: boolean;\n deleted_at?: Date;\n}\n\ninterface IInstallmentResponse {\n id: string;\n status: string;\n current_installment: number;\n amount_paid: string;\n due_date?: string;\n installments: number;\n installmentsOrders: IInstallmentOrderResponse[];\n product: IProduct;\n offer: IOffer;\n merchant_id: string;\n updated_at: string;\n}\n\ninterface IInstallmentData {\n status: string;\n}\n\ninterface IPayment {\n id: string;\n date: string;\n amount: string;\n anticipated: boolean;\n}\n\ninterface IInstallment {\n id: string;\n product_id: string;\n offer_id: string;\n name: string;\n status: string;\n credit_amount: string;\n installmentsData: IInstallmentData[];\n amount: string;\n paid: string;\n left_pay: string;\n due_day: number;\n due_month: string;\n due_year: number;\n overdue: boolean;\n all_paid: boolean;\n save: string;\n remaining_amount: string;\n order_id: string;\n payments: IPayment[];\n anticipated: boolean;\n anticipated_amount: string;\n}\n\ninterface IPaymentOptionsProps {\n active: boolean;\n}\n\nconst PaymentPlans: React.FC = ({ active }) => {\n const { language } = useLanguage();\n const [installments, setInstallments] = useState([]);\n const [installmentSelectedData, setInstallmentsSelectedData] = useState<\n IInstallment\n >({} as IInstallment);\n const [loading, setLoading] = useState(true);\n const [show, setShow] = useState(false);\n const handleClose = useCallback(() => {\n setShow(false);\n setInstallmentsSelectedData({} as IInstallment);\n }, []);\n const handleShow = useCallback(async (installment) => {\n setInstallmentsSelectedData(installment);\n if (installment.product_id) {\n setShow(true);\n }\n }, []);\n\n useEffect(() => {\n api.get('orders/users').then((response) => {\n const responseData = response.data.filter(\n (installment) => !!installment.product || !!installment.offer\n );\n\n const data: IInstallment[] = responseData.map((installment) => {\n const current_date = new Date();\n let name = '';\n if (installment.product) {\n name = installment.product.name;\n } else {\n name = installment.offer.title;\n }\n\n const installmentSelected: IInstallment = {\n id: '',\n product_id: installment.product ? installment.product.id : '',\n offer_id: installment.offer ? installment.offer.id : '',\n name,\n status: '',\n credit_amount: '',\n installmentsData: [],\n amount: '',\n paid: '',\n left_pay: '',\n due_day: 0,\n due_month: '',\n due_year: 0,\n overdue: false,\n all_paid: false,\n save: '',\n remaining_amount: '',\n order_id: installment.id,\n payments: [],\n anticipated: false,\n anticipated_amount: '$0.00',\n };\n\n const installmentsDatas: IInstallmentData[] = [];\n const installmentData: IInstallmentData = {\n status: installment.status,\n };\n\n let paid = 0;\n let anticipated_amount = 0;\n let left_pay = 0;\n let save = 0;\n\n installmentsDatas.push(installmentData);\n\n let descountData: {\n discount: number;\n price: number;\n }[] = [];\n\n if (installment.product) {\n descountData = [\n {\n discount:\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.25\n ) - parseFloat(installment.product.price.toString()),\n price:\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0,\n },\n {\n discount:\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.25\n ) -\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.1\n ),\n price: parseFloat(\n (\n (parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.1) /\n 2\n ).toFixed(0)\n ),\n },\n {\n discount:\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.25\n ) -\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.15\n ),\n price: parseFloat(\n (\n (parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.15) /\n 3\n ).toFixed(0)\n ),\n },\n {\n discount:\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.25\n ) -\n Math.ceil(\n parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.2\n ),\n price: parseFloat(\n (\n (parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.2) /\n 4\n ).toFixed(0)\n ),\n },\n {\n discount: 0,\n price: parseFloat(\n (\n (parseFloat(installment.product.price.toString()) +\n parseFloat(installment.product.price.toString()) * 0.25) /\n 5\n ).toFixed(0)\n ),\n },\n ];\n }\n\n if (installment.status !== 'succeeded') {\n installmentSelected.id = installment.id;\n left_pay += parseFloat(installment.amount_paid);\n\n const due_date = parseISO(\n installment.due_date || installment.updated_at\n );\n\n const diffDay = differenceInDays(due_date, current_date);\n\n if (diffDay < 0) {\n const day = diffDay * -1;\n if (day === 1) {\n installmentSelected.status = `${day} ${language.payment_plans.status_1}`;\n } else {\n installmentSelected.status = `${day} ${language.payment_plans.status_2}`;\n }\n installmentSelected.overdue = true;\n } else if (diffDay > 0) {\n if (diffDay === 1) {\n installmentSelected.status = `${diffDay} ${language.payment_plans.status_3}`;\n } else {\n installmentSelected.status = `${diffDay} ${language.payment_plans.status_4}`;\n }\n } else {\n installmentSelected.status = `${language.payment_plans.status_5}`;\n }\n\n installmentSelected.amount = formatPrice(\n parseFloat(installment.amount_paid)\n );\n\n installmentSelected.due_day = getDate(due_date);\n installmentSelected.due_month = format(due_date, 'MMMM');\n installmentSelected.due_year = getYear(due_date);\n\n if (installment.installments === installment.current_installment) {\n save = 0;\n installmentSelected.remaining_amount = formatPrice(\n parseFloat(installment.amount_paid)\n );\n } else if (descountData.length > 0) {\n save = descountData[installment.current_installment - 1].discount;\n installmentSelected.remaining_amount = formatPrice(\n descountData[installment.current_installment - 1].price\n );\n }\n } else {\n paid += parseFloat(installment.amount_paid);\n anticipated_amount += parseFloat(installment.amount_paid);\n installmentSelected.payments.push({\n id: installment.id,\n date: format(parseISO(installment.updated_at), 'MMM dd, yyyy'),\n amount: formatPrice(parseFloat(installment.amount_paid)),\n anticipated: false,\n });\n\n if (installment.installmentsOrders.length === 0) {\n installmentSelected.id = installment.id;\n const due_date = parseISO(installment.updated_at);\n\n installmentSelected.status = `${language.payment_plans.status_6}`;\n installmentSelected.all_paid = true;\n save = 0;\n installmentSelected.remaining_amount = formatPrice(0);\n\n installmentSelected.amount = formatPrice(\n parseFloat(installment.amount_paid)\n );\n\n installmentSelected.due_day = getDate(due_date);\n installmentSelected.due_month = format(due_date, 'MMMM');\n installmentSelected.due_year = getYear(due_date);\n }\n }\n\n let credit_amount = parseFloat(installment.amount_paid);\n\n const anticipatedOrder = installment.installmentsOrders.find(\n (installmentOrder) =>\n installmentOrder.anticipated &&\n installmentOrder.status === 'succeeded'\n );\n\n installment.installmentsOrders.forEach((subInstallment) => {\n if (!subInstallment.deleted_at) {\n if (!subInstallment.anticipated) {\n const subInstallmentData: IInstallmentData = {\n status: subInstallment.status,\n };\n installmentsDatas.push(subInstallmentData);\n if (subInstallment.status !== 'succeeded') {\n if (subInstallment.subOrders.length > 0) {\n subInstallment.subOrders.forEach((subOrder) => {\n credit_amount += parseFloat(subOrder.amount_paid);\n paid += parseFloat(subOrder.amount_paid);\n installmentSelected.payments.push({\n id: subOrder.id,\n date: format(\n parseISO(subOrder.updated_at),\n 'MMM dd, yyyy'\n ),\n amount: formatPrice(parseFloat(subOrder.amount_paid)),\n anticipated: false,\n });\n });\n }\n\n left_pay += parseFloat(subInstallment.amount_paid);\n if (!installmentSelected.id) {\n installmentSelected.id = subInstallment.id;\n\n const due_date = parseISO(\n subInstallment.due_date || subInstallment.updated_at\n );\n const diffDay = differenceInDays(due_date, current_date);\n\n if (diffDay < 0) {\n const day = diffDay * -1;\n if (day === 1) {\n installmentSelected.status = `${day} ${language.payment_plans.status_1}`;\n } else {\n installmentSelected.status = `${day} ${language.payment_plans.status_2}`;\n }\n installmentSelected.overdue = true;\n } else if (diffDay > 0) {\n if (diffDay === 1) {\n installmentSelected.status = `${diffDay} ${language.payment_plans.status_3}`;\n } else {\n installmentSelected.status = `${diffDay} ${language.payment_plans.status_4}`;\n }\n } else {\n installmentSelected.status = `${language.payment_plans.status_5}`;\n }\n\n installmentSelected.amount = formatPrice(\n parseFloat(subInstallment.amount_paid)\n );\n\n installmentSelected.due_day = getDate(due_date);\n installmentSelected.due_month = format(due_date, 'MMMM');\n installmentSelected.due_year = getYear(due_date);\n\n if (\n installment.installments ===\n subInstallment.current_installment\n ) {\n save = 0;\n installmentSelected.remaining_amount = formatPrice(\n parseFloat(subInstallment.amount_paid)\n );\n } else {\n save =\n descountData[subInstallment.current_installment - 1]\n .discount;\n }\n }\n } else {\n if (subInstallment.subOrders.length > 0) {\n subInstallment.subOrders.forEach((subOrder) => {\n credit_amount += parseFloat(subOrder.amount_paid);\n paid += parseFloat(subOrder.amount_paid);\n installmentSelected.payments.push({\n id: subOrder.id,\n date: format(\n parseISO(subOrder.updated_at),\n 'MMM dd, yyyy'\n ),\n amount: formatPrice(parseFloat(subOrder.amount_paid)),\n anticipated: false,\n });\n });\n }\n\n paid += parseFloat(subInstallment.amount_paid);\n if (!anticipatedOrder) {\n installmentSelected.payments.push({\n id: subInstallment.id,\n date: format(\n parseISO(subInstallment.updated_at),\n 'MMM dd, yyyy'\n ),\n amount: formatPrice(parseFloat(subInstallment.amount_paid)),\n anticipated: false,\n });\n } else if (subInstallment.due_date) {\n if (\n parseISO(anticipatedOrder.updated_at) <\n parseISO(subInstallment.due_date) &&\n !subInstallment.merchant_id\n ) {\n installmentSelected.payments.push({\n id: subInstallment.id,\n date: format(\n parseISO(subInstallment.due_date),\n 'MMM dd, yyyy'\n ),\n amount: formatPrice(\n parseFloat(subInstallment.amount_paid)\n ),\n anticipated: true,\n });\n } else {\n anticipated_amount = paid;\n installmentSelected.payments.push({\n id: subInstallment.id,\n date: format(\n parseISO(subInstallment.updated_at),\n 'MMM dd, yyyy'\n ),\n amount: formatPrice(\n parseFloat(subInstallment.amount_paid)\n ),\n anticipated: false,\n });\n }\n }\n\n if (\n installment.installments ===\n subInstallment.current_installment\n ) {\n installmentSelected.id = subInstallment.id;\n const due_date = parseISO(subInstallment.updated_at);\n\n installmentSelected.status = `${language.payment_plans.status_6}`;\n installmentSelected.all_paid = true;\n save = 0;\n installmentSelected.remaining_amount = formatPrice(0);\n\n installmentSelected.amount = formatPrice(\n parseFloat(subInstallment.amount_paid)\n );\n\n installmentSelected.due_day = getDate(due_date);\n installmentSelected.due_month = format(due_date, 'MMMM');\n installmentSelected.due_year = getYear(due_date);\n }\n }\n\n credit_amount += parseFloat(subInstallment.amount_paid);\n }\n }\n });\n\n if (anticipatedOrder) {\n anticipated_amount += parseFloat(anticipatedOrder.amount_paid);\n installmentSelected.anticipated = true;\n installmentSelected.anticipated_amount = formatPrice(\n anticipated_amount\n );\n installmentSelected.payments.push({\n id: anticipatedOrder.id,\n date: format(parseISO(anticipatedOrder.updated_at), 'MMM dd, yyyy'),\n amount: formatPrice(parseFloat(anticipatedOrder.amount_paid)),\n anticipated: false,\n });\n }\n\n installmentSelected.installmentsData = installmentsDatas;\n installmentSelected.credit_amount = formatPrice(credit_amount);\n installmentSelected.paid = formatPrice(paid);\n installmentSelected.left_pay = formatPrice(left_pay);\n installmentSelected.save = formatPrice(save);\n\n if (installmentSelected.remaining_amount.length === 0) {\n installmentSelected.remaining_amount = formatPrice(left_pay - save);\n }\n\n return installmentSelected;\n });\n setInstallments(data);\n setLoading(false);\n });\n }, [\n language.payment_plans.status_1,\n language.payment_plans.status_2,\n language.payment_plans.status_3,\n language.payment_plans.status_4,\n language.payment_plans.status_5,\n language.payment_plans.status_6,\n ]);\n\n const columns = useMemo(\n () => [\n {\n name: 'Date',\n selector: 'date',\n sortable: true,\n cell: (row: IPayment) => (\n <>{row.anticipated ? {row.date} : row.date}\n ),\n },\n {\n name: 'Amount',\n selector: 'amount',\n sortable: true,\n cell: (row: IPayment) => (\n <>{row.anticipated ? {row.amount} : row.amount}\n ),\n },\n ],\n []\n );\n\n const handleOnceSucceededPaid = useCallback(async () => {\n try {\n await api.patch(\n `orders/installments/close/${installmentSelectedData.order_id}`\n );\n } catch (error) {\n // console.log(error);\n }\n }, [installmentSelectedData.order_id]);\n\n return (\n <>\n \n {loading && (\n
\n
\n
\n
\n

\n Internet Marketing Academy\n

\n
\n
\n

{language.payment_plans.h2_1}

\n\n \n 188 days past due\n \n
\n
\n
\n \n
\n
\n
\n

{language.payment_plans.h2_2}

\n
\n

0000000

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

{language.payment_plans.h2_3}

\n\n

0000000

\n
\n
\n
\n
\n

{language.payment_plans.h2_4}

\n

0000000

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

{language.payment_plans.h2_5}

\n

0000000

\n
\n
\n

{language.payment_plans.h2_6}

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

{language.payment_plans.h2_7}

\n

\n 0000000\n

\n
\n
\n
\n
\n

{language.payment_plans.h2_8}

\n
\n
\n
\n 00\n
\n
\n
\n

\n January
\n 0000\n

\n
\n
\n
\n
\n\n
\n \n \n {language.payment_plans.button}\n \n \n
\n
\n
\n \n
\n )}\n {installments.map((installment, index) => (\n
\n
\n
\n

\n {installment.name}\n

\n

\n {language.payment_plans.h2_1}{' '}\n \n
\n {installment.status}\n
\n

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

{language.payment_plans.h2_2}

\n

{installment.credit_amount}

\n \n
\n
\n
\n

{language.payment_plans.h2_3}

\n {installment.anticipated && (\n \n {installment.paid}\n \n )}\n

\n {installment.anticipated\n ? installment.anticipated_amount\n : installment.paid}\n

\n
\n
\n
\n
\n

{language.payment_plans.h2_4}

\n

{installment.left_pay}

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

{language.payment_plans.h2_5}

\n

{installment.amount}

\n
\n
\n

{language.payment_plans.h2_6}

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

\n {language.payment_plans.h2_7}{' '}\n \n \n \n

\n

\n {installment.save}\n

\n
\n
\n
\n
\n

{language.payment_plans.h2_8}

\n
\n
\n
\n {installment.due_day}\n
\n
\n
\n

\n {installment.due_month}{' '}\n
\n {installment.due_year}\n

\n
\n
\n
\n
\n {!installment.all_paid && (\n
\n {installment.product_id ? (\n handleShow(installment)}\n >\n \n {language.payment_plans.button}\n \n \n ) : (\n \n {language.payment_plans.button}\n \n )}\n
\n )}\n
\n
\n \n \n ))}\n\n \n \n \n \n \"Close\"\n \n \n \n
\n \"wallet\n

\n {language.payment_plans.modal_h2_1}\n

\n
\n {Object.keys(installmentSelectedData).length > 0 && (\n
\n
\n
\n

\n {installmentSelectedData.remaining_amount.slice(0, -3)}{' '}\n {language.payment_plans.modal_h2_2}\n

\n

{language.payment_plans.modal_h3_1}

\n
\n
\n
\n \"check\n

\n {language.payment_plans.modal_p_1}{' '}\n \n {installmentSelectedData.save.slice(0, -3)}\n \n

\n
\n
\n \"check\n

\n {language.payment_plans.modal_p_2}\n

\n
\n
\n \"check\n

\n {language.payment_plans.modal_p_3}\n

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

\n {language.payment_plans.modal_p_4}\n

\n
\n
\n \n

\n {language.payment_plans.modal_p_5}\n

\n
\n
\n
\n
\n \n {language.payment_plans.modal_button_1}\n \n
\n
\n
\n
\n
\n

\n {installmentSelectedData.amount.slice(0, -3)}\n

\n

{language.payment_plans.modal_h3_2}

\n\n
\n

{language.payment_plans.modal_p_6}

\n

{language.payment_plans.modal_p_7}

\n

{language.payment_plans.modal_p_8}

\n
\n
\n \n {language.payment_plans.modal_button_2}\n \n
\n
\n
\n
\n )}\n
\n \n \n \n );\n};\n\nexport default PaymentPlans;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .h-40vh {\n height: 40vh;\n }\n\n .btn-download {\n transition-duration: 0.3s;\n background: #e3e3e3;\n color: #021027;\n border-radius: 20px;\n padding: 20px;\n text-decoration: none;\n\n svg {\n transition-duration: 0.3s;\n color: #626262;\n min-width: 25px;\n min-height: 25px;\n }\n }\n\n .text-no-register {\n color: var(--ultraWhite);\n font-weight: 600;\n }\n`;\n\nexport const Skeleton = styled.div`\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\n","import React, { useState } from 'react';\n\n// import { PDFDownloadLink } from '@react-pdf/renderer';\n\nimport { FiDownload } from 'react-icons/fi';\nimport { format, parseISO } from 'date-fns';\nimport { useLanguage } from '~/hooks/Language';\nimport { useAuth } from '~/hooks/Auth';\n// import GeneratePDF from '~/hooks/Terms/GeneratePDF';\n\nimport { Container, Skeleton } from './styles';\n\nimport noRegister from '~/assets/icons/no-register-icon.svg';\n\ninterface IDocumentsProps {\n active: boolean;\n}\n\nconst Documents: React.FC = ({ active }) => {\n const { user } = useAuth();\n const { language } = useLanguage();\n const [loading] = useState(false);\n\n return (\n \n
\n
\n {loading && (\n <>\n \n
\n \n

#############

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

#############

\n \n
\n
\n \n )}\n {user.termUser ? (\n
\n
\n {/* \n ) as React.ReactElement\n }\n fileName=\"autoaffiliate-affiliate-agreement.pdf\"\n className=\"btn-download d-flex justify-content-between align-items-center px-3 px-xxl-4 w-100 border-0\"\n >\n Autoaffiliate Affiliate Agreement\n \n */}\n
\n
\n ) : (\n
\n
\n
\n \n

\n {language.no_register.p}\n

\n
\n
\n
\n )}\n
\n
\n
\n );\n};\n\nexport default Documents;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation, useHistory, NavLink } from 'react-router-dom';\n\nimport { FiChevronDown } from 'react-icons/fi';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, Welcome, Options } from './styles';\nimport MyProfile from './MyProfile';\nimport SubscriptionsCards from './SubscriptionsCards';\nimport Subscriptions from './Subscriptions';\nimport MyOffers from './MyOffers';\nimport Purchase from './Purchase';\nimport Receipts from './Receipts';\nimport PaymentOptions from './PaymentOptions';\nimport PaymentPlans from './PaymentPlans';\nimport Documents from './Documents';\n\nconst Profile: React.FC = () => {\n const { language } = useLanguage();\n const location = useLocation();\n const history = useHistory();\n const [optionSelected, setOptionSelected] = useState(() => {\n const lang = location.pathname.substr(0, 3);\n if (lang !== '/en' && lang !== '/es') {\n return location.pathname.slice(9);\n }\n return location.pathname.slice(12);\n });\n const [optionMobile, setOptionMobile] = useState(language.profile.button_1);\n const [langSelected] = useState(() => {\n return location.pathname.substr(0, 3) === '/en' ||\n location.pathname.substr(0, 3) === '/es'\n ? location.pathname.substr(0, 3)\n : '';\n });\n\n useEffect(() => {\n switch (optionSelected) {\n case 'my-offers':\n setOptionMobile(language.profile.button_2);\n break;\n case 'my-purchases':\n setOptionMobile('My purchases');\n break;\n case 'subscriptions':\n setOptionMobile('Suscripciones');\n break;\n case 'documents':\n setOptionMobile('Documents');\n break;\n case 'payment-options':\n setOptionMobile(language.profile.button_3);\n break;\n case 'payment-plans':\n setOptionMobile(language.profile.button_5);\n break;\n case 'receipts':\n setOptionMobile(language.profile.button_4);\n break;\n default:\n setOptionMobile(language.profile.button_1);\n break;\n }\n }, [language.profile, optionSelected]);\n\n useEffect(() => {\n let page = '';\n if (langSelected !== '/en' && langSelected !== '/es') {\n page = location.pathname.slice(9);\n } else {\n page = location.pathname.slice(12);\n }\n\n const box = document.querySelector('.options-box');\n if (box) {\n box.classList.remove('active');\n }\n\n setOptionSelected(page);\n }, [history, location.pathname, langSelected]);\n\n const handleClickBox = useCallback((e) => {\n const box = e.target.closest('.options-box');\n if (box) {\n box.classList.toggle('active');\n }\n }, []);\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n

\n {language.profile.h1}\n

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

\n {optionMobile}\n

\n \n \n
\n
\n \n {language.profile.button_1}\n \n
\n
\n \n {language.profile.button_2}\n \n
\n\n
\n \n My purchases\n \n
\n\n
\n \n Subscriptions\n \n
\n
\n \n {language.profile.button_3}\n \n
\n
\n \n {language.profile.button_4}\n \n
\n
\n \n Documents\n \n
\n
\n
\n
\n
\n
\n
\n {optionSelected === 'my-profile' && (\n \n )}\n {optionSelected === 'my-offers' && (\n \n )}\n {optionSelected === 'my-purchases' && (\n \n )}\n {optionSelected === 'payment-plans' && (\n \n )}\n {optionSelected === 'subscriptions-cards' && (\n \n )}\n {optionSelected === 'subscriptions' && (\n \n )}\n {optionSelected === 'payment-options' && (\n \n )}\n {optionSelected === 'receipts' && (\n \n )}\n {optionSelected === 'documents' && (\n \n )}\n
\n
\n
\n
\n );\n};\n\nexport default Profile;\n","import styled, { css } from 'styled-components';\n\ninterface IStep {\n current: boolean;\n complete: boolean;\n}\n\ninterface IStepLine {\n active: boolean;\n}\n\nexport const Container = styled.div`\n min-height: 100vh;\n\n .fw-600 {\n font-weight: 600 !important;\n }\n\n .copy {\n background: #fafafa;\n border: 1px solid #ababab;\n border-radius: 24px;\n height: 70px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 22px;\n line-height: 32px;\n color: #3d3d3e;\n width: 100%;\n max-width: 568px;\n padding: 0 33px 0 53px;\n margin-bottom: 10px;\n }\n\n .confeti {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1;\n pointer-events: none;\n }\n\n .menu {\n padding: 33px 43px;\n }\n\n //teste\n\n h1 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 700;\n font-size: 48px;\n line-height: 45px;\n text-align: center;\n width: 658px;\n background: linear-gradient(\n 270.04deg,\n #fb5a43 0.03%,\n #c341ae 30.44%,\n #9445c2 57.35%,\n #079cfe 95.73%\n );\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n text-fill-color: transparent;\n }\n\n h2 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 600;\n font-size: 36px;\n line-height: 45px;\n color: #151517;\n }\n\n h3 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 700;\n font-size: 26px;\n line-height: 45px;\n color: #151517;\n }\n\n h4 {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 26px;\n line-height: 32px;\n text-align: center;\n color: #151517;\n }\n\n .first-current-position {\n p:nth-child(4) {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 26px;\n line-height: 32px;\n }\n\n span {\n background: linear-gradient(90deg, #5a80e0 0%, #6911da 100%);\n box-shadow: -4px 4px 20px rgba(0, 0, 0, 0.2);\n height: 69.5234146118164px;\n width: 155px;\n border-radius: 30px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 900;\n font-size: 30px;\n line-height: 45px;\n color: #ffffff;\n\n b {\n font-weight: 300;\n }\n }\n\n hr {\n //width: 50%;\n height: 1px;\n background: #bebdbd;\n margin: 45.79px 0 25.69px;\n opacity: 1;\n }\n\n p:nth-child(7) {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 30px;\n line-height: 45px;\n color: #116bff;\n\n b {\n font-weight: 700;\n }\n }\n\n button {\n background: var(--technologicalGray);\n border-radius: 18px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #ffffff;\n border: none;\n height: 65px;\n width: 494px;\n }\n }\n\n .input-button {\n background: #fff;\n border: none;\n height: 30px;\n top: 17px;\n left: 17px;\n transform: scale(1.5);\n }\n\n .input-container {\n border-radius: 21px;\n border: 1px solid #116bff;\n height: 65px;\n transform: 0.3s;\n }\n\n .input-phone {\n font-family: 'Archivo';\n font-size: 16px;\n height: 42px;\n width: 100%;\n color: #333;\n padding: 0 10px 0 60px;\n border: none;\n top: 11px;\n margin: 0 auto;\n width: 95%;\n border: none;\n :focus {\n box-shadow: none;\n }\n :placeholder {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 16px;\n color: #ababab;\n }\n }\n\n .first-form {\n > div {\n width: 494px;\n\n p {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n color: #151517;\n }\n\n form {\n width: 100%;\n\n label {\n font-weight: 300;\n color: #5f5f61;\n }\n\n .input {\n background: #ffffff;\n border: 1px solid #116bff;\n border-radius: 21px;\n height: 65px;\n padding: 27px 24px;\n\n input {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 16px;\n line-height: 32px;\n\n ::placeholder {\n color: #ababab;\n }\n }\n }\n\n .checkbox {\n label {\n align-items: flex-start;\n\n div {\n width: 18px;\n height: 18px;\n margin-top: 1px;\n border-radius: 5px;\n }\n\n span {\n width: calc(100% - 25px);\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 100;\n font-size: 12px;\n line-height: 14px;\n color: #606060;\n b {\n font-weight: 600 !important;\n }\n b a {\n text-decoration: underline !important;\n }\n }\n }\n }\n\n button {\n background: var(--technologicalGray);\n border-radius: 18px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #ffffff;\n border: none;\n height: 65px;\n width: 494px;\n transition: 0.3s;\n }\n\n .opacity-100 {\n opacity: 1;\n }\n\n .opacity-25 {\n opacity: 0.25;\n }\n\n .pe-none {\n pointer-events: none;\n }\n }\n }\n }\n\n .code-form {\n > div {\n width: 800px;\n\n p {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n color: #151517;\n }\n\n img {\n box-shadow: 45px 30px 75px 0px rgba(0, 0, 0, 0.08);\n border-radius: 16px;\n }\n\n .btn-next {\n border-radius: 18px;\n background: #116bff;\n width: 100%;\n height: 65px;\n border: none;\n color: #fff;\n text-align: center;\n font-family: Archivo;\n font-size: 22px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n letter-spacing: -0.88px;\n max-width: 600px;\n :disabled {\n background-color: #c2c2c2;\n cursor: default;\n }\n }\n }\n }\n\n .last-current-position {\n p:nth-child(6) {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 22px;\n line-height: 32px;\n color: #5f5f61;\n }\n\n span.position {\n background: linear-gradient(90deg, #5a80e0 0%, #6911da 100%);\n box-shadow: -4px 4px 20px rgba(0, 0, 0, 0.2);\n height: 69.5234146118164px;\n width: 155px;\n border-radius: 30px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 900;\n font-size: 30px;\n line-height: 45px;\n color: #ffffff;\n\n b {\n font-weight: 300;\n }\n }\n\n hr {\n width: 50%;\n height: 1px;\n background: #bebdbd;\n margin: 45.79px 0 25.69px;\n opacity: 1;\n }\n\n .social-media {\n a {\n width: 120px;\n height: 49px;\n border-radius: 22px;\n text-decoration: none !important;\n\n .icon {\n width: 30px;\n height: 30px;\n background: #ffffff;\n border-radius: 50%;\n }\n\n span {\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 300;\n font-size: 18px;\n line-height: 32px;\n color: #ffffff;\n }\n\n + a {\n margin-left: 20px;\n }\n }\n }\n\n .social-media :first-child {\n a {\n :nth-child(1) {\n background-color: #204fa9;\n\n svg {\n fill: #204fa9;\n }\n }\n\n :nth-child(2) {\n background-color: #0dc143;\n\n svg {\n fill: #0dc143;\n }\n }\n\n :nth-child(3) {\n background-color: #16a7c7;\n\n svg {\n fill: #16a7c7;\n }\n }\n }\n }\n\n .social-media :last-child {\n a {\n :nth-child(1) {\n background-color: #447ae4;\n\n svg {\n fill: #447ae4;\n }\n }\n\n :nth-child(2) {\n background-color: #00acee;\n\n svg {\n fill: #00acee;\n }\n }\n\n :nth-child(3) {\n background-color: #0098ee;\n\n svg {\n fill: #0098ee;\n }\n }\n }\n }\n\n p:nth-child(9) {\n font-family: 'Quicksand';\n font-style: normal;\n font-weight: 400;\n font-size: 22px;\n line-height: 32px;\n color: #151517;\n\n b {\n font-weight: 700;\n }\n }\n\n button:not(.copy) {\n background: var(--technologicalGray);\n border-radius: 18px;\n font-family: 'Archivo';\n font-style: normal;\n font-weight: 500;\n font-size: 22px;\n line-height: 24px;\n letter-spacing: -0.04em;\n color: #ffffff;\n border: none;\n height: 65px;\n width: 494px;\n }\n }\n\n @media screen and (max-width: 991px) {\n .last-current-position button:not(.copy) {\n max-width: 376px;\n }\n .code-form > div form button {\n max-width: 353px;\n }\n .last-current-position {\n h2 {\n font-size: 26px;\n }\n\n h3 {\n line-height: 32px;\n }\n\n h4 {\n font-size: 24px;\n }\n }\n .last-current-position p:nth-child(6) {\n font-size: 20px;\n }\n\n .last-current-position .social-media a + a {\n margin-left: 8px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .menu {\n padding: 33px 28px;\n }\n .first-current-position button {\n width: 85%;\n }\n .first-form > div {\n width: 100%;\n }\n .first-form > div form button {\n width: 100%;\n }\n .first-form > div p {\n font-size: 20px;\n }\n\n .code-form > div p {\n font-size: 20px;\n }\n\n .copy {\n font-size: 20px;\n padding: 0 16px 0 20px;\n }\n }\n\n @media screen and (max-width: 410px) {\n .code-form > div form .input .pincode-input-container input {\n width: 65.29px !important;\n }\n\n .copy {\n font-size: 18px;\n }\n }\n`;\n\nexport const Step = styled.div`\n width: 75px;\n\n p {\n font-family: 'Archivo', sans-serif;\n height: 38px;\n width: 38px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 900;\n font-size: 20px;\n }\n\n span {\n font-family: 'Archivo', sans-serif;\n font-weight: 500;\n font-size: 12px;\n line-height: 13px;\n color: #2a65f2;\n text-align: center;\n }\n\n ${(props) => {\n if (props.complete) {\n return css`\n p {\n color: #fff;\n border: 2px solid #2a65f2;\n background-color: #2a65f2;\n }\n\n span {\n color: #2a65f2;\n }\n `;\n }\n\n if (props.current) {\n return css`\n p {\n color: #2a65f2;\n border: 2px solid #2a65f2;\n }\n\n span {\n color: #2a65f2;\n }\n `;\n }\n\n return css`\n p {\n color: #fff;\n border: 2px solid #dbdbdb;\n background-color: #dbdbdb;\n }\n\n span {\n color: #dbdbdb;\n }\n `;\n }};\n`;\n\nexport const StepLine = styled.hr`\n width: 45px;\n height: 1px;\n background-color: ${(props) => (props.active ? '#2A65F2' : '#b7b7b7')};\n opacity: 1;\n`;\n","import styled from 'styled-components';\n\ninterface CopyAlertProps {\n active: boolean;\n}\n\nexport const CopyButton = styled.button``;\n\nexport const CopyAlert = styled.div`\n background: #116bff;\n position: absolute;\n transition: all 0.3s ease;\n bottom: 70px;\n right: 20px;\n //right: ${(props) => (props.active ? '10px' : '-1000px')};\n opacity: ${(props) => (props.active ? '1' : '0')};\n z-index: 100;\n\n p {\n color: #fff !important;\n }\n`;\n","import OT from '@opentok/client';\nimport socket from '~/services/socket';\n\nfunction handleError(error: unknown) {\n if (error) {\n // console.error(error);\n }\n}\n\ninterface IUserData {\n userID: string;\n user_id: string;\n name: string;\n avatar?: string;\n host: boolean;\n screen?: boolean;\n}\n\ninterface IMessage {\n id: string;\n content: string;\n created_at: string;\n user: {\n id: string;\n name: string;\n avatar: string;\n };\n}\n\nlet session: OT.Session | undefined;\nlet publisher: OT.Publisher | undefined;\nlet publisherScreen: OT.Publisher | undefined;\nlet dataUser = {} as IUserData;\n\nexport const initializeSocketEvents = (\n setSocketConnected: React.Dispatch>,\n setUsers: React.Dispatch>,\n setMessages: React.Dispatch>,\n setUserTyping: React.Dispatch>\n): void => {\n socket.connect();\n\n socket.on('connect', () => {\n setSocketConnected(true);\n });\n socket.on('disconnect', () => {\n // console.log('socket disconnected --');\n });\n socket.on('error', () => {\n // console.log('socket error --', err);\n });\n socket.on('new-user-connect', (data: IUserData) => {\n socket.emit('send-me', dataUser);\n\n setUsers((state) => {\n const checkUser = state.find((user) => user.user_id === data.user_id);\n if (!checkUser) {\n if (data.host) {\n return [data, ...state];\n }\n return [...state, data];\n }\n\n return state;\n });\n });\n socket.on('new-message', (data: IMessage) => {\n setMessages((state) => [data, ...state]);\n });\n socket.on('user-start-typing', (data: IUserData) => {\n setUserTyping(data);\n });\n socket.on('user-stop-typing', () => {\n setUserTyping({} as IUserData);\n });\n socket.on('user-disconnected', (data: IUserData) => {\n setUsers((state) => {\n const newUsers = state.filter((user) => user.user_id !== data.user_id);\n return newUsers;\n });\n });\n socket.on('receive-you', (data: IUserData) => {\n setUsers((state) => {\n const checkUser = state.find((user) => user.user_id === data.user_id);\n if (!checkUser) {\n if (data.host) {\n return [data, ...state];\n }\n return [...state, data];\n }\n return state;\n });\n });\n};\n\nexport const joinRoom = (roomID: string, userData: IUserData): void => {\n socket.emit('join-room', { roomID, userData });\n};\n\nconst createVideo = (userData: IUserData, element: HTMLElement) => {\n const videoContainerCheck = document.querySelector(\n `div[hash=\"video-${userData.user_id}\"]`\n );\n\n if (!videoContainerCheck) {\n const roomContainer = document.getElementById(\n 'room-container'\n ) as HTMLElement;\n const videoContainerElement = document.createElement('div');\n videoContainerElement.setAttribute('hash', `video-${userData.user_id}`);\n videoContainerElement.id = `video-${userData.userID}`;\n if (userData.host) {\n videoContainerElement.className = 'col-lg-12 order-0 mb-2 host';\n } else {\n videoContainerElement.className = 'audience';\n }\n\n const videoContentElement = document.createElement('button');\n videoContentElement.className =\n 'w-100 video-content border-0 d-flex justify-content-center align-items-center position-relative';\n\n const avatarContainer = document.createElement('div');\n avatarContainer.className = 'avatar';\n\n if (userData.avatar) {\n avatarContainer.style.backgroundImage = `url('${userData.avatar}')`;\n } else {\n const firstLetter = userData.name.slice(0, 1).toUpperCase();\n const pElement = document.createElement('p');\n pElement.innerText = firstLetter;\n avatarContainer.appendChild(pElement);\n }\n\n const nameContainer = document.createElement('div');\n nameContainer.className = 'username';\n const pElement = document.createElement('p');\n pElement.innerText = userData.name;\n nameContainer.appendChild(pElement);\n\n const video = document.createElement('div');\n video.className = 'video w-100 h-100 hide';\n video.appendChild(element);\n videoContentElement.appendChild(avatarContainer);\n videoContentElement.appendChild(nameContainer);\n videoContentElement.appendChild(video);\n videoContainerElement.appendChild(videoContentElement);\n if (userData.host) {\n roomContainer.insertBefore(\n videoContainerElement,\n roomContainer.firstChild\n );\n } else {\n roomContainer.append(videoContainerElement);\n }\n }\n};\n\nconst createScreenVideo = (userData: IUserData, element: HTMLElement) => {\n const videoContainerCheck = document.querySelector(\n `div[hash=\"screen-${userData.user_id}\"]`\n );\n\n if (!videoContainerCheck) {\n const roomContainer = document.getElementById(\n 'room-container'\n ) as HTMLElement;\n const videoHost = document.querySelector('.host') as HTMLElement;\n if (videoHost) {\n videoHost.className = 'col-lg-3 order-1 mt-2 old-host';\n }\n const videoContainerElement = document.createElement('div');\n videoContainerElement.setAttribute('hash', `screen-${userData.user_id}`);\n videoContainerElement.id = `video-${userData.userID}`;\n videoContainerElement.className = 'col-lg-12 order-0 mb-2 screen';\n\n const videoContentElement = document.createElement('button');\n videoContentElement.className =\n 'w-100 video-content border-0 d-flex justify-content-center align-items-center position-relative';\n\n const avatarContainer = document.createElement('div');\n avatarContainer.className = 'avatar';\n\n if (userData.avatar) {\n avatarContainer.style.backgroundImage = `url('${userData.avatar}')`;\n } else {\n const firstLetter = userData.name.slice(0, 1).toUpperCase();\n const pElement = document.createElement('p');\n pElement.innerText = firstLetter;\n avatarContainer.appendChild(pElement);\n }\n\n const nameContainer = document.createElement('div');\n nameContainer.className = 'username';\n const pElement = document.createElement('p');\n pElement.innerText = userData.name;\n nameContainer.appendChild(pElement);\n\n const video = document.createElement('div');\n video.className = 'video w-100 h-100';\n video.appendChild(element);\n videoContentElement.appendChild(avatarContainer);\n videoContentElement.appendChild(nameContainer);\n videoContentElement.appendChild(video);\n videoContainerElement.appendChild(videoContentElement);\n roomContainer.append(videoContainerElement);\n }\n};\n\nconst removeVideo = (id: string) => {\n const videoContainer = document.getElementById(`video-${id}`);\n if (videoContainer) {\n videoContainer.remove();\n }\n};\n\nconst removeScreenVideo = (id: string) => {\n const videoHost = document.querySelector('.old-host') as HTMLElement;\n if (videoHost) {\n videoHost.className = 'col-12 order-0 mb-2 host';\n }\n\n const videoContainer = document.getElementById(`video-${id}`);\n if (videoContainer) {\n videoContainer.remove();\n }\n};\n\nconst toggleCam = (id: string) => {\n const element = document.getElementById(`video-${id}`);\n if (element) {\n const video = element.querySelector('.video') as HTMLDivElement;\n if (video) {\n if (video.classList.contains('hide')) {\n video.style.transitionDuration = '0.3s';\n setTimeout(() => {\n video.classList.remove('hide');\n }, 750);\n } else {\n video.style.transitionDuration = '0s';\n video.classList.add('hide');\n }\n }\n }\n};\n\nexport function initializeSession(apiKey: string, sessionId: string): boolean {\n session = OT.initSession(apiKey, sessionId);\n session.on('streamCreated', function streamCreated(event) {\n const subscriberOptions: OT.SubscriberProperties = {\n insertMode: 'append',\n width: '100%',\n height: '100%',\n };\n\n const userDataEvent = JSON.parse(event.stream.name) as IUserData;\n if (session) {\n const subscribe = session.subscribe(\n event.stream,\n 'loadVideo',\n subscriberOptions,\n handleError\n );\n\n if (subscribe.element && subscribe.id) {\n userDataEvent.userID = subscribe.id;\n if (subscribe.stream) {\n subscribe.stream.name = JSON.stringify(userDataEvent);\n }\n if (userDataEvent.screen) {\n createScreenVideo(userDataEvent, subscribe.element);\n } else {\n createVideo(userDataEvent, subscribe.element);\n }\n }\n }\n });\n\n session.on('streamPropertyChanged', (event) => {\n if (event.changedProperty === 'hasVideo') {\n const userDataEvent = JSON.parse(event.stream.name) as IUserData;\n toggleCam(userDataEvent.userID);\n }\n });\n\n session.on('streamDestroyed', (event) => {\n const userDataEvent = JSON.parse(event.stream.name) as IUserData;\n if (userDataEvent.screen) {\n removeScreenVideo(userDataEvent.userID);\n } else {\n removeVideo(userDataEvent.userID);\n }\n });\n\n session.on('sessionDisconnected', function sessionDisconnected() {\n // console.log('You were disconnected from the session.', event.reason);\n });\n\n return !!session;\n}\n\nexport function initializePublisher(token: string, userData: IUserData): void {\n const publisherOptions: OT.PublisherProperties = {\n insertMode: 'append',\n name: JSON.stringify(userData),\n publishVideo: false,\n publishAudio: true,\n width: '100%',\n height: '100%',\n };\n\n publisher = OT.initPublisher(undefined, publisherOptions, handleError);\n\n publisher.on('mediaStopped', () => {\n // console.log(event);\n });\n\n publisher.on('streamDestroyed', () => {\n if (publisher && publisher.id) {\n removeVideo(publisher.id);\n }\n });\n\n session?.connect(token, function callback(error) {\n if (error) {\n handleError(error);\n } else if (publisher) {\n session?.publish(publisher, handleError);\n if (publisher.element && publisher.id) {\n // eslint-disable-next-line no-param-reassign\n userData.userID = publisher.id;\n createVideo(userData, publisher.element);\n }\n }\n });\n}\n\nexport function initializePublisherScreen(\n token: string,\n userData: IUserData,\n setSharedScreen: React.Dispatch>\n): void {\n // eslint-disable-next-line no-param-reassign\n userData.screen = true;\n\n const publisherOptions: OT.PublisherProperties = {\n insertMode: 'append',\n name: JSON.stringify(userData),\n publishVideo: true,\n publishAudio: false,\n width: '100%',\n height: '100%',\n videoSource: 'screen',\n };\n\n publisherScreen = OT.initPublisher(undefined, publisherOptions, handleError);\n\n publisherScreen.on('mediaStopped', () => {\n // console.log(event);\n });\n\n publisherScreen.on('accessDenied', () => {\n if (publisherScreen && publisherScreen.id) {\n removeScreenVideo(publisherScreen.id);\n }\n setSharedScreen(false);\n });\n\n publisherScreen.on('streamDestroyed', () => {\n if (publisherScreen && publisherScreen.id) {\n removeScreenVideo(publisherScreen.id);\n }\n setSharedScreen(false);\n });\n\n if (session && publisherScreen) {\n session?.publish(publisherScreen, handleError);\n if (publisherScreen.element && publisherScreen.id) {\n // eslint-disable-next-line no-param-reassign\n userData.userID = publisherScreen.id;\n createScreenVideo(userData, publisherScreen.element);\n setSharedScreen(true);\n }\n }\n}\n\nexport async function getCameras(): Promise {\n let videoInputs: OT.Device[] = [];\n const videoInputsPromise = new Promise((resolve) => {\n OT.getDevices((err, devices) => {\n if (!err && devices) {\n videoInputs = devices.filter((device) => device.kind === 'videoInput');\n resolve();\n } else {\n resolve();\n }\n });\n });\n\n await videoInputsPromise;\n\n return videoInputs;\n}\n\nexport async function getCurrentCamera(): Promise {\n let currentCamera: OT.Device | undefined;\n const currentCameraPromise = new Promise((resolve) => {\n const getCameraLoop = async (attemp: number) => {\n if (attemp < 20) {\n if (publisher) {\n const cameras = await getCameras();\n const videoSource = publisher.getVideoSource();\n const camera = cameras.find(\n (cameraData) => cameraData.deviceId === videoSource.deviceId\n );\n if (camera) {\n currentCamera = camera;\n resolve();\n } else {\n getCameraLoop(attemp + 1);\n }\n } else {\n getCameraLoop(attemp + 1);\n }\n } else {\n resolve();\n }\n };\n\n getCameraLoop(1);\n });\n\n await currentCameraPromise;\n\n return currentCamera;\n}\n\nexport function setCamera(id: string): void {\n if (publisher) {\n publisher.setVideoSource(id);\n }\n}\n\nexport async function getMicrophones(): Promise {\n let audioInputs: OT.Device[] = [];\n const audioInputsPromise = new Promise((resolve) => {\n OT.getDevices((err, devices) => {\n if (!err && devices) {\n audioInputs = devices.filter((device) => device.kind === 'audioInput');\n resolve();\n } else {\n resolve();\n }\n });\n });\n\n await audioInputsPromise;\n\n return audioInputs;\n}\n\nexport async function getCurrentMicrophone(): Promise {\n let currentMicrophone: OT.Device | undefined;\n const currentMicrophonePromise = new Promise((resolve) => {\n const getMicrophoneLoop = async (attemp: number) => {\n if (attemp < 20) {\n if (publisher) {\n const microphones = await getMicrophones();\n const microphoneSource = publisher.getAudioSource();\n if (microphoneSource) {\n const microphone = microphones.find(\n (microphoneData) =>\n microphoneData.label === microphoneSource.label\n );\n if (microphone) {\n currentMicrophone = microphone;\n resolve();\n } else {\n getMicrophoneLoop(attemp + 1);\n }\n } else {\n getMicrophoneLoop(attemp + 1);\n }\n } else {\n getMicrophoneLoop(attemp + 1);\n }\n } else {\n resolve();\n }\n };\n\n getMicrophoneLoop(1);\n });\n\n await currentMicrophonePromise;\n\n return currentMicrophone;\n}\n\nexport function setMicrophone(id: string): void {\n if (publisher) {\n publisher.setAudioSource(id);\n }\n}\n\nexport async function getHeadsets(): Promise {\n return OT.getAudioOutputDevices();\n}\n\nexport async function getCurrentHeadset(): Promise {\n return OT.getActiveAudioOutputDevice();\n}\n\nexport function setHeadset(id: string): void {\n OT.setAudioOutputDevice(id);\n}\n\nexport function showCam(): void {\n if (publisher) {\n publisher.publishVideo(true);\n if (publisher.id) {\n toggleCam(publisher.id);\n }\n }\n}\n\nexport function unShowCam(): void {\n if (publisher) {\n publisher.publishVideo(false);\n if (publisher.id) {\n toggleCam(publisher.id);\n }\n }\n}\n\nexport function audioEnable(): void {\n if (publisher) {\n publisher.publishAudio(true);\n }\n}\n\nexport function audioDisabled(): void {\n if (publisher) {\n publisher.publishAudio(false);\n }\n}\n\nexport function stopSharedScreen(): void {\n if (publisherScreen) {\n publisherScreen.destroy();\n }\n}\n\nexport function disconnect(): void {\n if (publisher) {\n publisher.destroy();\n }\n\n if (publisherScreen) {\n publisherScreen.destroy();\n }\n\n if (session) {\n session.disconnect();\n }\n\n socket.disconnect();\n}\n\nexport function startTyping(userData: IUserData): void {\n socket.emit('user-start-typing-back', userData);\n}\n\nexport function stopTyping(): void {\n socket.emit('user-stop-typing-back');\n}\n\nexport function saveUser(userData: IUserData): void {\n dataUser = userData;\n}\n","import React, { useCallback, useState } from 'react';\n\nimport { CopyButton, CopyAlert } from './styles';\n\nimport copy from '~/assets/icons/copy-blue.svg';\n\ninterface ICopyProps {\n content: string;\n className?: string;\n title?: string;\n}\n\nconst Copy: React.FC = ({ content, className, title }) => {\n const [copied, setCopied] = useState(false);\n\n const handleClickCopy = useCallback((url) => {\n const el = document.createElement('textarea');\n el.value = url;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 800);\n }, []);\n\n return (\n <>\n handleClickCopy(content)}\n >\n {content}\n
\n \"Copy\"\n
\n \n

Copied!

\n
\n \n \n );\n};\n\nexport default Copy;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Form } from '@unform/web';\nimport {\n FaEnvelope,\n FaFacebookF,\n FaLinkedinIn,\n FaTelegramPlane,\n FaTwitter,\n FaWhatsapp,\n} from 'react-icons/fa';\nimport Lottie from 'react-lottie';\nimport { FormHandles } from '@unform/core';\nimport { useHistory, useParams } from 'react-router-dom';\nimport * as Yup from 'yup';\nimport PhoneInput from 'react-phone-input-2';\n\nimport { AxiosError } from 'axios';\nimport swalError from '~/utils/swalError';\nimport getValidationErros from '~/utils/getValidationsErrors';\nimport api from '~/services/api';\nimport { useAuth } from '~/hooks/Auth';\n\nimport { Container, Step, StepLine } from './styles';\nimport Input from '~/components/Input';\nimport InputCheckbox from '~/components/InputCheckbox';\nimport Copy from '~/components/Copy';\nimport { useIntercom } from '~/hooks/Intercom';\n\nimport logo from '~/assets/logotipos/logo.png';\nimport rocket from '~/assets/defaults/rocket.png';\nimport copy from '~/assets/icons/copy-blue.svg';\nimport confeti from '~/assets/animations/confeti.json';\nimport facebook from '~/assets/defaults/facebook-group.png';\nimport whatsapp from '~/assets/defaults/whatsapp-group.png';\nimport zoom from '~/assets/defaults/zoom-group.png';\n\ninterface IParams {\n waitlist_id: string;\n}\n\ninterface IFormData {\n firstName: string;\n lastName: string;\n phone: string;\n}\n\nconst Waitlist: React.FC = () => {\n const { signIn } = useAuth();\n const { setUserData } = useIntercom();\n const history = useHistory();\n const formRef = useRef(null);\n const params = useParams();\n const [step, setStep] = useState(1);\n const [showConfeti, setShowConfeti] = useState(true);\n const [checked, setChecked] = useState(false);\n const [position, setPosition] = useState(0);\n const [userId, setUserId] = useState('');\n const [celPhone, setCelPhone] = useState('');\n const [celPhoneError, setCelPhoneError] = useState('');\n const [referralCode, setReferralCode] = useState('');\n const [facebookCheck, setFacebookCheck] = useState(false);\n const [whatsappCheck, setWhatsappCheck] = useState(false);\n const [zoomCheck, setZoomCheck] = useState(false);\n\n useEffect(() => {\n api.get(`waitlist/${params.waitlist_id}`).then((response) => {\n setPosition(response.data.position);\n setUserId(response.data.user_id);\n setUserData({\n email: response.data.user.email,\n created_at: response.data.user.created_at,\n });\n });\n }, [params.waitlist_id, setUserData]);\n\n useEffect(() => {\n if (step === 4) {\n api.get(`waitlist/${params.waitlist_id}`).then((response) => {\n setPosition(response.data.position);\n setUserId(response.data.user_id);\n setShowConfeti(true);\n setReferralCode(response.data.user.referral_code);\n });\n }\n }, [params.waitlist_id, step]);\n\n const handleAnimationComplete = useCallback(() => {\n setShowConfeti(false);\n }, []);\n\n const handleSubmit = useCallback(\n async (data: IFormData) => {\n try {\n formRef.current?.setErrors({});\n setCelPhoneError('');\n const schema = Yup.object().shape({\n firstName: Yup.string().required('First name is required'),\n lastName: Yup.string().required('Last name is required'),\n celphone: Yup.string().when('$celphoneData', {\n is: (celphoneData: boolean) => !celphoneData,\n then: Yup.string().required('phone number is required'),\n otherwise: Yup.string(),\n }),\n });\n\n await schema.validate(data, {\n abortEarly: false,\n context: { celphoneData: celPhone.length > 4 },\n });\n\n const formData = {\n name: `${data.firstName} ${data.lastName}`,\n phone: `+${celPhone}`,\n };\n\n const response = await api.put(`users/${userId}`, formData, {\n params: {\n route: 'waitlist',\n },\n });\n\n setUserData({\n name: response.data.name,\n email: response.data.email,\n created_at: response.data.created_at,\n });\n\n setStep(3);\n } catch (error) {\n if (error instanceof Yup.ValidationError) {\n const errors = getValidationErros(error);\n formRef.current?.setErrors(errors);\n if (errors.celphone) {\n setCelPhoneError(errors.celphone);\n }\n } else {\n const err = error as AxiosError;\n if (err.response?.data.message === 'Phone already in use.') {\n swalError({\n message: 'Celphone already in use, please log in',\n textButton: 'Login',\n });\n history.push(`${process.env.PUBLIC_URL}/`);\n } else {\n swalError({\n message:\n 'Looks like what you were trying to do didn’t work, please try again.',\n textButton: 'Try Again',\n });\n }\n }\n }\n },\n [celPhone, history, setUserData, userId]\n );\n\n const handleClickAccessDashboard = useCallback(async () => {\n const response = await api.post(`users/sessions/first-access/${userId}`);\n await signIn(\n {\n email: response.data.email,\n password: response.data.password,\n },\n 'lessons/welcome'\n );\n }, [signIn, userId]);\n\n const handleShare = useCallback(async () => {\n try {\n await navigator.share({\n url: `https://autoaffiliate.ai/i/${referralCode}`,\n });\n } catch (error) {\n // console.error('Error sharing:', error);\n }\n }, [referralCode]);\n\n const handleClickFacebook = useCallback(() => {\n setFacebookCheck(true);\n }, []);\n\n const handleClickWhatsapp = useCallback(() => {\n setWhatsappCheck(true);\n }, []);\n\n const handleClickZoom = useCallback(() => {\n setZoomCheck(true);\n }, []);\n\n return (\n \n
\n \"Logo\"\n
\n = 1}\n complete={step > 2}\n className=\"d-flex flex-column align-items-center\"\n >\n

1

\n Complete profile\n \n 2} />\n 3}\n className=\"d-flex flex-column align-items-center\"\n >\n

2

\n Verify Passcode\n \n 3} />\n 4}\n className=\"d-flex flex-column align-items-center\"\n >\n

3

\n Access Dashboard\n \n
\n
\n
\n {showConfeti && (\n
\n \n
\n )}\n
\n {step === 1 && (\n
\n \"rocket\"\n

Well Done!

\n

You’re on the waitlist.

\n

This is your current position:

\n \n #\n {position}\n \n
\n

\n Want to cut the line and{' '}\n
\n get early access?\n

\n setStep(2)}\n >\n Complete your profile\n \n
\n )}\n {step === 2 && (\n
\n
\n

\n Let’s complete your profile\n

\n

\n This is an important step to setup your business\n correctly.\n

\n
\n
\n \n \n
\n
\n \n
\n Your information is 100% safe and secure. and we never share it with third parties. Also, you accept our terms, conditions and Privacy Policy.',\n value:\n 'By accepting and providing your information, you understand and agree to to our terms and conditions and that you will you will receive emails and or sms related to our company. Your information is 100% safe and secure. and we never share it with third parties. Also, you accept our terms, conditions and Privacy Policy.',\n labelHtml: true,\n selected: checked,\n },\n ]}\n onChange={() => setChecked(!checked)}\n className=\"checkbox mb-4\"\n />\n \n Save and get passcode\n \n \n
\n
\n )}\n {step === 3 && (\n
\n
\n

\n Last Step - Joining Our Community\n

\n

\n Don't miss out! Join our exclusive Facebook and WhatsApp\n groups to get the most out of your business.\n

\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \"Zoom\n \n
\n
\n setStep(4)}\n disabled={!facebookCheck || !whatsappCheck || !zoomCheck}\n >\n Complete Setup\n \n
\n
\n
\n
\n )}\n {step === 4 && (\n
\n

Well Done!

\n

\n You’ve cut the line quite a bit\n

\n
\n

\n This is your current position:\n

\n \n #\n {position}\n \n
\n
\n
\n
\n

\n Don’t stop now, continue moving faster!\n

\n

Refer your friends and move up the list

\n
\n
\n \n
\n \n
\n Share\n \n \n
\n \n
\n Share\n \n \n
\n \n
\n Share\n \n
\n
\n \n
\n \n
\n Share\n \n \n
\n \n
\n Tweet\n \n \n
\n \n
\n Email\n \n
\n
\n\n
\n \n
\n\n \n {`https://autoaffiliate.ai/i/${referralCode}`}\n
\n \"Copy\"\n
\n \n\n

\n You have referred: 0 Friends\n

\n \n Access Dashboard\n \n
\n )}\n
\n
\n
\n );\n};\n\nexport default Waitlist;\n","import { io } from 'socket.io-client';\n\nconst socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n reconnectionDelay: 500,\n});\n\nexport default socket;\n","import styled from 'styled-components';\nimport { Form as FormComponent } from '@unform/web';\nimport { lighten } from 'polished';\n\ninterface IAvatar {\n src: string;\n}\n\ninterface ISettings {\n show: boolean;\n}\n\ninterface ITyping {\n active: boolean;\n}\n\nexport const Container = styled.div`\n #loadVideo {\n display: none;\n opacity: 0;\n visibility: hidden;\n }\n\n #room-container {\n height: calc(100% - 48px);\n }\n\n .video-content {\n border-radius: 30px;\n background-color: #242526;\n position: relative;\n overflow: hidden;\n\n ::before {\n content: '';\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 0%,\n rgba(0, 0, 0, 0.06) 27.6%,\n rgba(0, 0, 0, 0.6) 100%\n );\n bottom: 0;\n left: 0;\n width: 100%;\n height: 25%;\n position: absolute;\n z-index: 1;\n }\n\n .video {\n position: absolute;\n top: 0;\n left: 0;\n background-color: #18191a;\n opacity: 1;\n pointer-events: none;\n\n h1 {\n display: none;\n }\n }\n\n .hide {\n opacity: 0;\n }\n\n .avatar {\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background-size: cover;\n background-position: center;\n background-color: #333;\n display: flex;\n justify-content: center;\n align-items: center;\n\n p {\n margin: 0;\n padding: 5px;\n color: #e4e4e4;\n font-size: 64px;\n }\n }\n\n .username {\n transition-duration: 0.3s;\n opacity: 0;\n visibility: hidden;\n position: absolute;\n bottom: 10px;\n left: 10px;\n width: 150px;\n border-radius: 50px;\n background-color: #333;\n z-index: 1;\n\n p {\n margin: 0;\n padding: 5px;\n color: #e4e4e4;\n }\n }\n\n :hover {\n .username {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n .host,\n .screen {\n height: 100%;\n\n .video-content {\n height: 100%;\n\n .avatar {\n width: 100px;\n height: 100px;\n }\n }\n }\n\n .old-host,\n .audience {\n position: absolute;\n z-index: 1;\n bottom: 25px;\n transform: translateX(-50%);\n\n .video-content {\n border: 2px solid #ffffff !important;\n border-radius: 15px;\n height: 96px !important;\n width: 113px !important;\n\n .avatar {\n width: 50px;\n height: 50px;\n }\n }\n }\n\n .audience:nth-child(2) {\n left: calc(50% - 128px);\n }\n\n .audience:nth-child(3) {\n left: 50%;\n }\n\n .audience:nth-child(1),\n .audience:nth-child(4) {\n left: calc(50% + 128px);\n }\n\n .buttons {\n position: absolute;\n width: 100%;\n bottom: 150px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1;\n\n > div {\n position: relative;\n\n button {\n width: 48px;\n height: 48px;\n background: rgba(0, 0, 0, 0.52);\n backdrop-filter: blur(40px);\n border: none;\n border-radius: 50px;\n color: #e4e4e4 !important;\n font-weight: bold;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n button.btn-call-end {\n width: 74px;\n height: 64px;\n background: #f8000f;\n border-radius: 12px;\n\n svg {\n transform: rotateZ(135deg);\n }\n }\n\n button.btn-shared-screen {\n span {\n width: 20px;\n height: 18px;\n border-radius: 5px;\n background-color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n }\n }\n\n @media screen and (min-width: 992px) {\n .col-lg-0 {\n flex: 0 0 0%;\n max-width: 0%;\n }\n }\n`;\n\nexport const LiveChat = styled.div`\n transition-duration: 0.3s;\n\n .btn-dark-gray {\n width: 32px;\n height: 32px;\n background: #292929;\n backdrop-filter: blur(4px);\n border-radius: 6px;\n }\n\n span.btn-dark-gray {\n height: 27px;\n width: 60px;\n font-weight: 100;\n cursor: default !important;\n }\n\n button > span.btn-dark-gray {\n height: 22px;\n width: 22px;\n cursor: pointer !important;\n }\n`;\n\nexport const Settings = styled.div`\n position: absolute;\n left: calc(-320px / 2);\n bottom: 60px;\n width: 320px;\n transform: translateX(20px);\n background: rgba(41, 41, 41, 0.9);\n border-radius: 10px;\n padding: 20px 30px;\n z-index: 1;\n transition-duration: 0.3s;\n opacity: ${(props) => (props.show ? '1' : '0')};\n visibility: ${(props) => (props.show ? 'visible' : 'hidden')};\n\n :after {\n content: '';\n position: absolute;\n width: 15px;\n height: 15px;\n background: rgba(41, 41, 41, 0);\n background: linear-gradient(\n 135deg,\n rgba(41, 41, 41, 0) 0%,\n rgba(41, 41, 41, 0) 55%,\n rgba(41, 41, 41, 0.9) 55%,\n rgba(41, 41, 41, 0.9) 100%\n );\n bottom: -12px;\n left: 50%;\n transform: rotate(45deg) translateX(-50%);\n }\n\n select {\n width: 100%;\n background: #18191a;\n padding: 5px;\n border-radius: 8px;\n border: 0;\n color: #ffffff;\n }\n`;\n\nexport const Chat = styled.div`\n background: #ffffff;\n box-shadow: 3px 4px 32px rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(64px);\n height: calc(100vh - 40px);\n border-radius: 20px;\n transition-duration: 0.3s;\n overflow: hidden;\n\n .user {\n + .user {\n margin-left: 20px;\n }\n }\n\n .messages-group {\n height: calc(100vh - 340px);\n }\n`;\n\nexport const Avatar = styled.div`\n width: 79px;\n height: 79px;\n border-radius: 50%;\n background-image: url(${(props) => props.src});\n background-size: cover;\n background-position: center;\n background-color: #333;\n display: flex;\n justify-content: center;\n align-items: center;\n\n p {\n margin: 0;\n padding: 5px;\n color: #e4e4e4;\n font-size: 64px;\n }\n`;\n\nexport const MessagesArea = styled.div`\n > div {\n width: 100%;\n\n .message-box {\n max-width: 90%;\n }\n\n .your-message {\n max-width: calc(90% - 50px);\n\n > div {\n background: #f9f9f9;\n border-radius: 0px 6px 6px 6px;\n\n p {\n color: #202020;\n }\n }\n }\n\n .my-message {\n margin-left: auto;\n\n > small {\n text-align: right;\n }\n\n > div {\n background: #18191a;\n border-radius: 6px 0px 6px 6px;\n\n p {\n color: #fff;\n }\n }\n }\n\n .your-message,\n .my-message {\n > div {\n p {\n width: calc(100% - 50px);\n }\n\n small {\n font-size: 7.77678px;\n line-height: 9px;\n width: 40px;\n color: #bfbfbf;\n }\n }\n }\n }\n\n + div {\n margin-top: 10px;\n }\n`;\n\nexport const MiniAvatar = styled.div`\n width: 46px;\n height: 46px;\n border-radius: 50%;\n background-image: url(${(props) => props.src});\n background-size: cover;\n background-position: center;\n background-color: #333;\n display: flex;\n justify-content: center;\n align-items: center;\n\n p {\n margin: 0;\n padding: 5px;\n color: #e4e4e4;\n font-size: 64px;\n }\n`;\n\nexport const Typing = styled.div`\n opacity: ${(props) => (props.active ? 1 : 0)};\n visibility: ${(props) => (props.active ? 'visible' : 'hidden')};\n`;\n\nexport const Form = styled(FormComponent)`\n .typing {\n background: #f9f9f9;\n box-shadow: 0px 4px 21px rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n pointer-events: none;\n }\n\n .text-typing {\n color: #bfbfbf;\n }\n\n .actions {\n > div,\n > button {\n background: #f9f9f9;\n box-shadow: 0px 14px 28px rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n border: 1px solid #202020 !important;\n }\n\n > div {\n width: calc(100% - 100px);\n\n .textarea {\n width: calc(100% - 50px);\n\n textarea {\n resize: none;\n color: #202020;\n position: relative;\n\n ::placeholder {\n color: ${lighten(0.3, '#202020')};\n }\n }\n }\n\n .btn-white {\n background: #202020;\n border-radius: 6.48065px;\n }\n }\n\n > button {\n width: 80px;\n }\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n BsFillCameraVideoFill,\n BsFillCameraVideoOffFill,\n BsFillMicFill,\n BsFillMicMuteFill,\n BsPause,\n BsArrowUpShort,\n BsChatSquareText,\n BsFillImageFill,\n} from 'react-icons/bs';\nimport { useHistory, useParams } from 'react-router-dom';\nimport {\n IoIosArrowBack,\n IoIosCall,\n IoMdSend,\n IoMdSettings,\n} from 'react-icons/io';\nimport Lottie from 'react-lottie';\nimport { AiOutlinePlus } from 'react-icons/ai';\nimport { FaUserFriends } from 'react-icons/fa';\nimport List from 'react-chatview';\n\nimport { FormHandles } from '@unform/core';\nimport { useAuth } from '~/hooks/Auth';\nimport api from '~/services/api';\nimport {\n initializeSocketEvents,\n initializeSession,\n initializePublisher,\n joinRoom,\n getCameras,\n getCurrentCamera,\n setCamera,\n getMicrophones,\n getCurrentMicrophone,\n setMicrophone,\n getHeadsets,\n getCurrentHeadset,\n setHeadset,\n showCam,\n unShowCam,\n audioEnable,\n audioDisabled,\n initializePublisherScreen,\n stopSharedScreen,\n disconnect,\n startTyping,\n stopTyping,\n saveUser,\n} from '~/services/chatConnection';\n\nimport {\n Container,\n LiveChat,\n Settings,\n Chat,\n Avatar,\n MessagesArea,\n MiniAvatar,\n Typing,\n Form,\n} from './styles';\nimport Textarea from '~/components/Textarea';\n\nimport typing from '~/assets/animations/typing.json';\n\ninterface IParams {\n roomID: string;\n}\n\ninterface IUserData {\n userID: string;\n user_id: string;\n name: string;\n avatar?: string;\n host: boolean;\n}\n\ninterface ISession {\n sessionId: string;\n token: string;\n}\n\ninterface ILiveData {\n userData: IUserData;\n live: ISession;\n}\n\ninterface IMessage {\n id: string;\n content: string;\n created_at: string;\n user: {\n id: string;\n name: string;\n avatar: string;\n };\n}\n\ninterface IMessageData {\n data: IMessage[];\n last_page: number;\n total: number;\n}\n\nlet typingTimeout: NodeJS.Timeout;\n\nconst Live: React.FC = () => {\n const params = useParams();\n const formRef = useRef(null);\n const { user } = useAuth();\n const history = useHistory();\n const [vonageData, setVonageData] = useState({} as ISession);\n const [camStatus, setCamStatus] = useState(false);\n const [micStatus, setMicStatus] = useState(true);\n const [sharedScreen, setSharedScreen] = useState(false);\n const [vonageConnected, setVonageConnected] = useState(false);\n const [socketConnected, setSocketConnected] = useState(false);\n const [showSettings, setShowSettings] = useState(false);\n const [showChat, setShowChat] = useState(true);\n const [userData, setUserData] = useState({} as IUserData);\n const [cameras, setCameras] = useState([]);\n const [cameraSelected, setCameraSelected] = useState({} as OT.Device);\n const [microphones, setMicrophones] = useState([]);\n const [microphoneSelected, setMicrophoneSelected] = useState({} as OT.Device);\n const [headsets, setHeadsets] = useState([]);\n const [headsetSelected, setHeadsetSelected] = useState(\n {} as OT.AudioOutputDevice\n );\n const [users, setUsers] = useState([]);\n const [messages, setMessages] = useState([]);\n const [userTyping, setUserTyping] = useState({} as IUserData);\n const [page, setPage] = useState(1);\n const [lastPage, setLastPage] = useState(0);\n\n useEffect(() => {\n initializeSocketEvents(\n setSocketConnected,\n setUsers,\n setMessages,\n setUserTyping\n );\n }, []);\n\n useEffect(() => {\n api\n .get(`messages/${params.roomID}`, {\n params: {\n page,\n },\n })\n .then((response) => {\n if (page === 1) {\n setMessages(response.data.data);\n } else {\n setMessages((state) => [...state, ...response.data.data]);\n }\n setLastPage(response.data.last_page);\n });\n }, [params.roomID, page]);\n\n useEffect(() => {\n if (socketConnected) {\n api.get(`appointments/${params.roomID}`).then((response) => {\n const sessionInitialized = initializeSession(\n '47502611',\n response.data.live.sessionId\n );\n setUsers([response.data.userData]);\n setUserData(response.data.userData);\n setVonageData(response.data.live);\n setVonageConnected(sessionInitialized);\n saveUser(response.data.userData);\n });\n }\n }, [params.roomID, socketConnected]);\n\n useEffect(() => {\n if (vonageConnected) {\n initializePublisher(vonageData.token, userData);\n joinRoom(params.roomID, userData);\n getCameras().then(async (camerasData) => {\n const currentCamera = await getCurrentCamera();\n\n const microphonesData = await getMicrophones();\n const currentMicrophone = await getCurrentMicrophone();\n\n const headsetsData = await getHeadsets();\n const currentHeadset = await getCurrentHeadset();\n\n if (currentCamera) {\n setCameraSelected(currentCamera);\n }\n\n if (currentMicrophone) {\n setMicrophoneSelected(currentMicrophone);\n }\n\n setCameras(camerasData);\n setMicrophones(microphonesData);\n setHeadsets(headsetsData);\n setHeadsetSelected(currentHeadset);\n });\n }\n }, [vonageConnected, userData, vonageData.token, params.roomID]);\n\n useEffect(() => {\n return () => {\n disconnect();\n };\n }, []);\n\n const handleClickCamera = useCallback(() => {\n if (camStatus) {\n unShowCam();\n } else {\n showCam();\n }\n setCamStatus(!camStatus);\n }, [camStatus]);\n\n const handleClickMic = useCallback(() => {\n if (micStatus) {\n audioDisabled();\n } else {\n audioEnable();\n }\n setMicStatus(!micStatus);\n }, [micStatus]);\n\n const handleClickSharedScreen = useCallback(() => {\n if (sharedScreen) {\n stopSharedScreen();\n } else if (vonageConnected && Object.keys(userData).length > 0) {\n initializePublisherScreen(vonageData.token, userData, setSharedScreen);\n }\n }, [sharedScreen, vonageConnected, userData, vonageData.token]);\n\n const handleClickDisconnect = useCallback(() => {\n disconnect();\n history.push('/');\n }, [history]);\n\n const handleClickSettings = useCallback(() => {\n setShowSettings((state) => !state);\n }, []);\n\n const handleChangeCamera = useCallback(\n (e) => {\n const id = e.target.value;\n const camera = cameras.find((cameraData) => cameraData.deviceId === id);\n if (camera) {\n setCameraSelected(camera);\n }\n setCamera(id);\n },\n [cameras]\n );\n\n const handleChangeMicrophone = useCallback(\n (e) => {\n const id = e.target.value;\n const microphone = microphones.find(\n (microphoneData) => microphoneData.deviceId === id\n );\n if (microphone) {\n setMicrophoneSelected(microphone);\n }\n setMicrophone(id);\n },\n [microphones]\n );\n\n const handleChangeHeadset = useCallback(\n (e) => {\n const id = e.target.value;\n const headset = headsets.find(\n (headsetData) => headsetData.deviceId === id\n );\n if (headset) {\n setHeadsetSelected(headset);\n }\n setHeadset(id);\n },\n [headsets]\n );\n\n const handleClickChat = useCallback(() => {\n setShowChat((state) => !state);\n }, []);\n\n const handleLoad = useCallback(async () => {\n try {\n if (page < lastPage) {\n setPage(page + 1);\n }\n } catch (error) {\n // console.log(error);\n }\n }, [lastPage, page]);\n\n const handleChange = useCallback(() => {\n startTyping(userData);\n if (typingTimeout) {\n clearTimeout(typingTimeout);\n }\n typingTimeout = setTimeout(() => {\n stopTyping();\n }, 1000);\n }, [userData]);\n\n const handleSubmitMessage = useCallback(\n async (data) => {\n try {\n if (data.message.length > 0) {\n setMessages((state) => [\n ...state,\n {\n id: new Date().getTime().toString(),\n content: data.message,\n created_at: new Date().toDateString(),\n user: {\n id: new Date().getTime().toString(),\n name: user.name,\n avatar: user.avatar.avatar_url,\n },\n },\n {\n id: new Date().getTime().toString(),\n content: data.message,\n created_at: new Date().toDateString(),\n user: {\n id: user.id,\n name: user.name,\n avatar: user.avatar.avatar_url,\n },\n },\n ]);\n const formData = {\n chat_id: params.roomID,\n user_id: user.id,\n content: data.message,\n };\n\n await api.post('messages', formData);\n\n if (formRef.current) {\n formRef.current.reset();\n }\n }\n } catch (error) {\n // console.log(error);\n }\n },\n [params, user]\n );\n\n return (\n \n
\n \n
\n
\n \n \n \n

Meeting with Coach Joan

\n
\n
\n \n \n {users.length.toString().padStart(2, '0')}\n \n \n \n \n \n Add user to the call\n \n \n \n \n
\n
\n
\n
\n
\n \n \n {sharedScreen ? (\n \n ) : (\n \n )}\n \n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n
\n {users.map((userContent) => (\n
\n \n

\n {userContent.user_id === user.id\n ? 'You'\n : userContent.name.split(' ')[0]}\n

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

Chat

\n \n {messages.map((message) => (\n \n
\n {message.user.id !== user.id && (\n \n )}\n \n \n {message.user.id !== user.id\n ? message.user.name.split(' ')[0]\n : 'You'}\n \n
\n

{message.content}

\n {message.created_at}\n
\n
\n
\n \n ))}\n \n
\n 0}\n className=\"d-flex align-items-center py-3\"\n >\n
\n \n
\n \n {Object.keys(userTyping).length > 0 &&\n userTyping.name.split(' ')[0]}{' '}\n is typing...\n \n \n
\n
\n \n \n
\n \n
\n \n
\n \n
\n
\n \n );\n};\n\nexport default Live;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nimport video from '~/assets/temp/video.png';\n\ninterface ILessonData {\n coachLocked?: boolean;\n}\n\ninterface IProgress {\n progress: number;\n}\n\ninterface IHeightModule {\n active: boolean;\n}\n\nexport const Container = styled.div`\n @media screen and (min-width: 1200px) {\n zoom: 0.7;\n }\n\n @media screen and (min-width: 1400px) {\n zoom: 0.8;\n }\n\n @media screen and (min-width: 1600px) {\n zoom: 0.9;\n }\n\n @media screen and (min-width: 1700px) {\n zoom: 1;\n }\n`;\n\nexport const Skeleton = styled.div`\n .skeleton-player {\n height: 400px !important;\n width: 100% !important;\n }\n\n .skeleton-arrow {\n width: 38px;\n height: 38px;\n }\n\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n .skeleton-player {\n height: 200px !important;\n }\n }\n`;\n\nexport const Welcome = styled.div`\n position: relative;\n h1 {\n color: #021027;\n }\n\n h2 {\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n color: #777;\n margin-bottom: 20px;\n span {\n font-weight: 600;\n color: #514f4f;\n }\n }\n\n p {\n font-weight: 400;\n font-size: 13px;\n line-height: 20px;\n color: #021027;\n b {\n font-weight: 600;\n }\n }\n\n .progress-card {\n border-radius: 15px;\n background: #fff;\n box-shadow: 0px 19px 40px 0px rgba(0, 0, 0, 0.05);\n padding: 20px;\n display: flex;\n flex-wrap: wrap;\n\n h2 {\n color: #3d5066;\n font-family: 'Inter';\n font-size: 9px;\n font-weight: 500;\n line-height: 16px;\n letter-spacing: 2px;\n }\n\n a {\n color: #514f4f;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 300;\n line-height: 24px;\n letter-spacing: 0.15px;\n margin-bottom: 10px;\n }\n\n .completed {\n color: #116bff;\n font-weight: 500;\n }\n\n .next-step {\n color: #021027;\n font-size: 13px;\n font-weight: 600;\n }\n\n .minutes {\n color: #021027;\n font-size: 10px;\n font-weight: 300;\n }\n }\n\n @media screen and (max-width: 575px) {\n .arrow-xs {\n width: 30px;\n height: 30px;\n }\n }\n`;\n\nexport const Locked = styled.div`\n img {\n width: 50px;\n height: 50px;\n }\n\n .lock-message {\n opacity: 0;\n visibility: hidden;\n position: absolute;\n width: 330px;\n z-index: 1;\n padding: 10px;\n border-radius: 10px;\n right: 20px;\n top: 55px;\n border: solid 2px var(--greyMineral);\n background: var(--coal);\n transition-duration: 0.3s;\n }\n\n :hover {\n .lock-message {\n opacity: 1;\n visibility: visible;\n }\n }\n`;\n\nexport const LessonData = styled.div`\n position: relative;\n\n .video-js .vjs-big-play-button {\n background-color: #116bff !important;\n border: none !important;\n border-radius: 50% !important;\n font-size: 5em !important;\n line-height: 1.5em !important;\n height: 1.5em !important;\n width: 1.5em !important;\n margin-left: 0px !important;\n transition: 0.3s;\n transform: translate(-50%, -50%);\n margin-top: 0px;\n }\n\n .video-js:hover .vjs-big-play-button,\n .video-js .vjs-big-play-button:focus {\n -webkit-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n -moz-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n }\n\n .vjs-control-bar {\n border-radius: 0 0 15px 15px !important;\n }\n\n .lock-message {\n opacity: 0;\n visibility: hidden;\n position: absolute;\n width: 330px;\n z-index: 1;\n padding: 10px;\n border-radius: 10px;\n right: 20px;\n top: -70px;\n border: solid 2px var(--greyMineral);\n background: var(--coal);\n transition-duration: 0.3s;\n }\n\n :hover {\n .lock-message {\n opacity: ${(props) => (props.coachLocked ? '1' : '0')};\n visibility: ${(props) => (props.coachLocked ? 'visible' : 'hidden')};\n }\n }\n\n h3 {\n font-weight: 600;\n font-size: 24px;\n line-height: 29px;\n color: #021027;\n }\n\n h4 {\n color: #242424;\n font-weight: 600;\n font-size: 18px;\n }\n\n .player {\n border-radius: 15px;\n overflow: hidden;\n position: relative;\n video {\n border-radius: 15px !important;\n }\n }\n\n hr {\n background-color: var(--closedGray);\n }\n\n p {\n font-weight: 400;\n font-size: 16px;\n line-height: 21px;\n color: #514f4f;\n }\n\n .description {\n height: 100px;\n overflow: auto;\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #c0c0c0;\n }\n }\n\n .btn-profiti-now {\n position: relative;\n z-index: 1;\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #ffffff;\n background: #116bff;\n border-radius: 15px;\n padding: 20px;\n text-decoration: none;\n }\n\n .btn-metamask {\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n color: #116bff;\n background: transparent;\n border-radius: 15px;\n border: 4px solid #116bff;\n padding: 16px;\n text-decoration: none;\n }\n\n .border-gray {\n border-color: var(--grayImmensity) !important;\n }\n\n .guide {\n position: relative;\n z-index: 1;\n display: block;\n color: #116bff;\n text-align: center;\n font-size: 18px;\n font-weight: 500;\n width: 100%;\n border: solid 1px #116bff;\n border-radius: 15px;\n padding: 15px;\n }\n\n @media screen and (max-width: 1800px) {\n .player-old {\n height: 26.7vw;\n }\n }\n\n @media screen and (max-width: 1750px) {\n .player-old {\n height: 26.5vw;\n }\n }\n\n @media screen and (max-width: 1700px) {\n .player-old {\n height: 475px;\n }\n }\n\n @media screen and (max-width: 1650px) {\n .player-old {\n height: 29vw;\n }\n }\n\n @media screen and (max-width: 1599px) {\n .player-old {\n height: 31vw;\n width: 55vw;\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: 1399px) {\n .player-old {\n height: 415px;\n width: 100%;\n }\n }\n\n @media screen and (max-width: 1250px) {\n .player-old {\n height: 33vw;\n }\n }\n\n @media screen and (max-width: 1199px) {\n .player-old {\n height: 520px;\n }\n }\n\n @media screen and (max-width: 1100px) {\n .player-old {\n height: 48vw;\n }\n }\n\n @media screen and (max-width: 991px) {\n .player-old {\n height: 387px;\n }\n }\n\n @media screen and (max-width: 767px) {\n p {\n font-size: 14px;\n }\n\n .player-old {\n height: 286px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .player-old {\n height: 53vw;\n }\n }\n\n @media screen and (max-width: 384px) {\n .player-old {\n height: 51vw;\n }\n }\n`;\n\nexport const Video = styled.div`\n width: 100%;\n height: 350px;\n background: var(--midnight);\n border-radius: 20px;\n background-image: url(${video});\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const LessonsBox = styled.div`\n overflow-y: auto;\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #c0c0c0;\n }\n\n @media screen and (min-width: 1200px) {\n height: 390px !important;\n }\n\n @media screen and (min-width: 1500px) {\n height: 450px !important;\n }\n\n @media screen and (max-width: 1199px) {\n height: 131px !important;\n }\n\n @media screen and (max-width: 991px) {\n height: 227px !important;\n }\n`;\n\nexport const Modules = styled.div``;\n\nexport const Calendar = styled.aside`\n width: 380px;\n\n .DayPicker {\n border-radius: 10px;\n }\n\n .DayPicker-wrapper {\n padding-bottom: 0;\n border-radius: 10px;\n background-color: var(--coal);\n }\n\n .DayPicker,\n .DayPicker-Month {\n width: 100%;\n }\n\n .DayPicker-NavButton {\n color: var(--technologicalGray) 591 !important;\n }\n\n .DayPicker-NavButton--prev {\n right: auto;\n left: 1.5em;\n margin-right: 0;\n }\n\n .DayPicker-Month {\n border-collapse: separate;\n border-spacing: 8px;\n margin: 16px 0 0 0;\n padding: 16px;\n border-radius: 0 0 10px 10px;\n }\n\n .DayPicker-Caption {\n margin-bottom: -10px;\n padding: 0 1em 1em;\n color: var(--technologicalGray);\n\n > div {\n text-align: center;\n }\n }\n\n .DayPicker-Weekday {\n color: var(--blizzard);\n }\n\n .DayPicker-Day--available:not(.DayPicker-Day--outside) {\n background: transparent;\n border-radius: 50%;\n color: var(--technologicalGray);\n border: 1px solid var(--technologicalGray);\n font-weight: bold;\n transition-duration: 0.3s;\n }\n\n .DayPicker-Day--outside {\n background: transparent;\n border-radius: 50%;\n color: var(--greyMineral);\n border: 1px solid var(--greyMineral);\n }\n\n .DayPicker:not(.DayPicker--interactionDisabled)\n .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover {\n background: var(--technologicalGrayDarken);\n color: var(--closedGray) !important;\n }\n\n .DayPicker-Day--today {\n font-weight: normal;\n }\n\n .DayPicker-Day--disabled {\n color: var(--deepGrey) !important;\n background: transparent !important;\n }\n\n .DayPicker-Day--selected {\n border: 1px solid var(--technologicalGray) !important;\n background: var(--technologicalGray) !important;\n color: var(--closedGray) !important;\n font-weight: bold;\n }\n`;\n\nexport const Modal = styled(ModalComponent)`\n .modal-content {\n background: #f9f9f9 !important;\n border-radius: 35px;\n position: relative;\n\n h2 {\n color: #116bff;\n font-size: 38px;\n font-family: 'Quicksand', sans-serif;\n font-weight: 700;\n line-height: 35px;\n }\n\n p {\n color: #151517 !important;\n font-size: 17px;\n font-family: 'Archivo', sans-serif;\n font-weight: 300;\n line-height: 28px;\n span {\n font-weight: 600;\n color: #151517;\n }\n }\n\n .player {\n border-radius: 25px;\n overflow: hidden;\n position: relative;\n video {\n border-radius: 25px !important;\n }\n }\n\n .vjs-control-bar {\n border-radius: 0 0 25px 25px !important;\n }\n\n .video-js .vjs-big-play-button {\n background-color: #116bff !important;\n border: none !important;\n border-radius: 50% !important;\n font-size: 5em !important;\n line-height: 1.5em !important;\n height: 1.5em !important;\n width: 1.5em !important;\n margin-left: 0px !important;\n transition: 0.3s;\n transform: translate(-50%, -50%);\n margin-top: 0px;\n }\n\n .video-js:hover .vjs-big-play-button,\n .video-js .vjs-big-play-button:focus {\n -webkit-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n -moz-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n }\n\n .modal-title {\n font-weight: 600;\n font-size: 24px;\n color: #021027;\n }\n\n .modal-close {\n color: #021027;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .btn-save {\n width: 100%;\n font-weight: 500;\n font-size: 18px;\n line-height: 27px;\n color: #ffffff;\n background: #116bff;\n border-radius: 20px;\n transition-duration: 0.3s;\n padding: 18px;\n\n :hover {\n opacity: 0.8;\n }\n }\n\n .guide {\n display: block;\n color: #116bff;\n text-align: center;\n font-size: 18px;\n font-weight: 500;\n width: 100%;\n text-decoration-line: underline;\n }\n }\n @media screen and (min-width: 1200px) {\n .modal-xl {\n zoom: 0.7;\n }\n }\n @media screen and (min-width: 1400px) {\n .modal-xl {\n max-width: 1040px;\n zoom: 1;\n }\n }\n\n @media screen and (max-width: 991px) {\n .modal-content h2 {\n font-size: 23px;\n }\n\n .modal-content p {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .modal-content h2 {\n font-size: 5vw;\n }\n\n .modal-content p {\n font-size: 15px;\n }\n }\n`;\n\nexport const ModalCoach = styled(ModalComponent)`\n .group {\n max-width: 380px;\n\n .input-calendar {\n border: 1px solid var(--closedGray);\n border-radius: 15px;\n height: 45px;\n }\n }\n`;\n\nexport const SideBar = styled.div`\n min-width: 321px;\n max-width: 322px;\n background-color: var(--coal);\n\n h3 {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #242424;\n }\n\n p {\n font-weight: 400;\n font-size: 12px;\n line-height: 15px;\n color: #8c8c8c;\n }\n\n @media (min-width: 992px) and (max-width: 1399px) {\n min-width: 269px;\n max-width: 270px;\n }\n\n @media screen and (max-width: 1199px) {\n background-color: transparent;\n }\n\n @media screen and (max-width: 991px) {\n max-width: unset;\n }\n`;\n\nexport const ProgressBar = styled.div`\n height: 20px;\n border-radius: 8px;\n background-color: #f1f1f1;\n\n .progress-bar {\n background-color: #4a87ff;\n width: ${(props) => props.progress}%;\n }\n`;\n\nexport const Descriptions = styled.div`\n margin-top: -190px;\n\n .mg-top-profiti {\n margin-top: 70px;\n }\n\n .mg-top-ai-bot {\n margin-top: 140px;\n }\n`;\n","import styled from 'styled-components';\nimport { Link } from 'react-router-dom';\n\ninterface IContainer {\n disabled?: boolean;\n active?: boolean;\n qtdLessons?: number;\n}\n\nexport const Contents = styled.div`\n .introduction {\n font-size: 16px;\n text-decoration: none;\n color: #242424;\n display: flex;\n padding: 12px;\n\n :hover {\n background: #ececec;\n border-radius: 15px;\n }\n\n img {\n width: 24px;\n height: 24px;\n margin-right: 20px;\n }\n }\n\n .active {\n background: #ececec;\n border-radius: 15px;\n }\n`;\n\nexport const Introduction = styled(Link)`\n display: block;\n pointer-events: ${(props) => (props.disabled ? 'none' : 'unset')};\n border: ${(props) =>\n props.active ? 'solid 2px var(--greyMineral)' : 'solid 2px transparent'};\n background: ${(props) => (props.active ? 'var(--coal)' : 'transparent')};\n text-align: left;\n border-radius: 15px;\n padding: 1px;\n background-image: none;\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n transition-duration: 0.3s;\n\n :hover {\n text-decoration: none;\n border: solid 2px var(--greyMineral);\n background: var(--coal);\n }\n\n img {\n width: 24px;\n height: 24px;\n }\n\n p {\n color: ${(props) => (props.active ? 'none' : 'var(--grayImmensity)')};\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-05 {\n opacity: 0.5;\n }\n\n .opacity-1 {\n opacity: 1;\n }\n\n .line-height {\n line-height: 1.7;\n }\n`;\n\nexport const Container = styled.div`\n button:not(.btn-exam) {\n display: block;\n pointer-events: ${(props) => (props.disabled ? 'none' : 'unset')};\n border: ${(props) =>\n props.active ? 'solid 2px #e0e0e0' : 'solid 2px transparent'};\n background: ${(props) => (props.active ? '#e0e0e0' : 'transparent')};\n text-align: left;\n border-radius: 15px;\n padding: 1px;\n\n transition-duration: 0.3s;\n\n :hover {\n text-decoration: none;\n border: solid 2px #e0e0e0;\n background: #e0e0e0;\n }\n .module {\n img {\n transition-duration: 0.3s;\n transform: ${(props) =>\n props.active ? 'rotateZ(90deg)' : 'rotateZ(0)'};\n }\n\n img {\n width: 10px;\n height: 10px;\n }\n }\n\n p {\n color: #242424;\n font-weight: 500;\n span {\n margin-left: auto;\n margin-right: 10px;\n font-size: 12px;\n color: #626262;\n }\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-05 {\n opacity: 0.5;\n }\n\n .opacity-1 {\n opacity: 1;\n }\n\n .line-height {\n line-height: 1.7;\n }\n }\n\n .btn-exam {\n display: block;\n border: solid 2px transparent;\n background: transparent;\n text-align: left;\n border-radius: 15px;\n padding: 1px;\n background-image: none;\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n transition-duration: 0.3s;\n\n :hover {\n text-decoration: none;\n border: solid 2px var(--greyMineral);\n background: var(--coal);\n }\n\n img {\n width: 24px;\n height: 24px;\n }\n\n p {\n color: ${(props) => (props.active ? 'none' : 'var(--grayImmensity)')};\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-05 {\n opacity: 0.5;\n }\n\n .opacity-1 {\n opacity: 1;\n }\n }\n\n .content {\n overflow: hidden;\n transition-duration: 0.3s;\n height: ${(props) =>\n props.active && props.qtdLessons ? `${props.qtdLessons * 55}px` : '0'};\n }\n`;\n","import styled from 'styled-components';\n\ninterface IContainer {\n disabled?: boolean;\n active?: boolean;\n}\n\nexport const Container = styled.div`\n display: block;\n border: ${(props) =>\n props.active ? 'solid 2px #e0e0e0' : 'solid 2px transparent'};\n background: ${(props) =>\n props.active ? '#e0e0e0' : 'transparent'}!important;\n text-align: left;\n border-radius: 15px;\n padding: 1px;\n background-image: none;\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n //transition-duration: 0.3s;\n\n :hover {\n text-decoration: none;\n border: 2px solid #e0e0e0;\n background: #e0e0e0 !important;\n .tip-block {\n opacity: 1;\n display: flex;\n }\n }\n\n img {\n width: 24px;\n height: 24px;\n }\n\n p {\n color: #242424;\n font-size: 14px;\n }\n\n .tip-block {\n justify-content: space-evenly;\n z-index: 1000;\n pointer-events: none;\n position: absolute;\n top: -5px;\n left: 0px;\n background: #ffffff;\n border: 1px solid #dedede;\n box-shadow: 4px 15px 25px rgba(0, 0, 0, 0.08);\n border-radius: 15px;\n //width: 280px;\n transition: all 0.3s ease;\n opacity: 0;\n p {\n font-weight: 300;\n font-size: 12px;\n line-height: 134.02%;\n color: #021027;\n max-width: 285px;\n span {\n font-weight: 500;\n }\n }\n }\n\n .duration {\n font-size: 12px;\n color: #626262;\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-05 {\n opacity: 0.5;\n }\n\n .opacity-1 {\n opacity: 1;\n }\n\n .line-height {\n line-height: 1.7;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 82%;\n }\n\n a {\n text-decoration: none;\n pointer-events: ${(props) => (props.disabled ? 'none' : 'unset')};\n }\n\n > button {\n border: none !important;\n background-color: transparent !important;\n pointer-events: ${(props) => (props.disabled ? 'none' : 'unset')};\n\n .completed {\n transform: rotateZ(0) !important;\n }\n }\n`;\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\nimport Lottie from 'react-lottie';\nimport blocked from '~/assets/animations/blocked.json';\nimport play from '~/assets/icons/play-icon.svg';\nimport padlock from '~/assets/icons/padlock-icon.svg';\n\nimport { Container } from './styles';\n\ninterface ButtonLessonProps {\n lesson: {\n id: string;\n title: string;\n duration: string;\n status: string;\n slug: string;\n finished: boolean;\n block: boolean;\n };\n slugCourse: string;\n onClickFinished?(lesson_id: string): void;\n}\n\nconst ButtonLesson: React.FC = ({\n lesson,\n slugCourse,\n onClickFinished,\n}) => {\n const params = useParams<{ slugLesson: string }>();\n\n return (\n \n {/* \n
\n \n
\n

\n Unlock the next video by watching the previous one to the\n end.{' '}\n \n 👋\n \n

\n
*/}\n \n onClickFinished && onClickFinished(lesson.id)}\n className=\"border-0 bg-transparent mr-3\"\n disabled\n >\n {/* {!lesson.block ? (\n \"Icon\n ) : (\n \"Icon\n )} */}\n \"Icon\n \n\n
\n

{lesson.title}

\n
\n \n
\n );\n};\n\nexport default ButtonLesson;\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { Container, Contents } from './styles';\nimport ButtonLesson from '~/components/ButtonLesson';\nimport { IQuestion } from '~/components/Quizzes';\n\nimport play from '~/assets/icons/play-icon.svg';\nimport playModule from '~/assets/icons/play-module.svg';\n\nimport { useAuth } from '~/hooks/Auth';\n\ninterface ILesson {\n id: string;\n title: string;\n duration: string;\n status: string;\n slug: string;\n finished: boolean;\n block: boolean;\n}\n\ninterface IModule {\n id: string;\n title: string;\n locked: boolean;\n lessons: ILesson[];\n slug: string;\n type?: 'introduction' | 'exam';\n exam?: {\n id: string;\n questions: IQuestion[];\n answered: boolean;\n allQuestionsCorrect: boolean;\n };\n}\n\ninterface IModulesProps {\n data: IModule[];\n slugCourse: string;\n nextStep?: string;\n onAnsweredExam?(): void;\n onClickFinished?(lesson_id: string): void;\n}\n\nconst Modules: React.FC = ({\n data,\n slugCourse,\n nextStep,\n onClickFinished,\n}) => {\n const { user } = useAuth();\n const location = useLocation();\n const [moduleSelected, setModuleSelected] = useState('');\n const [modules, setModules] = useState([]);\n\n const moduleOpen = sessionStorage.getItem('moduleSelected');\n\n const lessonsModule1 = useMemo(() => {\n if (modules[0]) {\n return modules[0].lessons.reduce((previous, current) => {\n previous.push(current.slug);\n return previous;\n }, [] as string[]);\n }\n\n return [];\n }, [modules]);\n\n const lessonsModule2 = useMemo(() => {\n if (modules[1]) {\n return modules[1].lessons.reduce((previous, current) => {\n previous.push(current.slug);\n return previous;\n }, [] as string[]);\n }\n\n return [];\n }, [modules]);\n\n const lessonsModule3 = useMemo(() => {\n if (modules[2]) {\n return modules[2].lessons.reduce((previous, current) => {\n previous.push(current.slug);\n return previous;\n }, [] as string[]);\n }\n\n return [];\n }, [modules]);\n\n useEffect(() => {\n setModules(data);\n if (nextStep) {\n localStorage.setItem(`next_step_${user.id}`, nextStep);\n\n if (moduleOpen === null && lessonsModule1.includes(nextStep)) {\n setModuleSelected('0360dd74-ef1a-447e-966b-e420169e74b0');\n }\n\n if (moduleOpen === null && lessonsModule2.includes(nextStep)) {\n setModuleSelected('07caaf71-190d-4772-b6d3-0a367edc6fab');\n }\n\n if (moduleOpen === null && lessonsModule3.includes(nextStep)) {\n setModuleSelected('bd48e222-f473-4478-94a2-1874d0f5ef00');\n }\n }\n }, [\n data,\n lessonsModule1,\n lessonsModule2,\n lessonsModule3,\n moduleOpen,\n nextStep,\n user.id,\n ]);\n\n const handleClick = useCallback(\n (moduleId) => {\n if (moduleSelected === moduleId) {\n setModuleSelected('');\n sessionStorage.removeItem('moduleSelected');\n } else {\n setModuleSelected(moduleId);\n sessionStorage.setItem('moduleSelected', moduleId);\n }\n },\n [moduleSelected]\n );\n\n return (\n \n \n \"Icon\n Getting Started\n \n {modules.map((module, index) => (\n <>\n {module.title !== 'introduction' && (\n \n handleClick(module.id)}\n >\n
\n \"Play\"\n\n

\n {module.title}{' '}\n {modules[index].lessons.length} Videos\n

\n
\n \n
\n {module.lessons.map((lesson) => (\n \n ))}\n
\n \n )}\n \n ))}\n
\n );\n};\n\nexport default Modules;\n","import styled from 'styled-components';\n\ninterface IButtonQuestion {\n active: boolean;\n correct?: boolean;\n incorrect?: boolean;\n}\n\nexport const Container = styled.div`\n .border-silver {\n cursor: not-allowed;\n }\n .border-quizz {\n border-radius: 15px;\n background-color: var(--greyMineral);\n }\n`;\n\nexport const ButtonQuestion = styled.button`\n color: ${(props) => (props.active ? '#bdbdbd' : 'var(--grayImmensity)')};\n background: ${(props) =>\n props.active ? 'var(--mysteriousGrey)' : 'var(--asphaltGray)'};\n border-radius: 7px;\n font-weight: 600;\n border: none;\n padding: 10px;\n transition-duration: 0.3s;\n position: relative;\n\n + button {\n margin-left: 12px;\n }\n\n :hover {\n color: var(--graniteGray);\n background: var(--mysteriousGrey);\n }\n\n svg {\n position: absolute;\n bottom: -5px;\n left: 50%;\n transform: translateX(-50%);\n opacity: 0;\n transition-duration: 0.3s;\n }\n\n .correct {\n opacity: ${(props) => (props.correct ? 1 : 0)};\n }\n\n .incorrect {\n opacity: ${(props) => (props.incorrect ? 1 : 0)};\n }\n`;\n\nexport const Question = styled.div`\n border-radius: 10px;\n padding: 30px 0;\n\n + div {\n margin-top: 10px;\n }\n\n .message-alert {\n border-radius: 10px;\n color: var(--ultraWhite);\n padding: 5px 20px;\n min-width: 150px;\n text-align: center;\n }\n\n .success {\n background: var(--success);\n }\n\n .error {\n background: var(--error);\n }\n\n @media screen and (max-width: 575px) {\n padding: 15px 0;\n }\n`;\n\nexport const Answer = styled.div`\n label {\n color: var(--graniteGray);\n opacity: 0.8;\n border: 1.5px solid var(--grayImmensity);\n box-sizing: border-box;\n border-radius: 10px;\n padding: 5px;\n width: 100%;\n text-align: center;\n cursor: pointer;\n transition-duration: 0.3s;\n\n .answer {\n width: auto;\n padding: 0;\n background: none;\n border: 0;\n\n input {\n width: auto;\n }\n }\n }\n\n label.selected,\n label:hover {\n border: 1.5px solid var(--blizzard);\n background: var(--blizzard);\n opacity: 0.8;\n color: var(--greyMineral);\n }\n\n + div {\n margin-top: 10px;\n }\n`;\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\nimport { Form } from '@unform/web';\nimport Carousel from 'react-elastic-carousel';\nimport { Modal } from 'react-bootstrap';\nimport { RiCheckboxCircleFill, RiCloseCircleFill } from 'react-icons/ri';\n\nimport { FormHandles } from '@unform/core';\nimport { useLanguage } from '~/hooks/Language';\n\nimport { Container, ButtonQuestion, Question, Answer } from './styles';\nimport Input from '~/components/Input';\n\nimport quizGolden from '~/assets/icons/quiz-golden-icon.svg';\nimport closeIcon from '~/assets/icons/close.svg';\n\ninterface IOptions {\n id: string;\n answer: string;\n correct_answer: boolean;\n}\n\nexport interface IQuestion {\n id: string;\n question: string;\n options: IOptions[];\n}\n\nexport interface IAnswers {\n question_id: string;\n correct_answer: boolean;\n}\n\ninterface QuizzesProps {\n dataQuestions: IQuestion[];\n onAnsweredQuestions?(answers: IAnswers[]): void;\n answered: boolean;\n showQuestions?: boolean;\n hideButton?: boolean;\n onCloseModal?(): void;\n}\n\ntype ICarouselType = Omit & R;\n\ntype ICarousel = ICarouselType<\n Carousel,\n {\n goTo(index: number): void;\n }\n>;\n\nconst Quizzes: React.FC = ({\n dataQuestions,\n onAnsweredQuestions,\n answered,\n showQuestions,\n hideButton,\n onCloseModal,\n}) => {\n const carouselRef = useRef(null);\n const formRef = useRef(null);\n const { language } = useLanguage();\n const [show, setShow] = useState(false);\n const [questions, setQuestions] = useState([]);\n const [questionNumber, setQuestionNumber] = useState(0);\n const [answers, setAnswers] = useState([]);\n const [answersSelected, setAnswersSelected] = useState([]);\n const [hasError, setHasError] = useState('');\n const [quizAnswered, setQuizAnswered] = useState(false);\n const [checkAnswer, setCheckAnswer] = useState([]);\n\n useEffect(() => {\n setQuizAnswered(answered);\n }, [answered]);\n\n useEffect(() => {\n if (dataQuestions && dataQuestions.length > 0) {\n setQuestions(dataQuestions);\n }\n }, [dataQuestions]);\n\n useEffect(() => {\n if (typeof showQuestions !== typeof undefined) {\n setShow(showQuestions as boolean);\n }\n }, [showQuestions]);\n\n const handleClose = useCallback(() => {\n setShow(false);\n if (onCloseModal) {\n onCloseModal();\n }\n }, [onCloseModal]);\n\n const handleShow = useCallback(() => setShow(true), []);\n\n const handleChangeItem = useCallback(({ index }) => {\n setQuestionNumber(index);\n }, []);\n\n const handleChangeAnswer = useCallback(\n (question_id, answer_id) => {\n const answeredQuestions = questions.find(\n (question) => question.id === question_id\n );\n if (answeredQuestions) {\n const correctAnswer = answeredQuestions.options.find(\n (answer: IOptions) => answer.id === answer_id\n );\n if (correctAnswer) {\n const data: IAnswers = {\n question_id,\n correct_answer: correctAnswer.correct_answer,\n };\n\n const newAnswersSelected = answersSelected.slice();\n const newAnswers = answers.slice();\n\n newAnswers[questionNumber] = data;\n newAnswersSelected[questionNumber] = correctAnswer.id;\n setAnswers(newAnswers);\n setAnswersSelected(newAnswersSelected);\n }\n }\n },\n [answers, answersSelected, questionNumber, questions]\n );\n\n const handleClick = useCallback(() => {\n const newCheckAnswer = checkAnswer.slice();\n if (answers[questionNumber]) {\n if (answers[questionNumber].correct_answer) {\n newCheckAnswer[questionNumber] = 'Correct!';\n } else {\n newCheckAnswer[questionNumber] = 'Oops...';\n }\n } else {\n newCheckAnswer[questionNumber] = 'Answer is mandatory';\n }\n setCheckAnswer(newCheckAnswer);\n const questionsAnswers = answers.filter((answer) => !!answer);\n\n if (questionsAnswers.length === questions.length && formRef.current) {\n formRef.current?.submitForm();\n }\n }, [checkAnswer, answers, questionNumber, questions.length]);\n\n const handleSubmit = useCallback(() => {\n setHasError('');\n try {\n if (questions.length !== answers.length) {\n const error = language.quiz_component.error_message;\n throw error;\n }\n if (!checkAnswer.find((answer) => answer !== 'Correct!')) {\n if (onAnsweredQuestions) {\n onAnsweredQuestions(answers);\n }\n setQuizAnswered(true);\n } else {\n setHasError('Responda corretamente todas as peguntas');\n }\n } catch (error) {\n const err: any = error;\n setHasError(err);\n }\n }, [\n answers,\n checkAnswer,\n language.quiz_component.error_message,\n onAnsweredQuestions,\n questions.length,\n ]);\n\n const handleSelectQuestion = useCallback((question) => {\n setQuestionNumber(question);\n if (carouselRef.current) {\n carouselRef.current.goTo(question);\n }\n }, []);\n\n return (\n \n {!hideButton && (\n \n \n \n {quizAnswered\n ? language.quiz_component.button_1\n : language.quiz_component.button_2}\n \n \n \n )}\n \n \n \n {language.quiz_component.h4}{' '}\n {language.quiz_component.h4}\n \n \n \n \n
\n {questions.map((_, indexQuestion) => (\n handleSelectQuestion(indexQuestion)}\n >\n {`${indexQuestion + 1}`.padStart(2, '0')}\n \n \n \n ))}\n
\n
\n \n {questions.map((question, indexQuestion) => (\n \n
\n

\n {indexQuestion + 1}) {question.question}\n

\n {checkAnswer[indexQuestion] && (\n \n {checkAnswer[indexQuestion]}\n

\n )}\n
\n {question.options.map((option, indexOption) => (\n \n answerSelected === option.id\n )\n ? 'selected'\n : ''\n }`}\n >\n \n handleChangeAnswer(question.id, option.id)\n }\n />\n {option.answer}\n \n \n ))}\n \n ))}\n \n \n
\n \n \n {hasError && (\n
\n

{hasError}

\n
\n )}\n \n \n {language.quiz_component.button_3}\n \n \n \n
\n \n
\n );\n};\n\nexport default Quizzes;\n","import { lighten } from 'polished';\nimport styled from 'styled-components';\n\ninterface IContainerProps {\n show: boolean;\n color: string;\n background: string;\n}\n\nexport const Container = styled.div`\n transition-duration: 0.3s;\n position: fixed;\n right: ${(props) => (props.show ? '25px' : '-100%')};\n max-width: 300px;\n bottom: 50px;\n z-index: 1400;\n color: ${(props) => props.color};\n background-color: ${(props) => props.background};\n border-color: ${(props) => lighten(0.2, props.color)};\n\n @media screen and (max-width: 340px) {\n right: ${(props) => (props.show ? '15px' : '-100%')};\n }\n`;\n","import React, { useEffect } from 'react';\n\nimport { Container } from './styles';\n\ninterface IAlertProps {\n show: boolean;\n setShow(show: boolean): void;\n content: string;\n color?: string;\n showTime?: number;\n background?: string;\n}\n\nconst Alert: React.FC = ({\n show,\n setShow,\n content,\n color,\n showTime,\n background,\n}) => {\n useEffect(() => {\n setTimeout(() => {\n setShow(false);\n }, showTime || 1000);\n }, [setShow, show, showTime]);\n\n return (\n \n

{content}

\n \n );\n};\n\nexport default Alert;\n","import styled, { css } from 'styled-components';\n\ninterface ILocation {\n location: string;\n}\n\nexport const Container = styled.div`\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border-radius: 20px;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n display: inline-block;\n box-shadow: none;\n height: 102px;\n\n span,\n input {\n color: transparent !important;\n }\n img {\n display: none;\n }\n\n button {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n`;\nexport const Action = styled.div`\n background: #fff;\n border-radius: 20px;\n`;\n\nexport const Options = styled.div`\n border-radius: 15px;\n padding: 1px;\n border: 1px solid #dedede;\n background: #f9f9f9;\n box-shadow: 0px 4px 8px transparent;\n\n button:not(.options-button) {\n color: #8c8c8c;\n font-weight: 400;\n border-bottom: 1px solid transparent !important;\n padding: 5px 0;\n font-size: 16px;\n\n :hover {\n color: #021027;\n border-color: #021027 !important;\n font-weight: 700 !important;\n }\n }\n\n button.active {\n color: #021027;\n border-color: #021027 !important;\n font-weight: 700 !important;\n }\n\n @media screen and (min-width: 992px) {\n button:not(.options-button) {\n font-size: 12px;\n }\n }\n\n @media screen and (min-width: 1200px) {\n button:not(.options-button) {\n font-size: 14px;\n }\n }\n\n @media screen and (min-width: 1400px) {\n button:not(.options-button) {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 991px) {\n .options-button {\n transition-duration: 0.3s;\n background: var(--midnight);\n border-radius: 20px;\n\n p {\n color: var(--ultraWhite);\n font-weight: 700 !important;\n }\n\n svg {\n transition-duration: 0.3s;\n color: var(--ultraWhite);\n }\n }\n\n .options {\n transition-duration: 0.3s;\n background: var(--coal);\n color: var(--technologicalGray);\n border-radius: 0 0 20px 20px;\n height: 0;\n overflow: hidden;\n padding-top: 0;\n padding-bottom: 0;\n\n .bg-btn {\n background-color: transparent !important;\n border: none;\n border-radius: 0 !important;\n width: 100%;\n\n + .bg-btn {\n border-top: solid 1px var(--blizzardOpacity) !important;\n }\n }\n }\n\n .options-box.active {\n .options-button {\n border-radius: 20px 20px 0px 0px;\n\n svg {\n transform: rotate(180deg);\n }\n }\n\n .options {\n height: 200px !important;\n padding: 0;\n overflow: none;\n\n ::-webkit-scrollbar {\n background-color: var(--coal);\n width: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--asphaltGray);\n }\n }\n }\n\n button:hover,\n button.active {\n border-bottom: none !important;\n }\n }\n\n @media screen and (max-width: 767px) {\n .w-33-mobile {\n width: 33.333%;\n }\n }\n`;\n\nexport const Content = styled.div`\n overflow-y: auto;\n overflow-x: hidden;\n padding-right: 0.5rem;\n\n ${(props) => {\n if (props.location === '/lessons/welcome') {\n return css`\n height: 535px;\n `;\n }\n\n if (\n props.location.includes(\n 'the-difference-between-traditional-and-online-businesses'\n ) ||\n props.location.includes('the-truth-about-money') ||\n props.location.includes('time-management') ||\n props.location.includes('paradigm-shift') ||\n props.location.includes('setup-your-ai-connector-bot')\n ) {\n return css`\n height: 590px;\n `;\n }\n if (\n props.location.includes('setting-up-your-offers') ||\n props.location.includes('setting-up-the-profiti-offer')\n ) {\n return css`\n height: 660px;\n `;\n }\n\n return css`\n height: 725px;\n `;\n }}\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #c0c0c0;\n }\n p {\n color: var(--graniteGray);\n }\n\n h2 {\n color: var(--blizzard);\n font-size: 1.5rem;\n }\n\n input {\n background-color: transparent;\n border: 1px solid var(--deepGrey);\n border-radius: 35px;\n }\n\n .about,\n .next-step,\n .special-note {\n h2 {\n font-weight: 700;\n font-size: 26px;\n line-height: 31px;\n color: #242424;\n margin-top: 24px;\n margin-bottom: 27px;\n }\n\n h3 {\n font-weight: 600;\n font-size: 20px;\n line-height: 22px;\n color: #242424;\n margin-bottom: 30px;\n }\n\n p {\n font-weight: 400;\n font-size: 16px;\n line-height: 172.52%;\n color: #242526;\n margin-bottom: 30px;\n }\n }\n\n .img-height {\n height: 150px;\n }\n\n .send {\n right: 38px;\n top: 12px;\n }\n\n .color-light {\n color: var(--graniteGray);\n }\n\n .comment {\n background-color: var(--closedGray);\n border-radius: 20px;\n min-width: 170px;\n\n p:nth-child(1) {\n color: var(--ultraWhite);\n }\n\n p:nth-child(2) {\n color: var(--technologicalGray);\n }\n }\n\n .comment-actions {\n min-width: 170px;\n }\n\n .comment-button {\n background-color: transparent;\n border: none;\n color: var(--deepGrey);\n }\n\n .next-step {\n .coach {\n padding: 2px;\n background-color: var(--asphaltGray);\n border-radius: 20px;\n\n .coach-avatar {\n padding: 3px;\n background-image: linear-gradient(0deg, var(--coal), var(--coal)),\n radial-gradient(\n circle at top left,\n var(--blizzardOpacity),\n var(--blizzardOpacity)\n );\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 60px;\n }\n }\n }\n\n .discuss-img {\n width: 70px;\n height: 70px;\n }\n\n .spacer {\n width: 70px;\n }\n\n .special-note {\n padding: 3px;\n }\n\n .downloads {\n img {\n width: 100%;\n border-radius: 10px;\n }\n\n .bg-shadow {\n border-radius: 10px;\n background: var(--midnight) 5e;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n padding: 10px;\n width: calc(100% - 30px);\n\n p {\n color: var(--ultraWhite);\n }\n }\n }\n\n .box {\n border-radius: 15px;\n padding: 1px;\n background-image: linear-gradient(\n 0deg,\n var(--asphaltGray),\n var(--asphaltGray)\n ),\n linear-gradient(180deg, var(--greyMineral) 0%, var(--greyMineral) 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n box-shadow: 0px 4px 8px transparent;\n\n img {\n border-radius: 15px;\n }\n\n p {\n color: var(--blizzard);\n }\n\n :hover {\n text-decoration: none !important;\n p {\n color: var(--blizzardLighten);\n }\n }\n }\n\n @media screen and (max-width: 1199px) {\n height: 345px;\n }\n\n @media screen and (max-width: 991px) {\n .discuss-img {\n width: 50px;\n height: 50px;\n }\n\n .spacer {\n width: 50px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .img-height {\n height: 220px;\n }\n }\n\n @media screen and (max-width: 490px) {\n .img-height {\n height: 200px;\n }\n }\n`;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { FiChevronDown } from 'react-icons/fi';\n\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\nimport { Container, Action, Options, Content } from './styles';\nimport { IAnswers, IQuestion } from '~/components/Quizzes';\nimport whatsapp from '~/assets/icons/whatsapp-icon.svg';\nimport mail from '~/assets/icons/mail-icon.svg';\nimport skype from '~/assets/icons/skype-icon.svg';\nimport coach from '~/assets/defaults/photo-coach.png';\nimport comment from '~/assets/icons/send.svg';\nimport profile from '~/assets/defaults/photo-profile.png';\n\ninterface IParams {\n slug: string;\n slugLesson: string;\n}\n\ninterface ILessonUser {\n id: string;\n user_id: string;\n time_watched: string;\n completed: boolean;\n answered_quiz: boolean;\n coach_released: boolean;\n status: string;\n deleted_at: string;\n block: boolean;\n}\n\ninterface ICourseLesson {\n id: string;\n title: string;\n duration: string;\n slug: string;\n lessonUser: ILessonUser[];\n watch_full_video: boolean;\n answer_quiz: boolean;\n coach_unlock: boolean;\n notes: IAnswers[];\n}\n\ninterface ICourseUser {\n id: string;\n user_id: string;\n locked_down: boolean;\n end_date?: Date;\n}\n\ninterface IExamUser {\n id: string;\n exam_id: string;\n note: string;\n}\n\ninterface IModuleResponse {\n id: string;\n title: string;\n locked: boolean;\n slug: string;\n moduleUser: {\n id: string;\n locked: boolean;\n };\n lessons: ILesson[];\n exam?: {\n id: string;\n module_id: string;\n questions: IQuestion[];\n examUser: IExamUser;\n examsUsers: IExamUser[];\n };\n}\n\ninterface IResponseCourse {\n id: string;\n title: string;\n subtitle: string;\n presented_by: string;\n description: string;\n categories: string;\n page_title: string;\n meta_description: string;\n video: {\n video_url: string;\n media_id: string;\n duration: string;\n };\n thumbnail: {\n thumbnail_url: string;\n };\n modules: IModuleResponse[];\n lessons: ICourseLesson[];\n courseUser: ICourseUser[];\n}\n\ninterface ILessonDownload {\n id: string;\n name: string;\n download_url: string;\n path: string;\n thumbnail: {\n thumbnail_url: string;\n };\n deleted_at: string | null;\n}\n\ninterface ILesson {\n id: string;\n title: string;\n description: string;\n video: {\n duration: string;\n };\n watch_full_video: boolean;\n answer_quiz: boolean;\n coach_button: boolean;\n coach_unlock: boolean;\n allow_about: boolean;\n allow_next_step: boolean;\n allow_special_note: boolean;\n allow_discussion: boolean;\n allow_downloads: boolean;\n special_notes_coach: boolean;\n about: string;\n next_step: string;\n special_note: string;\n slug: string;\n video_url: string;\n thumbnail_url: string;\n downloads: ILessonDownload[];\n lessonUser: ILessonUser[];\n quiz: IQuestion[];\n notes: IAnswers[];\n}\n\ninterface IAction {\n lesson: ILesson;\n className?: string;\n}\n\nconst Actions: React.FC = ({ lesson, className }) => {\n const { user, setCredentials } = useAuth();\n const location = useLocation();\n const { language } = useLanguage();\n\n const params = useParams();\n\n const [optionSelected, setOptionSelected] = useState('about');\n const [optionMobile, setOptionMobile] = useState(language.lesson.button_1);\n const [loading, setLoading] = useState(true);\n\n const [courseConclude, setCourseConclude] = useState(false);\n\n const checkIfReleaseCertificate = useCallback(\n async (modulesData: IModuleResponse[], courseIsConclude?: boolean) => {\n if (!courseConclude && !courseIsConclude) {\n try {\n const results: boolean[] = [];\n let allLessonWatched = true;\n modulesData.forEach((module) => {\n if (module.exam) {\n const result = module.exam.examsUsers.find(\n (examUser) =>\n module.exam?.module_id === module.id &&\n examUser.note === '10.00'\n );\n results.push(!!result);\n }\n\n if (allLessonWatched) {\n const lessons: ILesson[] = [];\n module.lessons.forEach((lessonData) => {\n const lessonUser = lessonData.lessonUser.filter(\n (lessonUserData) =>\n lessonUserData.user_id === user.id &&\n !lessonUserData.deleted_at\n );\n // eslint-disable-next-line no-param-reassign\n lessonData.lessonUser = lessonUser;\n lessons.push(lessonData);\n });\n const lessonSelected = lessons.find(\n (lessonData) => !lessonData.lessonUser[0].completed\n );\n allLessonWatched = !lessonSelected;\n }\n });\n\n let noReleaseCertificate: boolean | undefined;\n\n if (results.length > 0) {\n noReleaseCertificate = results.find((result) => !result);\n }\n\n if (\n typeof noReleaseCertificate === typeof undefined &&\n allLessonWatched\n ) {\n await api.post(`certificates/${params.slug}`);\n setCourseConclude(true);\n }\n } catch (error) {\n // console.log(error);\n }\n }\n },\n [params.slug, courseConclude, user.id]\n );\n\n useEffect(() => {\n return () => {\n setCredentials(undefined);\n };\n }, [setCredentials]);\n\n useEffect(() => {\n setLoading(true);\n if (params.slugLesson === 'introduction') {\n api\n .get(`/courses/users/${params.slug}`)\n .then((response) => {\n const courseIsConclude = response.data.courseUser.find(\n (courseUser) =>\n courseUser.user_id === user.id && !!courseUser.end_date\n );\n\n checkIfReleaseCertificate(response.data.modules, !!courseIsConclude);\n\n setCourseConclude(!!courseIsConclude);\n })\n .finally(() => {\n setLoading(false);\n });\n } else {\n api\n .get(`/courses/users/${params.slug}`)\n .then(async (response) => {\n const responseLesson = await api.get(\n `lessons/users/${response.data.id}/${params.slugLesson}`\n );\n\n if (responseLesson.data) {\n const courseIsConclude = response.data.courseUser.find(\n (courseUser) =>\n courseUser.user_id === user.id && !!courseUser.end_date\n );\n\n checkIfReleaseCertificate(\n response.data.modules,\n !!courseIsConclude\n );\n\n setCourseConclude(!!courseIsConclude);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, [\n checkIfReleaseCertificate,\n language.lesson.h2_1,\n params.slug,\n params.slugLesson,\n user.id,\n ]);\n\n useEffect(() => {\n api\n .get(`/courses/users/${params.slug}`)\n .then(async (response) => {\n const lessons: ILesson[] = [];\n response.data.modules.forEach((module) => {\n lessons.push(...module.lessons);\n });\n const videos = lessons.length;\n const complete = lessons.filter((lessonCourse) => {\n return (\n lessonCourse.lessonUser[0].completed ||\n (!lessonCourse.watch_full_video &&\n !lessonCourse.coach_unlock &&\n !lessonCourse.answer_quiz)\n );\n }).length;\n const percentage = parseFloat(((complete * 100) / videos).toFixed(2));\n if (percentage === 100) {\n await api.post(`certificates/${params.slug}`);\n }\n });\n }, [params.slug]);\n\n useEffect(() => {\n switch (optionSelected) {\n case 'next-step':\n setOptionMobile(language.lesson.button_2);\n break;\n case 'special-note':\n setOptionMobile(language.lesson.button_3);\n break;\n case 'discussion':\n setOptionMobile('Discussion');\n break;\n case 'downloads':\n setOptionMobile(language.lesson.button_5);\n break;\n case 'resources':\n setOptionMobile(language.lesson.button_7);\n break;\n default:\n setOptionMobile('Start Here');\n break;\n }\n }, [language.lesson, optionSelected]);\n\n const handleClickBox = useCallback((e) => {\n const box = e.target.closest('.options-box');\n if (box) {\n box.classList.toggle('active');\n }\n }, []);\n\n const handleClickOption = useCallback((value) => {\n setOptionSelected(value);\n const element = document.querySelector('.options-box');\n if (element) {\n element.classList.remove('active');\n }\n }, []);\n\n return (\n \n \n \n
\n \n

\n {optionMobile}\n

\n \n \n
\n handleClickOption('about')}\n >\n Start Here\n \n handleClickOption('next-step')}\n >\n {language.lesson.button_2}\n \n handleClickOption('special-note')}\n >\n {language.lesson.button_3}\n \n
\n
\n
\n \n \n \n \n \n
\n \n \n
\n {lesson.special_notes_coach && (\n
\n
\n
\n \n

Monica Ramos

\n

Entrenador(a)

\n
\n \"Whatsapp\"\n

\n +1 55 565 3322\n

\n
\n
\n \"Mail\"\n

\n mr@millonariodigital.com\n

\n
\n
\n \"Skype\"\n

\n mariaromos11\n

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

Alexia Myers

\n

Like the energy!

\n
\n
\n
\n
\n
\n
\n \n -\n \n -\n \n
\n
\n
\n
\n
\n
\n
\n \n

{language.lesson.h2_3}

\n
\n {lesson &&\n lesson.downloads &&\n lesson.downloads.length > 0 &&\n lesson.downloads.map((download) => (\n \n \n
\n

{download.name}

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

{language.lesson.p_4}

\n \n \n \n
\n );\n};\n\nexport default Actions;\n","import styled from 'styled-components';\n\ninterface noteProps {\n textareaSelected: boolean;\n}\n\nexport const Note = styled.div`\n background: var(--coal);\n border-radius: 15px;\n\n p {\n color: #242424;\n font-size: 0.9rem;\n }\n\n button {\n cursor: text !important;\n }\n\n textarea {\n background: #fff;\n border: none;\n color: #242424;\n padding: ${(props) => (props.textareaSelected ? '.375rem .75rem' : '0px')};\n height: ${(props) => (props.textareaSelected ? '124px' : '104px')};\n //height: 124px;\n transition: all 0.1s ease;\n resize: none;\n\n :focus {\n background: #fff;\n box-shadow: none;\n color: #242424;\n }\n }\n\n @media screen and (max-width: 1199px) {\n textarea {\n height: ${(props) => (props.textareaSelected ? '134px' : '114px')};\n //height: 134px;\n }\n }\n`;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { AxiosResponse } from 'axios';\nimport { useLanguage } from '~/hooks/Language';\nimport { Note } from './styles';\nimport notes from '~/assets/icons/notes.svg';\nimport api from '~/services/api';\n\ninterface ILesson {\n id: string;\n}\n\ninterface IAnnotation {\n id: string;\n content: string;\n}\n\nlet typingTimer = 0;\n\nconst Notes: React.FC = ({ id }) => {\n const [textareaSelected, setTextareaSelected] = useState(false);\n const [textareaContent, setTextareaContent] = useState(0);\n const { language } = useLanguage();\n\n const [annotation, setAnnotation] = useState({\n id: '',\n content: '',\n });\n\n const handleClick = useCallback(() => {\n setTextareaSelected(true);\n }, []);\n\n const handleFocus = useCallback(() => {\n setTextareaSelected(true);\n }, []);\n\n const handleBlur = useCallback(() => {\n setTextareaSelected(false);\n }, []);\n\n const handleDoneTyping = useCallback(\n async (content: string) => {\n const formData = {\n lesson_id: id,\n content,\n };\n\n let response: AxiosResponse;\n\n if (annotation.id) {\n response = await api.put(`annotations/${annotation.id}`, formData);\n } else {\n response = await api.post('annotations', formData);\n }\n\n setAnnotation(response.data);\n },\n [annotation.id, id]\n );\n\n const handleChange = useCallback(\n (e) => {\n const content = e.target.value;\n setAnnotation((state) => ({\n id: state.id,\n content,\n }));\n setTextareaContent(e.target.value.length);\n clearTimeout(typingTimer);\n typingTimer = setTimeout(handleDoneTyping, 2000, e.target.value);\n },\n [handleDoneTyping]\n );\n\n useEffect(() => {\n api.get(`annotations/users/${id}`).then((response) => {\n setAnnotation(response.data);\n setTextareaContent(response.data.content.length);\n });\n }, [id]);\n\n return (\n \n {!textareaSelected && textareaContent === 0 && (\n \n \"File\"\n

{language.notes.p}

\n \n )}\n \n \n );\n};\n\nexport default Notes;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .credentials-box {\n background: #116bff;\n border: 2px solid #021027;\n border-radius: 20px;\n padding: 7px;\n filter: drop-shadow(0px 4px 20px rgba(0, 0, 0, 0.15));\n\n img {\n width: 10px;\n height: 10px;\n }\n\n h4 {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-size: 19px;\n line-height: 23px;\n color: #ffffff;\n margin-bottom: 15px;\n }\n\n p {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-size: 12px;\n line-height: 81%;\n color: #ffffff;\n }\n\n span {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-size: 12px;\n line-height: 130.34%;\n color: #ffffff;\n\n a {\n color: #ffffff;\n font-weight: 700;\n }\n }\n\n .dark-box {\n background: #021027;\n border-radius: 15px;\n padding: 19px 17px;\n\n h6 {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-size: 12px;\n line-height: 15px;\n text-align: center;\n color: #ffffff;\n margin-bottom: 0px;\n }\n\n p {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-size: 13px;\n line-height: 16px;\n text-align: center;\n color: #ffffff;\n }\n }\n }\n\n @media screen and (max-width: 767px) {\n .credentials-box {\n padding: 17px;\n\n h4 {\n font-size: 18px;\n }\n p,\n span {\n display: block;\n line-height: 130%;\n }\n }\n }\n`;\n","import React, { useCallback, useState } from 'react';\n\nimport { Link, useLocation } from 'react-router-dom';\nimport { Container } from './styles';\n\nimport closeIcon from '~/assets/icons/close.svg';\nimport { useAuth } from '~/hooks/Auth';\n\nconst Credentials: React.FC = () => {\n const { credentials, setCredentials } = useAuth();\n const location = useLocation();\n const [langSelected] = useState(() => {\n return location.pathname.substr(0, 3) === '/en' ||\n location.pathname.substr(0, 3) === '/es'\n ? location.pathname.substr(0, 3)\n : '';\n });\n\n const handleClickClose = useCallback(() => {\n setCredentials(undefined);\n }, [setCredentials]);\n return (\n \n
\n \n \"Close\"\n \n
\n

\n Our system generated a password for your account\n

\n

\n Save them so that you can access your account, we also sent it to\n your email.{' '}\n

\n \n You can change your password in the profile settings.{' '}\n \n Click Here\n \n \n
\n
\n
\n
Your username:
\n

{credentials?.email}

\n
\n
\n
Your password:
\n

{credentials?.password}

\n
\n
\n
\n
\n );\n};\n\nexport default Credentials;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable no-loop-func */\nimport React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { useLocation, useParams, useHistory, Link } from 'react-router-dom';\n\nimport { BsArrowRightCircle } from 'react-icons/bs';\nimport { IoMdClose } from 'react-icons/io';\nimport { useAuth } from '~/hooks/Auth';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport {\n Container,\n Welcome,\n Locked,\n LessonData,\n LessonsBox,\n Skeleton,\n SideBar,\n Modal,\n ProgressBar,\n Descriptions,\n} from './styles';\nimport Player from '~/components/Player';\nimport Modules from '~/components/Modules';\nimport Quizzes, { IAnswers, IQuestion } from '~/components/Quizzes';\nimport Alert from '~/components/Alert';\nimport thumbModal from '~/assets/defaults/thumb-video-modal.png';\n\nimport Actions from './Actions';\nimport Notes from './Notes';\nimport Support from './Support';\nimport Credentials from './Credentials';\nimport lockedIcon from '~/assets/icons/locked.svg';\nimport check from '~/assets/icons/check-progress.svg';\nimport arrows from '~/assets/icons/arrows-double-right-blue.svg';\nimport Info from '~/components/Info';\nimport { useNextStep } from '~/hooks/NextStep';\nimport Payment from '~/components/Payment';\n\ninterface IParams {\n slug: string;\n slugLesson: string;\n}\n\ninterface ILessonUser {\n id: string;\n user_id: string;\n time_watched: string;\n completed: boolean;\n answered_quiz: boolean;\n coach_released: boolean;\n status: string;\n deleted_at: string;\n block: boolean;\n}\n\ninterface ICourseLesson {\n id: string;\n title: string;\n duration: string;\n slug: string;\n lessonUser: ILessonUser[];\n watch_full_video: boolean;\n answer_quiz: boolean;\n coach_unlock: boolean;\n notes: IAnswers[];\n}\n\ninterface ICourseUser {\n id: string;\n user_id: string;\n locked_down: boolean;\n end_date?: Date;\n locked: boolean;\n}\n\ninterface IExamUser {\n id: string;\n exam_id: string;\n note: string;\n}\n\ninterface IModuleResponse {\n id: string;\n title: string;\n locked: boolean;\n slug: string;\n moduleUser: {\n id: string;\n locked: boolean;\n };\n lessons: ILesson[];\n exam?: {\n id: string;\n module_id: string;\n questions: IQuestion[];\n examUser: IExamUser;\n examsUsers: IExamUser[];\n };\n}\n\ninterface IResponseCourse {\n id: string;\n title: string;\n subtitle: string;\n presented_by: string;\n description: string;\n categories: string;\n page_title: string;\n meta_description: string;\n video: {\n video_url: string;\n media_id: string;\n duration: string;\n };\n thumbnail: {\n thumbnail_url: string;\n };\n modules: IModuleResponse[];\n lessons: ICourseLesson[];\n courseUser: ICourseUser[];\n}\n\ninterface IlessonDownload {\n id: string;\n name: string;\n download_url: string;\n path: string;\n thumbnail: {\n thumbnail_url: string;\n };\n deleted_at: string | null;\n}\n\ninterface ILesson {\n id: string;\n title: string;\n description: string;\n video: {\n duration: string;\n };\n watch_full_video: boolean;\n answer_quiz: boolean;\n coach_button: boolean;\n coach_unlock: boolean;\n allow_about: boolean;\n allow_next_step: boolean;\n allow_special_note: boolean;\n allow_discussion: boolean;\n allow_downloads: boolean;\n special_notes_coach: boolean;\n about: string;\n next_step: string;\n special_note: string;\n slug: string;\n video_url: string;\n thumbnail_url: string;\n downloads: IlessonDownload[];\n lessonUser: ILessonUser[];\n quiz: IQuestion[];\n notes: IAnswers[];\n}\n\ninterface ILessonList {\n id: string;\n title: string;\n duration: string;\n status: string;\n slug: string;\n finished: boolean;\n block: boolean;\n}\n\ninterface IModule {\n id: string;\n title: string;\n locked: boolean;\n lessons: ILessonList[];\n slug: string;\n type?: 'introduction' | 'exam';\n\n exam?: {\n id: string;\n questions: IQuestion[];\n answered: boolean;\n allQuestionsCorrect: boolean;\n };\n}\n\nconst Lessons: React.FC = () => {\n const { user, credentials, updateUser } = useAuth();\n const { language } = useLanguage();\n const { setNextStep } = useNextStep();\n const location = useLocation();\n const history = useHistory();\n const params = useParams();\n const [modules, setModules] = useState([]);\n const [lesson, setLesson] = useState({} as ILesson);\n const [show, setShow] = useState(false);\n const [showAlert, setShowAlert] = useState(false);\n const [showCertificateAlert, setShowCertificateAlert] = useState(false);\n const [loading, setLoading] = useState(true);\n const [courseUserId, setCourseUserId] = useState('');\n const [courseConclude, setCourseConclude] = useState(false);\n const [locked, setLocked] = useState(false);\n const [coachLocked, setCoachLocked] = useState(false);\n const [showPayment, setShowPayment] = useState(false);\n const [link, setLink] = useState('');\n const [moduleVideo, setModuleVideo] = useState('');\n const [completed, setCompleted] = useState('');\n const [min, setMin] = useState('');\n const [numberProgress, setNumberProgress] = useState(1);\n const [loadNextLesson, setLoadNextLesson] = useState(0);\n const lessonCardBot = useMemo(\n () => [\n 'the-difference-between-traditional-and-online-businesses',\n 'the-truth-about-money',\n 'time-management',\n 'paradigm-shift',\n 'setup-your-ai-connector-bot',\n ],\n []\n );\n const foundersClub = useMemo(\n () => [\n 'your-path-to--multiple-income-streams',\n 'autoaffiliate-faq-your-questions-answered',\n ],\n []\n );\n const masterclassVideo =\n 'discover-the-easiest-way-to-supplement-your-income-online';\n\n const [step, setStep] = useState('');\n const [firstLoaded, setFirstLoaded] = useState(false);\n\n const allLessons = useMemo(() => {\n const lessonsSlugs = modules.reduce((previous, current) => {\n previous.push(...current.lessons.map((lessonData) => lessonData.slug));\n return previous;\n }, [] as string[]);\n return lessonsSlugs;\n }, [modules]);\n\n const [langSelected] = useState(() => {\n return location.pathname.substr(0, 3) === '/en' ||\n location.pathname.substr(0, 3) === '/es'\n ? location.pathname.substr(0, 3)\n : '';\n });\n\n useEffect(() => {\n const boxBot = document.getElementById('box-bot');\n if (numberProgress > 8 && !lessonCardBot.includes(params.slugLesson)) {\n boxBot?.classList.add('d-block');\n }\n }, [lessonCardBot, numberProgress, params.slugLesson]);\n\n useEffect(() => {\n const nextLesson = allLessons.indexOf(params.slugLesson);\n if (nextLesson + 1 >= allLessons.length) {\n setLoadNextLesson(nextLesson);\n } else {\n setLoadNextLesson(nextLesson + 1);\n }\n }, [allLessons, loadNextLesson, params.slugLesson]);\n\n useEffect(() => {\n if (params.slug === 'welcome') {\n setLoading(true);\n api\n .get(`courses/users/masterclass-onboarding`, {\n params: {\n withVideo: true,\n withLessons: true,\n withLessonUser: true,\n },\n })\n .then(async (response) => {\n const responseModules = await api.get(\n `modules/users/${response.data.id}`\n );\n const modulesData: IModule[] = [];\n let idx = 0;\n for (const module of responseModules.data) {\n const responseLessons = await api.get(\n `lessons/modules/${module.id}`,\n {\n params: {\n user: user.id,\n },\n }\n );\n let lastLessonUser: ILessonUser | undefined;\n const lessonsData: ILessonList[] = responseLessons.data.map(\n (lessonData, index) => {\n const newLessonUser = lessonData.lessonUser.slice();\n const lessonUserIndex = lessonData.lessonUser.findIndex(\n (lessonUser) => lessonUser.user_id === user.id\n );\n\n if (lessonUserIndex >= 0) {\n if (\n newLessonUser[lessonUserIndex].completed ||\n lastLessonUser?.completed ||\n newLessonUser[lessonUserIndex].time_watched !== '00:00:00'\n ) {\n newLessonUser[lessonUserIndex].block = false;\n } else {\n newLessonUser[lessonUserIndex].block = true;\n }\n lastLessonUser = newLessonUser[lessonUserIndex];\n }\n\n return {\n id: lessonData.id,\n title: lessonData.title,\n duration: lessonData.video.duration,\n status: newLessonUser[lessonUserIndex]\n ? newLessonUser[lessonUserIndex].status\n : '',\n slug: lessonData.slug,\n finished: newLessonUser[lessonUserIndex]?.completed || false,\n block:\n idx === 0 && index === 0\n ? false\n : newLessonUser[lessonUserIndex]?.block || false,\n };\n }\n );\n\n console.log(responseLessons.data);\n\n let exam;\n if (module.exam) {\n const allQuestionsCorrect = !!module.exam.examsUsers.find(\n (examUser) =>\n module.exam?.module_id === module.id &&\n examUser.note === '10.00'\n );\n\n exam = {\n id: module.exam.id,\n questions: module.exam.questions,\n answered: !!module.exam.examUser,\n allQuestionsCorrect,\n };\n }\n\n modulesData.push({\n id: module.id,\n title: module.title,\n locked: module.moduleUser.locked,\n lessons: lessonsData,\n slug: module.slug,\n exam,\n });\n\n idx += 1;\n }\n\n let nextStep = '';\n\n console.log(modulesData);\n\n modulesData.forEach((module) => {\n module.lessons.forEach((lessonData) => {\n if (!lessonData.block) {\n nextStep = lessonData.slug;\n }\n });\n });\n setNextStep({\n slug: nextStep,\n });\n setStep(nextStep);\n\n const moduleIndex = modulesData.findIndex((module) =>\n module.lessons.find((lessonData) => lessonData.slug === nextStep)\n );\n\n if (moduleIndex >= 0) {\n const lessonIndex = modulesData[moduleIndex].lessons.findIndex(\n (lessonData) => lessonData.slug === nextStep\n );\n const lastModule = modulesData[modulesData.length - 1];\n if (lessonIndex >= 0) {\n let duration =\n modulesData[moduleIndex].lessons[lessonIndex]?.duration;\n let completedLesson = `Module ${\n moduleIndex + 1\n }, Video ${lessonIndex}`;\n if (lessonIndex === 0) {\n const lastLessonIndex =\n modulesData[moduleIndex - 1]?.lessons.length || 0;\n completedLesson = `Module ${moduleIndex}, Video ${lastLessonIndex}`;\n }\n if (modulesData[moduleIndex].lessons.length === lessonIndex + 1) {\n duration = modulesData[moduleIndex + 1]?.lessons[0]?.duration;\n }\n if (lastModule.lessons[lastModule.lessons.length - 1].finished) {\n completedLesson = `Module ${modulesData.length}, Video ${lastModule.lessons.length}`;\n }\n\n setModuleVideo(\n moduleIndex === modulesData.length - 1 &&\n lessonIndex === lastModule.lessons.length - 1 &&\n lastModule.lessons[lastModule.lessons.length - 1].finished\n ? 'Setup Offer 1'\n : `Module ${moduleIndex + 1}, Video ${lessonIndex + 1}`\n );\n setCompleted(\n moduleIndex === 0 && lessonIndex === 0\n ? 'Watched Introduction'\n : completedLesson\n );\n\n const lessonsSlugs = modulesData.reduce((previous, current) => {\n previous.push(\n ...current.lessons.map((lessonData) => lessonData.slug)\n );\n return previous;\n }, [] as string[]);\n const indexLesson = lessonsSlugs.findIndex(\n (slug) => slug === nextStep\n );\n setNumberProgress(\n ((indexLesson + 2) * 100) / (lessonsSlugs.length + 1)\n );\n\n setMin(duration || '0:00');\n\n const lastModuleIndex = modulesData.length - 1;\n const lastModuleLessonIndex =\n modulesData[lastModuleIndex].lessons.length - 1;\n if (\n modulesData[lastModuleIndex].lessons[lastModuleLessonIndex]\n .finished\n ) {\n setModuleVideo('Setup Offer 1');\n setCompleted(\n `Module ${lastModuleIndex + 1}, Video ${\n lastModuleLessonIndex + 1\n }`\n );\n setNumberProgress(100);\n setMin('3:40');\n }\n }\n }\n\n // switch (nextStep) {\n // case 'what-is-affiliate-marketing':\n // setModuleVideo('Module 1, Video 1');\n // setCompleted('Watched Introduction');\n // setNumberProgress(2);\n // setMin('3:40');\n // break;\n // case 'how-autoaffiliate-works':\n // setModuleVideo('Module 1, Video 2');\n // setCompleted('Module 1, Video 1');\n // setNumberProgress(3);\n // setMin('7:00');\n // break;\n // case 'how-you-earn-multiple-streams-of-income':\n // setModuleVideo('Module 1, Video 3');\n // setCompleted('Module 1, Video 2');\n // setNumberProgress(4);\n // setMin('6:16');\n // break;\n // case 'how-we-choose-offers':\n // setModuleVideo('Module 1, Video 4');\n // setCompleted('Module 1, Video 3');\n // setNumberProgress(5);\n // setMin('3:00');\n // break;\n\n // case 'setup-your-ai-connector-bot':\n // setModuleVideo('Module 1, Video 5');\n // setCompleted('Module 1, Video 4');\n // setNumberProgress(6);\n // setMin('3:17');\n // break;\n\n // case 'setting-up-your-offers':\n // setModuleVideo('Module 2, Video 1');\n // setCompleted('Module 1, Video 5');\n // setNumberProgress(7);\n // setMin('4:10');\n // break;\n\n // case 'installing-metamask':\n // setModuleVideo('Module 2, Video 2');\n // setCompleted('Module 2, Video 1');\n // setNumberProgress(8);\n // setMin('7:03');\n // break;\n\n // case 'setting-up-the-profiti-offer':\n // setModuleVideo('Module 2, Video 3');\n // setCompleted('Module 2, Video 2');\n // setNumberProgress(9);\n // setMin('5:52');\n // break;\n\n // case 'buying-ethereum-with-debit-card':\n // setModuleVideo('Module 2, Video 4');\n // setCompleted('Module 2, Video 3');\n // setNumberProgress(10);\n // setMin('4:59');\n // break;\n\n // case 'buy-ethereum-at-gemini':\n // setModuleVideo('Module 2, Video 5');\n // setCompleted('Module 2, Video 4');\n // setNumberProgress(11);\n // setMin('10:54');\n // break;\n\n // case 'the-difference-between-traditional-and-online-businesses':\n // setModuleVideo('Module 3, Video 1');\n // setCompleted('Module 2, Video 5');\n // setNumberProgress(12);\n // setMin('3:25');\n // break;\n\n // case 'the-truth-about-money':\n // setModuleVideo('Module 3, Video 2');\n // setCompleted('Module 3, Video 1');\n // setNumberProgress(13);\n // setMin('21:43');\n // break;\n\n // case 'time-management':\n // setModuleVideo('Module 3, Video 3');\n // setCompleted('Module 3, Video 2');\n // setNumberProgress(14);\n // setMin('10:19');\n // break;\n\n // case 'paradigm-shift':\n // if (modulesData[2].lessons[3].finished) {\n // setModuleVideo('Setup Offer 1');\n // setCompleted('Module 3, Video 4');\n // setNumberProgress(16);\n // setMin('3:40');\n // } else {\n // setModuleVideo('Module 3, Video 4');\n // setCompleted('Module 3, Video 3');\n // setNumberProgress(15);\n // setMin('30:00');\n // }\n // break;\n\n // default:\n // break;\n // }\n\n setModules(modulesData);\n if (params.slugLesson) {\n const responseLesson = await api.get(\n `lessons/users/${response.data.id}/${params.slugLesson}`\n );\n api.patch(`lessons-users/save/${responseLesson.data.id}`, {\n time_watched: '00:00:01',\n });\n const lessonData = {\n id: responseLesson.data.id,\n title: responseLesson.data.title,\n description: responseLesson.data.description,\n video: { duration: responseLesson.data.video.duration },\n watch_full_video: responseLesson.data.watch_full_video,\n answer_quiz: responseLesson.data.answer_quiz,\n coach_button: responseLesson.data.coach_button,\n coach_unlock: responseLesson.data.coach_unlock,\n allow_about: responseLesson.data.allow_about,\n allow_next_step: responseLesson.data.allow_next_step,\n allow_special_note: responseLesson.data.allow_special_note,\n allow_discussion: responseLesson.data.allow_discussion,\n allow_downloads: responseLesson.data.allow_downloads,\n special_notes_coach: responseLesson.data.special_notes_coach,\n about: responseLesson.data.about,\n next_step: responseLesson.data.next_step,\n special_note: responseLesson.data.special_note,\n slug: responseLesson.data.slug,\n video_url: responseLesson.data.video\n ? responseLesson.data.video.video_url\n : '',\n thumbnail_url: responseLesson.data.thumbnail\n ? responseLesson.data.thumbnail.thumbnail_url\n : '',\n downloads: responseLesson.data.downloads,\n lessonUser: responseLesson.data.lessonUser,\n quiz: responseLesson.data.exam\n ? responseLesson.data.exam.questions\n : [],\n notes: responseLesson.data.notes,\n };\n setLesson(lessonData);\n } else {\n const lessonData = {\n id: response.data.id,\n title: response.data.title,\n about:\n \"

Welcome to Your Transformative Journey with The Ultimate Online Business Masterclass!

Congratulations on making the decision to invest in yourself and your future by joining The Ultimate Online Business Masterclass! You've taken a crucial first step towards building a thriving online business and unlocking the freedom and flexibility you deserve.

As a member of our masterclass, you now have access to a comprehensive, step-by-step blueprint for success in the world of affiliate marketing. Our expert team has poured years of experience and knowledge into crafting a curriculum that covers everything you need to know to generate traffic, attract customers, and maximize your earnings.

Throughout the masterclass, you'll discover proven strategies for leveraging cold outreach, paid ads, and social media to build a powerful online presence. You'll learn how to identify your target audience, create compelling content, and convert leads into loyal customers who will fuel your business growth.

The AutoAffiliate Experience

AutoAffiliate is more than just a training program. It's a supportive community of like-minded entrepreneurs who are all committed to helping each other succeed. You'll have access to our exclusive Members' Area and Facebook group, where you can connect with fellow students, share insights, and celebrate your victories together.

We understand that starting an online business can be overwhelming, which is why we've designed the masterclass to be easy to follow and actionable. To get the most out of your experience, we recommend setting aside dedicated time to fully immerse yourself in the course materials. Follow the step-by-step modules, complete the exercises, and take consistent action towards your goals.

Remember, our support team is here to help you every step of the way. If you have any questions, encounter any challenges, or need guidance, don't hesitate to reach out. We're invested in your success and are excited to be a part of your journey towards building a profitable online business.By joining The Ultimate Online Business Masterclass, you've made a commitment to yourself and your future. You're now part of a community of driven individuals who are all working towards the same goal: creating a life of freedom, flexibility, and financial independence.

Get ready to embrace new challenges, push yourself beyond your comfort zone, and unlock your full potential as an entrepreneur. The knowledge and skills you'll gain in this masterclass will serve you for years to come, empowering you to build a business that supports the lifestyle you've always dreamed of.

Once again, welcome to The Ultimate Online Business Masterclass! Your journey to success starts now. Let's work together to turn your aspirations into a thriving reality.

Get ready to transform your life and build the online business of your dreams!

\",\n allow_about: true,\n allow_discussion: false,\n allow_downloads: false,\n allow_next_step: false,\n allow_special_note: false,\n answer_quiz: false,\n coach_button: false,\n coach_unlock: false,\n description: response.data.description,\n downloads: [],\n video: { duration: response.data.video.duration },\n lessonUser: [],\n next_step:\n \"

Congratulations on taking the first step towards unlocking the full potential of The Ultimate Online Business Masterclass!

We're thrilled to have you on board and excited to guide you through this transformative learning experience. Our masterclass is designed to provide you with the knowledge, strategies, and tools you need to build a thriving online business.

To get started, we highly recommend diving into our comprehensive video series, where we'll explore every aspect of affiliate marketing in precise detail. By the end of this series, you'll have a deep understanding of the principles behind successful online businesses, the strategies for generating traffic, and the techniques for maximizing your earning potential.

In these videos, we'll cover a wide range of topics, from identifying your niche and target audience to creating compelling content and leveraging various marketing channels. You'll gain valuable insights into the world of affiliate marketing, discover proven methods for building your online presence, and explore the limitless opportunities that await you.

We've meticulously crafted each video to provide you with a clear, step-by-step roadmap to success. You'll learn about the different income streams available to you, how to optimize your campaigns, and the best practices for building long-term, sustainable growth.

By investing your time and energy into this video series, you'll lay a solid foundation for your online business journey. We're committed to empowering you with the knowledge and resources you need to achieve your goals and create the lifestyle you desire.

To make the most of this masterclass, we recommend setting aside dedicated time to watch the videos, take notes, and implement the strategies you learn. Immerse yourself in the content, engage with the exercises, and don't hesitate to ask questions along the way.

Remember, our support team is here to guide you throughout this learning process. If you ever need clarification, additional resources, or personalized guidance, we're just a message away. Your success is our top priority, and we're dedicated to helping you achieve your full potential. Get ready to embark on an exciting journey of growth, discovery, and achievement with The Ultimate Online Business Masterclass. By the end of this video series, you'll have a clear roadmap for building a profitable online business, attracting your ideal customers, and creating a life of freedom and flexibility.

We're honored to be a part of your success story and can't wait to see you thrive as you implement the strategies and knowledge gained from this masterclass.

To your success, \\nThe AutoAffiliate Team

\",\n notes: [],\n quiz: [],\n slug: 'welcome',\n special_note:\n \"

🌟 Special Note to The Ultimate Online Business Masterclass Members 🌟

Dear Member,

As you embark on your transformative journey with The Ultimate Online Business Masterclass, we want to take a moment to express our gratitude for your commitment to personal growth and financial independence. Your decision to invest in yourself and your future is truly commendable.

We firmly believe that knowledge is meant to be shared, and as a valued member of our community, you have the power to make a profound impact on the lives of others. By sharing your experience and the benefits of The Ultimate Online Business Masterclass with your friends and family, you can help them unlock their own potential and take control of their financial destiny.

Imagine the satisfaction of seeing your loved ones discover the same life-changing strategies and insights that you've gained from this masterclass. By spreading the word, you're not only empowering them to build successful online businesses but also creating a ripple effect of positive change in their lives.

We've designed The Ultimate Online Business Masterclass to be accessible and comprehensive, ensuring that anyone with the drive and determination to succeed can benefit from its teachings. Your support in reaching more aspiring entrepreneurs aligns perfectly with our mission to help as many people as possible achieve their dreams of financial freedom.

So, let's unite in our efforts to make a difference. Share your journey, your successes, and the invaluable knowledge you've acquired from The Ultimate Online Business Masterclass. Encourage your friends and family to explore this transformative opportunity and discover the limitless potential that lies within them.

We are incredibly grateful for your dedication and enthusiasm. As a member of our community, your success stories and testimonials serve as a beacon of inspiration for others. Together, we can create a movement of empowered individuals who are passionate about building thriving online businesses and living life on their own terms.

Thank you for being an integral part of The Ultimate Online Business Masterclass family. Your commitment to personal growth and your willingness to uplift others are truly admirable. Keep embracing the knowledge, implementing the strategies, and sharing the incredible potential of this masterclass.

Together, let's continue to make a positive impact and help others turn their dreams into reality!

Best regards, \\nThe AutoAffiliate Team

\",\n special_notes_coach: false,\n thumbnail_url: response.data.thumbnail.thumbnail_url,\n video_url: response.data.video.video_url,\n watch_full_video: false,\n };\n setLesson(lessonData);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, [params.slug, params.slugLesson, setNextStep, user.id]);\n\n useEffect(() => {\n if (\n params.slugLesson === 'setting-up-your-offers' ||\n params.slugLesson === 'setting-up-the-profiti-offer'\n ) {\n api\n .get(\n `offers/affiliates/${user.referrer?.affiliate_id}/2ffe225b-fbad-4521-a68e-c98e43e4f99b`\n )\n .then((response) => {\n if (\n response.data.affiliateOffer &&\n Object.keys(response.data.affiliateOffer).length > 0\n ) {\n setLink(response.data.affiliateOffer.url);\n } else {\n setLink(response.data.link);\n }\n });\n }\n }, [params.slugLesson, user.referrer]);\n\n const checkIfReleaseCertificate = useCallback(\n async (modulesData: IModuleResponse[], courseIsConclude?: boolean) => {\n if (!courseConclude && !courseIsConclude) {\n try {\n const results: boolean[] = [];\n let allLessonWatched = true;\n modulesData.forEach((module) => {\n if (module.exam) {\n const result = module.exam.examsUsers.find(\n (examUser) =>\n module.exam?.module_id === module.id &&\n examUser.note === '10.00'\n );\n results.push(!!result);\n }\n\n if (allLessonWatched) {\n const lessons: ILesson[] = [];\n module.lessons.forEach((lessonData) => {\n const lessonUser = lessonData.lessonUser.filter(\n (lessonUserData) =>\n lessonUserData.user_id === user.id &&\n !lessonUserData.deleted_at\n );\n // eslint-disable-next-line no-param-reassign\n lessonData.lessonUser = lessonUser;\n lessons.push(lessonData);\n });\n const lessonSelected = lessons.find(\n (lessonData) => !lessonData.lessonUser[0].completed\n );\n allLessonWatched = !lessonSelected;\n }\n });\n\n let noReleaseCertificate: boolean | undefined;\n\n if (results.length > 0) {\n noReleaseCertificate = results.find((result) => !result);\n }\n\n if (\n typeof noReleaseCertificate === typeof undefined &&\n allLessonWatched\n ) {\n let { slug } = params;\n if (slug === 'welcome') {\n slug = 'masterclass-onboarding';\n }\n await api.post(`certificates/${slug}`);\n setCourseConclude(true);\n setShowCertificateAlert(true);\n } else {\n setShowAlert(true);\n }\n } catch (error) {\n // console.log(error);\n }\n }\n },\n [courseConclude, user.id, params]\n );\n\n useEffect(() => {\n if (!firstLoaded) {\n setFirstLoaded(true);\n let { slug } = params;\n if (slug === 'welcome') {\n slug = 'masterclass-onboarding';\n }\n api.get(`/courses/users/${slug}/check`).then(async (responseData) => {\n if (responseData.data.locked) {\n const response = await api.get(`courses/users/${slug}`, {\n params: {\n type: 'BUY',\n },\n });\n\n await api.post('courses-users', {\n course_id: response.data.id,\n user_id: user.id,\n });\n }\n\n if (!params.slugLesson || params.slugLesson === 'introduction') {\n const response = await api.get(\n `/courses/users/${slug}`,\n {\n params: {\n withVideo: true,\n withLessons: true,\n withLessonUser: true,\n },\n }\n );\n const downloads: IlessonDownload[] = [];\n const quiz: IQuestion[] = [];\n const notesData: IAnswers[] = [];\n const data: ILesson = {\n id: response.data.id,\n title: response.data.title,\n description: response.data.description,\n video: {\n duration: response.data.video\n ? response.data.video.duration\n : '00:00:00',\n },\n watch_full_video: false,\n answer_quiz: false,\n coach_button: false,\n coach_unlock: false,\n allow_about: true,\n allow_next_step: true,\n allow_special_note: false,\n allow_discussion: false,\n allow_downloads: false,\n special_notes_coach: false,\n about:\n \"

Welcome to your new life!

Congratulations on joining AutoAffiliate, the premier platform for earning passive income through affiliate marketing! As a member of our community, you have access to a fully automated system that takes care of everything for you, so you can start earning passive income without any hassle or frustration.

How it works

Our expert team will guide you through the process step-by-step, providing you with dedicated support and real-world training from the best in the business.

With AutoAffiliate, you can earn money while you sleep, thanks to our cutting-edge AI automated system that does all the hard work for you. You'll have access to a range of lucrative offers that have been hand-selected for you, so you can start earning passive income right away.

But AutoAffiliate is more than just a platform – it's a community of like-minded entrepreneurs who are all pursuing the same goal. We're here to support you every step of the way, whether through our Members' Area, Facebook group, or in-person at live events.

To get started, we recommend you take the time to fully study the material in this dashboard without distraction and follow the steps we lay out to prepare you to get your business up and running as soon as possible. And if you have any questions, don't hesitate to contact our support team or your dedicated advisor for assistance.

Welcome to the world of AutoAffiliate, where your dreams of financial independence can become a reality!

\",\n next_step:\n \"

Congratulations on taking the first step towards unlocking the full potential of AutoAffiliate!

We're excited to guide you through the onboarding process and help you understand the ins and outs of our powerful platform.

To get started, we highly recommend watching our short video series, where we'll delve into every aspect of AutoAffiliate in exact detail. By the end of this series, you'll have a comprehensive understanding of how AutoAffiliate works, why we've designed it this way, and how it can pave the way for multiple streams of income.

In these videos, we'll cover everything you need to know, from the core principles behind AutoAffiliate to the strategies for maximizing your earning potential. You'll gain insights into our innovative system, discover the mechanics of generating passive income, and explore the limitless opportunities that lie ahead.

We understand the importance of clarity, so our videos are carefully crafted to provide you with a step-by-step walkthrough of the entire process. You'll learn about the different income streams available to you, how to leverage our automation features, and the proven techniques for success in affiliate marketing.

By investing your time in this video series, you'll equip yourself with the knowledge and understanding necessary to make the most out of AutoAffiliate. It's our commitment to empower you with the tools and resources needed for your journey towards financial freedom. So, let's get started! Grab a notebook, make yourself comfortable, and immerse yourself in the world of AutoAffiliate. Simply follow the modules on the right to access the first video in our series.

Remember, we're here to support you throughout this onboarding process. If you have any questions or need clarification along the way, don't hesitate to reach out. Our team is dedicated to ensuring your success and helping you achieve your goals.

Get ready to embark on an exciting adventure with AutoAffiliate. By the end of this video series, you'll have a crystal-clear understanding of how our platform works, why we've designed it to revolutionize your earning potential, and how you can unlock multiple streams of income.

We can't wait to see you thrive with AutoAffiliate!

To your success,

The AutoAffiliate Team

\",\n special_note:\n \"

🌟 Special Note to AutoAffiliate Members 🌟

Dear AutoAffiliate Member,

We hope you're enjoying your onboarding journey with AutoAffiliate and discovering the incredible potential it holds for your financial independence. As part of our mission to empower as many people as possible, we want to invite you to be a catalyst for change by sharing your AutoAffiliate link with your friends.

You are an essential part of our community, and your help in spreading the word about AutoAffiliate is greatly appreciated. By sharing your unique referral link, you have the power to help your friends unlock the doors to their own financial success and jump ahead on the waitlist.

Imagine the joy of seeing your friends achieve their goals and dreams, all because you shared this life-changing opportunity with them. By working together, we can create a network of empowered individuals who are on the path to financial freedom.

We offer AutoAffiliate as a free service because we believe in the transformative impact it can have on people's lives. Your support in reaching more individuals aligns perfectly with our mission. Every person you invite brings us one step closer to our goal of helping as many people as possible achieve financial independence.

So, let's make a difference together. Share your AutoAffiliate link with your friends, family, and colleagues. Let them know about the incredible opportunities that await them and how AutoAffiliate can empower them on their own journey to success.

We appreciate your enthusiasm and dedication to our mission. As a valued member, your efforts are instrumental in shaping the AutoAffiliate community and creating a positive impact on the lives of others. Together, we can build a thriving network of like-minded individuals supporting each other's growth and success.

Thank you for being part of our journey, we're excited to have you on board. Keep up the fantastic work, and let's continue making dreams come true!

Best regards,

The AutoAffiliate Team

\",\n slug: 'introduction',\n video_url: response.data.video ? response.data.video.video_url : '',\n thumbnail_url: response.data.thumbnail\n ? response.data.thumbnail.thumbnail_url\n : '',\n downloads,\n lessonUser: [],\n quiz,\n notes: notesData,\n };\n\n const courseUserSelected = response.data.courseUser.find(\n (courseUser) => courseUser.user_id === user.id\n );\n\n if (courseUserSelected) {\n setCourseUserId(courseUserSelected.id);\n }\n\n const courseUserCheck = response.data.courseUser.find(\n (courseUser) => courseUser.locked\n );\n\n if (courseUserCheck) {\n setCoachLocked(true);\n }\n\n const introduction: IModule = {\n id: data.id,\n title: 'introduction',\n locked: false,\n slug: 'introduction',\n lessons: [],\n type: 'introduction',\n };\n\n const responseModules = await api.get(\n `modules/users/${response.data.id}`\n );\n\n const modulesData: IModule[] = [];\n let idx = 0;\n for (const module of responseModules.data) {\n const responseLessons = await api.get(\n `lessons/modules/${module.id}`,\n {\n params: {\n user: user.id,\n },\n }\n );\n let lastLessonUser: ILessonUser | undefined;\n const lessonsData: ILessonList[] = responseLessons.data.map(\n (lessonData, index) => {\n const newLessonUser = lessonData.lessonUser.slice();\n const lessonUserIndex = lessonData.lessonUser.findIndex(\n (lessonUser) => lessonUser.user_id === user.id\n );\n\n if (lessonUserIndex >= 0) {\n if (\n newLessonUser[lessonUserIndex].completed ||\n lastLessonUser?.completed ||\n newLessonUser[lessonUserIndex].time_watched !== '00:00:00'\n ) {\n newLessonUser[lessonUserIndex].block = false;\n } else {\n newLessonUser[lessonUserIndex].block = true;\n }\n lastLessonUser = newLessonUser[lessonUserIndex];\n }\n\n return {\n id: lessonData.id,\n title: lessonData.title,\n duration: lessonData.video.duration,\n status: newLessonUser[lessonUserIndex]\n ? newLessonUser[lessonUserIndex].status\n : '',\n slug: lessonData.slug,\n finished: newLessonUser[lessonUserIndex].completed,\n block:\n idx === 0 && index === 0\n ? false\n : newLessonUser[lessonUserIndex].block,\n };\n }\n );\n\n let exam;\n if (module.exam) {\n const allQuestionsCorrect = !!module.exam.examsUsers.find(\n (examUser) =>\n module.exam?.module_id === module.id &&\n examUser.note === '10.00'\n );\n\n exam = {\n id: module.exam.id,\n questions: module.exam.questions,\n answered: !!module.exam.examUser,\n allQuestionsCorrect,\n };\n }\n\n modulesData.push({\n id: module.id,\n title: module.title,\n locked: module.moduleUser.locked,\n lessons: lessonsData,\n slug: module.slug,\n exam,\n });\n\n idx += 1;\n }\n\n const courseIsConclude = response.data.courseUser.find(\n (courseUser) =>\n courseUser.user_id === user.id && !!courseUser.end_date\n );\n\n setCourseConclude(!!courseIsConclude);\n setModules([introduction, ...modulesData]);\n setLesson(data);\n let nextStep = '';\n modulesData.forEach((module) => {\n module.lessons.forEach((lessonData) => {\n if (!lessonData.block) {\n nextStep = lessonData.slug;\n }\n });\n });\n setNextStep({\n slug: nextStep,\n });\n } else {\n const response = await api.get(\n `/courses/users/${slug}`,\n {\n params: {\n withVideo: true,\n withLessons: true,\n withLessonUser: true,\n },\n }\n );\n const responseLesson = await api.get(\n `lessons/users/${response.data.id}/${params.slugLesson}`\n );\n\n api.patch(`lessons-users/save/${responseLesson.data.id}`, {\n time_watched: '00:00:01',\n });\n\n const courseUserCheck = response.data.courseUser.find(\n (courseUser) => courseUser.locked\n );\n\n if (courseUserCheck) {\n setCoachLocked(true);\n }\n\n if (responseLesson.data) {\n const data: ILesson = {\n id: responseLesson.data.id,\n title: responseLesson.data.title,\n description: responseLesson.data.description,\n video: { duration: responseLesson.data.video.duration },\n watch_full_video: responseLesson.data.watch_full_video,\n answer_quiz: responseLesson.data.answer_quiz,\n coach_button: responseLesson.data.coach_button,\n coach_unlock: responseLesson.data.coach_unlock,\n allow_about: responseLesson.data.allow_about,\n allow_next_step: responseLesson.data.allow_next_step,\n allow_special_note: responseLesson.data.allow_special_note,\n allow_discussion: responseLesson.data.allow_discussion,\n allow_downloads: responseLesson.data.allow_downloads,\n special_notes_coach: responseLesson.data.special_notes_coach,\n about: responseLesson.data.about,\n next_step: responseLesson.data.next_step,\n special_note: responseLesson.data.special_note,\n slug: responseLesson.data.slug,\n video_url: responseLesson.data.video\n ? responseLesson.data.video.video_url\n : '',\n thumbnail_url: responseLesson.data.thumbnail\n ? responseLesson.data.thumbnail.thumbnail_url\n : '',\n downloads: responseLesson.data.downloads,\n lessonUser: responseLesson.data.lessonUser,\n quiz: responseLesson.data.exam\n ? responseLesson.data.exam.questions\n : [],\n notes: responseLesson.data.notes,\n };\n\n const courseUserSelected = response.data.courseUser.find(\n (courseUser) => courseUser.user_id === user.id\n );\n\n if (courseUserSelected) {\n setCourseUserId(courseUserSelected.id);\n }\n\n const introduction: IModule = {\n id: data.id,\n title: 'introduction',\n locked: false,\n slug: 'introduction',\n lessons: [],\n type: 'introduction',\n };\n\n const responseModules = await api.get(\n `modules/users/${response.data.id}`\n );\n\n const modulesData: IModule[] = [];\n let idx = 0;\n for (const module of responseModules.data) {\n const responseLessons = await api.get(\n `lessons/modules/${module.id}`,\n {\n params: {\n user: user.id,\n },\n }\n );\n let lastLessonUser: ILessonUser | undefined;\n const lessonsData: ILessonList[] = responseLessons.data.map(\n (lessonData, index) => {\n const newLessonUser = lessonData.lessonUser.slice();\n const lessonUserIndex = lessonData.lessonUser.findIndex(\n (lessonUser) => lessonUser.user_id === user.id\n );\n\n if (lessonUserIndex >= 0) {\n if (\n newLessonUser[lessonUserIndex].completed ||\n lastLessonUser?.completed ||\n newLessonUser[lessonUserIndex].time_watched !== '00:00:00'\n ) {\n newLessonUser[lessonUserIndex].block = false;\n } else {\n newLessonUser[lessonUserIndex].block = true;\n }\n lastLessonUser = newLessonUser[lessonUserIndex];\n }\n return {\n id: lessonData.id,\n title: lessonData.title,\n duration: lessonData.video.duration,\n status: newLessonUser[lessonUserIndex]\n ? newLessonUser[lessonUserIndex].status\n : '',\n slug: lessonData.slug,\n finished: newLessonUser[lessonUserIndex].completed,\n block:\n idx === 0 && index === 0\n ? false\n : newLessonUser[lessonUserIndex].block,\n };\n }\n );\n\n let exam;\n if (module.exam) {\n const allQuestionsCorrect = !!module.exam.examsUsers.find(\n (examUser) =>\n module.exam?.module_id === module.id &&\n examUser.note === '10.00'\n );\n\n exam = {\n id: module.exam.id,\n questions: module.exam.questions,\n answered: !!module.exam.examUser,\n allQuestionsCorrect,\n };\n }\n\n modulesData.push({\n id: module.id,\n title: module.title,\n locked: module.moduleUser.locked,\n lessons: lessonsData,\n slug: module.slug,\n exam,\n });\n idx += 1;\n }\n\n const courseIsConclude = response.data.courseUser.find(\n (courseUser) =>\n courseUser.user_id === user.id && !!courseUser.end_date\n );\n\n setCourseConclude(!!courseIsConclude);\n setModules([introduction, ...modulesData]);\n setLesson(data);\n let nextStep = '';\n modulesData.forEach((module) => {\n module.lessons.forEach((lessonData) => {\n if (!lessonData.block) {\n nextStep = lessonData.slug;\n }\n });\n });\n setNextStep({\n slug: nextStep,\n });\n }\n }\n\n setLoading(false);\n });\n }\n }, [firstLoaded, language.lesson.h2_1, params, setNextStep, user.id]);\n\n const handleClose = useCallback(() => {\n localStorage.setItem('closed_modal', 'close');\n setShow(false);\n }, []);\n\n useEffect(() => {\n const closeModal = localStorage.getItem('closed_modal');\n if (lessonCardBot.includes(params.slugLesson) && closeModal !== 'close') {\n if (user.waitlist && user.waitlist.position > 0) {\n api.put(`waitlist/${user.waitlist.id}`, {\n user_id: user.id,\n position: 0,\n });\n updateUser({\n ...user,\n waitlist: {\n id: user.waitlist.id,\n position: 0,\n },\n });\n }\n setShow(true);\n }\n }, [lessonCardBot, params.slugLesson, updateUser, user, user.waitlist]);\n\n const handleStartLesson = useCallback(async () => {\n const formData = {\n last_lesson_slug: lesson.slug,\n };\n\n await api.patch(`/courses-users/${courseUserId}`, formData);\n }, [courseUserId, lesson.slug]);\n\n const handleRunningLesson = useCallback(\n (time) => {\n const h = `0${Math.floor(time / 3600)}`.slice(-2);\n const m = `0${Math.floor((time % 3600) / 60)}`.slice(-2);\n const s = `0${Math.floor((time % 3600) % 60)}`.slice(-2);\n const time_watched = `${h}:${m}:${s}`;\n if (lesson.id) {\n api.patch(`lessons-users/save/${lesson.id}`, {\n time_watched,\n });\n }\n },\n [lesson.id]\n );\n\n const handleCompleteLesson = useCallback(async () => {\n const time_watched = `00:00:00`;\n\n sessionStorage.removeItem('moduleSelected');\n\n if (lesson.id) {\n const response = await api.patch(`lessons-users/conclude/${lesson.id}`, {\n time_watched,\n completed: true,\n });\n\n const newModules = modules.slice();\n let lessonSelected;\n let moduleIndex = -1;\n let lessonIndex = -1;\n newModules.forEach((module, index) => {\n const lessonDataSelected = module.lessons.find(\n (lessonData) => lessonData.id === lesson.id\n );\n const lessonSelectedIndex = module.lessons.findIndex(\n (lessonData) => lessonData.id === lesson.id\n );\n if (lessonDataSelected) {\n lessonIndex = lessonSelectedIndex;\n moduleIndex = index;\n lessonSelected = lessonDataSelected;\n }\n });\n\n updateUser({\n ...user,\n waitlist: response.data.waitlist,\n });\n\n if (lessonSelected) {\n newModules[moduleIndex].lessons[lessonIndex].finished = true;\n if (newModules[moduleIndex].lessons[lessonIndex + 1]) {\n newModules[moduleIndex].lessons[lessonIndex + 1].block = false;\n setNextStep({\n slug: newModules[moduleIndex].lessons[lessonIndex + 1].slug,\n });\n } else if (newModules[moduleIndex + 1]?.lessons[0]) {\n await api.patch(\n `lessons-users/unblock/${newModules[moduleIndex + 1].lessons[0].id}`\n );\n newModules[moduleIndex + 1].lessons[0].block = false;\n setNextStep({\n slug: newModules[moduleIndex + 1].lessons[0].slug,\n });\n }\n setModules(newModules);\n let { slug } = params;\n if (slug === 'welcome') {\n slug = 'masterclass-onboarding';\n }\n const responseModules = await api.get(\n `/courses/users/${slug}`,\n {\n params: {\n withVideo: true,\n withLessons: true,\n withLessonUser: true,\n },\n }\n );\n if (responseModules.data) {\n checkIfReleaseCertificate(responseModules.data.modules);\n }\n }\n }\n\n if (location.pathname !== '/lessons/welcome/paradigm-shift') {\n history.push(\n `${process.env.PUBLIC_URL}/lessons/welcome/${allLessons[loadNextLesson]}`\n );\n } else {\n window.location.reload();\n }\n }, [\n allLessons,\n checkIfReleaseCertificate,\n history,\n lesson.id,\n loadNextLesson,\n location.pathname,\n modules,\n params,\n setNextStep,\n updateUser,\n user,\n ]);\n\n const handleAnsweredQuestions = useCallback(\n async (answeredQuestions: IAnswers[]) => {\n if (\n !answeredQuestions.find(\n (answeredQuestion) => !answeredQuestion.correct_answer\n )\n ) {\n await api.patch(`lessons-users/answered-quiz/${lesson.id}`);\n\n lesson.lessonUser[0].answered_quiz = true;\n\n setLesson(lesson);\n }\n },\n [lesson]\n );\n\n const handleAnsweredExamModule = useCallback(async () => {\n try {\n let { slug } = params;\n if (slug === 'welcome') {\n slug = 'masterclass-onboarding';\n }\n const response = await api.get(\n `/courses/users/${slug}`,\n {\n params: {\n withVideo: true,\n withLessons: true,\n withLessonUser: true,\n },\n }\n );\n if (response.data) {\n checkIfReleaseCertificate(response.data.modules);\n }\n } catch (error) {\n // console.log(error);\n }\n }, [params, checkIfReleaseCertificate]);\n\n const handleClickFinished = useCallback(\n async (lesson_id) => {\n try {\n const response = await api.get(`lessons-users/conclude/${lesson_id}`);\n await api.patch(`lessons-users/conclude/${lesson_id}`, {\n time_watched: response.data.time_watched,\n completed: !response.data.completed,\n });\n\n const newModules = modules.slice();\n let lessonSelected;\n let moduleIndex = -1;\n let lessonIndex = -1;\n newModules.forEach((module, index) => {\n const lessonDataSelected = module.lessons.find(\n (lessonData) => lessonData.id === lesson_id\n );\n const lessonSelectedIndex = module.lessons.findIndex(\n (lessonData) => lessonData.id === lesson_id\n );\n if (lessonDataSelected) {\n lessonIndex = lessonSelectedIndex;\n moduleIndex = index;\n lessonSelected = lessonDataSelected;\n }\n });\n if (lessonSelected) {\n newModules[moduleIndex].lessons[lessonIndex].finished = !response.data\n .completed;\n setModules(newModules);\n let { slug } = params;\n if (slug === 'welcome') {\n slug = 'masterclass-onboarding';\n }\n const responseModules = await api.get(\n `/courses/users/${slug}`\n );\n if (responseModules.data) {\n checkIfReleaseCertificate(responseModules.data.modules);\n }\n }\n } catch (error) {\n console.log(error);\n }\n },\n [checkIfReleaseCertificate, modules, params]\n );\n\n return (\n <>\n \n {loading ? (\n \n
\n
\n \n
\n
\n
\n
\n

\n Estrategias de venta\n

\n
\n

\n {language.lesson.p_1}\n \n {language.lesson.small}\n \n

\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n {language.lesson.button_4}\n \n
\n
\n
\n

\n {language.lesson.h3_1}\n

\n

\n En esta lección te mostraré algunas estrategias de\n ventas que sin duda ayudarán a atraer a clientes y\n maximizar las ventas de tu tienda en línea.\n

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

\n {language.lesson.h3_2}\n

\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n ) : (\n <>\n
\n {Object.keys(lesson).length > 0 && (\n
\n
\n
\n \n
\n
\n \n
\n
\n

\n Welcome To AutoAffiliate!\n

\n
\n {coachLocked && (\n \n \"Locked\"\n \n O coach bloaqueou o curso, marque um call\n com o coach para ele desbloquear\n \n \n )}\n
\n

\n The Masterclass starts here, learn{' '}\n and prepare \n for your new business.\n

\n

\n \n 👋\n {' '}\n \n Watch the entire video to unlock the next one\n {' '}\n \n 🎁\n {' '}\n - Complete the steps - Join our community!\n

\n
\n {/* {!credentials && (\n
\n
\n
\n

\n YOUR MASTERCLASS PROGRESS\n

\n
\n
\n

\n Completed:{' '}\n \n {completed}\n {' '}\n \"Check\"\n

\n
\n
\n \n Next Step:\n \n {' '}\n {moduleVideo}\n {' '}\n \n ({min} min)\n \n \n \n
\n
\n \n \n {Math.round(numberProgress)}%\n
\n \n
\n
\n
\n )} */}\n {credentials && (\n
\n \n
\n )}\n
\n
\n \n \n \n O coach bloaqueou o curso, marque um call com o coach\n para ele desbloquear\n \n
\n
\n
\n
\n
\n

\n {language.lesson.h3_1}\n

\n

{lesson.description}

\n
\n
\n
\n \n\n {credentials && (\n
\n \n
\n )}\n {user.affiliate.type !== 'Vip Founder' &&\n foundersClub.includes(params.slugLesson) && (\n setShowPayment(true)}\n className=\"d-flex justify-content-center w-100 px-2 mb-3 border-0 btn-profiti-now\"\n >\n JOIN THE FOUNDERS CLUB NOW!\n \n )}\n\n {masterclassVideo.includes(params.slugLesson) && (\n \n DOWNLOAD THE MASTERCLASS WORKBOOK\n \n )}\n\n {lessonCardBot.includes(params.slugLesson) && (\n <>\n \n DOWNLOAD AI CONNECTOR NOW\n \n \n \n Here is the step by step guide shown in the\n video\n \n \n )}\n {lesson.answer_quiz && (\n \n )}\n
\n
\n
\n
\n
\n
\n
\n

\n {language.lesson.h3_1}\n

\n

\n {lesson.description}\n

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

\n {language.lesson.h3_2}\n

\n\n \n \n \n
\n
\n
\n {lesson.slug !== 'introduction' &&\n lesson.slug !== 'welcome' && (\n \n )}\n
\n\n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n \n
\n
\n
\n \n \n \n\n \n \n \n\n
\n {lesson.slug !== 'introduction' &&\n lesson.slug !== 'welcome' && (\n \n )}\n\n \n
\n
\n
\n
\n
\n
\n
\n )}\n
\n\n \n \n \n \n \n
\n \n

\n Congrats on taking action!{' '}\n \n 🎉\n \n

\n

\n You were selected to skip the waitlist and start{' '}\n \n seeing for yourself how AI Connector works\n \n

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

\n \n You can now download and install the AI Connector bot by\n clicking the button below.\n \n

\n

\n {' '}\n Keep in mind that in order to start earning with it you still\n need to signup and connect your offer affiliate links.\n

\n
\n \n
\n \n Download AI Connector Now\n \n \n \n Here is the step by step guide shown in the video\n \n
\n
\n \n \n \n \n {language.lesson.modal_title}\n \n \n \n
\n
\n
\n

\n {language.lesson.modal_p_1_1} {user.name}{' '}\n {language.lesson.modal_p_1_2}{' '}\n setLocked(false)}\n >\n {language.lesson.modal_a}\n {' '}\n {language.lesson.modal_p_1_3}\n

\n
\n
\n
\n
\n
\n \n \n setShowPayment(false)}\n productName=\"Founders Club Exclusive Access\"\n show={showPayment}\n onHide={() => setShowPayment(false)}\n options={[\n {\n price: 2997,\n src:\n 'https://cdn.autoaffiliate.ai/files/founders-2997-new.png',\n type: 'lifetime',\n name: 'Founders Club Exclusive Access',\n productSlug: 'founders-club',\n selected: true,\n },\n ]}\n />\n \n )}\n {/* */}\n
\n \n );\n};\n\nexport default Lessons;\n","import styled from 'styled-components';\n\ninterface IAvatarProps {\n src: string;\n}\n\nexport const Container = styled.div`\n width: 100%;\n\n h1,\n a {\n color: #303030;\n }\n\n .box {\n border-radius: 20px;\n border: 1px solid #dedede;\n background: #fff;\n filter: drop-shadow(4px 15px 25px rgba(0, 0, 0, 0.08));\n\n .content {\n width: calc(100% - 89px);\n margin-left: 25px;\n }\n\n .time {\n position: absolute;\n bottom: 2.5rem;\n right: 2.5rem;\n\n .notify {\n width: 10px;\n height: 10px;\n background-color: #ff1a50;\n border-radius: 50%;\n margin-left: 8px;\n }\n }\n }\n\n .no-notification {\n height: 75vh;\n opacity: 0.5;\n }\n`;\n\nexport const Avatar = styled.div`\n margin: 0 auto;\n width: 64px;\n height: 64px;\n background-image: url(${(props) => props.src});\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n box-shadow: inset 0px 0px 0px 4px rgba(228, 228, 228, 0.5);\n box-sizing: border-box;\n background-color: #303030;\n`;\n","/* eslint-disable react/no-danger */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { Socket, io } from 'socket.io-client';\n\nimport { Container, Avatar } from './styles';\nimport api from '~/services/api';\nimport { useAuth } from '~/hooks/Auth';\n\ninterface INotificationResponse {\n id: string;\n from_user_id: string;\n to_user_id: string;\n title: string;\n content: string;\n read: boolean;\n created_at: string;\n fromUser: {\n avatar: {\n avatar_url: string;\n };\n };\n}\n\ninterface INotification {\n id: string;\n avatar: string;\n from_user_id: string;\n to_user_id: string;\n title: string;\n content: string;\n timeAgo: string;\n read: boolean;\n}\n\nlet socket: Socket;\n\nconst Notifications: React.FC = () => {\n const { user } = useAuth();\n const [notifications, setNotifications] = useState([]);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (user) {\n socket = io(process.env.REACT_APP_API_URL as string, {\n reconnection: true,\n });\n\n socket.on('connect', () => {\n socket.emit('join-room', { roomID: `notifications-${user.id}` });\n });\n\n socket.on('user-disconnected', () => {\n // console.log('user disconnected-- closing peers', data);\n });\n\n socket.on('disconnect', () => {\n // console.log('socket disconnected --');\n });\n\n socket.on('error', () => {\n // console.log('socket error --', err);\n });\n\n socket.on(\n 'new-notification',\n async (notification: INotificationResponse) => {\n const newNotification = {\n id: notification.id,\n from_user_id: notification.from_user_id,\n to_user_id: notification.to_user_id,\n title: notification.title,\n avatar: notification.fromUser.avatar.avatar_url,\n content: notification.content,\n timeAgo: `${formatDistanceToNow(\n parseISO(notification.created_at)\n )} ago`,\n read: notification.read,\n };\n setNotifications((state) => [newNotification, ...state]);\n }\n );\n }\n }, [user]);\n\n useEffect(() => {\n setLoading(true);\n api\n .get(`notifications/users`)\n .then((response) => {\n const data = response.data.map((notification) => {\n return {\n id: notification.id,\n from_user_id: notification.from_user_id,\n to_user_id: notification.to_user_id,\n title: notification.title,\n avatar: notification.fromUser.avatar.avatar_url,\n content: notification.content,\n timeAgo: `${formatDistanceToNow(\n parseISO(notification.created_at)\n )} ago`,\n read: notification.read,\n };\n });\n setNotifications(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n const handleClickNotification = useCallback(\n async (notification) => {\n api\n .put(`notifications/${notification.id}`, {\n from_user_id: notification.from_user_id,\n to_user_id: notification.to_user_id,\n title: notification.title,\n content: notification.content,\n read: true,\n })\n .then(() => {\n if (socket.connected) {\n socket.emit('check-notification', '');\n }\n });\n\n const newNotifications = notifications.slice();\n const notificationIndex = newNotifications.findIndex(\n (notificationData) => notificationData.id === notification.id\n );\n\n if (notificationIndex >= 0) {\n newNotifications[notificationIndex].read = true;\n }\n\n setNotifications(newNotifications);\n },\n [notifications]\n );\n\n return (\n <>\n \n
\n
\n
\n
\n

All Notifications

\n
\n
\n {notifications.length > 0 ? (\n <>\n {notifications.map((notification) => (\n handleClickNotification(notification)}\n >\n
\n \n
\n \n
\n
\n {notification.timeAgo}\n {!notification.read &&
}\n
\n
\n \n ))}\n \n ) : (\n
\n

\n Chirp, Chirp... No Alerts Today 🐦\n

\n
\n )}\n
\n
\n {loading && (\n
\n
\n Loading...\n
\n
\n )}\n \n \n );\n};\n\nexport default Notifications;\n","import styled from 'styled-components';\nimport bannerEase from '~/assets/banners/banner-prompt-ease.png';\n\ninterface ICopyAlertProps {\n show: boolean;\n}\n\nexport const Container = styled.div`\n min-height: 100vh;\n position: relative;\n ::before {\n content: '';\n width: 100%;\n min-height: 100vh;\n background: url(${bannerEase});\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n position: fixed;\n top: 0;\n left: 0;\n }\n h1 {\n font-family: 'Zen Dots';\n font-size: 28px;\n font-weight: 700;\n background: linear-gradient(\n 270deg,\n #4786ee 2.07%,\n #d8a681 29.58%,\n #9d66ff 57.19%,\n #53c0b4 76.97%,\n #d398cf 96.19%\n );\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-text-stroke: 0.1px #fff;\n }\n\n h2 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 40px;\n font-weight: 300;\n }\n\n h3 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 22px;\n font-weight: 300;\n height: 34px;\n span {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 34px;\n min-height: 34px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 25px;\n border: 2px solid #fff;\n }\n }\n\n .prompt-output {\n }\n\n .btn-history {\n width: 76px;\n height: 60px;\n border-radius: 40px;\n border: 1px solid #fff;\n\n background: rgba(255, 255, 255, 0.3);\n\n backdrop-filter: blur(40px);\n }\n\n strong {\n font-weight: bold !important;\n }\n\n .prompt-result {\n font-size: 20px;\n font-family: 'Times New Roman';\n white-space: pre-wrap;\n }\n\n .pro {\n width: 71px;\n height: 33px;\n margin-bottom: 2px;\n }\n\n .bg-category {\n background: #abdfff;\n }\n\n .bg-target {\n background: #a8fff3;\n }\n\n .bg-act {\n background: #cbffbe;\n }\n\n .bg-sentiment {\n background: #ffdbc0;\n }\n\n .bg-context {\n background: #ffbcdc;\n }\n\n .lottie > div {\n margin: 0px !important;\n }\n\n .btn-clear {\n color: #ff1a50;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .btn-result {\n color: #116bff;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .bd-bottom {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .bg-all {\n border-radius: 40px;\n border: 2px solid #fff;\n background: rgba(255, 255, 255, 0.15);\n backdrop-filter: blur(40px);\n }\n\n .all-boxes {\n border-radius: 24px !important;\n border: 2px solid #fff;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .all-boxes div:first-child {\n height: 100%;\n }\n\n .disabled-gray {\n filter: grayscale(1);\n input {\n cursor: not-allowed;\n }\n }\n\n .options {\n top: 120px !important;\n border-radius: 24px !important;\n border: 2px solid #abdfff !important;\n padding: 30px 0px;\n background-color: rgba(255, 255, 255, 0.4) !important;\n max-height: 450px !important;\n box-shadow: 0px 9px 40px 0px rgba(0, 0, 0, 0.08);\n backdrop-filter: blur(40px);\n button {\n color: #2f3745 !important;\n border-bottom: none !important;\n padding: 10px 20px;\n font-family: 'Poppins';\n font-size: 22px !important;\n font-weight: 400;\n text-align: start;\n :hover {\n background-color: rgba(255, 255, 255, 0.4) !important;\n\n backdrop-filter: blur(40px);\n }\n }\n }\n\n .bg-result {\n font-family: 'Twemoji Mozilla', 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', 'Noto Color Emoji', 'EmojiOne Color', 'Android Emoji',\n sans-serif;\n }\n\n .btn-page {\n background: rgba(255, 255, 255, 0.8) !important;\n backdrop-filter: blur(40px);\n border: 1px solid #ddd;\n color: #393f48 !important;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 500;\n }\n\n .btn-first,\n .btn-last {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .showing {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .card-success {\n background: #116bff !important;\n bottom: 33px;\n right: 40%;\n }\n\n .sphere-sm {\n position: absolute;\n top: 13rem;\n left: -3rem;\n width: 93px;\n height: 93px;\n }\n\n .sphere-lg {\n position: fixed;\n bottom: 0;\n right: 0;\n width: 383px;\n height: 243px;\n }\n\n .label-select {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .select-quantity {\n border: none;\n background: transparent;\n cursor: pointer;\n }\n\n .select-quantity option {\n appearance: none;\n cursor: pointer;\n text-align: center;\n background-color: #e5eaf8;\n }\n\n .bg-output,\n .bg-result {\n border-radius: 30px;\n border: 2px solid #fff;\n background: rgba(255, 255, 255, 0.4);\n backdrop-filter: blur(40px);\n }\n\n .bg-result h2,\n .bg-output h2 {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 30px;\n font-weight: 300;\n }\n\n .bg-output p {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 30px;\n font-weight: 500;\n line-height: 34px;\n height: 140px;\n overflow: auto;\n }\n\n .bg-output button {\n width: 173px;\n height: 48px;\n border-radius: 25px;\n border: 1px solid #116bff;\n background: rgba(255, 255, 255, 0.41);\n backdrop-filter: blur(40px);\n color: #116bff;\n text-align: center;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 500;\n }\n\n .bg-result p {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 300;\n line-height: 34px;\n\n span {\n font-weight: 500;\n }\n }\n\n .color-sentiment {\n color: #ff8a33;\n font-weight: 700;\n }\n\n .color-act-as {\n color: #55b63e;\n font-weight: 700;\n }\n\n .color-context {\n color: #ef4d9a;\n font-weight: 700;\n }\n\n .color-target {\n color: #0adbbf;\n font-weight: 700;\n }\n\n .color-category-niche {\n color: #0094f1;\n font-weight: 700;\n font-style: italic;\n }\n\n .h-result {\n max-height: 235px;\n overflow: auto;\n }\n\n .bg-result button img {\n width: 22px;\n height: 22px;\n }\n\n p.prompt-output {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 30px;\n font-weight: 500;\n line-height: 34px;\n\n overflow: auto;\n }\n\n .title {\n font-size: 34px;\n }\n\n .output-close {\n max-height: 370px;\n overflow: hidden;\n transition: max-height 0.3s ease, overflow 0.3s ease;\n }\n\n .output-open {\n max-height: 600px;\n overflow: auto;\n transition: max-height 0.3s ease, overflow 0.3s ease;\n }\n\n .output-min {\n max-height: 150px !important;\n overflow: hidden !important;\n transition: max-height 0.3s ease, overflow 0.3s ease;\n }\n\n .btn-copy-output {\n position: absolute;\n right: 25px;\n }\n\n .btn-max-min {\n position: absolute;\n right: 25px;\n bottom: 25px;\n img {\n width: 20px;\n height: 20px;\n }\n }\n\n @media screen and (max-width: 991px) {\n h2 {\n font-size: 23px;\n }\n\n h3 {\n font-size: 21px;\n }\n\n .h-result {\n max-height: none;\n overflow: inherit;\n }\n\n .bg-output p {\n height: auto;\n overflow: inherit;\n }\n\n .copy {\n background: transparent;\n border: none;\n font-weight: 400;\n font-size: 18px;\n line-height: 26px;\n color: #4e5869;\n width: 100%;\n margin: 0 !important;\n height: 100%;\n img {\n display: none;\n }\n }\n\n .label-select,\n .select-quantity {\n margin-bottom: 1rem !important;\n }\n\n .options {\n top: 80px !important;\n }\n\n .options button {\n font-size: 20px;\n }\n\n .sphere-sm {\n top: -12px;\n left: 0;\n width: 64px;\n height: 64px;\n }\n\n .sphere-lg {\n width: 220px;\n height: 330px;\n }\n\n .bd-bottom {\n border-bottom: none;\n }\n\n .bd-bottom-title {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .btn-clear {\n font-size: 18px;\n }\n\n .btn-result {\n font-size: 18px;\n }\n\n .all-boxes {\n height: auto;\n }\n\n .all-boxes input {\n font-size: 22px;\n }\n }\n\n @media screen and (min-width: 450px) {\n h1 {\n font-size: 32px;\n }\n }\n\n @media screen and (min-width: 992px) {\n .zoom {\n zoom: 0.7;\n }\n .container {\n max-width: 1380px !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .container {\n max-width: 1600px !important;\n }\n }\n\n @media screen and (min-width: 1300px) {\n .container {\n max-width: 1720px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.75;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.85;\n }\n }\n\n @media screen and (min-width: 1800px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const CopyAlert = styled.div`\n transition-duration: 0.3s;\n position: fixed;\n right: ${(props) => (props.show ? '25px' : '-150px')};\n bottom: 50px;\n z-index: 1400;\n color: #fff;\n background-color: #116bff;\n border-color: 2px solid #fff;\n`;\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport axios from 'axios';\n\nconst BASE_URL = 'https://autoaffliate.api-du.de/api';\n// const BASE_URL = 'http://127.0.0.1:5000/api';\n\nexport async function apiRequest(\n action: string,\n method: string,\n payload: any\n): Promise {\n if (method === 'GET') {\n const response = await axios.get(`${BASE_URL}${action}`);\n return response.data;\n }\n if (method === 'POST') {\n const response = await axios.post(`${BASE_URL}${action}`, payload);\n return response.data;\n }\n\n return undefined;\n}\n","import { darken } from 'polished';\nimport styled, { css } from 'styled-components';\n\ninterface ContainerProps {\n isFilled: boolean;\n isFocuses: boolean;\n isErrored: boolean;\n onlySelect?: boolean;\n}\n\nexport const Container = styled.div`\n background: #17171a;\n border-radius: 10px;\n border: 1.5px solid #333333;\n padding: 5px 10px;\n width: 100%;\n display: flex;\n align-items: center;\n\n + div {\n margin-top: 8px;\n }\n\n div {\n width: 100%;\n position: relative;\n\n .button-show {\n position: absolute;\n top: -6px;\n right: -10px;\n width: 60px;\n text-align: center;\n background: none;\n border: 0;\n border-left: 1px solid rgba(224, 224, 224, 0.8);\n padding: 6px 10px 5px;\n color: #efefef;\n }\n }\n\n input {\n width: 100%;\n flex: 1;\n background: transparent;\n border: 0;\n color: #efefef;\n transition-duration: 0.2s;\n caret-color: ${(props) => (props.onlySelect ? 'transparent' : 'unset')};\n cursor: pointer;\n ::placeholder {\n color: #666360;\n }\n }\n\n .arrow {\n right: 5%;\n transition-duration: 0.3s;\n rotate: ${(props) => (props.isFocuses ? '180deg' : '0')};\n }\n\n .options {\n border-radius: 0 0 10px 10px;\n background-color: #17171a;\n border: 1.5px solid #fff;\n width: calc(100% + 2px);\n left: -1px;\n top: 34px;\n max-height: 200px;\n overflow: auto;\n z-index: 100;\n\n button {\n border: none;\n border-bottom: 1px solid #ffffff55;\n background: transparent;\n transition-duration: 0.3s;\n color: #efefef;\n\n :hover {\n background-color: ${darken(0.02, '#17171a')};\n }\n }\n }\n\n svg {\n margin-right: 16px;\n color: #666360;\n transition-duration: 0.2s;\n }\n\n ${(props) =>\n props.isErrored &&\n css`\n border-color: #c53030;\n `}\n\n ${(props) =>\n props.isFilled &&\n css`\n svg {\n color: #fff;\n }\n `}\n\n ${(props) =>\n props.isFocuses &&\n css`\n color: #fff;\n border-color: #fff !important;\n border-radius: 10px 10px 0 0 !important;\n\n svg {\n color: #fff;\n }\n `}\n`;\n","import React, {\n FC,\n InputHTMLAttributes,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from 'react';\nimport { useField } from '@unform/core';\nimport { TbTriangleInvertedFilled } from 'react-icons/tb';\nimport { Container } from './styles';\n\nexport interface IOption {\n id: string;\n value: string;\n selected: boolean;\n}\n\ninterface SelectProps extends InputHTMLAttributes {\n name: string;\n options: IOption[];\n readOnly?: boolean;\n onlySelect?: boolean;\n hasError?(hasError: boolean): void;\n}\n\nconst Input: FC = ({\n name,\n hasError,\n className,\n options,\n onFocus,\n onBlur,\n readOnly,\n onlySelect,\n onChange,\n ...rest\n}) => {\n const inputRef = useRef(null);\n const [values, setValues] = useState(options);\n const [optionSelected, setOptionSelected] = useState('');\n const [valueSelected, setValueSelected] = useState('');\n const [isFocuses, setIsFocuses] = useState(false);\n const [isFilled, setIsFilled] = useState(false);\n const { fieldName, defaultValue, error, registerField } = useField(name);\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n });\n }, [fieldName, registerField]);\n\n useEffect(() => {\n if (hasError) {\n hasError(!!error);\n }\n\n setValues(options);\n const selectedOption = options.find((option) => option.selected);\n if (selectedOption) {\n setOptionSelected(selectedOption.id);\n setValueSelected(selectedOption.value);\n }\n }, [error, hasError, options]);\n\n const handleInputFocus = useCallback(\n (e) => {\n if (onFocus) {\n onFocus(e);\n }\n setIsFocuses(true && !readOnly);\n },\n [onFocus, readOnly]\n );\n\n const handleInputBlur = useCallback(\n (e) => {\n if (onBlur) {\n onBlur(e);\n }\n setTimeout(() => {\n setIsFocuses(false);\n }, 300);\n setIsFilled(!!inputRef.current?.value);\n },\n [onBlur]\n );\n\n const handleChange = useCallback(\n (e) => {\n const { value } = e.target;\n const search = new RegExp(`${value.toUpperCase()}`);\n const newValuesList = options.filter((option) =>\n option.value.toUpperCase().match(search)\n );\n setValueSelected(value);\n setValues(newValuesList);\n },\n [options]\n );\n\n const handleClick = useCallback(\n (option: IOption) => {\n setOptionSelected(option.id);\n setValueSelected(option.value);\n if (onChange) {\n onChange((option as unknown) as React.ChangeEvent);\n }\n },\n [onChange]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (onlySelect) {\n e.preventDefault();\n }\n },\n [onlySelect]\n );\n\n return (\n <>\n \n
\n \n \n \n \n \n
\n {isFocuses && (\n
\n {values.map((option) => (\n handleClick(option)}\n className=\"w-100\"\n >\n {option.value}\n \n ))}\n
\n )}\n \n {error && {error}}\n \n );\n};\n\nexport default Input;\n","/* eslint-disable react/no-danger */\nimport React, { useCallback, useState, useEffect } from 'react';\nimport Lottie from 'react-lottie';\nimport { Form } from '@unform/web';\nimport Swal from 'sweetalert2';\nimport { useHistory } from 'react-router-dom';\nimport { Container, CopyAlert } from './styles';\nimport { apiRequest } from '~/services/aiConnectorApi';\nimport bubble from '~/assets/animations/orb.json';\nimport Select, { IOption } from '~/components/Select';\nimport btnHistoryImg from '~/assets/icons/btn-history-prompt-pro.svg';\nimport arrowLeft from '~/assets/icons/arrow-left-prompt-pro.svg';\nimport sphereLg from '~/assets/defaults/sphere-large.png';\nimport sphereLgMob from '~/assets/defaults/sphere-large-mob.png';\nimport sphereSm from '~/assets/defaults/sphere-small.png';\nimport copy from '~/assets/icons/copy-blue.svg';\nimport pro from '~/assets/icons/pro.svg';\nimport max from '~/assets/icons/max-icon.svg';\nimport min from '~/assets/icons/min-icon.svg';\nimport { useAuth } from '~/hooks/Auth';\nimport api from '~/services/api';\n\ninterface IResult {\n id: number;\n title: string;\n introduction: string;\n body: string;\n}\n\nconst PromptEase: React.FC = () => {\n const { user } = useAuth();\n const history = useHistory();\n const [showPrompt, setShowPrompt] = useState(false);\n const [btnHistory, setBtnHistory] = useState(false);\n const [btnMax, setBtnMax] = useState(false);\n const [idHistory, setIdHistory] = useState();\n const [selectCategoryNiche, setSelectCategoryNiche] = useState('');\n const [optionsCategory, setCategoryData] = useState([]);\n const [optionsNiche, setNicheData] = useState([]);\n const [targetData, setTargetData] = useState([]);\n const [contextData, setContextData] = useState([]);\n const [sentimentData, setSentimentData] = useState([]);\n const [roleData, setRoleData] = useState([]);\n const [copied, setCopied] = useState(false);\n const [category, setCategory] = useState('Category');\n const [niche, setNiche] = useState('Niche');\n const [target, setTarget] = useState('Target');\n const [searchBy, setSearchBy] = useState('');\n const [sentiment, setSentiment] = useState('Sentiment');\n const [role, setRole] = useState('Act As');\n const [context, setContext] = useState('Context');\n const [result, setResult] = useState([]);\n const [btnGenerate, setBtnGenerate] = useState('Generate Result');\n const [isPromptResultGenerate, setIsPromptResultGenerate] = useState(\n false\n );\n const [showPage, setShowPage] = useState(false);\n const [isPromptGenerated, setIsPromptGenerated] = useState(false);\n /**\n * load dropdown option data on page load\n */\n const [filterData, setFilterData] = useState<{\n categories?: [];\n targets?: [];\n niche?: [];\n context?: [];\n sentiment?: [];\n roles?: [];\n category?: [];\n }>();\n\n useEffect(() => {\n api\n .get(\n `affiliates-products/products/${process.env.REACT_APP_PROMPT_EASE_PRO}`\n )\n .then(() => {\n setShowPage(true);\n })\n .catch(() => {\n api\n .get(\n `affiliates-products/products/${process.env.REACT_APP_BLACKFRIDAY}`\n )\n .then(() => {\n setShowPage(true);\n })\n .catch(() => {\n history.push(`${process.env.PUBLIC_URL}/profile/my-purchases`);\n });\n });\n }, [history]);\n\n useEffect(() => {\n apiRequest('/prompt-ease', 'GET', {})\n .then((response) => {\n setFilterData(response.data);\n })\n .catch(() => {\n // console.error('API call error:', error);\n });\n }, []);\n\n useEffect(() => {\n apiRequest(`/prompt-ease/history?user_id=${user.id}`, 'GET', {})\n .then((response) => {\n setResult(response.results);\n })\n .catch(() => {\n // console.error('API call error:', error);\n });\n }, [user.id]);\n\n /**\n * set category drop down value\n */\n const categoryLists = useCallback(() => {\n const categoryArray = [] as IOption[];\n filterData?.categories?.forEach((item) =>\n categoryArray.push({ id: item, value: item, selected: false })\n );\n setCategoryData(categoryArray);\n }, [filterData]);\n\n const nicheLists = useCallback(() => {\n const nicheArray = [] as IOption[];\n filterData?.niche?.forEach((item) =>\n nicheArray.push({ id: item, value: item, selected: false })\n );\n setNicheData(nicheArray);\n }, [filterData]);\n\n const targetLists = useCallback(() => {\n const targetsArray = [] as IOption[];\n filterData?.targets?.forEach((item) =>\n targetsArray.push({ id: item, value: item, selected: false })\n );\n setTargetData(targetsArray);\n }, [filterData]);\n\n const sentimentLists = useCallback(() => {\n const sentimentArray = [] as IOption[];\n filterData?.sentiment?.forEach((item) =>\n sentimentArray.push({ id: item, value: item, selected: false })\n );\n setSentimentData(sentimentArray);\n }, [filterData]);\n\n const roleLists = useCallback(() => {\n const roleArray = [] as IOption[];\n filterData?.roles?.forEach((item) =>\n roleArray.push({ id: item, value: item, selected: false })\n );\n setRoleData(roleArray);\n }, [filterData]);\n\n const contextLists = useCallback(() => {\n const contextArray = [] as IOption[];\n filterData?.context?.forEach((item) =>\n contextArray.push({ id: item, value: item, selected: false })\n );\n setContextData(contextArray);\n }, [filterData]);\n\n const handleClickCopy = useCallback((content) => {\n const el = document.createElement('textarea');\n el.value = content;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 800);\n }, []);\n\n const generatePrompt = useCallback(() => {\n setIsPromptGenerated(false);\n if (\n !['', 'traffic'].includes(searchBy) &&\n !['', 'Target'].includes(target) &&\n !['', 'Act As'].includes(role) &&\n !['', 'Sentiment'].includes(sentiment)\n ) {\n setBtnGenerate('Loading...');\n setIsPromptResultGenerate(true);\n apiRequest('/prompt-chat', 'POST', {\n user_id: user.id,\n search_by: searchBy,\n target,\n role,\n sentiment,\n context,\n })\n .then((response) => {\n if (response.status === 'success') {\n setResult(response.results);\n }\n setBtnGenerate('Generate Result');\n setIsPromptGenerated(true);\n setIsPromptResultGenerate(false);\n })\n .catch(() => {\n setBtnGenerate('Generate Result');\n setIsPromptResultGenerate(false);\n Swal.fire('', 'Please try again later!', 'error');\n });\n } else {\n setBtnGenerate('Generate Result');\n setIsPromptResultGenerate(false);\n Swal.fire('', 'Please select all the dropdown values', 'error');\n }\n }, [searchBy, target, role, sentiment, user.id, context]);\n\n const handleClearSearch = useCallback(() => {\n setCategory('Category');\n setNiche('Niche');\n setSearchBy('traffic');\n setTarget('Target');\n setRole('Act As');\n setSentiment('Sentiment');\n setContext('Context');\n setResult(result);\n setSelectCategoryNiche('');\n setIsPromptGenerated(false);\n setShowPrompt(false);\n }, [result]);\n\n const handleChangeCategory = useCallback((option) => {\n if (option.value !== 'Category') {\n setSelectCategoryNiche('Category');\n } else {\n setSelectCategoryNiche('');\n }\n setSearchBy(option.value);\n setCategory(option.value);\n }, []);\n\n const handleChangeNiche = useCallback((option) => {\n if (option.value !== 'Niche') {\n setSelectCategoryNiche('Niche');\n } else {\n setSelectCategoryNiche('');\n }\n setSearchBy(option.value);\n setNiche(option.value);\n }, []);\n\n const handleChangeTarget = useCallback((option) => {\n setTarget(option.value);\n }, []);\n\n const handleChangeRole = useCallback((option) => {\n setRole(option.value);\n }, []);\n\n const handleChangeSentiment = useCallback((option) => {\n setSentiment(option.value);\n }, []);\n\n const handleChangeContext = useCallback((option) => {\n setContext(option.value);\n }, []);\n\n const handleBtnMax = useCallback(\n (id) => {\n setIdHistory(id);\n setBtnMax(true);\n if (idHistory === id) {\n setBtnMax(!btnMax);\n }\n },\n [btnMax, idHistory]\n );\n\n useEffect(() => {\n roleLists();\n sentimentLists();\n contextLists();\n targetLists();\n nicheLists();\n categoryLists();\n }, [\n categoryLists,\n contextLists,\n filterData,\n nicheLists,\n roleLists,\n sentimentLists,\n targetLists,\n ]);\n\n const handleSubmit = useCallback(() => {\n // console.log(data);\n }, []);\n\n return (\n \n {showPage && (\n <>\n \n \"Sphere\"\n
\n
\n
\n
\n \n

\n PromptEASE \"Pro\"\n

\n
\n
\n
\n setBtnHistory(!btnHistory)}\n >\n \n \n
\n {btnHistory ? (\n
\n
\n
\n \"Sphere\"\n
\n
\n
\n
\n
\n

Prompt History

\n {result.map((resultText) => (\n
\n {\n handleBtnMax(resultText.id);\n }}\n type=\"button\"\n className=\"bg-transparent border-0 btn-max-min\"\n title={\n btnMax && idHistory === resultText.id\n ? 'to reduce'\n : 'To increase'\n }\n >\n \n \n \n handleClickCopy(\n `${resultText.title}\\n${resultText.introduction}\\n${resultText.body}`\n )\n }\n value={resultText.title}\n className=\"bg-transparent border-0 btn-copy-output\"\n title=\"Click to copy\"\n >\n \"Copy\"\n \n \n
\n

Prompt Output

\n
\n

\n

{resultText.title}

\n

\n\n

Prompt Result

\n\n
\n \n
\n
\n
\n ))}\n
\n
\n
\n
\n
\n
\n ) : (\n
\n
\n
\n
\n
\n

\n What prompt are you looking for?\n

\n
\n \n Clear Search\n \n setShowPrompt(true)}\n className=\"btn-result mx-2 mx-lg-3\"\n >\n Generate Prompt\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n

\n 1\n Search by category or niche?\n

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

\n 2What do\n you want to create?\n

\n\n \n
\n
\n

\n 3Act as\n what role?\n

\n\n \n
\n
\n

\n 4What\n sentiment?\n

\n\n \n
\n
\n

\n 5\n Context of the setting?\n

\n\n \n
\n
\n {showPrompt && (\n
\n
\n
\n

Prompt Output

\n

\n Act as a{' '}\n \n {sentiment && sentiment !== 'Sentiment'\n ? sentiment\n : 'confident'}\n {' '}\n \n {role && role !== 'Act As'\n ? role\n : 'Celebrity Chef'}\n {' '}\n in{' '}\n \n {context && context !== 'Context'\n ? context\n : 'a high class restaurant kitchen'}\n {' '}\n who needs a{' '}\n \n {target && target !== 'Target'\n ? target\n : 'blog post'}\n {' '}\n for{' '}\n \n {searchBy && searchBy !== 'Niche'\n ? searchBy\n : 'traffic'}\n \n

\n
\n \n {btnGenerate}\n \n
\n
\n
\n {isPromptGenerated && (\n
\n
\n
\n

Prompt Result

\n \n handleClickCopy(\n `${result[0].title}\\n${result[0].introduction}\\n${result[0].body}`\n )\n }\n value={result[0].title}\n type=\"button\"\n className=\"bg-transparent border-0\"\n title=\"Click to copy\"\n >\n \"Copy\"\n \n
\n
\n \n
\n
\n
\n )}\n
\n )}\n
\n
\n
\n \n
\n )}\n
\n
\n \n

Copied

\n
\n \n )}\n
\n );\n};\n\nexport default PromptEase;\n","import styled from 'styled-components';\nimport bannerEase from '~/assets/banners/banner-prompt-ease.png';\n\ninterface ICopyAlertProps {\n show: boolean;\n}\n\nexport const Container = styled.div`\n min-height: 100vh;\n background: url(${bannerEase});\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n h1 {\n font-family: 'Zen Dots';\n font-size: 32px;\n font-weight: 700;\n background: linear-gradient(\n 270deg,\n #4786ee 2.07%,\n #d8a681 29.58%,\n #9d66ff 57.19%,\n #53c0b4 76.97%,\n #d398cf 96.19%\n );\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-text-stroke: 0.1px #fff;\n }\n\n h2 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 40px;\n font-weight: 300;\n }\n\n h3 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 22px;\n font-weight: 300;\n span:nth-child(1) {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 34px;\n height: 34px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 25px;\n border: 2px solid #fff;\n }\n }\n\n button:disabled {\n filter: grayscale(1);\n cursor: not-allowed;\n }\n\n .and-or {\n color: #61718b;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 300;\n }\n\n .bg-number-category {\n background: #abdfff;\n }\n\n .bg-number-type {\n background: #a8fff3;\n }\n\n .bg-number-plataform {\n background: #f7c7ef;\n }\n\n .lottie > div {\n margin: 0px !important;\n }\n\n .btn-clear {\n color: #ff1a50;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .btn-result {\n color: #116bff;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .bd-bottom {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .bg-all {\n border-radius: 40px;\n border: 2px solid #fff;\n background: rgba(255, 255, 255, 0.15);\n backdrop-filter: blur(40px);\n }\n\n .bg-left-side {\n border-radius: 24px !important;\n border: 2px solid #fff;\n background: #abdfff;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .bg-center-side {\n border-radius: 24px !important;\n border: 2px solid #fff;\n background: #a8fff3;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .bg-right-side {\n border-radius: 24px !important;\n border: 2px solid #fff;\n background: #f7c7ef;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .bg-result {\n border-radius: 30px;\n border: 2px solid #fff;\n background: rgba(255, 255, 255, 0.4);\n //backdrop-filter: blur(40px);\n }\n\n .bg-result h2 {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 24px;\n font-weight: 300;\n }\n\n .bg-result p {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 300;\n line-height: 34px;\n\n span {\n font-weight: 500;\n }\n }\n\n .prompt-result-hash {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n line-height: 34px;\n }\n\n .prompt-result-body {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 18px;\n font-style: normal;\n font-weight: 500;\n line-height: 30px;\n }\n\n .bg-result button img {\n width: 20px;\n height: 20px;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n .options {\n top: 120px !important;\n border-radius: 24px !important;\n border: 2px solid #abdfff !important;\n padding: 30px 0px;\n background-color: rgba(255, 255, 255, 0.7) !important;\n max-height: 450px !important;\n box-shadow: 0px 9px 40px 0px rgba(0, 0, 0, 0.08);\n backdrop-filter: blur(40px);\n button {\n color: #2f3745 !important;\n border-bottom: none !important;\n padding: 10px 20px;\n font-family: 'Poppins';\n font-size: 22px !important;\n font-weight: 400;\n text-align: start;\n :hover {\n background-color: rgba(255, 255, 255, 1) !important;\n\n //backdrop-filter: blur(40px);\n }\n }\n }\n\n .btns-share a {\n border-radius: 18px;\n background: rgba(100, 97, 97, 0.12);\n\n backdrop-filter: blur(7.5px);\n border: none;\n width: 20%;\n height: 103px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease-in-out;\n\n :hover {\n transform: scale(1.1);\n box-shadow: inset 0px 0px 0px 2px rgba(255, 255, 255, 0.7);\n }\n }\n\n .video-thumb img {\n /* border-radius: 40px;\n border: 6px solid #fff; */\n /* filter: drop-shadow(66px 74px 120px rgba(14, 1, 24, 0.2)); */\n }\n\n .h-result {\n max-height: 380px;\n overflow: auto;\n }\n\n .result {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 30px;\n font-weight: 300;\n }\n\n .prompt-mg-negative {\n margin-top: -8rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pad-prompt {\n padding-bottom: 1.5rem !important;\n border-radius: 30px;\n border: 2px solid #fff;\n\n background: rgba(255, 255, 255, 0.4);\n\n backdrop-filter: blur(40px);\n }\n\n div.tableData div {\n background-color: transparent;\n }\n\n div.rdt_TableCol div {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n div.rdt_TableRow div {\n color: #4e5869;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 400;\n }\n\n .rdt_TableCol_Sortable span {\n font-size: 13px !important;\n }\n\n div.tableData .rdt_TableRow:hover div:not(.card-success) {\n background-color: transparent !important;\n }\n\n div.tableData .rdt_TableRow:hover {\n background-color: rgba(255, 255, 255, 0.4) !important;\n backdrop-filter: blur(40px) !important;\n cursor: pointer;\n }\n\n .menu-table .search input {\n background-color: transparent !important;\n }\n\n .btn-page {\n background: rgba(255, 255, 255, 0.8) !important;\n backdrop-filter: blur(40px);\n border: 1px solid #ddd;\n color: #393f48 !important;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 500;\n }\n\n .btn-first,\n .btn-last {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .showing {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .search input {\n color: #7f8898 !important;\n\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 400;\n }\n\n .search > div {\n background: transparent !important;\n border-radius: 0 !important;\n }\n\n .menu-table .search {\n border-radius: 0 !important;\n }\n\n .search.border-gray {\n border: none !important;\n border-bottom: solid 2px #fff !important;\n padding: 0 10px;\n }\n\n .rdt_TableHeadRow > div:nth-child(1),\n .rdt_TableRow > div:nth-child(1) {\n min-width: 900px;\n }\n\n div.tableData {\n max-width: 100%;\n }\n\n .copy {\n background: transparent;\n border: none;\n font-weight: 400;\n font-size: 20px;\n line-height: 26px;\n color: #4e5869;\n width: 100%;\n margin: 0 !important;\n height: 100%;\n img {\n display: none;\n }\n }\n\n .card-success {\n background: #116bff !important;\n bottom: 33px;\n right: 40%;\n }\n\n .sphere-sm {\n position: absolute;\n top: 13rem;\n left: -3rem;\n width: 93px;\n height: 93px;\n }\n\n .sphere-lg {\n position: fixed;\n bottom: 0;\n right: 7%;\n width: 383px;\n height: 243px;\n }\n\n .label-select {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .select-quantity {\n border: none;\n background: transparent;\n cursor: pointer;\n }\n\n .select-quantity option {\n appearance: none;\n cursor: pointer;\n text-align: center;\n background-color: #e5eaf8;\n }\n\n @media screen and (max-width: 1199px) {\n h3 {\n font-size: 19px;\n }\n }\n\n @media screen and (max-width: 991px) {\n h3 {\n font-size: 22px;\n }\n div.rdt_TableCol div {\n font-size: 20px;\n }\n\n .copy {\n font-size: 18px;\n }\n\n .prompt-mg-negative {\n padding-bottom: 1rem !important;\n }\n\n .result {\n font-size: 24px;\n }\n\n .h-result {\n max-height: inherit;\n overflow: auto;\n }\n\n .label-select,\n .select-quantity {\n margin-bottom: 1rem !important;\n }\n\n .options {\n top: 80px !important;\n }\n\n .options button {\n font-size: 20px;\n }\n\n .sphere-sm {\n top: 200px;\n left: 0;\n width: 64px;\n height: 64px;\n }\n\n .sphere-lg {\n width: 220px;\n height: 330px;\n right: 0;\n }\n\n .bd-bottom {\n border-bottom: none;\n }\n\n .bd-bottom-title {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .btn-clear {\n font-size: 18px;\n }\n\n .btn-result {\n font-size: 18px;\n }\n\n .bg-left-side {\n height: auto;\n }\n\n .bg-left-side,\n .bg-center-side,\n .bg-right-side {\n height: 73px;\n }\n\n .bg-left-side input {\n font-size: 22px;\n }\n .bg-left-side input,\n .bg-center-side input,\n .bg-right-side input {\n font-size: 22px;\n }\n\n .rdt_TableHeadRow > div:nth-child(1),\n .rdt_TableRow > div:nth-child(1) {\n min-width: 500px;\n }\n\n div.tableData div::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #fff !important;\n }\n\n div.tableData div::-webkit-scrollbar {\n background-color: transparent !important;\n }\n\n .shadow-left {\n position: absolute;\n top: 2px;\n left: 2px;\n height: 100%;\n width: 50px;\n border-radius: 30px 0px 0px 30px;\n background: linear-gradient(\n 90deg,\n #dbdff2 10%,\n rgba(236, 233, 242, 0) 100%\n );\n }\n\n .shadow-right {\n position: absolute;\n top: 2px;\n right: 2px;\n height: 100%;\n width: 50px;\n border-radius: 0px 30px 30px 0px;\n background: linear-gradient(\n 270deg,\n #dbdff2 10%,\n rgba(236, 233, 242, 0) 100%\n );\n }\n }\n\n @media screen and (min-width: 576px) {\n .video-thumb img {\n /* border: 10px solid #fff; */\n }\n\n .bg-result h2 {\n font-size: 28px;\n }\n\n .prompt-result-hash {\n font-size: 26px;\n }\n\n .prompt-result-body {\n font-size: 24px;\n }\n }\n @media screen and (min-width: 992px) {\n .btns-share a {\n height: 73px;\n }\n .zoom {\n zoom: 0.7;\n }\n .container {\n max-width: 1380px !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .btns-share a {\n height: 85px;\n }\n .container {\n max-width: 1600px !important;\n }\n }\n\n @media screen and (min-width: 1300px) {\n .container {\n max-width: 1720px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .btns-share a {\n width: 103px;\n height: 103px;\n }\n .zoom {\n zoom: 0.75;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.85;\n }\n }\n\n @media screen and (min-width: 1800px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\nexport const CopyAlert = styled.div`\n transition-duration: 0.3s;\n position: fixed;\n right: ${(props) => (props.show ? '25px' : '-150px')};\n bottom: 50px;\n z-index: 1400;\n color: #fff;\n background-color: #116bff;\n border-color: 2px solid #fff;\n`;\n","import styled from 'styled-components';\n\ninterface IItem {\n active?: boolean;\n}\n\nexport const Container = styled.div`\n position: relative;\n button[disabled] {\n svg {\n fill: #676767;\n opacity: 0.1;\n }\n }\n\n .download {\n border-radius: 24px;\n border: 2px solid #fff;\n\n background: #116bff;\n padding: 13px;\n width: 368px;\n height: 83px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n transition: all 0.2s ease-in-out;\n :hover {\n opacity: 0.8;\n }\n }\n\n .quote {\n width: 18px;\n }\n\n .slick-list {\n border-radius: 40px;\n border: 10px solid #fff;\n filter: drop-shadow(66px 74px 120px rgba(14, 1, 24, 0.2));\n }\n\n .slick-dots {\n position: absolute;\n bottom: -40px;\n display: flex !important;\n width: 50%;\n padding: 0;\n margin: 0;\n left: 25%;\n list-style: none;\n text-align: center;\n overflow: hidden;\n justify-content: center;\n }\n\n .slick-dots li button:before {\n color: #fff;\n font-size: 10px;\n }\n\n .slick-dots li.slick-active button:before {\n opacity: 0.75;\n color: #fff;\n }\n\n video,\n .video-js {\n height: 850px !important;\n }\n\n .slider-count {\n position: absolute;\n right: 21%;\n top: -32px;\n font-family: 'Source Code Pro', sans-serif;\n font-weight: 300;\n font-size: 24px;\n line-height: 30px;\n color: #676767;\n span {\n font-weight: 500;\n color: #000;\n }\n }\n\n @media screen and (min-width: 576px) {\n .quote {\n width: auto;\n }\n .slider-count {\n right: 16%;\n top: -35px;\n }\n }\n\n @media screen and (min-width: 768px) {\n .quote {\n width: 18px;\n }\n }\n\n @media screen and (min-width: 992px) {\n .slider-count {\n right: 16%;\n top: -41px;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .slider-count {\n right: 14%;\n top: -43px;\n }\n }\n`;\n\nexport const Item = styled.div`\n width: 100%;\n border: none;\n background: transparent;\n /* padding-top: 3rem;\n padding-bottom: 4rem; */\n\n .bg-black {\n background-color: #000;\n height: 850px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nexport const ButtonLeft = styled.button`\n display: none;\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: transparent;\n border: 1px solid transparent;\n transition-duration: 0.3s;\n bottom: -70px;\n\n left: unset;\n transform: translateY(-50%);\n top: -2%;\n right: 37%;\n\n svg {\n fill: #fff;\n }\n\n :before,\n :after {\n display: none;\n }\n\n @media screen and (min-width: 576px) {\n right: 27%;\n }\n\n @media screen and (min-width: 768px) {\n display: block;\n top: 50%;\n right: 100%;\n }\n\n @media screen and (min-width: 1200px) {\n }\n`;\n\nexport const ButtonRight = styled.button`\n display: none;\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: transparent;\n border: 1px solid transparent;\n\n transition-duration: 0.3s;\n bottom: -70px;\n right: 35%;\n transform: translateY(-50%);\n\n svg {\n fill: #fff;\n }\n\n :before,\n :after {\n display: none;\n }\n\n @media screen and (min-width: 768px) {\n display: block;\n top: 50%;\n right: -8%;\n }\n`;\n","import styled from 'styled-components';\n\nexport const VideoPlayer = styled.video`\n width: 100%;\n height: 42vh;\n\n .vjs-control-bar {\n display: none !important;\n }\n`;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport videojs, { VideoJsPlayerOptions } from 'video.js';\nimport { VideoPlayer } from './styles';\n\ninterface IPlayerProps {\n src: string;\n id?: string;\n className?: string;\n thumbnail?: string;\n onPlay?(): void;\n onPause?(): void;\n callChangeTimeBySeconds?: number;\n onChangeTime?(time: number): void;\n onComplete?(): void;\n}\n\nconst PlayerPostEase: React.FC = ({\n src,\n id,\n className,\n thumbnail,\n onPlay,\n onPause,\n onComplete,\n}) => {\n const videoRef = useRef(null);\n\n const handlePlayVideo = useCallback(() => {\n if (onPlay) {\n onPlay();\n }\n }, [onPlay]);\n\n const handlePauseVideo = useCallback(() => {\n if (onPause) {\n onPause();\n }\n }, [onPause]);\n\n const handleCompleteVideo = useCallback(() => {\n if (onComplete) {\n onComplete();\n }\n }, [onComplete]);\n\n useEffect(() => {\n const options: VideoJsPlayerOptions = {\n fluid: true,\n preload: 'auto',\n html5: {\n hls: {\n enableLowInitialPlaylist: true,\n smoothQualityChange: true,\n overrideNative: true,\n },\n },\n\n autoplay: false,\n controls: true,\n sources: [\n {\n src,\n type: 'video/mp4',\n },\n ],\n // ended: handleCompleteVideo,\n };\n\n if (videoRef.current) {\n const player = videojs(videoRef.current, options);\n // eslint-disable-next-line no-underscore-dangle\n // player.updateSourceCaches_(src);\n player.on('ended', handleCompleteVideo);\n\n player.on('play', () => {\n const allPlayers = videojs.getPlayers();\n Object.keys(allPlayers).forEach((playerId) => {\n if (playerId !== player.id()) {\n allPlayers[playerId].pause();\n }\n });\n });\n\n return () => {\n if (player) {\n player.dispose();\n }\n };\n }\n return () => {\n console.log('ok');\n };\n }, [handleCompleteVideo, src]);\n\n return (\n
\n \n Sorry, your browser doesn't support embedded videos.\n \n
\n );\n};\n\nexport default PlayerPostEase;\n","import React, { useMemo, useState } from 'react';\nimport { IoIosArrowBack, IoIosArrowForward } from 'react-icons/io';\nimport SliderSlick, { Settings } from 'react-slick';\n\nimport { TbCloudDownload } from 'react-icons/tb';\nimport { Container, Item, ButtonLeft, ButtonRight } from './styles';\n\nimport Player from '../PlayerPostEase';\n\ninterface IVideo {\n thumbnail: string;\n src: string;\n isImage: boolean;\n}\n\ninterface ICarousel {\n className?: string;\n video: IVideo[];\n onSlideChange(): void;\n}\n\ninterface IButtonProps {\n className?: string;\n onClick?(): void;\n}\n\nconst PrevArrow: React.FC = ({ className, onClick }) => {\n const disabled = useMemo(() => {\n if (className) {\n if (className.match('slick-disabled')) {\n return true;\n }\n return false;\n }\n return false;\n }, [className]);\n\n return (\n \n
\n \n
\n \n );\n};\n\nconst NextArrow: React.FC = ({ className, onClick }) => {\n const disabled = useMemo(() => {\n if (className) {\n if (className.match('slick-disabled')) {\n return true;\n }\n return false;\n }\n return false;\n }, [className]);\n\n return (\n \n
\n \n
\n \n );\n};\n\nconst Carousel: React.FC = ({ className, video, onSlideChange }) => {\n const [videoDownload, setVideoDownload] = useState('');\n const settings: Settings = useMemo(\n () => ({\n infinite: false,\n slidesToShow: 1,\n centerPadding: '0px',\n autoplay: false,\n autoplaySpeed: 3000,\n speed: 500,\n arrows: true,\n touchMove: true,\n dots: true,\n\n nextArrow: ,\n prevArrow: ,\n beforeChange: () => {\n setVideoDownload('');\n onSlideChange();\n },\n }),\n [onSlideChange]\n );\n\n return (\n \n \n {video.map((item, index) => (\n <>\n {item.isImage ? (\n \n
\n \"Thumbnail\"\n
\n
\n ) : (\n \n setVideoDownload(item.src)}\n />\n \n )}\n \n ))}\n
\n {videoDownload && (\n
\n \n Download Content\n \n
\n )}\n
\n );\n};\n\nexport default Carousel;\n","import React, { useCallback, useState } from 'react';\nimport Lottie from 'react-lottie';\nimport { Form } from '@unform/web';\nimport { Container, CopyAlert } from './styles';\nimport bubble from '~/assets/animations/orb.json';\nimport Select from '~/components/Select';\n\nimport sphereLg from '~/assets/defaults/sphere-large.png';\nimport sphereLgMob from '~/assets/defaults/sphere-large-mob.png';\nimport sphereSm from '~/assets/defaults/sphere-small.png';\nimport example from '~/assets/defaults/example-post.png';\nimport copy from '~/assets/icons/copy-blue.svg';\nimport instagram from '~/assets/icons/instagram-color.svg';\nimport youtube from '~/assets/icons/youtube-color.svg';\nimport tiktok from '~/assets/icons/tiktok-color.svg';\nimport facebook from '~/assets/icons/facebook-color.svg';\nimport Carousel from './Carousel';\n\nconst PromptEase: React.FC = () => {\n const [showResult, setShowResult] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const video = [\n {\n src: 'https://cdn.autoaffiliate.ai/videos/AutoAffiliate_v2+en.mp4',\n thumbnail: example,\n isImage: false,\n },\n {\n src: 'https://cdn.autoaffiliate.ai/videos/New_5_min_video.mp4',\n thumbnail: example,\n isImage: false,\n },\n {\n src: example,\n thumbnail: '',\n isImage: true,\n },\n ];\n\n const category = [\n { id: '1', value: 'Motivational', selected: false },\n { id: '2', value: 'Make Money Online', selected: false },\n { id: '3', value: 'Personal Growth', selected: false },\n { id: '4', value: 'Lifestyle', selected: false },\n ];\n\n const type = [\n { id: '1', value: 'Reels', selected: false },\n { id: '2', value: 'Videos', selected: false },\n { id: '3', value: 'Images', selected: false },\n { id: '4', value: 'Text', selected: false },\n ];\n\n const plataform = [\n { id: '1', value: 'Instagram', selected: false },\n { id: '2', value: 'Tiktok', selected: false },\n { id: '3', value: 'Facebook', selected: false },\n { id: '4', value: 'Youtube', selected: false },\n ];\n\n const handleClickCopy = useCallback((content) => {\n const el = document.createElement('textarea');\n el.value = content;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 800);\n }, []);\n\n const handleSlideChange = useCallback(() => {\n console.log('ok');\n }, []);\n\n return (\n \n \n \"Sphere\"\n
\n
\n
\n
\n \n

PostEASE

\n
\n
\n
\n
'submit'}>\n
\n
\n \"Sphere\"\n
\n
\n
\n
\n
\n

\n 1\n Choose Category\n \n and/or\n \n

\n\n setShowResult(true)}\n />\n

\n and/or\n

\n
\n
\n

\n 2\n Choose Post Type\n \n and/or\n \n

\n\n setShowResult(true)}\n />\n

\n and/or\n

\n
\n
\n

\n 3\n Choose Plataform\n

\n\n setShowResult(true)}\n />\n
\n\n {showResult && (\n <>\n
\n
\n
\n

Hashtags #

\n handleClickCopy(`test`)}\n value=\"test\"\n type=\"button\"\n className=\"bg-transparent border-0\"\n title=\"Click to copy\"\n >\n \"Copy\"\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n

\n Sample Video Description\n

\n \n handleClickCopy(\n `Are you tired of feeling like time is slipping away?\\n\\nDo you wish you had more time to chase your dreams and live life to the fullest?\\n\\nIf you’re like me, you’ve probably caught yourself thinking, “I’ll do it tomorrow” or “I have plenty of time.” But the truth is, time is our most precious resource, and we can’t afford to waste it.\\n\\nI understand how you feel, and that’s why I’m excited to share an incredible opportunity that can help you break free from the rat race, buy back your time, achieve your goals, and create a life you love.\\n\\nLet’s make the most of our time together in 2024 and beyond! ⏳🚀💪🏼`\n )\n }\n type=\"button\"\n className=\"bg-transparent border-0\"\n title=\"Click to copy\"\n >\n \"Copy\"\n \n
\n
\n
Do you wish you had more time to chase your dreams and live life to the fullest?

If you’re like me, you’ve probably caught yourself thinking, “I’ll do it tomorrow” or “I have plenty of time.” But the truth is, time is our most precious resource, and we can’t afford to waste it.\\n\\nI understand how you feel, and that’s why I’m excited to share an incredible opportunity that can help you break free from the rat race, buy back your time, achieve your goals, and create a life you love.

Let’s make the most of our time together in 2024 and beyond! ⏳🚀💪🏼',\n }}\n />\n
\n
\n
\n \n )}\n
\n
\n
\n
\n {showResult && (\n <>\n
\n \n
\n \n )}\n
\n
\n \n
\n
\n
\n \n

Copied

\n
\n
\n );\n};\n\nexport default PromptEase;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n h1 {\n color: #021027;\n font-family: 'Inter';\n font-size: 32px;\n font-style: normal;\n font-weight: 500;\n\n line-height: 57px;\n }\n a {\n color: #615f5f;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 400;\n background-color: transparent;\n border: none;\n text-decoration: none;\n transition: all 0.2s ease-in-out;\n -webkit-text-fill-color: #615f5f;\n -webkit-text-stroke-width: 0.5px;\n -webkit-text-stroke-color: transparent;\n :hover {\n color: #021027;\n -webkit-text-fill-color: #021027;\n -webkit-text-stroke-color: #021027;\n }\n }\n\n .active {\n color: #021027;\n -webkit-text-fill-color: #021027;\n -webkit-text-stroke-color: #021027;\n }\n\n hr {\n border-top: 2px solid #116bff;\n background: #116bff;\n box-shadow: 0px 4px 15px 0px rgba(17, 107, 255, 0.5);\n margin: 3px 0;\n }\n\n @media screen and (min-width: 992px) {\n h1 {\n font-size: 36px;\n line-height: 80px;\n }\n .zoom {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.9;\n }\n }\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n","import styled from 'styled-components';\n\ninterface IAvatar {\n avatar: string;\n}\n\nexport const Container = styled.div`\n h3 {\n color: #040404;\n text-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 600;\n }\n\n .height {\n height: auto;\n overflow: auto;\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #021027;\n }\n }\n\n .rotate180 {\n transform: rotate(180deg);\n }\n\n .bg-even {\n background: #fff;\n }\n\n .bg-odd {\n background: transparent;\n }\n\n .bd-row {\n border-radius: 20px;\n border: 1px solid #f2f2f2;\n height: 100px;\n }\n\n .position {\n color: #615f5f;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n border-right: 1px solid #e3e0e0;\n line-height: 40px;\n width: auto;\n }\n\n .bs-avatar {\n box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.24);\n border-radius: 100px;\n }\n\n .name {\n color: #021027;\n\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 600;\n }\n\n .sales span {\n color: #021027;\n font-family: 'Inter';\n font-size: 16px;\n\n font-weight: 300;\n }\n\n .blur-silver {\n border-radius: 200px;\n background: rgba(197, 197, 197, 0.5);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .blur-gold {\n border-radius: 200px;\n background: rgba(255, 213, 155, 0.4);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .blur-bronze {\n border-radius: 200px;\n background: rgba(142, 86, 25, 0.2);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .bd-silver {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #c5c5c5;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(197, 197, 197, 0.6);\n }\n\n .bd-gold {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #e9c990;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(210, 171, 104, 0.6);\n }\n\n .bd-bronze {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #8e5619;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(142, 86, 25, 0.6);\n }\n\n .bs-silver,\n .bs-gold,\n .bs-bronze {\n box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.24);\n border-radius: 50px;\n width: 62px;\n height: 62px;\n }\n\n .second-place-text {\n left: 6.5%;\n bottom: 10%;\n }\n\n .first-place-text {\n left: 37%;\n bottom: 22%;\n }\n\n .third-place-text {\n right: 8%;\n bottom: 3%;\n }\n\n .first-place-text p,\n .second-place-text p,\n .third-place-text p {\n color: #021027;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 300;\n }\n\n .first-place-text img,\n .second-place-text img,\n .third-place-text img {\n width: 24px;\n height: 24px;\n }\n\n .avatar-second {\n left: 8%;\n top: 10%;\n }\n\n .avatar-first {\n left: 38%;\n top: -7%;\n }\n\n .avatar-third {\n right: 8%;\n top: 15%;\n }\n\n .avatar-first h2,\n .avatar-second h2,\n .avatar-third h2 {\n color: #021027;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 600;\n width: 100px;\n }\n .avatar-first p,\n .avatar-second p,\n .avatar-third p {\n color: #021027;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 300;\n }\n .loading {\n width: 62px;\n height: 62px;\n border-radius: 50px;\n }\n .loading-sales {\n height: 42px;\n border-radius: 4px;\n width: 100%;\n margin-bottom: 0px;\n }\n\n .text-loading {\n height: 40px;\n width: 99px;\n border-radius: 8px;\n }\n .loading-height {\n height: 100px;\n border-radius: 20px;\n\n width: 100%;\n }\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n //display: inline-block;\n box-shadow: none;\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n max-width: 400px;\n }\n\n @media screen and (min-width: 576px) {\n .avatar-second {\n left: 10%;\n top: 15%;\n }\n .second-place-text {\n left: 9%;\n bottom: 11%;\n }\n .avatar-first {\n left: 40%;\n top: -3%;\n }\n .first-place-text {\n left: 40%;\n bottom: 27%;\n }\n .avatar-third {\n right: 10%;\n top: 21%;\n }\n .third-place-text {\n right: 10%;\n bottom: 6%;\n }\n }\n\n @media screen and (min-width: 768px) {\n .avatar-second {\n left: 12.5%;\n top: 23%;\n }\n .second-place-text {\n left: 11.5%;\n bottom: 14%;\n }\n .avatar-first {\n left: 43%;\n top: 5%;\n }\n .first-place-text {\n left: 42.5%;\n bottom: 30%;\n }\n .avatar-third {\n right: 12.5%;\n top: 30%;\n }\n .third-place-text {\n right: 12.5%;\n bottom: 8%;\n }\n }\n\n @media screen and (min-width: 992px) {\n h3 {\n font-size: 18px;\n font-weight: 500;\n }\n .zoom {\n zoom: 0.7;\n }\n .height {\n height: 500px;\n padding-right: 10px;\n }\n\n .name {\n font-size: 20px;\n }\n\n .sales span {\n font-size: 20px;\n }\n .blur-silver {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .blur-gold {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .blur-bronze {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .bd-silver {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n\n .bd-gold {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n\n .bd-bronze {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n .bs-silver,\n .bs-gold,\n .bs-bronze {\n width: 100px;\n height: 100px;\n }\n\n .first-place-text img,\n .second-place-text img,\n .third-place-text img {\n width: 40px;\n height: 40px;\n }\n .avatar-first h2,\n .avatar-second h2,\n .avatar-third h2 {\n font-size: 20px;\n width: 120px;\n }\n .avatar-first p,\n .avatar-second p,\n .avatar-third p {\n font-size: 16px;\n }\n\n .avatar-second {\n left: 23.5%;\n top: 13%;\n }\n\n .avatar-first {\n left: 45%;\n top: 0%;\n }\n\n .avatar-third {\n right: 23.5%;\n top: 18%;\n }\n .first-place-text {\n left: 42%;\n bottom: 22%;\n }\n\n .third-place-text {\n right: 21.5%;\n bottom: 7%;\n }\n .second-place-text {\n left: 20.5%;\n bottom: 11%;\n }\n .position {\n font-size: 20px;\n width: 60px;\n }\n .loading {\n width: 100px;\n height: 100px;\n }\n\n .loading-sales {\n height: 21px;\n }\n .text-loading {\n width: 124px;\n height: 50px;\n }\n }\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.9;\n }\n .bd-silver,\n .bd-gold,\n .bd-bronze {\n padding: 9px;\n }\n }\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 1;\n }\n .bd-silver,\n .bd-gold,\n .bd-bronze {\n padding: 8px;\n }\n }\n`;\n\nexport const AvatarFirst = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarSecond = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarThird = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarOthers = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n width: 48px;\n height: 48px;\n border-radius: 50px;\n\n box-shadow: inset 0px 0px 0px 2.5px rgba(228, 228, 228, 0.5);\n\n @media screen and (min-width: 576px) {\n width: 46px;\n height: 55px;\n }\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport {\n AvatarFirst,\n AvatarOthers,\n AvatarSecond,\n AvatarThird,\n Container,\n} from './styles';\n\nimport avatar from '~/assets/defaults/profile-photo.png';\nimport podiumDesk from '~/assets/defaults/banner-leaderboard.svg';\nimport podiumMob from '~/assets/defaults/banner-leaderboard-mobile-new.svg';\nimport gold from '~/assets/defaults/gold1.svg';\nimport silver from '~/assets/defaults/silver2.svg';\nimport bronze from '~/assets/defaults/bronze3.svg';\n\nconst Today: React.FC = () => {\n const [loading, setLoading] = useState(true);\n\n const positions = [\n {\n name: 'Name Test1',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test2',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test3',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test4',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test5',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test6',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test7',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test8',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test9',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n ];\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 2000);\n }, [positions]);\n return (\n \n
\n
\n
\n \"Podium\"\n \n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[1].name}\n

\n

{positions[1].type}

\n \n )}\n
\n
\n \"Silver\"\n
\n

SECOND PLACE

\n

\n \n 2nd PLACE\n

\n\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[0].name}\n

\n

{positions[0].type}

\n \n )}\n
\n
\n \"Gold\"\n\n
\n

FIRST PLACE

\n

\n \n 1st PLACE\n

\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n\n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[2].name}\n

\n

{positions[2].type}

\n \n )}\n
\n
\n \"Bronze\"\n\n
\n

THIRD PLACE

\n

\n \n 3rd PLACE\n

\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n
\n
\n
\n {loading ? (\n <>\n
\n
\n \n ) : (\n
\n {positions.map((pos, index) => (\n <>\n {index > 2 && (\n \n
\n \n #{index + 1}\n \n
\n
\n \n
\n {pos.name}\n
\n
\n
\n
\n
\n \n {pos.sales}\n \n Sales\n
\n
\n \n {pos.referrals}\n \n Referrals\n
\n
\n \n \n \n \n
\n
\n
\n )}\n \n ))}\n
\n )}\n
\n
\n \n );\n};\n\nexport default Today;\n","import styled from 'styled-components';\n\ninterface IAvatar {\n avatar: string;\n}\n\nexport const Container = styled.div`\n h3 {\n color: #040404;\n text-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 600;\n }\n\n .height {\n height: auto;\n overflow: auto;\n\n ::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n height: 5px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #021027;\n }\n }\n\n .rotate180 {\n transform: rotate(180deg);\n }\n\n .bg-even {\n background: #fff;\n }\n\n .bg-odd {\n background: transparent;\n }\n\n .bd-row {\n border-radius: 20px;\n border: 1px solid #f2f2f2;\n height: 100px;\n }\n\n .position {\n color: #615f5f;\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 500;\n border-right: 1px solid #e3e0e0;\n line-height: 40px;\n width: auto;\n }\n\n .bs-avatar {\n box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.24);\n border-radius: 100px;\n }\n\n .name {\n color: #021027;\n\n font-family: 'Inter';\n font-size: 18px;\n font-weight: 600;\n }\n\n .sales span {\n color: #021027;\n font-family: 'Inter';\n font-size: 16px;\n\n font-weight: 300;\n }\n\n .blur-silver {\n border-radius: 200px;\n background: rgba(197, 197, 197, 0.5);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .blur-gold {\n border-radius: 200px;\n background: rgba(255, 213, 155, 0.4);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .blur-bronze {\n border-radius: 200px;\n background: rgba(142, 86, 25, 0.2);\n\n filter: blur(20px);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0px;\n top: -12px;\n }\n\n .bd-silver {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #c5c5c5;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(197, 197, 197, 0.6);\n }\n\n .bd-gold {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #e9c990;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(210, 171, 104, 0.6);\n }\n\n .bd-bronze {\n width: 75px;\n height: 75px;\n border-radius: 200px;\n border: 2px solid #8e5619;\n padding: 5px;\n box-shadow: 0px 0px 8.1px 0px rgba(142, 86, 25, 0.6);\n }\n\n .bs-silver,\n .bs-gold,\n .bs-bronze {\n box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.24);\n border-radius: 50px;\n width: 62px;\n height: 62px;\n }\n\n .second-place-text {\n left: 6.5%;\n bottom: 10%;\n }\n\n .first-place-text {\n left: 37%;\n bottom: 22%;\n }\n\n .third-place-text {\n right: 8%;\n bottom: 3%;\n }\n\n .first-place-text p,\n .second-place-text p,\n .third-place-text p {\n color: #021027;\n font-family: 'Inter';\n font-size: 14px;\n font-weight: 300;\n }\n\n .first-place-text img,\n .second-place-text img,\n .third-place-text img {\n width: 24px;\n height: 24px;\n }\n\n .avatar-second {\n left: 8%;\n top: 10%;\n }\n\n .avatar-first {\n left: 38%;\n top: -7%;\n }\n\n .avatar-third {\n right: 8%;\n top: 15%;\n }\n\n .avatar-first h2,\n .avatar-second h2,\n .avatar-third h2 {\n color: #021027;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 16px;\n font-weight: 600;\n width: 100px;\n }\n .avatar-first p,\n .avatar-second p,\n .avatar-third p {\n color: #021027;\n\n text-align: center;\n font-family: 'Inter';\n font-size: 13px;\n font-weight: 300;\n }\n .loading {\n width: 62px;\n height: 62px;\n border-radius: 50px;\n }\n .loading-sales {\n height: 42px;\n border-radius: 4px;\n width: 100%;\n margin-bottom: 0px;\n }\n\n .text-loading {\n height: 40px;\n width: 99px;\n border-radius: 8px;\n }\n .loading-height {\n height: 100px;\n border-radius: 20px;\n\n width: 100%;\n }\n .skeleton {\n background-color: var(--closedGray) !important;\n overflow: hidden;\n position: relative;\n border: none !important;\n color: transparent !important;\n pointer-events: none;\n //display: inline-block;\n box-shadow: none;\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n var(--closedGray) 0%,\n var(--skeletonTransparent) 0%,\n var(--skeletonTransparent) 10%,\n var(--skeletonQuarter) 20%,\n var(--skeletonMiddle) 40%,\n var(--skeletonFull) 50%,\n var(--skeletonQuarter) 80%,\n var(--skeletonTransparent) 90%,\n var(--skeletonTransparent) 100%\n ) !important;\n animation: glow 1.3s linear infinite;\n }\n\n @keyframes glow {\n 100% {\n transform: translateX(100%);\n }\n }\n }\n\n @media screen and (max-width: 575px) {\n max-width: 400px;\n }\n\n @media screen and (min-width: 576px) {\n .avatar-second {\n left: 10%;\n top: 15%;\n }\n .second-place-text {\n left: 9%;\n bottom: 11%;\n }\n .avatar-first {\n left: 40%;\n top: -3%;\n }\n .first-place-text {\n left: 40%;\n bottom: 27%;\n }\n .avatar-third {\n right: 10%;\n top: 21%;\n }\n .third-place-text {\n right: 10%;\n bottom: 6%;\n }\n }\n\n @media screen and (min-width: 768px) {\n .avatar-second {\n left: 12.5%;\n top: 23%;\n }\n .second-place-text {\n left: 11.5%;\n bottom: 14%;\n }\n .avatar-first {\n left: 43%;\n top: 5%;\n }\n .first-place-text {\n left: 42.5%;\n bottom: 30%;\n }\n .avatar-third {\n right: 12.5%;\n top: 30%;\n }\n .third-place-text {\n right: 12.5%;\n bottom: 8%;\n }\n }\n\n @media screen and (min-width: 992px) {\n h3 {\n font-size: 18px;\n font-weight: 500;\n }\n .zoom {\n zoom: 0.7;\n }\n .height {\n height: 500px;\n padding-right: 10px;\n }\n\n .name {\n font-size: 20px;\n }\n\n .sales span {\n font-size: 20px;\n }\n .blur-silver {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .blur-gold {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .blur-bronze {\n width: 160px;\n height: 160px;\n\n left: -20px;\n top: -20px;\n }\n\n .bd-silver {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n\n .bd-gold {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n\n .bd-bronze {\n width: 120px;\n height: 120px;\n padding: 8px;\n }\n .bs-silver,\n .bs-gold,\n .bs-bronze {\n width: 100px;\n height: 100px;\n }\n\n .first-place-text img,\n .second-place-text img,\n .third-place-text img {\n width: 40px;\n height: 40px;\n }\n .avatar-first h2,\n .avatar-second h2,\n .avatar-third h2 {\n font-size: 20px;\n width: 120px;\n }\n .avatar-first p,\n .avatar-second p,\n .avatar-third p {\n font-size: 16px;\n }\n\n .avatar-second {\n left: 23.5%;\n top: 13%;\n }\n\n .avatar-first {\n left: 45%;\n top: 0%;\n }\n\n .avatar-third {\n right: 23.5%;\n top: 18%;\n }\n .first-place-text {\n left: 42%;\n bottom: 22%;\n }\n\n .third-place-text {\n right: 21.5%;\n bottom: 7%;\n }\n .second-place-text {\n left: 20.5%;\n bottom: 11%;\n }\n .position {\n font-size: 20px;\n width: 60px;\n }\n .loading {\n width: 100px;\n height: 100px;\n }\n\n .loading-sales {\n height: 21px;\n }\n .text-loading {\n width: 124px;\n height: 50px;\n }\n }\n @media screen and (min-width: 1200px) {\n .zoom {\n zoom: 0.9;\n }\n .bd-silver,\n .bd-gold,\n .bd-bronze {\n padding: 9px;\n }\n }\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 1;\n }\n .bd-silver,\n .bd-gold,\n .bd-bronze {\n padding: 8px;\n }\n }\n`;\n\nexport const AvatarFirst = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(233, 201, 144, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarSecond = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(197, 197, 197, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarThird = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n width: 62px;\n height: 62px;\n border-radius: 50px;\n -webkit-box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n -moz-box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n box-shadow: inset 0px 0px 0px 4px rgba(142, 86, 25, 0.5);\n @media screen and (min-width: 992px) {\n width: 100px;\n height: 100px;\n }\n`;\n\nexport const AvatarOthers = styled.div`\n background-image: url(${(props) => props.avatar});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n width: 48px;\n height: 48px;\n border-radius: 50px;\n\n box-shadow: inset 0px 0px 0px 2.5px rgba(228, 228, 228, 0.5);\n\n @media screen and (min-width: 576px) {\n width: 46px;\n height: 55px;\n }\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport {\n AvatarFirst,\n AvatarOthers,\n AvatarSecond,\n AvatarThird,\n Container,\n} from './styles';\n\nimport avatar from '~/assets/defaults/avatar-test.png';\nimport podiumDesk from '~/assets/defaults/banner-leaderboard.svg';\nimport podiumMob from '~/assets/defaults/banner-leaderboard-mobile-new.svg';\nimport gold from '~/assets/defaults/gold1.svg';\nimport silver from '~/assets/defaults/silver2.svg';\nimport bronze from '~/assets/defaults/bronze3.svg';\n\nconst AllTime: React.FC = () => {\n const [loading, setLoading] = useState(true);\n const positions = [\n {\n name: 'Name Test1',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test2',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test3',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test4',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test5',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test6',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n {\n name: 'Name Test7',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test8',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'down',\n },\n {\n name: 'Name Test9',\n avatar,\n type: 'Founder',\n sales: '7',\n referrals: '21',\n position: 'up',\n },\n ];\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 2000);\n }, []);\n\n return (\n \n
\n
\n
\n \"Podium\"\n \n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[1].name}\n

\n

{positions[1].type}

\n \n )}\n
\n
\n \"Silver\"\n
\n

SECOND PLACE

\n

\n \n 2nd PLACE\n

\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[0].name}\n

\n

{positions[0].type}

\n \n )}\n
\n
\n \"Gold\"\n\n
\n

FIRST PLACE

\n

\n \n 1st PLACE\n

\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n\n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n \n )}\n
\n
\n\n {loading ? (\n
\n ) : (\n <>\n

\n {positions[2].name}\n

\n

{positions[2].type}

\n \n )}\n
\n
\n \"Bronze\"\n\n
\n

THIRD PLACE

\n

\n \n 3rd PLACE\n

\n

\n \n 10 Sales\n \n \n 28 Referrals\n \n

\n
\n
\n
\n
\n
\n {loading ? (\n <>\n
\n
\n \n ) : (\n
\n {positions.map((pos, index) => (\n <>\n {index > 2 && (\n \n
\n \n #{index + 1}\n \n
\n
\n \n
\n {pos.name}\n
\n
\n
\n
\n
\n \n {pos.sales}\n \n Sales\n
\n
\n \n {pos.referrals}\n \n Referrals\n
\n
\n \n \n \n \n
\n
\n
\n )}\n \n ))}\n
\n )}\n
\n
\n \n );\n};\n\nexport default AllTime;\n","import React, { useEffect, useState } from 'react';\n\nimport { Link, useLocation } from 'react-router-dom';\nimport { Container } from './styles';\n\nimport Today from './Today';\nimport AllTime from './AllTime';\n\nconst Leaderboard: React.FC = () => {\n const location = useLocation();\n const [btnToday, setBtnToday] = useState(true);\n\n useEffect(() => {\n if (location.pathname === '/leaderboard/today') {\n setBtnToday(true);\n } else {\n setBtnToday(false);\n }\n }, [location.pathname]);\n\n return (\n \n
\n
\n
\n

Leaderboard

\n
\n setBtnToday(true)}\n >\n Today\n \n
\n
\n
\n setBtnToday(false)}\n >\n All Time\n \n
\n
\n
\n
\n
\n {btnToday ? : }\n
\n );\n};\n\nexport default Leaderboard;\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\n\nimport Route from './Route';\n\nimport CheckLogin from '~/pages/CheckLogin';\nimport SignIn from '~/pages/SignIn';\nimport AutoLogin from '~/pages/AutoLogin';\nimport Passcode from '~/pages/Passcode';\nimport ForgotPassword from '~/pages/ForgotPassword';\nimport Home from '~/pages/Home';\nimport CommissionHistory from '~/pages/CommissionHistory';\nimport Trainings from '~/pages/Trainings/List';\nimport Training from '~/pages/Training';\nimport MaterialPromocional from '~/pages/MaterialPromocional';\nimport Referrals from '~/pages/Referrals';\nimport TeamView from '~/pages/Referrals/TeamView';\nimport Wallet from '~/pages/Wallet';\nimport Profile from '~/pages/Profile';\nimport Waitlist from '~/pages/Waitlist';\nimport LiveVonage from '~/pages/Live/Vonage';\nimport Lesson from '~/pages/Lesson';\nimport Notifications from '~/pages/Notifications';\nimport PromptEasePro from '~/pages/PromptEasePro';\nimport PostEase from '~/pages/PostEase';\nimport Leaderboard from '~/pages/Leaderboard/indes';\n\nconst En: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n );\n};\n\nexport default En;\n","import styled from 'styled-components';\nimport bannerEase from '~/assets/banners/banner-prompt-ease.png';\n\nexport const Container = styled.div`\n min-height: 100vh;\n background: url(${bannerEase});\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n h1 {\n font-family: 'Zen Dots';\n font-size: 32px;\n font-weight: 700;\n background: linear-gradient(\n 270deg,\n #4786ee 2.07%,\n #d8a681 29.58%,\n #9d66ff 57.19%,\n #53c0b4 76.97%,\n #d398cf 96.19%\n );\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-text-stroke: 0.1px #fff;\n }\n\n h2 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 40px;\n font-weight: 300;\n }\n\n h3 {\n color: #61718b;\n font-family: 'Inter';\n font-size: 22px;\n font-weight: 300;\n span {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 34px;\n height: 34px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 25px;\n border: 2px solid #fff;\n }\n }\n\n .bg-number-category {\n background: #abdfff;\n }\n\n .bg-number-target {\n background: #a8fff3;\n }\n\n .lottie > div {\n margin: 0px !important;\n }\n\n .btn-clear {\n color: #ff1a50;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .btn-result {\n color: #116bff;\n\n text-align: center;\n font-family: 'Poppins';\n font-size: 20px;\n font-weight: 500;\n border-radius: 40px;\n border: 1px solid #fff;\n backdrop-filter: blur(40px);\n background: rgba(255, 255, 255, 0.15);\n width: 216px;\n height: 61px;\n }\n\n .bd-bottom {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .bg-all {\n border-radius: 40px;\n border: 2px solid #fff;\n background: rgba(255, 255, 255, 0.15);\n backdrop-filter: blur(40px);\n }\n\n .bg-left-side {\n border-radius: 24px !important;\n border: 2px solid #fff;\n background: #abdfff;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .bg-right-side {\n border-radius: 24px !important;\n border: 2px solid #fff;\n background: #a8fff3;\n height: 107px;\n\n input {\n height: 100%;\n padding: 20px 30px;\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n input::placeholder {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n }\n\n .options {\n top: 120px !important;\n border-radius: 24px !important;\n border: 2px solid #abdfff !important;\n padding: 30px 0px;\n background-color: rgba(255, 255, 255, 0.4) !important;\n max-height: 450px !important;\n box-shadow: 0px 9px 40px 0px rgba(0, 0, 0, 0.08);\n backdrop-filter: blur(40px);\n button {\n color: #2f3745 !important;\n border-bottom: none !important;\n padding: 10px 20px;\n font-family: 'Poppins';\n font-size: 22px !important;\n font-weight: 400;\n text-align: start;\n :hover {\n background-color: rgba(255, 255, 255, 0.4) !important;\n\n backdrop-filter: blur(40px);\n }\n }\n }\n\n .result {\n color: #2f3745;\n font-family: 'Inter';\n font-size: 30px;\n font-weight: 300;\n }\n\n .prompt-mg-negative {\n margin-top: -8rem !important;\n padding-bottom: 3rem !important;\n }\n\n .pad-prompt {\n padding-bottom: 1.5rem !important;\n border-radius: 30px;\n border: 2px solid #fff;\n\n background: rgba(255, 255, 255, 0.4);\n\n backdrop-filter: blur(40px);\n }\n\n div.tableData div {\n background-color: transparent;\n }\n\n div.rdt_TableCol div {\n color: #2f3745;\n font-family: 'Poppins';\n font-size: 24px;\n font-weight: 500;\n }\n\n div.rdt_TableRow div {\n color: #4e5869;\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 400;\n }\n\n .rdt_TableCol_Sortable span {\n font-size: 13px !important;\n }\n\n div.tableData .rdt_TableRow:hover div:not(.card-success) {\n background-color: transparent !important;\n }\n\n div.tableData .rdt_TableRow:hover {\n background-color: rgba(255, 255, 255, 0.4) !important;\n backdrop-filter: blur(40px) !important;\n cursor: pointer;\n }\n\n .menu-table .search input {\n background-color: transparent !important;\n }\n\n .btn-page {\n background: rgba(255, 255, 255, 0.8) !important;\n backdrop-filter: blur(40px);\n border: 1px solid #ddd;\n color: #393f48 !important;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 500;\n }\n\n .btn-first,\n .btn-last {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .showing {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .search input {\n color: #7f8898 !important;\n\n font-family: 'Inter';\n font-size: 20px;\n font-weight: 400;\n }\n\n .search > div {\n background: transparent !important;\n border-radius: 0 !important;\n }\n\n .menu-table .search {\n border-radius: 0 !important;\n }\n\n .search.border-gray {\n border: none !important;\n border-bottom: solid 2px #fff !important;\n padding: 0 10px;\n }\n\n .rdt_TableHeadRow > div:nth-child(1),\n .rdt_TableRow > div:nth-child(1) {\n min-width: 900px;\n }\n\n div.tableData {\n max-width: 100%;\n }\n\n .copy {\n background: transparent;\n border: none;\n font-weight: 400;\n font-size: 20px;\n line-height: 26px;\n color: #4e5869;\n width: 100%;\n margin: 0 !important;\n height: 100%;\n img {\n display: none;\n }\n }\n\n .card-success {\n background: #116bff !important;\n bottom: 33px;\n right: 40%;\n }\n\n .sphere-sm {\n position: absolute;\n top: 13rem;\n left: -3rem;\n width: 93px;\n height: 93px;\n }\n\n .sphere-lg {\n position: fixed;\n bottom: 0;\n right: 0;\n width: 383px;\n height: 243px;\n }\n\n .label-select {\n color: #4e5869;\n font-family: 'Poppins';\n font-size: 16px;\n font-weight: 400;\n }\n\n .select-quantity {\n border: none;\n background: transparent;\n cursor: pointer;\n }\n\n .select-quantity option {\n appearance: none;\n cursor: pointer;\n text-align: center;\n background-color: #e5eaf8;\n }\n\n @media screen and (max-width: 991px) {\n h2 {\n font-size: 23px;\n text-align: center;\n }\n\n h3 {\n font-size: 21px;\n }\n\n div.rdt_TableCol div {\n font-size: 20px;\n }\n\n .copy {\n font-size: 18px;\n }\n\n .prompt-mg-negative {\n padding-bottom: 1rem !important;\n }\n\n .result {\n font-size: 24px;\n }\n\n .label-select,\n .select-quantity {\n margin-bottom: 1rem !important;\n }\n\n .options {\n top: 80px !important;\n }\n\n .options button {\n font-size: 20px;\n }\n\n .sphere-sm {\n top: -12px;\n left: 0;\n width: 64px;\n height: 64px;\n }\n\n .sphere-lg {\n width: 220px;\n height: 330px;\n }\n\n .bd-bottom {\n border-bottom: none;\n }\n\n .bd-bottom-title {\n border-bottom: 2px solid rgba(255, 255, 255, 0.85);\n }\n\n .btn-clear {\n font-size: 18px;\n }\n\n .btn-result {\n font-size: 18px;\n }\n\n .bg-left-side {\n height: auto;\n }\n\n .bg-right-side {\n height: auto;\n }\n\n .bg-left-side input {\n font-size: 22px;\n }\n\n .bg-right-side input {\n font-size: 22px;\n }\n\n .rdt_TableHeadRow > div:nth-child(1),\n .rdt_TableRow > div:nth-child(1) {\n min-width: 500px;\n }\n\n div.tableData div::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #fff !important;\n }\n\n div.tableData div::-webkit-scrollbar {\n background-color: transparent !important;\n }\n\n .shadow-left {\n position: absolute;\n top: 2px;\n left: 2px;\n height: 100%;\n width: 50px;\n border-radius: 30px 0px 0px 30px;\n background: linear-gradient(\n 90deg,\n #dbdff2 10%,\n rgba(236, 233, 242, 0) 100%\n );\n }\n\n .shadow-right {\n position: absolute;\n top: 2px;\n right: 2px;\n height: 100%;\n width: 50px;\n border-radius: 0px 30px 30px 0px;\n background: linear-gradient(\n 270deg,\n #dbdff2 10%,\n rgba(236, 233, 242, 0) 100%\n );\n }\n }\n\n @media screen and (min-width: 992px) {\n .zoom {\n zoom: 0.7;\n }\n .container {\n max-width: 1380px !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .container {\n max-width: 1600px !important;\n }\n }\n\n @media screen and (min-width: 1300px) {\n .container {\n max-width: 1720px !important;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.75;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.85;\n }\n }\n\n @media screen and (min-width: 1800px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n","import React, { useCallback, useState, useEffect } from 'react';\nimport { Form } from '@unform/web';\nimport Lottie from 'react-lottie';\nimport Swal from 'sweetalert2';\nimport { useHistory } from 'react-router-dom';\nimport { Container } from './styles';\nimport { apiRequest } from '~/services/aiConnectorApi';\nimport bubble from '~/assets/animations/orb.json';\nimport Select, { IOption } from '~/components/Select';\nimport Table from '~/components/Table';\nimport sphereLg from '~/assets/defaults/sphere-large.png';\nimport sphereLgMob from '~/assets/defaults/sphere-large-mob.png';\nimport sphereSm from '~/assets/defaults/sphere-small.png';\nimport Copy from '~/components/Copy';\nimport api from '~/services/api';\n\ninterface IOptionPrompt {\n prompt: never | string;\n category: never | string;\n target: never | string;\n}\n\nconst PromptEase: React.FC = () => {\n const history = useHistory();\n const [filterData, setFilterData] = useState<{\n categories?: [];\n targets?: [];\n }>();\n const [category, setCategory] = useState('');\n const [target, setTarget] = useState('');\n const [selectedTargets, setSelectedTargets] = useState<{ data?: [] }>();\n const [selectedCategory] = useState<{ data?: [] }>();\n const [showResult, setShowResult] = useState(false);\n const [categoryData, setCategoryData] = useState([]);\n const [targetData, setTargetData] = useState([]);\n const [initialRun, setInitial] = useState(true);\n const [tableData, setTableData] = useState([]);\n const [tmpTableData, tmpSetTableData] = useState([]);\n const [searchResult, setSearchResult] = useState<{ data?: [] }>();\n const [showPage, setShowPage] = useState(false);\n\n useEffect(() => {\n if (initialRun === true) {\n apiRequest('/filter_data', 'GET', {})\n .then((response) => {\n setFilterData(response);\n })\n .catch(() => {\n // console.error('API call error:', error);\n });\n setInitial(false);\n }\n }, [initialRun]);\n\n const clearData = () => {\n setShowResult(false);\n setCategory('Select Category');\n setTarget('Select Target');\n categoryLists();\n targetLists();\n };\n\n useEffect(() => {\n api\n .get(`affiliates-products/products/${process.env.REACT_APP_PROMPT_EASE}`)\n .then(() => {\n setShowPage(true);\n })\n .catch(() => {\n history.push(`${process.env.PUBLIC_URL}/profile/my-purchases`);\n });\n }, [history]);\n\n useEffect(() => {\n const tabelDataArray = [] as IOptionPrompt[];\n if (searchResult) {\n searchResult?.data?.forEach((item) =>\n tabelDataArray.push({\n prompt: item[0],\n category: item[1],\n target: item[2],\n })\n );\n setTableData(tabelDataArray);\n tmpSetTableData(tabelDataArray);\n setShowResult(true);\n }\n }, [searchResult]);\n\n const categoryLists = useCallback(() => {\n const categoriesArray = [];\n categoriesArray.push({ id: '', value: 'Select Category', selected: false });\n\n filterData?.categories?.forEach((item) =>\n categoriesArray.push({ id: item, value: item, selected: false })\n );\n setCategoryData(categoriesArray);\n }, [filterData]);\n\n const targetLists = useCallback(() => {\n const targetsArray = [];\n targetsArray.push({ id: '', value: 'Select Target', selected: true });\n filterData?.targets?.forEach((item) =>\n targetsArray.push({ id: item, value: item, selected: false })\n );\n setTargetData(targetsArray);\n }, [filterData]);\n\n const categoryChange = (e: React.FormEvent) => {\n if (Object.values(e)[0] !== '') {\n setCategory(Object.values(e)[0]);\n setTarget('Select Target');\n apiRequest(`/targets?category=${Object.values(e)[0]}`, 'GET', {})\n .then((response) => {\n setSelectedTargets(response);\n })\n .catch(() => {\n // console.error('API call error:', error);\n });\n }\n };\n\n const targetChange = (e: React.FormEvent) => {\n if (Object.values(e)[0] !== '') {\n setTarget(Object.values(e)[0]);\n }\n };\n\n const changeCategoryByTarget = useCallback(() => {\n const categoryArray = [];\n categoryArray.push({ id: '', value: 'Select Category', selected: false });\n selectedCategory?.data?.forEach((item) =>\n categoryArray.push({ id: item, value: item, selected: false })\n );\n setCategoryData(categoryArray);\n }, [selectedCategory]);\n\n const changeTargetByCategory = useCallback(() => {\n const targetsArray = [];\n targetsArray.push({ id: '', value: 'Select Target', selected: false });\n selectedTargets?.data?.forEach((item) =>\n targetsArray.push({ id: item, value: item, selected: false })\n );\n setTargetData(targetsArray);\n }, [selectedTargets]);\n\n useEffect(() => {\n categoryLists();\n }, [categoryLists, filterData]);\n\n useEffect(() => {\n targetLists();\n }, [filterData, targetLists]);\n\n useEffect(() => {\n changeCategoryByTarget();\n }, [changeCategoryByTarget, selectedCategory]);\n\n useEffect(() => {\n changeTargetByCategory();\n }, [changeTargetByCategory, selectedTargets]);\n\n const searchData = () => {\n if (\n (category === '' && target === '') ||\n (category === 'Select Category' && target === 'Select Target')\n ) {\n Swal.fire(\n 'Opss...',\n 'Please select category or target to filter data',\n 'error'\n );\n } else {\n apiRequest(`/filter?target=${target}&category=${category}`, 'GET', {})\n .then((response) => {\n setSearchResult(response);\n })\n .catch(() => {\n // console.error('API call error:', error);\n });\n }\n };\n\n const column = [\n {\n name: 'Prompt',\n selector: 'prompt',\n sortable: true,\n cell: (row: IOptionPrompt) => {\n return (\n \n );\n },\n },\n {\n name: 'Category',\n selector: 'category',\n sortable: true,\n },\n {\n name: 'Target',\n selector: 'target',\n sortable: true,\n },\n ];\n const handleSearch = useCallback(\n (value) => {\n if (value) {\n const filteredData = tableData.filter(\n (item) =>\n item?.prompt?.toLowerCase().includes(value?.toLowerCase()) ||\n item?.category?.toLowerCase().includes(value?.toLowerCase()) ||\n item?.target?.toLowerCase().includes(value?.toLowerCase())\n );\n setTableData(filteredData);\n } else {\n setTableData(tmpTableData);\n }\n },\n [tableData, tmpTableData]\n );\n\n const handleChangeQuantity = useCallback(() => {\n // console.log(qtd);\n }, []);\n\n const handleSubmit = useCallback(() => {\n // console.log(qtd);\n }, []);\n\n return (\n \n {showPage && (\n <>\n \n \"Sphere\"\n
\n
\n
\n
\n \n

PromptEASE

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

\n What prompt are you looking for?\n

\n
\n \n Clear Search\n \n \n Get Result\n \n
\n
\n
\n
\n \"Sphere\"\n
\n
\n
\n
\n
\n

\n 1\n Search by category or niche?\n

\n \n
\n
\n

\n 2\n What do you want to create?\n

\n\n \n
\n
\n\n {showResult && (\n
\n
\n

\n Result\n

\n
\n \n
\n
\n
\n
\n
\n )}\n
\n
\n
\n \n
\n
\n
\n \n )}\n \n );\n};\n\nexport default PromptEase;\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\n\nimport Route from './Route';\n\nimport CheckLogin from '~/pages/CheckLogin';\nimport SignIn from '~/pages/SignIn';\nimport Passcode from '~/pages/Passcode';\nimport ForgotPassword from '~/pages/ForgotPassword';\nimport Home from '~/pages/Home';\nimport CommissionHistory from '~/pages/CommissionHistory';\nimport Trainings from '~/pages/Trainings/List';\nimport Training from '~/pages/Training';\nimport MaterialPromocional from '~/pages/MaterialPromocional';\nimport Referrals from '~/pages/Referrals';\nimport TeamView from '~/pages/Referrals/TeamView';\nimport Wallet from '~/pages/Wallet';\nimport Profile from '~/pages/Profile';\nimport Waitlist from '~/pages/Waitlist';\nimport LiveVonage from '~/pages/Live/Vonage';\nimport Lesson from '~/pages/Lesson';\nimport Notifications from '~/pages/Notifications';\nimport AutoLogin from '~/pages/AutoLogin';\nimport PromptEase from '~/pages/PromptEase';\nimport PromptEasePro from '~/pages/PromptEasePro';\nimport PostEase from '~/pages/PostEase';\nimport Leaderboard from '~/pages/Leaderboard/indes';\n\nconst Es: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default Es;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 100%;\n\n textarea {\n border-radius: 20px;\n }\n\n h1,\n a {\n color: #021027;\n }\n\n h3 {\n color: #021027;\n }\n\n p {\n color: #8c8c8c;\n font-weight: 400;\n }\n\n textarea {\n resize: none;\n ::-webkit-scrollbar-thumb {\n background: #303030;\n }\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n }\n\n .btn-traffic {\n border-radius: 15px;\n background: #116bff;\n }\n\n .bg-text {\n background-color: #202020;\n color: #606060;\n }\n\n .old-price {\n color: #ff1a50;\n }\n\n .vjs-poster {\n background-size: cover;\n }\n\n .video-js .vjs-big-play-button {\n background-color: #116bff !important;\n border: none !important;\n border-radius: 50% !important;\n font-size: 5em !important;\n line-height: 1.5em !important;\n height: 1.5em !important;\n width: 1.5em !important;\n margin-left: 0px !important;\n transition: 0.3s;\n transform: translate(-50%, -50%);\n margin-top: 0px;\n }\n\n .video-js:hover .vjs-big-play-button,\n .video-js .vjs-big-play-button:focus {\n -webkit-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n -moz-box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n box-shadow: 0px 0px 7px 0px rgba(255, 255, 255, 1);\n }\n\n .vjs-control-bar {\n border-radius: 0 0 20px 20px !important;\n }\n\n .player {\n border-radius: 20px;\n overflow: hidden;\n position: relative;\n video {\n border-radius: 20px !important;\n cursor: pointer;\n }\n }\n\n .bg-white {\n background-color: #fff;\n border-radius: 30px;\n }\n\n .fw-600 {\n font-weight: 600;\n }\n\n .opacity-80 {\n opacity: 0.8;\n transition: all 0.2s ease-in-out;\n }\n\n .others .img-thumb {\n border-radius: 20px;\n }\n\n .others .title {\n color: #333;\n\n font-family: 'Lato';\n font-size: 18px;\n font-weight: 600;\n }\n\n .others .autor {\n color: #828282;\n\n font-family: 'Lato';\n font-size: 13px;\n font-weight: 400;\n }\n\n .duration {\n position: absolute;\n top: 15px;\n right: 15px;\n color: #fff;\n font-family: 'Source Sans Pro';\n font-size: 14px;\n font-weight: 600;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 20px;\n padding: 2px 8px;\n }\n\n .avatar {\n width: 23px;\n height: 23px;\n border-radius: 20px;\n }\n\n .max-h {\n height: auto;\n }\n\n @media screen and (min-width: 992px) {\n .container-lg-fluid {\n max-width: 1580px !important;\n }\n\n .h-others {\n height: 55vw;\n max-height: 820px;\n overflow: auto;\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #021027;\n }\n }\n\n .max-h {\n max-height: 100px;\n overflow: auto;\n padding-right: 10px;\n ::-webkit-scrollbar-thumb {\n background: #303030;\n }\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n }\n\n .notes > div {\n padding-top: 3rem !important;\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n }\n\n @media screen and (min-width: 1200px) {\n .notes > div {\n margin-right: 3rem !important;\n }\n\n .zoom {\n zoom: 0.7;\n }\n\n .h-others {\n height: 51vw;\n max-height: 820px;\n overflow: auto;\n }\n\n .max-h {\n max-height: 80px;\n overflow: auto;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .zoom {\n zoom: 0.8;\n }\n .h-others {\n height: 50vw;\n max-height: 820px;\n overflow: auto;\n }\n\n .max-h {\n max-height: 150px;\n overflow: auto;\n }\n }\n\n @media screen and (min-width: 1600px) {\n .zoom {\n zoom: 0.9;\n }\n\n .h-others {\n height: 48vw;\n max-height: 820px;\n overflow: auto;\n }\n }\n\n @media screen and (min-width: 1700px) {\n .zoom {\n zoom: 1;\n }\n }\n`;\n\nexport const Courses = styled.div`\n .thumb {\n border-radius: 20px;\n height: 230px;\n }\n\n a {\n height: 100%;\n border-radius: 20px;\n\n .short-title {\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 0px 0px 20px 20px;\n\n p {\n color: #fff;\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Link, useParams } from 'react-router-dom';\n\nimport { FiArrowLeft } from 'react-icons/fi';\nimport { useLanguage } from '~/hooks/Language';\nimport api from '~/services/api';\n\nimport { Container } from './styles';\nimport Player from '~/components/Player';\n\nimport thumb1 from '~/assets/defaults/affiliates-crowfunding.png';\nimport thumb2 from '~/assets/defaults/affiliates-promotional-material.png';\nimport thumb3 from '~/assets/defaults/affiliates-training.png';\nimport avatar from '~/assets/defaults/avatar-test.png';\n\ninterface IParams {\n slug: string;\n}\n\ninterface ITraffic {\n id: string;\n title: string;\n description: string;\n thumbnail: string;\n video: string;\n slug: string;\n duration: string;\n}\n\nconst Traffic: React.FC = () => {\n const { language } = useLanguage();\n const params = useParams();\n const [traffic, setTraffic] = useState([]);\n const [loading, setLoading] = useState(false);\n const [indexSel, setIndexSel] = useState(-1);\n\n useEffect(() => {\n setTraffic([\n {\n id: '01',\n title: 'How to get traffic to your links',\n description:\n 'In this course I will teach you how to make your illustration look really good. We’re gonna study a lot os cases here, settings your work panel,, making some aewsome actions and presets for fututre. Hope you’ll get some really useful stuff out of this course. Good Luck to all!',\n thumbnail: thumb1,\n video: 'https://cdn.autoaffiliate.ai/videos/AA-2.0-Landing-Page-v1.mp4',\n slug: 'how-to-get-traffic-to-your-links',\n duration: '10:00',\n },\n {\n id: '02',\n title: 'How to get traffic to your links2',\n description:\n 'In this course I will teach you how to make your illustration look really good. We’re gonna study a lot os cases here, settings your work panel,, making some aewsome actions and presets for fututre. Hope you’ll get some really useful stuff out of this course. Good Luck to all!',\n thumbnail: thumb2,\n video: 'https://cdn.autoaffiliate.ai/videos/AA-2.0-Landing-Page-v1.mp4',\n slug: 'how-to-get-traffic-to-your-links-2',\n duration: '10:20',\n },\n {\n id: '03',\n title: 'How to get traffic to your links3',\n description:\n 'In this course I will teach you how to make your illustration look really good. We’re gonna study a lot os cases here, settings your work panel,, making some aewsome actions and presets for fututre. Hope you’ll get some really useful stuff out of this course. Good Luck to all!',\n thumbnail: thumb3,\n video: 'https://cdn.autoaffiliate.ai/videos/AA-2.0-Landing-Page-v1.mp4',\n slug: 'how-to-get-traffic-to-your-links-3',\n duration: '10:30',\n },\n ]);\n }, []);\n\n return (\n <>\n {Object.keys(traffic).length > 0 && (\n \n
\n
\n {traffic.map((vidSelected) => (\n <>\n {params.slug === vidSelected.slug && (\n <>\n
\n
\n {/* \n \n */}\n

{vidSelected.title}

\n
\n
\n \n )}\n \n ))}\n
\n
\n {traffic.map((vidSelected) => (\n <>\n {params.slug === vidSelected.slug && (\n <>\n
\n \n \n GET TRAFFIC NOW\n \n
\n

What you’ll Learn

\n

\n {vidSelected.description}\n

\n
\n
\n \n )}\n \n ))}\n
\n
\n {traffic.map((video, index) => (\n
\n setIndexSel(index)}\n onMouseLeave={() => setIndexSel(-1)}\n to={video.slug}\n className={`${\n index === indexSel && 'opacity-80'\n } h-100 d-block position-relative`}\n >\n \n {video.duration}\n {video.title}\n
\n \n \n by AutoAffiliate\n \n \n
\n ))}\n
\n
\n
\n
\n
\n
\n {loading && (\n
\n
\n Loading...\n
\n
\n )}\n
\n )}\n \n );\n};\n\nexport default Traffic;\n","import React from 'react';\nimport { Switch, Route as RouteComponent } from 'react-router-dom';\n\nimport Route from './Route';\n\nimport Waitlist from '~/pages/Waitlist';\nimport CheckLogin from '~/pages/CheckLogin';\nimport SignIn from '~/pages/SignIn';\nimport Passcode from '~/pages/Passcode';\nimport ForgotPassword from '~/pages/ForgotPassword';\nimport Home from '~/pages/Home';\nimport CommissionHistory from '~/pages/CommissionHistory';\nimport Trainings from '~/pages/Trainings/List';\nimport Training from '~/pages/Training';\nimport MaterialPromocional from '~/pages/MaterialPromocional';\nimport Referrals from '~/pages/Referrals';\nimport TeamView from '~/pages/Referrals/TeamView';\nimport Wallet from '~/pages/Wallet';\nimport Profile from '~/pages/Profile';\nimport LiveVonage from '~/pages/Live/Vonage';\nimport Lesson from '~/pages/Lesson';\nimport Notifications from '~/pages/Notifications';\nimport AutoLogin from '~/pages/AutoLogin';\nimport PromptEase from '~/pages/PromptEase';\nimport PromptEasePro from '~/pages/PromptEasePro';\nimport PostEase from '~/pages/PostEase';\nimport Leaderboard from '~/pages/Leaderboard/indes';\nimport Traffic from '~/pages/Traffic';\n\nconst routes: React.FC = () => {\n return (\n \n {/* (\n
\n

\n Sorry for the inconvenience but we're currently undergoing\n maintenance\n

\n
\n )}\n /> */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default routes;\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useEffect } from 'react';\nimport { Switch, Route, useLocation, useHistory } from 'react-router-dom';\n\nimport En from './En';\nimport Es from './Es';\nimport Default from './Default';\nimport { useAuth } from '~/hooks/Auth';\n\nconst routes: React.FC = () => {\n const location = useLocation();\n const history = useHistory();\n const { user } = useAuth();\n\n useEffect(() => {\n if (location.pathname.includes('auto-login') && !!user) {\n const path = location.search\n .replace('?', '')\n .replace('&', '')\n .split('page=')\n .join('/');\n if (path) {\n history.push(`${process.env.PUBLIC_URL}${path}`);\n }\n }\n }, [history, location, user]);\n\n return (\n \n \n \n \n \n );\n};\n\nexport default routes;\n","import { createGlobalStyle } from 'styled-components';\nimport { darken, lighten } from 'polished';\n\ninterface ITheme {\n ultraWhite: string;\n blizzard: string;\n graniteGray: string;\n technologicalGray: string;\n grayImmensity: string;\n deepGrey: string;\n greyMineral: string;\n mysteriousGrey: string;\n closedGray: string;\n asphaltGray: string;\n coal: string;\n midnight: string;\n error: string;\n warning: string;\n success: string;\n skeletonTransparent: string;\n skeletonQuarter: string;\n skeletonMiddle: string;\n skeletonFull: string;\n}\n\nexport default createGlobalStyle`\n @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Archivo:wght@100;200;300;400;500;600;700;800;900&family=Quicksand:wght@300;400;500;600;700&display=swap');\n\n :root {\n --ultraWhite: ${(props) => props.ultraWhite};\n --ultraWhiteDarken: ${(props) => darken(0.1, props.ultraWhite)};\n --ultraWhiteOpacity: ${(props) => props.ultraWhite}80;\n --blizzard: ${(props) => props.blizzard};\n --blizzardLighten: ${(props) => lighten(0.1, props.blizzard)};\n --blizzardOpacity: ${(props) => props.blizzard}80;\n --graniteGray: ${(props) => props.graniteGray};\n --graniteGrayLighten: ${(props) => lighten(0.1, props.graniteGray)};\n --technologicalGray: ${(props) => props.technologicalGray};\n --technologicalGrayLighten: ${(props) =>\n lighten(0.1, props.technologicalGray)};\n --technologicalGrayDarken: ${(props) =>\n darken(0.2, props.technologicalGray)};\n --technologicalGrayOpacity: ${(props) => props.blizzard}80;\n --grayImmensity: ${(props) => props.grayImmensity};\n --deepGrey: ${(props) => props.deepGrey};\n --deepGreyLighten: ${(props) => lighten(0.1, props.deepGrey)};\n --deepGreyDarken: ${(props) => darken(0.05, props.deepGrey)};\n --deepGreyOpacity: ${(props) => props.deepGrey}4d;\n --greyMineral: ${(props) => props.greyMineral};\n --greyMineralLighten: ${(props) => lighten(0.1, props.greyMineral)};\n --greyMineralDarken: ${(props) => darken(0.15, props.greyMineral)};\n --mysteriousGrey: ${(props) => props.mysteriousGrey};\n --mysteriousGreyLighten: ${(props) => lighten(0.1, props.mysteriousGrey)};\n --mysteriousGreyDarken: ${(props) => darken(0.1, props.mysteriousGrey)};\n --closedGray: ${(props) => props.closedGray};\n --closedGrayLighten: ${(props) => lighten(0.1, props.closedGray)};\n --closedGrayOpacity: ${(props) => props.closedGray}78;\n --asphaltGray: ${(props) => props.asphaltGray};\n --asphaltGrayLighten: ${(props) => lighten(0.1, props.asphaltGray)};\n --asphaltGrayDarken: ${(props) => darken(0.1, props.asphaltGray)};\n --asphaltGrayOpacity: ${(props) => props.asphaltGray}80;\n --coal: ${(props) => props.coal};\n --coalDarken: ${(props) => darken(0.03, props.coal)};\n --midnight: ${(props) => props.midnight};\n --midnightLighten: ${(props) => lighten(0.01, props.midnight)};\n --midnightDarken: ${(props) => darken(0.1, props.midnight)};\n --midnightOpacity: ${(props) => props.midnight}55;\n --error: ${(props) => props.error};\n --warning: ${(props) => props.warning};\n --success: ${(props) => props.success};\n --skeletonTransparent: ${(props) => props.skeletonTransparent};\n --skeletonQuarter: ${(props) => props.skeletonQuarter};\n --skeletonMiddle: ${(props) => props.skeletonMiddle};\n --skeletonFull: ${(props) => props.skeletonFull};\n }\n\n ::-webkit-scrollbar {\n background-color: #ffffff;\n width: 5px;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #f1f1f1;\n }\n\n *{\n margin: 0;\n padding: 0;\n outline: 0;\n box-sizing: border-box;\n }\n\n html{\n background: #F9F9F9;\n }\n\n body{\n -webkit-font-smoothing: antialiased;\n }\n\n body, input, button {\n font-family: 'Inter', sans-serif;\n font-size: 16px;\n color: #242526;\n }\n\n h1, h2, h3, h4, h5, h6, strong{\n font-weight: 500\n }\n\n button {\n cursor: pointer;\n }\n\n button:focus{\n outline: none;\n box-shadow: none !important;\n }\n//remove cc icon in video player\n .video-js .vjs-control.vjs-subs-caps-button {\n display: none!important;\n }\n\n .btn-grey {\n background-color: #606060 !important;\n border: none;\n border-radius: 15px;\n :hover {\n background-color: ${lighten(0.1, '#606060')}!important;\n transition-duration: 0.5s;\n }\n }\n\n .btn-dark{\n background-color: rgba(27, 21, 21, 1);\n border: none;\n border-radius: 15px;\n color: #e4e4e4 !important;\n }\n\n .table-btn{\n font-size: 0.8rem;\n }\n\n .position {\n top: 100px!important;\n left: -94px !important;\n }\n\n\n\n .font-weight-300{\n font-weight: 300!important;\n }\n\n .font-weight-400{\n font-weight: 400!important;\n }\n\n .font-weight-600{\n font-weight: 600!important;\n }\n\n .w-4{\n width: 4%!important;\n }\n\n .swal-cancel-subscription{\n background-color: #fff !important;\n\n .swal2-title {\n color: #202020 !important;\n }\n\n .swal2-cancel {\n margin-right: 10px;\n }\n\n .swal2-confirm {\n color: #202020 !important;\n }\n }\n\n // inicio estlilização datepicker\n\n .react-datepicker {\n border-radius: 15px !important;\n }\n\n .react-datepicker__month-container {\n background: #17171a !important;\n border-radius: 15px !important;\n }\n\n .react-datepicker__header {\n background: #17171a !important;\n border-radius: 15px 15px 0 0 !important;\n }\n\n .react-datepicker__current-month,\n .react-datepicker-time__header,\n .react-datepicker-year-header {\n color: #bdbdbd !important;\n }\n\n .react-datepicker__month {\n border-radius: 15px !important;\n }\n\n .react-datepicker__day-name,\n .react-datepicker__day,\n .react-datepicker__time-name {\n color: #bdbdbd !important;\n :hover {\n color: #17171a !important;\n }\n }\n\n .react-datepicker__month-select,\n .react-datepicker__year-select {\n color: #bdbdbd !important;\n background: #17171a !important;\n }\n\n // fim estilização datepicker\n\n .error-swal-box{\n padding-bottom: 76px;\n\n img{\n width: 230px;\n }\n\n p.h1{\n font-family: 'Poppins';\n color: #021027;\n font-weight: 700;\n margin-bottom: 20px;\n }\n\n p:not(.h1) {\n color: #514F4F;\n font-family: 'Poppins';\n font-weight: 400;\n font-size: 21px;\n padding: 0 65px;\n }\n\n .swal2-actions{\n width: 100%;\n\n button.swal2-confirm{\n width: 75%;\n height: 65px;\n font-size: 21px;\n background: #6D50D0 !important;\n border-radius: 20px !important;\n margin-bottom: 1rem;\n }\n }\n\n @media screen and (min-width: 992px) {\n width: 750px;\n padding: 0 40px 76px;\n }\n\n @media screen and (max-width: 991px) {\n p.h1{\n font-size: 2rem;\n }\n\n p:not(.h1) {\n font-size: 18px;\n padding: 0 35px;\n }\n }\n }\n\n .success-swal-box{\n padding-bottom: 76px;\n\n img{\n width: 120px;\n margin: 4rem 0;\n }\n\n p.h1{\n font-family: 'Poppins';\n color: #021027;\n font-weight: 700;\n margin-bottom: 20px;\n }\n\n p:not(.h1) {\n color: #514F4F;\n font-family: 'Poppins';\n font-weight: 400;\n font-size: 21px;\n padding: 0 65px;\n margin-bottom: 3rem;\n }\n\n .swal2-actions{\n width: 100%;\n\n button.swal2-confirm{\n width: 75%;\n height: 65px;\n font-size: 21px;\n background: #116BFF !important;\n border-radius: 20px !important;\n margin-bottom: 1rem;\n }\n }\n\n @media screen and (min-width: 992px) {\n width: 750px;\n padding: 0 40px 76px;\n }\n\n @media screen and (max-width: 991px) {\n p.h1{\n font-size: 2rem;\n }\n\n p:not(.h1) {\n font-size: 18px;\n padding: 0 35px;\n }\n }\n }\n\n .swal2-container{\n z-index: 2000 !important;\n }\n\n .swal2-popup{\n background: #f9f9f9 !important;\n box-shadow: 19px 49px 112px rgba(0, 0, 0, 0.4),\n inset 1px 1px 2px rgba(107, 107, 107, 0.3),\n inset -1px -1px 2px rgba(43, 43, 43, 0.5) !important;\n border-radius: 30px;\n\n .swal2-title {\n color: #fff;\n }\n\n .swal2-html-container{\n color: #949494;\n }\n }\n\n .modal-link{\n background: rgba(0, 0, 0, 0.6);\n backdrop-filter: blur(2.5px);\n }\n\n .border-golden {\n padding: 2px;\n background-image: linear-gradient(0deg, #202020, #202020),\n linear-gradient(180deg, #825511 0%, #f3bf5c 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 10px;\n color: #e4e4e4;\n border: none;\n }\n\n .border-silver {\n padding: 2px;\n background-image: linear-gradient(0deg, #202020, #202020),\n linear-gradient(180deg, #4A4B4B 0%, #c3c3c3 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 10px;\n color: #e4e4e4;\n border: none;\n }\n\n .border-gray{\n border: solid 1px #606060;\n border-radius: 10px;\n }\n\n .border-delete {\n padding: 2px;\n background-image: linear-gradient(0deg, #202020, #202020),\n linear-gradient(180deg, #ff1a50 0%, #ff4d77 100%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-image-slice: 1;\n border-radius: 10px;\n color: #e4e4e4;\n border: none;\n }\n\n .loading-box {\n position: fixed;\n width: 100%;\n height: 100vh;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n top: 0;\n left: 0;\n background: #00000055;\n }\n\n .modal-content {\n background: #202020;\n\n .modal-header, .modal-body, .modal-footer {\n border: none;\n }\n\n .modal-header{\n span{\n color: #fff;\n font-weight: 100;\n }\n }\n\n .modal-body{\n p{\n color: #828282;\n }\n\n .border-1px{\n padding: 1px;\n }\n\n .btn-radio{\n color: #CBCCCE;\n\n :hover{\n color: #CBCCCE;\n }\n }\n\n .border-silver{\n color: #8C8C8C;\n }\n }\n }\n\n .modal-quizzes .modal-content {\n background: #18191a !important;\n }\n\n .questions .close{\n text-shadow: 0 1px 0 #dc3545;\n }\n\n .text-green {\n color: #20b27f !important;\n }\n\n .text-red {\n color: #ff1a50 !important;\n }\n\n .payment-button {\n border: none;\n border-radius: 12px;\n color: var(--grayImmensity);\n background-color: var(--asphaltGray);\n border: 2px solid #464343;\n\n :hover {\n background-color: var(--asphaltGrayLi);\n transition: 0.5s;\n }\n }\n\n .width-add-card{\n width: 25px;\n }\n\n .close-button {\n background-color: transparent;\n border: none;\n z-index: 999;\n }\n\n .modal-credit-card {\n background-color: var(--midnightOpacity) !important;\n .modal-content {\n border-radius: 20px;\n .close{\n span{\n color: var(--ultraWhite);\n }\n }\n background-color: var(--coal) !important;\n }\n }\n\n .remove-cards-button {\n button {\n border: none;\n border-radius: 15px;\n }\n button:nth-child(1){\n background-color: var(--closedGray);\n color:var(--blizzard);\n }\n button:nth-child(2){\n background-color: var(--technologicalGray);\n color:var(--midnight);\n }\n }\n\n .modal-binance-pay, .modal-cripto-method, .modal-terms, .modal-tether {\n background-color: var(--midnightOpacity) !important;\n\n\n .modal-content {\n background: var(--coal);\n box-shadow: 19px 49px 112px var(--midnightOpacity),\n inset 1px 1px 2px var(--deepGreyOpacity),\n inset -1px -1px 2px var(--asphaltGrayOpacity);\n border-radius: 20px;\n h4,\n span {\n color: #202020;\n }\n\n .ReactCreditCard__name {\n span {\n color: var(--asphaltGray);\n }\n }\n\n p{\n color:var(--deepGrey);\n }\n\n .modal-binance-btn{\n background-color: #FCD535;\n border-radius: 12px;\n }\n\n .close{\n span{\n color: var(--ultraWhite);\n }\n }\n\n .qr-code-binance{\n padding: 9px;\n background-origin: border-box !important;\n background-clip: content-box, border-box !important;\n border-image-slice: 1 !important;\n border-radius: 22px;\n background-image:\n linear-gradient(180deg, #DEDEDE, #DEDEDE),\n linear-gradient(270.04deg, #FB5A43 0.03%, #C341AE 30.44%, #9445C2 57.35%, #079CFE 95.73%);\n width: 100%;\n max-width: 300px;\n }\n\n .old-price {\n color: var(--error);\n }\n }\n\n .img-icon{\n width: 25px;\n height: 25px;\n }\n\n .font-size-50{\n font-size: 50%;\n }\n\n .payment-button{\n background: var(--asphaltGray);\n border: 2px solid #464343;\n box-sizing: border-box;\n border-radius: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 25px 40px;\n margin: auto;\n\n :hover {\n background-color: var(--midnightDarken);\n transition: 0.5s;\n }\n\n img{\n max-width: 100px;\n width: 100%;\n margin-bottom: 10px;\n }\n }\n\n .btn-submit-tether{\n background: var(--technologicalGray);\n border-radius: 15px;\n color: var(--ultraWhite);\n border: 0;\n width: 100%;\n padding: 10px 0;\n height: 54px;\n margin-top: 35px;\n }\n\n .tether-box{\n background: var(--coal);\n box-shadow: 0px 35px 25px var(--midnightOpacity),\n inset 1px 1px 2px var(--deepGreyOpacity),\n inset -1px -1px 2px var(--asphaltGrayOpacity);\n border-radius: 37px;\n\n .btn-copy {\n background-color: transparent;\n border: solid 1.5px var(--grayImmensity);\n border-radius: 15px;\n height: 54px;\n color: var(--graniteGray);\n font-weight: 300;\n width: 100%;\n }\n\n .btn-confirm{\n background: var(--technologicalGray);\n border-radius: 15px;\n color: var(--asphaltGray);\n border: 0;\n width: 100%;\n padding: 10px 0;\n height: 54px;\n margin-top: 35px;\n }\n }\n }\n\n // estilos complementares do BS4\n body{\n\n .pe-none{\n pointer-events: none;\n }\n\n .opacity-100{\n opacity: 1;\n }\n\n .opacity-0{\n opacity: 0;\n }\n\n .p-relative{\n position: relative;\n }\n\n .p-absolute{\n position: absolute;\n }\n\n .h1, .h2, .h3, .h4, .h5, .h6,\n .h1-sm, .h2-sm, .h3-sm, .h4-sm, .h5-sm, .h6-sm,\n .h1-md, .h2-md, .h3-md, .h4-md, .h5-md, .h6-md,\n .h1-lg, .h2-lg, .h3-lg, .h4-lg, .h5-lg, .h6-lg,\n .h1-xl, .h2-xl, .h3-xl, .h4-xl, .h5-xl, .h6-xl,\n .h1-xxl, .h2-xxl, .h3-xxl, .h4-xxl, .h5-xxl, .h6-xxl {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n }\n\n .display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1 {\n font-size: 2.5rem;\n }\n\n .h2 {\n font-size: 2rem;\n }\n\n .h3 {\n font-size: 1.75rem;\n }\n\n .h4 {\n font-size: 1.5rem;\n }\n\n .h5 {\n font-size: 1.25rem;\n }\n\n .h6 {\n font-size: 1rem;\n }\n\n .w-8{\n width: 8%;\n }\n\n .w-25 {\n width: 25% !important;\n }\n\n .w-50 {\n width: 50% !important;\n }\n\n .w-75 {\n width: 75% !important;\n }\n\n .w-100 {\n width: 100% !important;\n }\n\n .w-auto {\n width: auto !important;\n }\n\n .h-25 {\n height: 25% !important;\n }\n\n .h-50 {\n height: 50% !important;\n }\n\n .h-75 {\n height: 75% !important;\n }\n\n .h-100 {\n height: 100% !important;\n }\n\n .h-auto {\n height: auto !important;\n }\n\n .mw-100 {\n max-width: 100% !important;\n }\n\n .mh-100 {\n max-height: 100% !important;\n }\n\n .min-vw-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-100 {\n min-height: 100vh !important;\n }\n\n .vw-100 {\n width: 100vw !important;\n }\n\n .vh-100 {\n height: 100vh !important;\n }\n\n .small {\n font-size: 90%;\n font-weight: 400;\n }\n\n .normal{\n font-size: 100%;\n }\n\n .big{\n font-size: 120%;\n }\n\n @media screen and (min-width: 576px){\n .position {\n top: 100px !important;\n }\n\n .p-sm-relative{\n position: relative;\n }\n\n .p-sm-absolute{\n position: absolute;\n }\n\n .display-sm-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-sm-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-sm-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-sm-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1-sm {\n font-size: 2.5rem;\n }\n\n .h2-sm {\n font-size: 2rem;\n }\n\n .h3-sm {\n font-size: 1.75rem;\n }\n\n .h4-sm {\n font-size: 1.5rem;\n }\n\n .h6-sm {\n font-size: 1.25rem;\n }\n\n .h6-sm {\n font-size: 1rem;\n }\n\n .w-sm-25 {\n width: 25% !important;\n }\n\n .w-sm-50 {\n width: 50% !important;\n }\n\n .w-sm-75 {\n width: 75% !important;\n }\n\n .w-sm-100 {\n width: 100% !important;\n }\n\n .w-sm-auto {\n width: auto !important;\n }\n\n .h-sm-25 {\n height: 25% !important;\n }\n\n .h-sm-50 {\n height: 50% !important;\n }\n\n .h-sm-75 {\n height: 75% !important;\n }\n\n .h-sm-100 {\n height: 100% !important;\n }\n\n .h-sm-auto {\n height: auto !important;\n }\n\n .mw-sm-100 {\n max-width: 100% !important;\n }\n\n .mh-sm-100 {\n max-height: 100% !important;\n }\n\n .min-vw-sm-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-sm-100 {\n min-height: 100vh !important;\n }\n\n .vw-sm-100 {\n width: 100vw !important;\n }\n\n .vh-sm-100 {\n height: 100vh !important;\n }\n\n .small-sm {\n font-size: 80%;\n font-weight: 400;\n }\n\n .normal-sm {\n font-size: 100%;\n }\n\n .big-sm {\n font-size: 120%;\n }\n }\n\n @media screen and (min-width: 768px){\n .mobile-only{\n display: none;\n }\n\n .desk-only{\n display: block;\n }\n\n .p-md-relative{\n position: relative;\n }\n\n .p-md-absolute{\n position: absolute;\n }\n\n .display-md-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-md-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-md-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-md-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1-md {\n font-size: 2.5rem;\n }\n\n .h2-md {\n font-size: 2rem;\n }\n\n .h3-md {\n font-size: 1.75rem;\n }\n\n .h4-md {\n font-size: 1.5rem;\n }\n\n .h5-md {\n font-size: 1.25rem;\n }\n\n .h6-md {\n font-size: 1rem;\n }\n\n .w-md-25 {\n width: 25% !important;\n }\n\n .w-md-50 {\n width: 50% !important;\n }\n\n .w-md-75 {\n width: 75% !important;\n }\n\n .w-md-100 {\n width: 100% !important;\n }\n\n .w-md-auto {\n width: auto !important;\n }\n\n .h-md-25 {\n height: 25% !important;\n }\n\n .h-md-50 {\n height: 50% !important;\n }\n\n .h-md-75 {\n height: 75% !important;\n }\n\n .h-md-100 {\n height: 100% !important;\n }\n\n .h-md-auto {\n height: auto !important;\n }\n\n .mw-md-100 {\n max-width: 100% !important;\n }\n\n .mh-md-100 {\n max-height: 100% !important;\n }\n\n .min-vw-md-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-md-100 {\n min-height: 100vh !important;\n }\n\n .vw-md-100 {\n width: 100vw !important;\n }\n\n .vh-md-100 {\n height: 100vh !important;\n }\n\n .small-md {\n font-size: 80%;\n font-weight: 400;\n }\n\n .normal-md {\n font-size: 100%;\n }\n\n .big-md {\n font-size: 120%;\n }\n }\n\n @media screen and (min-width: 992px){\n\n\n .position {\n left: 3px !important;\n }\n\n .p-lg-relative{\n position: relative;\n }\n\n .p-lg-absolute{\n position: absolute;\n }\n\n .display-lg-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-lg-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-lg-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-lg-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1-lg {\n font-size: 2.5rem;\n }\n\n .h2-lg {\n font-size: 2rem;\n }\n\n .h3-lg {\n font-size: 1.75rem;\n }\n\n .h4-lg {\n font-size: 1.5rem;\n }\n\n .h5-lg {\n font-size: 1.25rem;\n }\n\n .h6-lg {\n font-size: 1rem;\n }\n\n .w-lg-25 {\n width: 25% !important;\n }\n\n .w-lg-50 {\n width: 50% !important;\n }\n\n .w-lg-75 {\n width: 75% !important;\n }\n\n .w-lg-100 {\n width: 100% !important;\n }\n\n .w-lg-auto {\n width: auto !important;\n }\n\n .h-lg-25 {\n height: 25% !important;\n }\n\n .h-lg-50 {\n height: 50% !important;\n }\n\n .h-lg-75 {\n height: 75% !important;\n }\n\n .h-lg-100 {\n height: 100% !important;\n }\n\n .h-lg-auto {\n height: auto !important;\n }\n\n .mw-lg-100 {\n max-width: 100% !important;\n }\n\n .mh-lg-100 {\n max-height: 100% !important;\n }\n\n .min-vw-lg-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-lg-100 {\n min-height: 100vh !important;\n }\n\n .vw-lg-100 {\n width: 100vw !important;\n }\n\n .vh-lg-100 {\n height: 100vh !important;\n }\n\n .small-lg {\n font-size: 80%;\n font-weight: 400;\n }\n\n .normal-lg {\n font-size: 100%;\n }\n\n .big-lg {\n font-size: 120%;\n }\n }\n\n @media screen and (min-width: 1200px){\n .p-xl-relative{\n position: relative;\n }\n\n .p-xl-absolute{\n position: absolute;\n }\n\n .display-xl-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xl-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xl-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xl-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1-xl {\n font-size: 2.5rem;\n }\n\n .h2-xl {\n font-size: 2rem;\n }\n\n .h3-xl {\n font-size: 1.75rem;\n }\n\n .h4-xl {\n font-size: 1.5rem;\n }\n\n .h5-xl {\n font-size: 1.25rem;\n }\n\n .h6-xl {\n font-size: 1rem;\n }\n\n .w-xl-25 {\n width: 25% !important;\n }\n\n .w-xl-50 {\n width: 50% !important;\n }\n\n .w-xl-75 {\n width: 75% !important;\n }\n\n .w-xl-100 {\n width: 100% !important;\n }\n\n .w-xl-auto {\n width: auto !important;\n }\n\n .h-xl-25 {\n height: 25% !important;\n }\n\n .h-xl-50 {\n height: 50% !important;\n }\n\n .h-xl-75 {\n height: 75% !important;\n }\n\n .h-xl-100 {\n height: 100% !important;\n }\n\n .h-xl-auto {\n height: auto !important;\n }\n\n .mw-xl-100 {\n max-width: 100% !important;\n }\n\n .mh-xl-100 {\n max-height: 100% !important;\n }\n\n .min-vw-xl-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-xl-100 {\n min-height: 100vh !important;\n }\n\n .vw-xl-100 {\n width: 100vw !important;\n }\n\n .vh-xl-100 {\n height: 100vh !important;\n }\n\n .small-xl {\n font-size: 80%;\n font-weight: 400;\n }\n\n .normal-xl {\n font-size: 100%;\n }\n\n .big-xl {\n font-size: 120%;\n }\n }\n\n @media screen and (min-width: 1400px){\n .modal-dialog.modal-lg {\n width: 100%;\n }\n\n .d-xxl-none{\n display: none !important;\n }\n\n .d-xxl-block{\n display: block !important;\n }\n\n .d-xxl-flex{\n display: flex !important;\n }\n\n .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {\n max-width: 1320px !important;\n }\n\n .col-xxl-1,\n .col-xxl-2,\n .col-xxl-3,\n .col-xxl-4,\n .col-xxl-5,\n .col-xxl-6,\n .col-xxl-7,\n .col-xxl-8,\n .col-xxl-9,\n .col-xxl-10,\n .col-xxl-11,\n .col-xxl-12,\n .col-xxl,\n .col-xxl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n }\n\n .col-xxl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xxl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xxl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xxl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xxl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xxl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xxl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xxl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xxl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xxl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xxl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xxl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xxl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xxl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .p-xxl-relative{\n position: relative;\n }\n\n .p-xxl-absolute{\n position: absolute;\n }\n\n .display-xxl-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xxl-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xxl-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .display-xxl-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n }\n\n .h1-xxl {\n font-size: 2.5rem;\n }\n\n .h2-xxl {\n font-size: 2rem;\n }\n\n .h3-xxl {\n font-size: 1.75rem;\n }\n\n .h4-xxl {\n font-size: 1.5rem;\n }\n\n .h5-xxl {\n font-size: 1.25rem;\n }\n\n .h6-xxl {\n font-size: 1rem;\n }\n\n .w-xxl-25 {\n width: 25% !important;\n }\n\n .w-xxl-50 {\n width: 50% !important;\n }\n\n .w-xxl-75 {\n width: 75% !important;\n }\n\n .w-xxl-100 {\n width: 100% !important;\n }\n\n .w-xxl-auto {\n width: auto !important;\n }\n\n .h-xxl-25 {\n height: 25% !important;\n }\n\n .h-xxl-50 {\n height: 50% !important;\n }\n\n .h-xxl-75 {\n height: 75% !important;\n }\n\n .h-xxl-100 {\n height: 100% !important;\n }\n\n .h-xxl-auto {\n height: auto !important;\n }\n\n .mw-xxl-100 {\n max-width: 100% !important;\n }\n\n .mh-xxl-100 {\n max-height: 100% !important;\n }\n\n .min-vw-xxl-100 {\n min-width: 100vw !important;\n }\n\n .min-vh-xxl-100 {\n min-height: 100vh !important;\n }\n\n .vw-xxl-100 {\n width: 100vw !important;\n }\n\n .vh-xxl-100 {\n height: 100vh !important;\n }\n\n .small-xxl {\n font-size: 80%;\n font-weight: 400;\n }\n\n .normal-xxl {\n font-size: 100%;\n }\n\n .big-xxl {\n font-size: 120%;\n }\n\n .d-xxl-flex{\n display: flex;\n }\n\n .justify-content-xxl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xxl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xxl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xxl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n\n .m-xxl-0 {\n margin: 0 !important;\n }\n .mt-xxl-0,\n .my-xxl-0 {\n margin-top: 0 !important;\n }\n .mr-xxl-0,\n .mx-xxl-0 {\n margin-right: 0 !important;\n }\n .mb-xxl-0,\n .my-xxl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xxl-0,\n .mx-xxl-0 {\n margin-left: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .mt-xxl-1,\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xxl-1,\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xxl-1,\n .my-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xxl-1,\n .mx-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .mt-xxl-2,\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xxl-2,\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xxl-2,\n .my-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xxl-2,\n .mx-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .mt-xxl-3,\n .my-xxl-3 {\n margin-top: 1rem !important;\n }\n .mr-xxl-3,\n .mx-xxl-3 {\n margin-right: 1rem !important;\n }\n .mb-xxl-3,\n .my-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xxl-3,\n .mx-xxl-3 {\n margin-left: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .mt-xxl-4,\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xxl-4,\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xxl-4,\n .my-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xxl-4,\n .mx-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .mt-xxl-5,\n .my-xxl-5 {\n margin-top: 3rem !important;\n }\n .mr-xxl-5,\n .mx-xxl-5 {\n margin-right: 3rem !important;\n }\n .mb-xxl-5,\n .my-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xxl-5,\n .mx-xxl-5 {\n margin-left: 3rem !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .pt-xxl-0,\n .py-xxl-0 {\n padding-top: 0 !important;\n }\n .pr-xxl-0,\n .px-xxl-0 {\n padding-right: 0 !important;\n }\n .pb-xxl-0,\n .py-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xxl-0,\n .px-xxl-0 {\n padding-left: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .pt-xxl-1,\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xxl-1,\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xxl-1,\n .py-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xxl-1,\n .px-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .pt-xxl-2,\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xxl-2,\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xxl-2,\n .py-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xxl-2,\n .px-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .pt-xxl-3,\n .py-xxl-3 {\n padding-top: 1rem !important;\n }\n .pr-xxl-3,\n .px-xxl-3 {\n padding-right: 1rem !important;\n }\n .pb-xxl-3,\n .py-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xxl-3,\n .px-xxl-3 {\n padding-left: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .pt-xxl-4,\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xxl-4,\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xxl-4,\n .py-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xxl-4,\n .px-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .pt-xxl-5,\n .py-xxl-5 {\n padding-top: 3rem !important;\n }\n .pr-xxl-5,\n .px-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-5,\n .py-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xxl-5,\n .px-xxl-5 {\n padding-left: 3rem !important;\n }\n .m-xxl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xxl-n1,\n .my-xxl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xxl-n1,\n .mx-xxl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xxl-n1,\n .my-xxl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xxl-n1,\n .mx-xxl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xxl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xxl-n2,\n .my-xxl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xxl-n2,\n .mx-xxl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xxl-n2,\n .my-xxl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xxl-n2,\n .mx-xxl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xxl-n3 {\n margin: -1rem !important;\n }\n .mt-xxl-n3,\n .my-xxl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xxl-n3,\n .mx-xxl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xxl-n3,\n .my-xxl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xxl-n3,\n .mx-xxl-n3 {\n margin-left: -1rem !important;\n }\n .m-xxl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xxl-n4,\n .my-xxl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xxl-n4,\n .mx-xxl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xxl-n4,\n .my-xxl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xxl-n4,\n .mx-xxl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xxl-n5 {\n margin: -3rem !important;\n }\n .mt-xxl-n5,\n .my-xxl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xxl-n5,\n .mx-xxl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xxl-n5,\n .my-xxl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xxl-n5,\n .mx-xxl-n5 {\n margin-left: -3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mt-xxl-auto,\n .my-xxl-auto {\n margin-top: auto !important;\n }\n .mr-xxl-auto,\n .mx-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-auto,\n .my-xxl-auto {\n margin-bottom: auto !important;\n }\n .ml-xxl-auto,\n .mx-xxl-auto {\n margin-left: auto !important;\n }\n }\n }\n\n @media screen and (min-width: 992px) {\n body .menu-header{\n width: 90px !important;\n }\n }\n\n @media screen and (max-width: 991px){\n .position-mini {\n top: 190px !important;\n left: 30px !important;\n }\n }\n`;\n","import styled from 'styled-components';\nimport { Modal as ModalComponent } from 'react-bootstrap';\n\nexport const Modal = styled(ModalComponent)`\n .modal-content {\n background: #fff !important;\n border-radius: 35px;\n position: relative;\n\n h2 {\n color: #021027;\n text-align: center;\n font-family: 'Inter', sans-serif;\n font-size: 24px;\n font-weight: 600;\n }\n\n h3 {\n color: #021027;\n font-family: 'Inter', sans-serif;\n font-size: 24px;\n font-weight: 700;\n }\n\n h4 {\n color: #151616;\n font-family: 'Inter', sans-serif;\n font-size: 24px;\n font-weight: 700;\n line-height: normal;\n margin: 2rem 0;\n }\n\n p {\n color: #151616;\n\n font-family: 'Inter', sans-serif;\n font-size: 20px;\n font-weight: 300;\n line-height: normal;\n margin-bottom: 0px;\n span {\n font-weight: 600;\n }\n }\n\n label div label {\n align-items: start;\n }\n label div label div {\n min-width: 16px;\n }\n\n label div span {\n color: #021027;\n\n font-family: 'Archivo';\n font-size: 20px;\n font-style: normal;\n font-weight: 400;\n line-height: 25px;\n }\n\n .btn-logout {\n position: absolute;\n top: 3%;\n left: 5%;\n border: none;\n background-color: transparent;\n color: #ff1a50;\n font-size: 12px;\n font-weight: 600;\n :hover {\n text-decoration: underline;\n }\n }\n\n .scroll-click {\n color: #ff1a50;\n font-size: 16px;\n }\n\n .scroll-text {\n color: #f5f5f5;\n background-color: #ff1a50;\n border-radius: 14px;\n display: inline-flex;\n font-size: 16px;\n align-items: center;\n }\n\n .scroll-text div {\n margin: 0 7px !important;\n }\n\n .scroll-click div {\n margin: 0 3px 0 1px !important;\n }\n\n .scroll-click-div {\n //display: inline-flex;\n align-items: center;\n }\n\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-100 {\n opacity: 1;\n }\n .pe-none {\n pointer-events: none;\n }\n .cursor-allowed {\n cursor: not-allowed;\n }\n\n .bg-content {\n border-radius: 22px;\n background: #f9f9f9;\n }\n\n .content {\n padding-right: 10px;\n height: 550px;\n overflow: auto;\n }\n\n .modal-close {\n color: #021027;\n position: absolute;\n right: 20px;\n top: 20px;\n }\n\n .btn-download {\n background-color: #f9f9f9;\n border-radius: 14px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition-duration: 0.3s;\n\n :hover {\n box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.25);\n }\n }\n\n .btn-decline {\n background-color: #dedede;\n border-radius: 15px;\n width: 325px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #303030;\n transition-duration: 0.3s;\n\n :hover {\n box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.25);\n }\n }\n\n .btn-accept {\n background-color: #116bff;\n border-radius: 15px;\n width: 325px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #f5f5f5;\n transition-duration: 0.3s;\n //margin-left: 25px;\n\n :hover {\n box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.25);\n }\n }\n }\n\n @media screen and (min-width: 1200px) {\n .modal-content label div label {\n align-items: center;\n }\n .modal-xl {\n zoom: 0.7;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .modal-xl {\n max-width: 1100px;\n zoom: 1;\n }\n }\n\n @media screen and (max-width: 991px) {\n .modal-content h2 {\n font-size: 23px;\n }\n\n .modal-content h3,\n .modal-content h4 {\n font-size: 20px;\n }\n\n .modal-content p {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 575px) {\n .modal-content h2 {\n font-size: 5vw;\n }\n\n .modal-content p {\n font-size: 15px;\n }\n\n label div {\n display: block;\n }\n\n label div label {\n display: block;\n }\n .modal-content label {\n text-align: center;\n }\n\n .modal-content label div span {\n font-size: 16px;\n }\n .modal-content label div label div {\n margin: 0 auto;\n display: flex;\n align-items: center;\n }\n\n .modal-content .btn-accept {\n width: 250px;\n }\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-empty-interface */\nimport React, {\n createContext,\n useCallback,\n useState,\n useContext,\n useEffect,\n useRef,\n} from 'react';\nimport { format } from 'date-fns';\nimport { VscDesktopDownload } from 'react-icons/vsc';\n// import { PDFDownloadLink } from '@react-pdf/renderer';\n\nimport axios from 'axios';\nimport { useHistory } from 'react-router-dom';\nimport Lottie from 'react-lottie';\nimport { useAuth } from '../Auth';\n\nimport { Modal } from './styles';\nimport InputCheckbox from '~/components/InputCheckbox';\nimport GeneratePDF from './GeneratePDF';\nimport api from '~/services/api';\nimport scrollDown from '~/assets/animations/scroll-down.json';\nimport ArrowDown from '~/assets/animations/arrow-down.json';\n\ninterface TermsContextData {}\n\nexport const TermsContext = createContext(\n {} as TermsContextData\n);\n\nexport const TermsProvider: React.FC = ({ children }) => {\n const { user, updateUser, signOut } = useAuth();\n const history = useHistory();\n const scroll = useRef(null);\n const [show, setShow] = useState(false);\n const [checked, setChecked] = useState(false);\n const [name, setName] = useState('');\n const [effectiveDate, setEffectiveDate] = useState('');\n const [dateSigned, setDateSigned] = useState('');\n const [ip, setIp] = useState('');\n const [isAffiliate, setIsAffiliate] = useState(false);\n\n useEffect(() => {\n axios.get('https://api.ipify.org?format=json').then((response) => {\n setIp(response.data.ip);\n });\n }, []);\n\n useEffect(() => {\n api\n .get('orders/users/b060defe-695a-4ddd-9827-5350c3302f00')\n .then(() => {\n setIsAffiliate(true);\n })\n .catch(() => {\n setIsAffiliate(false);\n });\n }, [user?.affiliate.type]);\n\n useEffect(() => {\n if (user) {\n setName(user.name);\n if (!user.termUser && isAffiliate) {\n const now = new Date();\n const formattedDate = format(now, 'MMMM dd, yyyy');\n setEffectiveDate(formattedDate);\n setShow(true);\n }\n }\n }, [isAffiliate, name, user]);\n\n const handleClose = useCallback(() => {\n setShow(false);\n setChecked(false);\n setDateSigned('');\n history.push(`${process.env.PUBLIC_URL}/lessons/welcome`);\n }, [history]);\n\n const handleClickResponse = useCallback(async () => {\n const now = new Date();\n setDateSigned(format(now, 'MM/dd/yyyy HH:mm:ss'));\n\n const formData = {\n name: user.name,\n ip,\n date_signed: now,\n };\n\n const response = await api.post('terms-users', formData);\n\n updateUser({\n ...user,\n termUser: response.data,\n });\n }, [ip, updateUser, user]);\n\n return (\n \n {children}\n \n \n {\n signOut();\n setShow(false);\n }}\n >\n Logout\n \n \n
\n \n

\n AutoAffiliate Affiliate Agreement\n

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

\n Scroll down to the bottom to sign the contract.\n \n

\n
\n
\n

Effective Date: {effectiveDate}

\n

Introduction

\n

\n Welcome to the AutoAffiliate Affiliate Program! This Agreement\n sets forth the terms under which you, as an independent\n Affiliate, may participate in our Program. Here, you have the\n opportunity to earn commissions by promoting and selling\n AutoAffiliate’s innovative products and services. This Agreement\n is designed to ensure a mutually beneficial relationship while\n adhering to the highest standards of compliance and ethics.\n

\n

\n Your decision to join and participate in the AutoAffiliate\n Affiliate Program signifies not only your acceptance of this\n Agreement but also your commitment to uphold our Terms of\n Service and all applicable federal and state regulations,\n including those enforced by the Federal Trade Commission (FTC).\n It’s crucial to understand that your role as an Affiliate is to\n act as an independent promoter of AutoAffiliate’s offerings, and\n this Agreement is structured to clarify that relationship, your\n responsibilities, and the framework within which you operate.\n

\n

\n Please read this Agreement carefully. By selecting “I Accept the\n Terms and Conditions” during your application process, you agree\n to adhere to its terms and affirm that you fully understand your\n rights and obligations herein. This Agreement is binding and\n governs your participation in our Program.\n

\n

Agreement Acceptance

\n

\n By choosing “I Accept the Terms and Conditions” during your\n application process, you are entering into a legally binding\n agreement with AutoAffiliate. This action signifies your\n complete understanding of and agreement to the terms outlined in\n this document. It is your responsibility to review this\n Agreement in its entirety and ensure you understand your\n obligations and the nature of your relationship with\n AutoAffiliate as an independent Affiliate.\n

\n

Program Overview

\n

\n 1. Opportunity for Earnings: As an AutoAffiliate\n Affiliate, you have the opportunity to earn commissions by\n effectively promoting and selling AutoAffiliate’s diverse range\n of products and services. Your success as an Affiliate is\n contingent upon your marketing efforts and adherence to the\n guidelines and strategies provided by AutoAffiliate.\n

\n

\n 2. Application and Approval: Your participation in\n the AutoAffiliate Affiliate Program is subject to a review and\n approval process. AutoAffiliate reserves the exclusive right to\n approve or deny any application based on our assessment of your\n suitability for the Program. This decision is at our sole\n discretion and may be based on various criteria, including but\n not limited to your marketing strategies, audience reach, and\n compliance with legal and ethical standards.\n

\n

\n 3. Definition of Referral: Within the context of\n this Agreement, a “Referral” is defined as a new customer who\n purchases AutoAffiliate’s products or services through your\n unique affiliate link. It is essential that Referrals are\n acquired in adherence to our ethical guidelines and marketing\n practices, as detailed further in this Agreement.\n

\n

Third-Party Offers and Liability

\n

\n 1. Promotion of Third-Party Offers: As part of the\n AutoAffiliate Affiliate Program, you may have the opportunity to\n promote offers from third-party companies. These offers are\n separate from AutoAffiliate and are governed by their respective\n terms and conditions. It’s important to understand that\n AutoAffiliate provides these opportunities for promotion as a\n courtesy and does not endorse, control, or assume liability for\n these third-party offers.\n

\n

\n 2. Affiliate Compensation for Third-Party Offers:{' '}\n Any compensation you earn from promoting third-party offers is a\n matter solely between you and the respective third-party\n company. AutoAffiliate is not responsible for and shall not be\n involved in the compensation process for these offers. Your\n participation in promoting third-party offers indicates your\n agreement to this arrangement and understanding of where\n responsibility for compensation lies.\n

\n

\n 3. Disclaimer of Liability: AutoAffiliate disclaims\n any liability for claims, losses, or damages arising from your\n promotion of third-party offers. Your decision to promote these\n offers should be based on a thorough independent assessment of\n their suitability and legitimacy. AutoAffiliate is not liable\n for any issues, including payment disputes, that arise between\n you and third-party companies.\n

\n

\n 4. No Implied Partnership or Agency: Your promotion\n of third-party offers does not establish a partnership, joint\n venture, agency, or employment relationship between you and\n AutoAffiliate or between you and any third-party companies. You\n are acting as an independent contractor in all your promotional\n activities.\n

\n

Affiliate Responsibilities

\n

\n 1. Adherence to Laws and Regulations: As an\n Affiliate, it's imperative that you comply with all applicable\n laws, regulations, and industry standards, including those\n related to advertising, consumer protection, and spam. Your\n promotional methods must be ethical, transparent, and devoid of\n deceptive practices.\n

\n

\n 2. Use of Authorized Promotional Materials: When\n promoting AutoAffiliate products and services, you must use the\n marketing materials, referral links, and other resources\n provided by AutoAffiliate. Altering or misrepresenting these\n materials is strictly prohibited and may result in termination\n of your Affiliate status.\n

\n

\n 3. Accurate Representation: All information you\n provide to AutoAffiliate and to potential Referrals must be\n accurate, complete, and truthful. You are required to promptly\n update any changes to your contact or other relevant\n information.\n

\n

\n 4. Non-Exclusivity: This Agreement does not grant\n you exclusive rights to represent AutoAffiliate's products and\n services. AutoAffiliate reserves the right to engage with other\n affiliates and promote its offerings through various channels.\n

\n

\n 5. Independent Contractor Status: You are an\n independent contractor and not an employee, agent, or\n representative of AutoAffiliate. You have no authority to bind\n AutoAffiliate in any respect. Your status as an independent\n contractor should be clearly communicated in your promotions.\n

\n

Commission Structure

\n

\n 1. Commission Rates and Tiers: AutoAffiliate offers\n a tiered commission structure, where you can earn between 30% to\n 60% commission on sales generated through your referral links.\n The specific commission rate depends on various factors,\n including the type of product or service sold and your level of\n participation in special promotions or tiers within the Program.\n

\n

\n 2. Eligibility for Commissions: Commissions are\n only earned on sales that result in a successful transaction for\n AutoAffiliate products or services and are subject to the\n customer's retention beyond the refund period. AutoAffiliate\n reserves the right to review and validate all sales before\n approving commission payments.\n

\n

\n 3. Payment of Commissions: Commissions are paid\n monthly, provided your earnings meet the minimum threshold set\n by AutoAffiliate. The payment is subject to a 45-day clearance\n period from the date of each sale to account for cancellations\n or refunds. Details regarding payment methods and any applicable\n fees will be communicated separately.\n

\n

\n 4. Referral Tracking: AutoAffiliate will use\n advanced tracking mechanisms to accurately track sales generated\n through your referral links. It is crucial to the integrity of\n the Program that you do not manipulate or disrupt the tracking\n process.\n

\n

\n 5. Tax Responsibility: You are solely responsible\n for all tax liabilities arising from your receipt of commissions\n and should report your earnings in accordance with relevant tax\n laws.\n

\n

Commission Clawback Due to Refunds

\n

\n 1. Clawback Policy: In the event that a sale of an\n AutoAffiliate product or service results in a refund,\n chargeback, or is otherwise reversed, any commission paid to the\n Affiliate for that sale will be subject to clawback. This means\n that the Affiliate will be required to return any commission\n earned on a sale that does not ultimately result in a successful\n transaction.\n

\n

\n 2. Deduction from Future Commissions: Typically,\n the clawback amount will be deducted from future commission\n payments owed to the Affiliate. If there are no pending\n commission payments or if the clawback amount exceeds the\n pending commissions, AutoAffiliate may require direct repayment\n from the Affiliate.\n

\n

\n 3. Notification of Clawback: AutoAffiliate will\n notify the Affiliate of any clawback instances and provide\n details of the affected transaction(s). The Affiliate will have\n a specified period to respond to or dispute the clawback notice.\n

\n

\n 4. Dispute Resolution: In case of a dispute by the\n Affiliate regarding a clawback, a review process will be\n initiated by AutoAffiliate. The decision made by AutoAffiliate\n at the conclusion of the review process will be final.\n

\n

\n 5. Acknowledgment of Clawback Terms: By\n participating in the AutoAffiliate Affiliate Program, the\n Affiliate acknowledges and agrees to this clawback policy as a\n condition of their participation.\n

\n

Founders Club Program

\n

\n 1. Introduction and Eligibility: The Founders Club\n Program is an exclusive initiative designed to reward proactive\n members of the AutoAffiliate community. Eligibility for this\n program is now granted through the purchase of the Founders Club\n program, which includes new added benefits. Previous members of\n the legacy Founders Club program will continue to be respected,\n provided they maintain their subscription to the third-party\n offer and sign up for the new updated AutoAffiliate Affiliate\n Program subscription.\n

\n

\n 2. Lead Distribution and Quality Assurance: Members\n of the Founders Club will benefit from a systematic distribution\n of valuable leads. The lead distribution process is structured\n to ensure fairness and efficiency, providing equitable\n opportunities for all participants. We prioritize high-quality,\n relevant leads and adhere to a standard processing period to\n maintain these standards, which may result in a brief waiting\n period for lead distribution.\n

\n

\n 3. Maintaining Eligibility and Founder Status: To\n maintain eligibility for the free leads giveaway and other\n benefits, members must keep an active subscription to the\n updated AutoAffiliate Affiliate Program. Legacy Founders must\n also maintain their subscription to the third-party offer. If\n you choose not to participate in the leads giveaway or are\n unable to maintain the required subscriptions, your Founder\n status – indicative of your early commitment and proactive\n involvement – will be retained.\n

\n

\n 4. Transparency and Fairness: We are committed to\n transparency and fairness in the operations of the Founders\n Club. While not every operational detail may be disclosed, our\n aim is to ensure that each member benefits equitably from their\n participation.\n

\n

\n 5. Detailed Policy Documentation: A comprehensive\n policy document, available to all Founders Club members,\n outlines the operational details, the lead distribution process,\n and the journey of participants in the program. This document\n serves as a guide and reference for all aspects of the Founders\n Club experience.\n

\n

\n 6. Swift Action for Eligibility: To become a member\n of the Founders Club, new members must purchase the Founders\n Club program within 30 days of joining AutoAffiliate. This\n condition is set to reward and encourage decisive action among\n our members.\n

\n

\n 7. Non-Guarantee of Membership: Membership in the\n Founders Club is a privilege and not a right. AutoAffiliate does\n not guarantee admission to any Affiliate and retains sole\n discretion over the selection and retention of members in the\n Founders Club. This ensures the integrity and exclusivity of the\n program, aligning with our commitment to reward exceptional\n performance and engagement.\n

\n

Intellectual Property

\n

\n 1. Ownership of Intellectual Property: All\n intellectual property related to AutoAffiliate, including\n trademarks, service marks, trade names, logos, and copyrights,\n remains the sole property of AutoAffiliate. This Agreement does\n not transfer any intellectual property rights to you.\n

\n

\n 2. Limited License for Promotion: AutoAffiliate\n grants you a limited, non-exclusive, and revocable license to\n use its intellectual property solely for the purpose of\n promoting its products and services within the guidelines set\n forth in this Agreement.\n

\n

\n 3. Proper Use of Intellectual Property: You must\n use AutoAffiliate's intellectual property in a manner that\n maintains the integrity of the brand and adheres to any\n guidelines provided. Misuse or unauthorized use of\n AutoAffiliate's intellectual property is grounds for immediate\n termination of this Agreement.\n

\n

Confidentiality

\n

\n 1. Definition of Confidential Information:{' '}\n Throughout your participation in the Affiliate Program, you may\n be exposed to sensitive and proprietary information of\n AutoAffiliate, including but not limited to sales data,\n marketing strategies, and customer information.\n

\n

\n 2. Obligation of Confidentiality: You agree to\n maintain the confidentiality of all such information and to use\n it solely for the purpose of fulfilling your obligations under\n this Agreement. Unauthorized disclosure of confidential\n information is prohibited and may result in termination of your\n Affiliate status and legal action.\n

\n

Advertising Rules

\n

\n 1. Compliance with Laws and Guidelines: All your\n advertising activities must comply with applicable laws and\n regulations, including FTC guidelines on advertising, consumer\n protection laws, and any other relevant standards. This includes\n truthful representations, proper disclosure of your affiliate\n status, and avoidance of misleading claims.\n

\n

\n 2. Mandatory Disclosures: In all promotional\n content, you must clearly and prominently disclose your\n relationship with AutoAffiliate, stating that you are an\n independent Affiliate and that you may receive compensation for\n referrals. This disclosure must be made in accordance with FTC\n guidelines.\n

\n

\n 3. Guidelines for Social Media Promotion: When\n promoting AutoAffiliate on social media, ensure that each post\n complies with the platform's advertising rules and includes\n necessary disclosures (e.g., #ad or “Sponsored”). Utilize\n platform-specific tools for sponsored content where available.\n

\n

\n 4. Restrictions on Income Claims: You are\n prohibited from making any guarantees or unrealistic claims\n regarding potential income or earnings through the AutoAffiliate\n Program. Any mention of your earnings must be truthful,\n accompanied by disclaimers, and in line with FTC guidelines.\n

\n

\n 5. Intellectual Property in Advertising: Use of\n AutoAffiliate's intellectual property in your advertisements\n must be pre-approved in writing and conform to brand guidelines.\n Misuse of trademarks or copyrighted material is not permitted.\n

\n

\n 6. Monitoring and Compliance: AutoAffiliate\n reserves the right to monitor your advertising activities for\n compliance. Non-compliance may necessitate modifications to your\n materials and could result in termination of your affiliate\n status.\n

\n

\n 7. Clear and Conspicuous Disclosures:All\n disclosures required by FTC guidelines, including but not\n limited to the affiliate's relationship with AutoAffiliate and\n any compensation received, must be clear and conspicuous in all\n promotional content. Disclosures should be placed close to the\n relevant claims, be easy to notice and read, and not be hidden\n or obscured by other content.\n

\n

\n \n 8. Compliance with International E-commerce Standards:\n \n Affiliates promoting AutoAffiliate’s products internationally\n must comply with all applicable laws and guidelines, including\n but not limited to the OECD guidelines for consumer protection\n in electronic commerce. This includes providing accurate and\n clear information about the products and services, the terms of\n the sale, and any consumer protections available.\n

\n\n

\n 9. Prohibited Practices:Affiliates are strictly\n prohibited from making false or misleading claims regarding\n potential earnings, product performance, or any other aspect of\n AutoAffiliate's products and services. Any such deceptive\n practices will result in immediate termination of the affiliate\n agreement and may lead to legal action.\n

\n\n

Termination

\n

\n 1. Termination for Convenience: Either party may\n terminate this Agreement at any time for any reason, with\n written notice to the other party. Upon termination, you must\n immediately cease all use of AutoAffiliate’s intellectual\n property and remove all promotional materials.\n

\n

\n 2. Termination for Cause: AutoAffiliate reserves\n the right to terminate this Agreement immediately and without\n notice in the event of any breach by you, fraudulent activity,\n or any action that harms AutoAffiliate’s reputation or\n interests.\n

\n

\n 3. Effects of Termination: Upon termination, all\n rights granted to you under this Agreement cease. You will\n forfeit any unpaid commissions as of the termination date and\n must immediately discontinue use of all AutoAffiliate materials\n and intellectual property.\n

\n

Disclaimer of Warranties and Limitation of Liability

\n

\n 1. Disclaimer of Warranties: AutoAffiliate provides\n the Affiliate Program, including all related products and\n services, on an “as is” and “as available” basis. AutoAffiliate\n expressly disclaims all warranties of any kind, whether express\n or implied, including, but not limited to, the implied\n warranties of merchantability, fitness for a particular purpose,\n and non-infringement. AutoAffiliate makes no warranty that the\n Affiliate Program will meet your requirements, or that the\n Program will be uninterrupted, timely, secure, or error-free;\n nor does AutoAffiliate make any warranty as to the results that\n may be obtained from the use of the Program or as to the\n accuracy or reliability of any information obtained through the\n Program.\n

\n

\n 2. Limitation of Liability: AutoAffiliate shall not\n be liable for any indirect, incidental, special, consequential,\n or exemplary damages, including but not limited to damages for\n loss of profits, goodwill, use, data, or other intangible losses\n (even if AutoAffiliate has been advised of the possibility of\n such damages), resulting from: (i) the use or the inability to\n use the Affiliate Program; (ii) the cost of procurement of\n substitute goods and services resulting from any goods, data,\n information, or services purchased or obtained or messages\n received or transactions entered into through or from the\n Program; (iii) unauthorized access to or alteration of your\n transmissions or data; (iv) statements or conduct of any third\n party on the Program; or (v) any other matter relating to the\n Program.\n

\n

\n 3. Class Action Waiver: You agree that any claims\n or controversies arising out of or related to this Agreement or\n your participation in the Affiliate Program shall be brought in\n your individual capacity, and not as a plaintiff or class member\n in any purported class, collective, consolidated, or\n representative proceeding. AutoAffiliate and you agree that each\n may bring claims against the other only in your or its\n individual capacity and not as a plaintiff or class member in\n any purported class or representative action.\n

\n

Governing Law and Dispute Resolution

\n

\n 1. Applicable Law: This Agreement shall be governed\n by and construed in accordance with the laws of the State of\n Wyoming, without regard to its conflict of law principles. Any\n legal actions or proceedings arising out of this Agreement shall\n be brought exclusively in the courts of Wyoming, and both\n parties hereby consent to the jurisdiction of such courts.\n

\n

\n 2. Dispute Resolution: In the event of a dispute\n arising under this Agreement, the parties agree to first attempt\n to resolve the issue through good faith negotiation. If\n negotiation fails, the dispute shall be submitted to mediation\n or, if necessary, arbitration, in accordance with the rules of a\n mutually agreed upon mediation or arbitration entity. The\n prevailing party in any such dispute resolution process shall be\n entitled to recover its reasonable attorney's fees and costs.\n

\n

Communication Consent

\n

\n By agreeing to these terms, I hereby give AutoAffiliate consent\n to contact me through text messages, automated calls, emails,\n and other forms of electronic communication for purposes\n including but not limited to marketing, notifications, updates,\n and customer service communications. I understand that standard\n data and message rates may apply for text messages. I\n acknowledge that my consent is not a condition of any purchase.\n

\n

\n I understand that I have the right to opt-out of receiving\n further communications at any time. To unsubscribe or change my\n communication preferences, I can follow the instructions\n provided in the communications sent to me or contact\n AutoAffiliate at support@autoaffiliate.ai.\n

\n

\n AutoAffiliate respects and prioritizes the privacy and security\n of my personal data. My contact information will be used in\n accordance with AutoAffiliate’s Privacy Policy and will not be\n shared with third parties without my explicit consent.\n

\n

Miscellaneous

\n

\n 1. Entire Agreement: This Agreement constitutes the\n entire understanding between AutoAffiliate and the Affiliate\n regarding the subject matter herein and supersedes all prior\n agreements and understandings, whether written or oral.\n

\n

\n 2. Amendments: AutoAffiliate reserves the right to\n modify or update the terms and conditions of this Agreement at\n any time. Affiliates will be notified of any changes through the\n contact information provided during their application process or\n via the Affiliate dashboard. Continued participation in the\n AutoAffiliate Affiliate Program after any such modifications\n will constitute your consent to such changes. It is the\n responsibility of the Affiliate to regularly review the\n Agreement and stay informed of any updates.\n

\n

\n 3. Assignment: The Affiliate may not assign or\n transfer any of their rights or obligations under this Agreement\n without prior written consent from AutoAffiliate. However,\n AutoAffiliate may assign this Agreement without restriction.\n

\n

\n 4. Severability: If any provision of this Agreement\n is found to be invalid or unenforceable, the remaining\n provisions will remain in full force and effect.\n

\n

\n 5. Waiver: No waiver of any provision of this\n Agreement shall be deemed a further or continuing waiver of such\n provision or any other provision.\n

\n

\n 6. Independent Contractor Relationship: Nothing in\n this Agreement shall be construed as creating an\n employer-employee relationship, partnership, or joint venture\n between the parties. The Affiliate is an independent contractor.\n

\n

\n 7. Notices: All notices and communications required\n or permitted under this Agreement should be in writing and sent\n to the respective parties at the addresses given at the outset\n of this Agreement or to such other address as either party may\n later provide by notice.\n

\n

\n 8. Force Majeure: Neither party shall be liable for\n any failure or delay in performance due to circumstances beyond\n their reasonable control, including acts of God, natural\n disasters, terrorism, government actions, or labor disputes.\n

\n

\n 9. Counterparts and Electronic Signatures: This\n Agreement may be executed in counterparts, each of which shall\n be deemed an original. Electronic signatures shall be considered\n as valid and binding as original signatures.\n

\n

\n 10. Headings: Headings in this Agreement are for\n convenience only and do not affect the interpretation of any\n provision.\n

\n

\n 11. Survival: Provisions of this Agreement that by\n their nature should survive termination will remain in effect\n after termination or expiration of this Agreement.\n

\n

\n IN WITNESS WHEREOF, the parties have executed this AutoAffiliate\n Affiliate Agreement as of the Effective Date.\n

\n

\n Copyright 2024 - SmartTech Labs, Inc, dba AutoAffiliate - All\n Rights Reserved\n

\n
\n
\n \n
\n

\n Click here to e-sign and continue.\n

\n
\n \n
\n
\n
\n \n
\n {show && dateSigned ? (\n <>\n {/* \n ) as React.ReactElement\n }\n fileName=\"autoaffiliate-affiliate-agreement.pdf\"\n className=\"btn btn-download\"\n >\n \n Download document\n */}\n \n Close\n \n \n ) : (\n \n handleClickResponse()}\n >\n Accept\n \n
\n )}\n
\n \n \n \n );\n};\n\nexport function useTerms(): TermsContextData {\n const context = useContext(TermsContext);\n\n if (!context) {\n throw new Error('useTerms must be used within an TermsProvider');\n }\n\n return context;\n}\n","import React from 'react';\nimport { Elements as StripeProvider } from '@stripe/react-stripe-js';\nimport { loadStripe } from '@stripe/stripe-js';\n\nimport { AuthProvider } from './Auth';\nimport { IntercomProvider } from './Intercom';\nimport { LanguageProvider } from './Language';\nimport { NextStepProvider } from './NextStep';\nimport { ChatProvider } from './Chat';\nimport { TermsProvider } from './Terms';\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_KEY as string);\n\nconst AppProvider: React.FC = ({ children }) => (\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n);\n\nexport default AppProvider;\n","import React from 'react';\nimport { BrowserRouter } from 'react-router-dom';\nimport HttpsRedirect from 'react-https-redirect';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport 'react-phone-input-2/lib/style.css';\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\nimport 'video.js/dist/video-js.css';\n\nimport Routes from '~/routes';\nimport GlobalStyles from './styles/global';\n\nimport AppProvider from './hooks';\n\nconst App: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactGA from 'react-ga';\n\nimport Clarity from '@microsoft/clarity';\n\nimport App from './App';\n\nClarity.init('q5tpwznrsw');\n\nconst TRACKING_ID = 'G-1K2L0XF13L';\nReactGA.initialize(TRACKING_ID);\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n//\n"],"sourceRoot":""}