{"version":3,"sources":["assets/izzi/izzi-icon.png","states/ui.state.js","components/Button/OutlinedButton.jsx","components/ui/Loader.component.jsx","languages/enUS.language.js","languages/ptBR.language.js","languages/rafTranslations/pt-br.js","languages/index.js","assets/icons/Lol.svg","assets/svgs/green-discord.svg","components/SubscribeButton/style.js","components/SubscribeButton/index.jsx","components/UserLogo/index.jsx","components/Sidebar/Sidebar.jsx","assets/images/games/valorant/logo.png","components/ApplicationHeader/components/SelectGame/style.js","components/ApplicationHeader/components/SelectGame/index.jsx","components/ApplicationHeader/style.js","components/ApplicationHeader/index.jsx","hooks/useHotmart.js","utils/strings.utils.js","assets/svgs/AvatarIcon.svg","components/ui/LoaderSpinner.component.jsx","hooks/localStorage/useSection.js","utils/toast.utils.js","resources/config.js","resources/requester.js","components/ui/Toast.component.jsx","routes/analysisRoutes.jsx","routes/authenticationRoutes.jsx","routes/buildRoutes.jsx","layout/Default/style.js","layout/Default/index.jsx","routes/classRoutes.jsx","routes/coachesRoutes.jsx","routes/coachScheduleRoutes.jsx","routes/dashboardRoutes.jsx","routes/diagnosticRoutes.jsx","routes/maintenanceRoutes.jsx","routes/myStudentsRoutes.jsx","routes/performerRoutes.jsx","routes/profileRoutes.jsx","routes/rankingRoutes.jsx","routes/index.jsx","utils/routes.utils.js","App.jsx","styles/grid.jsx","styles/global.jsx","index.jsx","components/typography/Text.component.js","hooks/localStorage/useCurrentGame.js","actions/utils.action.js","actions/authentication.action.js","actions/diagnostic.action.js","actions/track.action.js","models/user.models.js","actions/user.action.js","states/initial.state.js","states/content.state.js","states/track.state.js","states/diagnostic.state.js","store/useGlobalHook.js","store/index.js","utils/mixpanel.utils.js","utils/games.utils.js","utils/subscription.utils.js","store/selectors/useUserSelector.js","styles/variables.jsx"],"names":["ui","theme","showLoader","language","useStyles","makeStyles","root","padding","backgroundColor","border","color","Color","primary","main","borderRadius","cursor","boxSizing","fontFamily","FontFamily","POPPINS","fontSize","fontWeight","FontWeight","REGULAR","display","alignItems","justifyContent","textAlign","icon","OutlinedButton","onClick","title","iconStart","iconEnd","styles","classes","type","className","style","mr","ml","position","width","height","zIndex","background","Loader","fallback","useGlobal","enUS","ptBR","dialogs","alert","deleteComment","description","deleteContent","deleteMarker","deleteUser","discord","forgotPassword","forgotPasswordError","generic","genericDecision","signIn","lol","paymentConfirmationError","register","registerProfile","resetPassword","signInToAccess","videoInfo","info","boughtSession","boughtCoachSub","pendingPayment","pendingSubscription","proSubscriber","scheduleSession","newSubscriber","cancelPlan","cancelPlanConfirm","buttons","access","addMarker","agree","back","cancel","changePassword","connected","confirm","copyPixKey","delete","edit","goBack","goToDashboard","goToDiscord","iamReady","last","learnWithPro","monthly","newContent","ok","registerOnApp","registerInformations","save","sendVerificationEmail","signUp","start","update","userTerms","continue","signPlan","buy","sendData","informations","discordId","labels","accessIZZIDiscord","actions","addComment","additionalInfo","admin","adminUsers","all","allf","allDone","analysis","areYouPrepared","as","champion","champions","changeSubscription","clickToConnect","coach","coaches","coachPresentation","coachProfile","comments","confirmPassword","contents","courses","createContent","createMarker","currentDifficulties","currentLevel","currentSeason","dashboard","desiredRank","doubts","editContent","email","evolution","expiresIn","expiredIn","favoriteLanes","flags","free","howKnowUs","hour","hours","knowIZZICoaches","lastMatches","lanes","logOut","lose","markers","matchToFirstAnalysis","matchup","moreGamesCommingSoon","myPlayers","name","never","noAdditionalDifficulty","noCommentsToShow","noIZZIContentToShow","noMatchesToShow","noMarkerSelected","noMarkersToShow","noPartnerContentToShow","noPlayers","noPublicContentToShow","otherDifficulties","overview","password","partnerProfile","notFound","partner","partners","patch","plan","plansValues","players","placementsStartedToBeMonitored","placementsChartData","pixQRCodePayment","profile","private","public","publics","rank","recommendedBy","riotApiUsage","role","searchBy","security","session","sessions","sessionsMade","sessionsMadeKey","sessionValues","signOut","startingAt","subscription","summoner","tier","time","toCommentSelectMarker","unauthorized","username","usernameIzzi","users","verifiedAccount","verifiedAccountDescription","videoLibrary","videoUrl","unverifiedAccount","unverifiedAccountDescription","you","youLearningWithPro","welcome","watchContentInVideoLibrary","whatDoYouNeedToDoToday","win","skipStep","trackTitle","chapters","content","chapter","tracks","subscriber","subscriberData","paymentMethod","subscriberAddress","cardData","creditCardName","creditCardNumber","creditCardExpiration","creditCardCvv","customerCpf","customerAddress","customerPhone","summarySubscription","price","days","recurrence","daysText","customerDdd","streetNumber","street","neighborhood","zipcode","mySubscriptions","renewPlan","canceled","noCancel","seller","support","summonerName","whatGoalsWithCoach","whatBestTime","whatUserDiscord","planPrice","payment","placeholders","discordUser","seletOneOrMany","goalsWithCoach","tooltips","pixCodeCopied","validators","nickanme","passwordsDontMatch","cpf","required","invalidDiscordId","valorant","invalidGamertag","screens","dontHaveAnAccount","signupFree","signin","titleLol","titleValorant","captionSignin","placeholderPassword","placeholderEmail","gaming","label","placeHolder","mainLane","izziGoal","goalsTitle","gameTag","information","fortnite","epicName","defineYourPath","firstStep","typeTheSummoner","otherGamesIndication","newGameIndication","greetings","knowUsBy","journeyBegins","success","haveAnAccount","user","captionSignup","buttonSignup","placeholderUserName","placeholderIzziObjective","izziObjective","signupTerms","signupTermsLink","toast","createComment","createCommentError","createContentError","createMarkerError","deleteCommentError","deleteContentError","deleteMarkerError","deleteUsers","deleteUsersError","getContentsError","getLolDataApiError","getLolHistoryApiError","getLolMatchesApiError","getLolMatchesWinsApiError","getLolPlacementsApiError","getMarkersError","getPartnersError","getUsersError","getTrackError","getTracksError","getTrackChaptersError","genericError","passwordUpdated","passwordUpdatedError","resetUsersPassword","resetUsersPasswordError","setContentVisibility","setContentVisibilityError","setUsersSubscription","setUsersSubscriptionError","setUsersPlayers","setUsersPlayersError","setUsersRole","setUsersRoleError","setDiagnosticError","profileUpdated","updateContent","updateContentError","verificationTokenResend","verificationTokenResendError","highlight","headshotPercent","positive","negative","damageByRound","winRateAttack","map","winRateDefense","weekdays","split","weekdaysShort","weekdaysMin","months","monthsShort","formats","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","languages","Container","styled","button","lime","props","margin","left","Title","h1","SubscribeButton","currentGame","redirectToHotmart","useHotmart","Mixpanel","track","game","UserLogo","size","useUserSelector","avatarIcon","image","AvatarIcon","Avatar","alt","src","gray","userIcon","marginTop","marginBottom","logo","menuItem","gameNameContainer","borderBottom","paddingBottom","flexDirection","outline","outlineOffset","gameLabel","arrowIcon","marginLeft","gameIcon","menuStyles","bmBurgerBars","bmBurgerBarsHover","opacity","bmCross","bmCrossButton","marginRight","bmItemList","bmItem","bmMenu","bmMenuWrap","top","bmOverlay","bottom","right","toggleMenu","isOpen","menuWrap","document","querySelector","setAttribute","Sidebar","hasSubscription","useCurrentGame","isLol","isValorant","globalActions","navigate","useNavigate","renderMenuItem","href","onStateChange","Box","IconLol","e","preventDefault","GreenDiscord","window","open","izziDiscord","logoIzzi","Popper","ContainerDrop","div","h2","Menu","OptionMenu","a","IconGame","img","TitleGameMenu","IconExpandLess","RiArrowUpSLine","IconExpandMore","RiArrowDownSLine","SelectGame","listGames","userId","pathname","useLocation","React","useState","anchorEl","setAnchorEl","setOpen","placement","setPlacement","izziVersion","version","handleClickOut","useEffect","gamesEnum","includes","newPlacement","gameMenuItems","codeName","localStorage","setItem","location","reload","id","transition","TransitionProps","Fade","Paper","ClickAwayListener","onClickAway","Grid","container","Button","event","currentTarget","prev","filter","g","getGameImg","getGameName","SignUpButton","SignInButton","header","minHeight","sectionHeader","gameInformation","gameInformationText","fontStyle","containerInformation","containerButton","dropdownText","menu","menuOption","clickable","select","notSelected","ApplicationHeader","games","setGames","isFortnite","activeSubscriptions","getActiveSubscriptions","_id","sub","length","mapGame","response","publisher","fetchGame","requester","error","setToast","data","mappedGames","path","isMenuActiveClass","slugs","some","slug","isMenuActive","selectable","sx","xs","md","component","Link","to","trigger","overlay","animation","sm","userQueryString","pageHotmartValorant","pageHotmartFortnite","pageHotmartLol","capitalize","string","charAt","toUpperCase","slice","toLowerCase","getRandomString","Math","random","toString","substring","isValidEmail","test","formatTags","tags","formatedTags","join","LoaderSpinner","useTheme","palette","getStoredUserId","getItem","getStoredToken","storeUserId","JSON","stringify","storeTokenId","tokenId","cleanSection","removeItem","messageKey","toastMessages","warning","completeMessage","mixpanelTokenStaging","process","REACT_APP_MIXPANEL_TOKEN_STAGING","mixpanelTokenProd","izzi","izziOld","izziWhatsapp","izziLpUrl","izziStorage","lolPatch","pagarmeKey","env","regulation","userTermsLink","getStreamFeed","VALORANT","appId","apiKey","LOL","FORTNITE","REACT_APP_STREAM_APP_FORTNITE_ID","REACT_APP_STREAM_API_FORTNITE_KEY","streamMainFeedId","REACT_APP_HOTMART_SUBSCRIPTION_FORTNITE","mixpanelToken","vendors","youtube","url","key","vimeo","token","lolDataDragonApi","lolDataDragonCdn","maintenanceMode","method","endpoint","vendor","params","baseURL","config","axios","request","then","catch","status","replace","clear","requesterFormData","headers","Authorization","interceptors","use","URL","urlToken","searchParams","get","isAuthRoute","configToReturn","Promise","reject","console","Toast","autoClose","hideProgressBar","newestOnTop","closeOnClick","closeButton","rtl","pauseOnFocusLoss","draggable","pauseOnHover","AnalysisResult","lazy","ValorantAnalysis","mappedClassRoutes","element","route","exact","ForgotPassword","ResetPassword","RegisterForm","SignIn","SignUp","mappedAuthRoutes","IzziBuild","Build","Content","MediaQuery","TABLET_DOWN","DefaultLayout","children","Class","Lesson","Library","layout","Coaches","Coach","mappedCoachesRoutes","CoachSchedule","Dashboard","mappedDashboardRoutes","DiagnosticResult","DiagnosticForm","DiagnosticFormSent","Maintenance","MyStudents","PerformerResult","Profile","RankingResult","mappedRoutes","authRoutes","classRoutes","coachesRoutes","coachScheduleRoutes","diagnosticRoutes","dashboardRoutes","performerRoutes","analysisRoutes","rankingRoutes","profileRoutes","myStudentsRoutes","maintenanceRoutes","buildRoutes","routeObject","Element","Layout","routeProps","AppRoutes","byPassRoutes","useSection","loadingUser","setLoadingUser","fetchData","resignin","history","replaceState","isPublicRoute","fetchUserData","setUserContext","storedUserId","App","GridCSS","css","TABLET_UP","DESKTOP_UP","LARGE_DESKTOP","Device","GlobalStyle","createGlobalStyle","Sentry","dsn","environment","release","integrations","Integrations","BrowserTracing","tracesSampleRate","ReactDOM","render","ThemeProvider","createTheme","getElementById","Text","variant","setCurrentGame","gameName","setAuthAndUser","store","getMainGame","cleanStorage","cleanUser","Object","entries","forEach","gameKey","RegExp","availableGames","dateDiagnostic","addInStore","context","item","contextStore","state","options","setState","removeFromStore","itemId","itemIndex","findIndex","i","updateInStore","setInStore","property","value","credentials","isSubscriber","people","set","$username","$email","$subscriber","identify","ads","result","resultData","$ads","message","resetPasswordPayload","cleanDiagnostic","diagnostic","selectDiagnostic","sendDiagnosticRequest","diagnosticData","userNickname","setSalesButtonClicked","diagnosticId","salesButtonClicked","getDiagnostic","getTrackChapters","trackId","registerType","freeze","ADMIN","COACH","SELLER","PLAYER","BASIC","COMPLETE","VERIFIED","avatar","discriminator","verified","goals","active","setUserGame","setUser","lolProfile","callback","setShowLoader","registerPayload","setAlertDialog","updateProfile","profilePayload","updatePassword","passwordPayload","resendVerificationToken","initialState","selectedTrack","isLoading","diagnostRequestSentSuccess","newState","this","listeners","listener","useCustom","newListener","push","associateActions","associatedActions","keys","bind","useGlobalHook","initial","mixpanel","init","envCheck","alias","values","userObj","date","Date","subscriptions","modalDescriptionLOL","modalDescriptionVALORANT","isPremium","isAdmin","isCoach","light","sunsetOrange","yellow","volcano","red","purple","TABLET","DESKTOP","MOBILE","MINI_MOBILE","SMALL_MOBILE","LARGE_MOBILE_UP","LARGE_MOBILE_WIDTH_UP","SMALL_TABLET_WIDTH_UP","DESKTOP_DOWN","MEDIUM_DESKTOP","UP_MEDIUM_DESKTOP","SMALL_MEDIUM_DESKTOP","UP_SMALL_MEDIUM_DESKTOP","SMALL_PADDING_MEDIUM_DESKTOP","SMALL_DESKTOP_UP","MEDIUM_DESKTOP_UP","LARGE_DESKTOP_UP","SMALL_SMALL_MOBILE","SOURCE_SANS_PRO","RALEWAY","RADLEY","HYEON","QUICKSAND","LIGHT","MEDIUM","SEMI_BOLD","BOLD","EXTRA_BOLD"],"mappings":"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","file":"static/js/main.d831e49a.chunk.js","sourcesContent":["export default \"data:image/png;base64,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\"","const ui = {\r\n theme: 'izzi',\r\n showLoader: false,\r\n language: 'ptBR',\r\n};\r\n\r\nexport default ui;\r\n","import React from 'react';\r\n\r\nimport { Box, makeStyles } from '@material-ui/core';\r\nimport { Color, FontFamily, FontWeight } from '@styles/variables';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n padding: '4px 16px',\r\n backgroundColor: 'transparent',\r\n border: ({ color }) => `solid 1px ${color || Color.primary.main}`,\r\n color: ({ color }) => color || Color.primary.main,\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n boxSizing: 'border-box',\r\n fontFamily: FontFamily.POPPINS,\r\n fontSize: 14,\r\n fontWeight: FontWeight.REGULAR,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n textAlign: 'start',\r\n },\r\n icon: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n});\r\n\r\nconst OutlinedButton = ({\r\n onClick,\r\n title,\r\n iconStart,\r\n iconEnd,\r\n styles = {},\r\n color,\r\n}) => {\r\n const classes = useStyles({ color });\r\n\r\n return (\r\n \r\n {iconStart && (\r\n \r\n {iconStart}\r\n \r\n )}\r\n {title}\r\n {iconEnd && (\r\n \r\n {iconEnd}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default OutlinedButton;\r\n","import React from 'react';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport useGlobal from '../../store';\r\nimport LoaderSpinnerComponent from './LoaderSpinner.component';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n position: 'fixed',\r\n width: '100%',\r\n height: '100%',\r\n zIndex: '9999',\r\n background: '#353741e3',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst Loader = ({ fallback = false }) => {\r\n const classes = useStyles();\r\n const [globalState] = useGlobal();\r\n const { showLoader } = globalState.ui;\r\n\r\n return showLoader || fallback ? (\r\n
\r\n \r\n
\r\n ) : null;\r\n};\r\n\r\nexport default Loader;\r\n","export const enUS = {};\r\n\r\nexport default null;\r\n","const common = {\r\n agree: 'Ok, entendi',\r\n all: 'Todos',\r\n cancel: 'Cancelar',\r\n confirm: 'Confirmar',\r\n delete: 'Excluir',\r\n description: 'Descrição',\r\n finalized: 'Finalizados',\r\n newGame: 'Novo jogo',\r\n ok: 'Ok',\r\n pending: 'Pendentes',\r\n register: 'Cadastrar',\r\n reviewed: 'Analizados',\r\n save: 'Salvar',\r\n update: 'Atualizar',\r\n};\r\n\r\nexport const ptBR = {\r\n dialogs: {\r\n alert: {\r\n deleteComment: {\r\n title: 'Excluir comentário!',\r\n description:\r\n 'Deseja excluir esse comentário?\\nEssa alteração não poderá ser desfeita!',\r\n },\r\n deleteContent: {\r\n title: 'Excluir conteúdo!',\r\n description:\r\n 'Deseja excluir o conteúdo {{key1}}?\\nEssa alteração não poderá ser desfeita!',\r\n },\r\n deleteMarker: {\r\n title: 'Excluir marcação!',\r\n description:\r\n 'Deseja excluir a marcação {{key1}}?\\nEssa alteração não poderá ser desfeita!',\r\n },\r\n deleteUser: {\r\n title: 'Excluir usuário!',\r\n description:\r\n 'Deseja excluir o usuário {{key1}}?\\nEssa alteração não poderá ser desfeita!',\r\n },\r\n discord: {\r\n title: 'Erro ao conectar com o Discord!',\r\n description:\r\n 'Não foi possível conectar sua conta ao Discord.\\nTente novamente!',\r\n },\r\n forgotPassword: {\r\n title: 'Esqueceu sua senha!',\r\n description:\r\n 'Enviamos instruções de como redefinir a sua senha para {{key1}}, verifique sua caixa de mensagens!',\r\n },\r\n forgotPasswordError: {\r\n title: 'Erro ao solicitar nova senha! ',\r\n description:\r\n 'Não foi possível validar seu usuário/senha.\\nVerifique seus dados e tente novamente!',\r\n },\r\n generic: {\r\n title: 'Oops!',\r\n description: 'Algo deu errado. Tente novamente!',\r\n },\r\n genericDecision: {\r\n title: 'Atenção!',\r\n description:\r\n 'Essa alteração não poderá ser desfeita.\\nDeseja continuar?',\r\n },\r\n signIn: {\r\n title: 'Erro ao logar!',\r\n description:\r\n 'Não foi possível validar seu usuário/senha.\\nVerifique seus dados e tente novamente!',\r\n },\r\n lol: {\r\n title: 'Erro ao conectar com o LoL!',\r\n description:\r\n 'Não foi possível buscar os dados do LoL.\\nTente novamente!',\r\n },\r\n paymentConfirmationError: {\r\n title: 'Erro ao confirmar pagamento!',\r\n description:\r\n 'Não conseguimos confirmar o pagamento pelo nosso sistema.\\nEntre em contato com nosso suporte!',\r\n },\r\n register: {\r\n title: 'Erro ao cadastrar!',\r\n description:\r\n 'Não foi possível validar seu cadastro.\\nVerifique seus dados e tente novamente!',\r\n },\r\n registerProfile: {\r\n title: 'Erro ao cadastrar seu perfil de jogador!',\r\n description:\r\n 'Não foi possível validar suas informações de jogador.\\nVerifique seus dados e tente novamente!',\r\n },\r\n resetPassword: {\r\n title: 'Resetar senha de usuário!',\r\n description:\r\n 'Deseja resetar a senha de {{key1}}?\\nUma nova senha será enviada para {{key2}}!',\r\n },\r\n signInToAccess: {\r\n title: 'Login necessário!',\r\n description:\r\n 'Você precisa estar logado para acessar esse conteúdo.\\nAcesse a plataforma para visualizá-lo!',\r\n },\r\n videoInfo: {\r\n title: 'Erro ao buscar vídeo!',\r\n description:\r\n 'Não foi possível buscar as informações do vídeo.\\nTente novamente!',\r\n },\r\n },\r\n info: {\r\n boughtSession: {\r\n title: 'Compra de sessão aprovada!',\r\n description:\r\n 'Seu/sua coach entrará em contato em até 24h para marcar o horário da sessão!\\nEm caso de dúvidas, mande uma mensagem no canal #coaching no nosso discord!',\r\n },\r\n boughtCoachSub: {\r\n title: 'Compra aprovada!',\r\n description:\r\n 'Sua compra foi aprovada com sucesso!\\nEm caso de dúvidas, mande uma mensagem no canal #coaching no nosso discord!',\r\n },\r\n pendingPayment: {\r\n title: 'Pagamento pendente!',\r\n description:\r\n 'Assim que o pagamento for validado enviaremos um email confirmando a compra!\\nEm caso de dúvidas, mande uma mensagem no canal #coaching no nosso discord!',\r\n },\r\n pendingSubscription: {\r\n title: 'Pagamento pendente!',\r\n description:\r\n 'Assim que o pagamento for validado enviaremos um email confirmando a assinatura!\\nEm caso de dúvidas, mande uma mensagem no canal #coaching no nosso discord!',\r\n },\r\n proSubscriber: {\r\n title: 'Conteúdo Premium!',\r\n description:\r\n 'Você ainda não tem acesso a esse conteúdo!\\nEntre em contato pelo discord!',\r\n },\r\n scheduleSession: {\r\n title: 'Sessões individuais de coaching',\r\n description:\r\n 'Deseja marcar ou adquirir sua sessão?\\nMande uma mensagem no canal #coaching no nosso discord!',\r\n },\r\n newSubscriber: {\r\n title: 'Assinatura efetuada com sucesso',\r\n description:\r\n 'Sua assinatura foi realizada com sucesso.\\nAgora você já pode desfrutar de conteúdos exclusivos!!\\nEm caso de dúvidas entre em contato com:\\n@seller',\r\n },\r\n cancelPlan: {\r\n title: 'Cancelar assinatura',\r\n description:\r\n 'Ao cancelar a assinatura você não será mais cobrado posteriormente e perderá o acesso aos conteúdos exclusivos após o dia:\\n@expiresIn.\\nTem certeza que deseja deixar de ter acesso aos conteúdos exclusivos desse plano?',\r\n },\r\n cancelPlanConfirm: {\r\n title: 'Assinatura cancelada',\r\n description:\r\n 'Sua assinatura foi cancelada e você não será mais cobrado(a) por esse plano!',\r\n },\r\n },\r\n },\r\n buttons: {\r\n access: 'Acessar',\r\n addMarker: 'Adicionar marcação',\r\n agree: common.agree,\r\n back: 'voltar',\r\n cancel: common.cancel,\r\n changePassword: 'Alterar senha',\r\n connected: 'Conectado',\r\n confirm: common.confirm,\r\n copyPixKey: 'Copiar chave PIX',\r\n delete: common.delete,\r\n edit: 'Editar',\r\n forgotPassword: 'Esqueceu sua senha?',\r\n goBack: 'Voltar',\r\n goToDashboard: 'Ir para o dashboard',\r\n goToDiscord: 'Ir para o Discord',\r\n iamReady: 'Estou pronto',\r\n last: 'Últimas',\r\n learnWithPro: 'Aprenda com um pro',\r\n monthly: 'Mensal',\r\n newContent: 'Novo conteúdo',\r\n ok: common.ok,\r\n registerOnApp: 'Efetuar cadastro',\r\n registerInformations: 'Registrar Informações',\r\n save: common.save,\r\n sendVerificationEmail: 'Enviar e-mail de verificação',\r\n signIn: 'Logar',\r\n signUp: 'Cadastrar',\r\n start: 'Começar',\r\n update: common.update,\r\n userTerms: 'Termos de uso e política de privacidade',\r\n continue: 'Continuar',\r\n signPlan: 'Assinar Plano',\r\n buy: 'Comprar',\r\n sendData: 'Enviar dados',\r\n },\r\n informations: {\r\n discordId:\r\n 'Digite o seu Discord e seu Discord ID separados de uma #. Exemplo Joao#1021',\r\n },\r\n labels: {\r\n accessIZZIDiscord: 'Acessar o discord da IZZI',\r\n actions: 'Ações',\r\n addComment: 'Adicione um comentário...',\r\n additionalInfo: 'Informações adicionais',\r\n admin: 'Administrador',\r\n adminUsers: 'Administrador / Usuários',\r\n all: 'Todos',\r\n allf: 'Todas',\r\n allDone: 'Tudo certo!',\r\n analysis: 'Análises',\r\n areYouPrepared: 'Você está preparado?',\r\n as: 'como',\r\n champion: 'Champion',\r\n champions: 'Champions',\r\n changeSubscription: 'Trocar assinatura',\r\n clickToConnect: 'Clique para conectar',\r\n coach: 'Coach',\r\n coaches: 'Coaches',\r\n coachPresentation: 'Apresentação do coach',\r\n coachProfile: 'Perfil do coach',\r\n comments: 'Comentários',\r\n confirmPassword: 'Confirmar senha',\r\n contents: 'Conteúdos',\r\n courses: 'Cursos',\r\n createContent: 'Criar conteúdo',\r\n createMarker: 'Criar marcação',\r\n currentDifficulties: 'Dificuldades atuais',\r\n currentLevel: 'Elo Atual',\r\n currentSeason: 'Temporada atual',\r\n dashboard: 'Dashboard',\r\n deleteUser: 'Excluir usuário',\r\n desiredRank: 'Elo desejado',\r\n discord: 'Discord',\r\n doubts: 'Dúvidas',\r\n editContent: 'Editar conteúdo',\r\n email: 'E-mail',\r\n evolution: 'Evolução',\r\n expiresIn: 'Expira em',\r\n expiredIn: 'Expirou em',\r\n favoriteLanes: 'Lanes favoritas',\r\n flags: 'Flags',\r\n free: 'Grátis',\r\n howKnowUs: 'Como conheceu a IZZI?',\r\n hour: 'hora',\r\n hours: 'horas',\r\n knowIZZICoaches: 'Conhecer os coaches da IZZI',\r\n lastMatches: 'Últimas partidas (Ranked Solo/Duo)',\r\n lanes: 'Lanes',\r\n learnWithPro: 'Aprenda com um profissional',\r\n logOut: 'Sair',\r\n lose: 'Derrota',\r\n markers: 'Marcações',\r\n matchToFirstAnalysis: 'Partida para a análise inicial',\r\n matchup: 'Matchup',\r\n moreGamesCommingSoon: 'Mais jogos em breve...',\r\n myPlayers: 'Meus alunos',\r\n name: 'Nome',\r\n never: 'Nunca',\r\n noAdditionalDifficulty: 'Nenhuma dificuldade adicional',\r\n noCommentsToShow:\r\n 'Essa marcação ainda não possui comentários, que tal comentar?',\r\n noIZZIContentToShow: 'Em breve lançaremos conteúdos exclusivos!',\r\n noMatchesToShow: 'Nenhuma partida rankeada para ser exibida...',\r\n noMarkerSelected: 'Nenhuma marcação selecionada!',\r\n noMarkersToShow: 'Esse vídeo ainda não possui marcações, que tal começar?',\r\n noPartnerContentToShow: 'Nenhuma conteúdo da academia para ser exibido...',\r\n noPlayers: 'Nenhum aluno vinculado...',\r\n noPublicContentToShow: 'Nenhum conteúdo público para ser exibido...',\r\n otherDifficulties: 'Outras dificuldades',\r\n overview: 'Visão geral',\r\n password: 'Senha',\r\n partnerProfile: 'Perfil da academia',\r\n notFound: 'Página não encontrada',\r\n partner: 'Academia',\r\n partners: 'Academias',\r\n patch: 'Patch',\r\n plan: 'Plano',\r\n plansValues: 'Valores dos planos',\r\n players: 'Jogadores',\r\n placementsStartedToBeMonitored: 'Sua evolução começou a ser monitorada!',\r\n placementsChartData: 'O gráfico será preechido diariamente com seus PDL',\r\n pixQRCodePayment: 'Utilize o QRCode para realizar o pagamento:',\r\n profile: 'Perfil',\r\n private: 'Privado',\r\n public: 'Público',\r\n publics: 'Públicos',\r\n rank: 'Rank',\r\n recommendedBy: 'Recomendado por',\r\n resetPassword: 'Resetar password',\r\n riotApiUsage:\r\n 'A IZZI Gaming não é endossada pela Riot Games e não reflete as visões ou opiniões da Riot Games ou de qualquer pessoa oficialmente envolvida na produção ou gerenciamento de propriedades da Riot Games. Riot Games e todas as propriedades associadas são marcas comerciais ou marcas registradas da Riot Games, Inc.',\r\n role: 'Tipo',\r\n searchBy: 'Pesquise por título',\r\n security: 'Segurança',\r\n session: 'Sessão',\r\n sessions: 'Sessões',\r\n sessionsMade: 'Sessões realizadas',\r\n sessionsMadeKey: '{{key}} sessões realizadas',\r\n sessionValues: 'Valores das sessões',\r\n signOut: 'Sign Out',\r\n startingAt: 'A partir de',\r\n subscription: 'Assinatura',\r\n summoner: 'Nome de invocador no LoL',\r\n tier: 'Tier',\r\n time: 'Tempo',\r\n title: 'Título',\r\n toCommentSelectMarker: 'Para comentar selecione um marcador!',\r\n type: 'Tipo',\r\n unauthorized: 'Acesso negado',\r\n username: 'Nome de usuário',\r\n usernameIzzi: 'Nome de usuário na IZZI',\r\n users: 'Usuários',\r\n verifiedAccount: 'Conta verificada!',\r\n verifiedAccountDescription:\r\n 'Acesse a plataforma e aproveite toda a experiência IZZI!',\r\n videoLibrary: 'Biblioteca de vídeos',\r\n videoUrl: 'Vídeo url',\r\n unverifiedAccount: 'Conta não verificada!',\r\n unverifiedAccountDescription:\r\n 'Não foi possível verificar sua conta! Realize uma nova solicitação de validação no seu perfil!',\r\n you: 'Você',\r\n youLearningWithPro: 'Você aprendendo com um profissional',\r\n welcome: 'Bem-vindo!',\r\n watchContentInVideoLibrary:\r\n 'Assistir a um conteúdo na biblioteca de vídeos',\r\n whatDoYouNeedToDoToday: 'O que voce precisa fazer hoje?',\r\n win: 'Vitória',\r\n skipStep: 'Pular esta etapa',\r\n trackTitle: 'Trilha de conteúdos',\r\n chapters: 'Seções da Trilha',\r\n content: 'Conteúdo',\r\n chapter: 'Seção',\r\n tracks: 'Trilhas',\r\n subscriber: 'Assinatura',\r\n subscriberData: 'Dados do assinante',\r\n paymentMethod: 'Método de pagamento',\r\n subscriberAddress: 'Endereço do assinante',\r\n cardData: 'Dados do cartão de crédito',\r\n creditCardName: 'Nome no cartão de crédito',\r\n creditCardNumber: 'Número do cartão (XXXX XXXX XXXX XXXX)',\r\n creditCardExpiration: 'Expiração do cartão (XX/XX)',\r\n creditCardCvv: 'Código CVV do cartão (XXX)',\r\n customerCpf: 'CPF/CNPJ',\r\n customerAddress: 'Endereço de cobrança do assinante',\r\n customerPhone: 'Número de contato do assinante',\r\n summarySubscription: 'Resumo da Assinatura',\r\n price: 'Valor',\r\n days: 'dias',\r\n recurrence: 'Recorrência',\r\n daysText: 'A cada @ dias',\r\n customerDdd: 'DDD (XXX)',\r\n streetNumber: 'Número',\r\n street: 'Endereço',\r\n neighborhood: 'Bairro',\r\n zipcode: 'CEP',\r\n mySubscriptions: 'Minhas assinaturas',\r\n cancelPlan: 'Cancelar Plano',\r\n renewPlan: 'Renovar Assinatura',\r\n canceled: 'Cancelado',\r\n cancel: 'Cancelar',\r\n noCancel: 'Não Cancelar',\r\n seller: 'Vendedor',\r\n support: 'Suporte',\r\n summonerName: 'Nome do invocador',\r\n whatGoalsWithCoach: 'Quais os seus objetivos com o Coach?',\r\n whatBestTime: 'Qual o melhor período para a sessão?',\r\n whatUserDiscord: 'Qual o seu usuário no Discord?',\r\n planPrice: '{{key}}/mês',\r\n payment: 'Pagamento',\r\n },\r\n placeholders: {\r\n discordUser: 'Insira o seu usuário no Discord',\r\n seletOneOrMany: 'Selecione um ou mais',\r\n goalsWithCoach: 'Insira os seus objetivos com o Coach',\r\n },\r\n tooltips: {\r\n pixCodeCopied: 'Chave PIX Copiada!',\r\n },\r\n validators: {\r\n email: 'E-mail inválido!',\r\n nickanme: 'Nome de invocador precisa ter no mínimo 3 caracteres!',\r\n password: 'A senha precisa ter no mínimo 6 caracteres!',\r\n passwordsDontMatch: 'As senhas não coincidem!',\r\n cpf: 'CPF ou CNPJ inválido',\r\n required: 'Campo obrigatório',\r\n discord: {\r\n invalidDiscordId: 'Usuário Discord inválido. Exemplo João#0267',\r\n },\r\n valorant: {\r\n invalidGamertag: 'Gamertag inválida. Exemplo João#BR1',\r\n },\r\n },\r\n screens: {\r\n signIn: {\r\n dontHaveAnAccount: 'Não possui uma conta?',\r\n signupFree: 'Cadastre-se grátis',\r\n signin: 'Logar',\r\n title:\r\n 'Evolua sua Gameplay com ajuda da tecnologia e dos melhores players do Brasil',\r\n titleLol: 'Faça seu Cadastro e Peça seu Diagnóstico',\r\n titleValorant:\r\n 'Cadastre-se Grátis e receba uma Análise das suas últimas Partidas Ranqueadas',\r\n captionSignin: 'Entre na plataforma',\r\n email: 'Email',\r\n password: 'Senha',\r\n placeholderPassword: 'Insira sua senha',\r\n placeholderEmail: 'Insira seu email',\r\n },\r\n gaming: {\r\n lol: {\r\n summoner: {\r\n label: 'Nome de Invocador *',\r\n placeHolder: 'Insira seu nome de invocador',\r\n },\r\n desiredRank: {\r\n label: 'Meu Objetivo na Season',\r\n placeHolder: 'Selecione um ELO de objetivo',\r\n },\r\n currentDifficulties: {\r\n label: 'Minhas principais dificuldades',\r\n placeHolder: 'Selecione as dificuldades',\r\n },\r\n mainLane: {\r\n label: 'Minha lane principal',\r\n placeHolder: 'Selecione a lane principal',\r\n },\r\n izziGoal: {\r\n label: 'Meu objetivo na IZZI',\r\n placeHolder: 'Conte-nos os seus objetivos com a IZZI',\r\n },\r\n },\r\n goalsTitle: 'Definições de objetivo',\r\n title: 'Nos conte o que você deseja evoluir',\r\n valorant: {\r\n gameTag: {\r\n label: 'Gamertag *',\r\n information:\r\n 'Digite o seu RIOT ID e sua TAG separados de uma #. Exemplo Joao#BR1',\r\n placeHolder: 'Insira a sua gamerTag (nome#tag)',\r\n },\r\n desiredRank: {\r\n label: 'Meu ranking desejado nesse Episódio/Ato',\r\n placeHolder: 'Selecione um ranking',\r\n },\r\n currentDifficulties: {\r\n label: 'Minhas dificuldades',\r\n placeHolder: 'Selecione as dificuldades',\r\n },\r\n izziGoal: {\r\n label: 'Meu objetivo na IZZI',\r\n placeHolder: 'Conte-nos os seus objetivos com a IZZI',\r\n },\r\n },\r\n fortnite: {\r\n epicName: {\r\n label: 'Nome de usuário na Epic',\r\n placeHolder: 'Insira o seu nome de usuário',\r\n },\r\n currentDifficulties: {\r\n label: 'Minhas dificuldades',\r\n placeHolder: 'Selecione as dificuldades',\r\n },\r\n izziGoal: {\r\n label: 'Meu objetivo na Hero Base Academy',\r\n placeHolder: 'Conte-nos os seus objetivos Hero Base Academy',\r\n },\r\n },\r\n },\r\n register: {\r\n defineYourPath:\r\n 'Escreva seu próprio caminho de vitórias junto com a IZZI!',\r\n discord:\r\n 'Conecte seu discord no botão abaixo para receber as notificações da IZZI!',\r\n firstStep:\r\n 'O primeiro passo é configurar seu perfil de player para garantir a melhor experiência na sua evolução.',\r\n typeTheSummoner:\r\n 'Escreva abaixo seu nome de invocador no League of Legends para identificarmos seu perfil e criarmos sua experiênica personalizada na IZZI',\r\n otherGamesIndication:\r\n 'Por enquanto, a IZZI tem suporte apenas para o LoL. Você é de outro jogo? Clique no link abaixo para sugerir os próximos games que entrarão na plataforma.',\r\n newGameIndication: 'Quero sugerir novos jogos para a IZZI!',\r\n greetings: 'A IZZI te deseja uma experência única de muita evolução!',\r\n knowUsBy: 'Conte como nos encontrou e se foi recomendado por alguém!',\r\n journeyBegins: 'Sua jornada começa agora!',\r\n success:\r\n 'Seu perfil foi configurado com sucesso e você já pode utilizar todos os recursos da plataforma!',\r\n },\r\n signUp: {\r\n haveAnAccount: 'Já possui uma conta?',\r\n user: 'Usuário',\r\n captionSignup: 'Cadastre-se com',\r\n signin: 'Entrar',\r\n buttonSignup: 'Cadastrar na IZZI',\r\n placeholderEmail: 'Digite o seu email',\r\n placeholderPassword: 'Crie a sua senha',\r\n placeholderUserName: 'Escolha seu nome de usuário',\r\n placeholderIzziObjective: 'O que você espera encontrar aqui?',\r\n izziObjective: 'Meu objetivo com a IZZI é:',\r\n signupTerms: 'Ao cadastrar, concordo que li e aceito os',\r\n signupTermsLink:\r\n 'termos de uso e políticas de privacidade da plataforma.',\r\n },\r\n tracks: {\r\n tracks: 'Trilhas',\r\n },\r\n },\r\n toast: {\r\n createComment: 'Comentário criado!',\r\n createCommentError: 'Erro ao criar comentário!',\r\n createContent: 'Conteúdo criado!',\r\n createContentError: 'Erro ao criar conteúdo!',\r\n createMarker: 'Marcação criada!',\r\n createMarkerError: 'Erro ao criar marcação!',\r\n deleteComment: 'Comentário excluído!',\r\n deleteCommentError: 'Erro ao excluir comentário!',\r\n deleteContent: 'Conteúdo excluído!',\r\n deleteContentError: 'Erro ao excluir conteúdo!',\r\n deleteMarker: 'Marcação excluída!',\r\n deleteMarkerError: 'Erro ao excluir marcação!',\r\n deleteUsers: 'Usuário excluído!',\r\n deleteUsersError: 'Erro ao excluir usuário!',\r\n getContentsError: 'Erro ao buscar conteúdos',\r\n getLolDataApiError: 'Erro ao buscar dados do LoL na DataDragon!',\r\n getLolHistoryApiError: 'Erro ao buscar histórico do LoL na Riot!',\r\n getLolMatchesApiError: 'Erro ao buscar partidas!',\r\n getLolMatchesWinsApiError: 'Erro ao buscar vitórias das partidas!',\r\n getLolPlacementsApiError: 'Erro ao buscar histórico de evolução!',\r\n getMarkersError: 'Erro ao buscar marcações!',\r\n getPartnersError: 'Erro ao carregar academias parceiras!',\r\n getUsersError: 'Erro ao carregar usuários!',\r\n getTrackError: 'Erro ao carregar trilhas!',\r\n getTracksError: 'Erro ao carregar trilha!',\r\n getTrackChaptersError: 'Erro ao carregar trilha!',\r\n genericError: 'Algo deu errado. Tente novamente!',\r\n passwordUpdated: 'Senha atualizada!',\r\n passwordUpdatedError: 'Erro ao atualizar senha!',\r\n resetUsersPassword: 'Senha do usuário resetada!',\r\n resetUsersPasswordError: 'Erro ao resetar senha do usuário!',\r\n setContentVisibility: 'Visibilidade do conteúdo atualizada!',\r\n setContentVisibilityError: 'Erro ao atualizar visibilidade do conteúdo!',\r\n setUsersSubscription: 'Assinatura do usuário atualizada!',\r\n setUsersSubscriptionError: 'Erro ao atualizar assinatura do usuário!',\r\n setUsersPlayers: 'Players do usuário atualizados!',\r\n setUsersPlayersError: 'Erro ao atualizar players do usuário!',\r\n setUsersRole: 'Role do usuário atualizada!',\r\n setUsersRoleError: 'Erro ao atualizar role do usuário!',\r\n setDiagnosticError: 'Erro ao buscar o diagnóstico!',\r\n profileUpdated: 'Dados do perfil atualizados!',\r\n updateContent: 'Conteúdo atualizado!',\r\n updateContentError: 'Erro ao atualizar conteúdo!',\r\n verificationTokenResend: 'E-mail de verificação enviado!',\r\n verificationTokenResendError: 'Erro ao enviar de verificação!',\r\n },\r\n highlight: {\r\n valorant: {\r\n headshotPercent: {\r\n positive: '{value}% é seu acerto na cabeça',\r\n negative: '{value}% é seu acerto na cabeça',\r\n },\r\n damageByRound: {\r\n positive: 'Você geralmente causa {value} de dano por round',\r\n negative: 'Você geralmente causa {value} de dano por round',\r\n },\r\n winRateAttack: {\r\n positive: 'Seu Win Rate atacando é de {value}%',\r\n negative: 'Seu Win Rate atacando é de {value}%',\r\n },\r\n map: {\r\n positive: '{value} é o seu melhor mapa',\r\n negative: '{value} é o seu pior mapa',\r\n },\r\n winRateDefense: {\r\n positive: 'Seu Win Rate defendendo é de {value}%',\r\n negative: 'Seu Win Rate defendendo é de {value}%',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default null;\r\n","export default {\r\n name: 'pt-br',\r\n weekdays:\r\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\r\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\r\n months:\r\n 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\r\n formats: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\r\n },\r\n relativeTime: {\r\n future: 'em %s',\r\n past: 'há %s',\r\n s: 'poucos segundos',\r\n m: 'um minuto',\r\n mm: '%d minutos',\r\n h: 'uma hora',\r\n hh: '%d horas',\r\n d: 'um dia',\r\n dd: '%d dias',\r\n M: 'um mês',\r\n MM: '%d meses',\r\n y: 'um ano',\r\n yy: '%d anos',\r\n },\r\n};\r\n","import ui from '../states/ui.state';\r\nimport * as languages from './languages';\r\nimport ptRafLanguage from './rafTranslations/pt-br';\r\n\r\nexport { ptRafLanguage };\r\nexport const getLanguage = () => languages[ui.language] || languages.ptBR;\r\n\r\nexport const language = getLanguage();\r\n","export default __webpack_public_path__ + \"static/media/Lol.be3a2ea5.svg\";","export default __webpack_public_path__ + \"static/media/green-discord.c8df42ae.svg\";","import styled from 'styled-components';\r\n\r\nimport { Color, FontFamily } from '../../styles/variables';\r\n\r\nexport const Container = styled.button`\r\n background: ${Color.lime[12]};\r\n box-shadow: 0px 0px 8px rgba(111, 255, 1, 0.4);\r\n border-radius: 4px;\r\n padding: 4px 16px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n border: 0;\r\n cursor: pointer;\r\n width: 100%;\r\n margin-bottom: ${(props) => (props.margin ? '20px' : '0px')};\r\n margin-left: ${(props) => (props.left ? '20px' : '0px')};\r\n`;\r\n\r\nexport const Title = styled.h1`\r\n font-family: ${FontFamily.POPPINS};\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 14px;\r\n`;\r\n","import React from 'react';\r\n\r\nimport useHotmart from '@src/hooks/useHotmart';\r\nimport Mixpanel from '@utils/mixpanel.utils';\r\n\r\nimport { Container, Title } from './style';\r\n\r\nconst SubscribeButton = ({ margin, left, currentGame }) => {\r\n const { redirectToHotmart } = useHotmart();\r\n\r\n const clickButton = () => {\r\n Mixpanel().track(`Click Subscription Menu`, {\r\n game: currentGame,\r\n });\r\n\r\n redirectToHotmart();\r\n };\r\n return (\r\n clickButton()}>\r\n Seja Assinante\r\n \r\n );\r\n};\r\n\r\nexport default SubscribeButton;\r\n","import React from 'react';\r\n\r\nimport Avatar from '@mui/material/Avatar';\r\nimport useUserSelector from '@src/store/selectors/useUserSelector';\r\nimport { Color } from '@styles/variables';\r\n\r\nimport AvatarIcon from '../../assets/svgs/AvatarIcon.svg';\r\n\r\nconst UserLogo = ({ onClick, classes, size = 40 }) => {\r\n const { user } = useUserSelector();\r\n const avatarIcon = user?.profile?.image || AvatarIcon;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default UserLogo;\r\n","import React from 'react';\r\nimport { slide as Menu } from 'react-burger-menu';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport OutlinedButton from '@components/Button/OutlinedButton';\r\nimport useCurrentGame from '@hooks/localStorage/useCurrentGame';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ArrowForwardIosSharp from '@material-ui/icons/ArrowForwardIosSharp';\r\nimport Box from '@mui/material/Box';\r\nimport { izziDiscord } from '@resources/config';\r\nimport { Color } from '@styles/variables';\r\n\r\nimport IconLol from '../../assets/icons/Lol.svg';\r\nimport ValorantLogo from '../../assets/images/games/valorant/logo.png';\r\nimport logoIzzi from '../../assets/izzi/izzi-icon.png';\r\nimport GreenDiscord from '../../assets/svgs/green-discord.svg';\r\nimport useGlobal from '../../store';\r\nimport SubscribeButton from '../SubscribeButton';\r\nimport UserLogo from '../UserLogo';\r\nimport './Sidebar.css';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n userIcon: {\r\n marginTop: '16px',\r\n marginBottom: '14px',\r\n },\r\n logo: {\r\n width: 40,\r\n cursor: 'pointer',\r\n },\r\n menuItem: {\r\n fontSize: '20px',\r\n },\r\n gameNameContainer: {\r\n borderBottom: `1px solid ${Color.gray[8]}`,\r\n width: '100%',\r\n paddingBottom: '12px',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n flexDirection: 'column',\r\n marginBottom: '56px',\r\n '&:focus': {\r\n outline: '2px solid transparent',\r\n outlineOffset: 2,\r\n },\r\n },\r\n gameLabel: {\r\n fontSize: '14px',\r\n color: Color.gray[7],\r\n marginBottom: '6px',\r\n },\r\n arrowIcon: {\r\n marginLeft: '16px',\r\n },\r\n currentGame: {\r\n fontSize: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n gameIcon: {\r\n width: '26px',\r\n height: '26px',\r\n },\r\n}));\r\n\r\nconst menuStyles = {\r\n bmBurgerBars: {\r\n background: Color.gray[1],\r\n },\r\n bmBurgerBarsHover: {\r\n opacity: 0.7,\r\n },\r\n bmCross: {\r\n background: Color.gray[1],\r\n },\r\n bmCrossButton: {\r\n marginTop: '8px',\r\n marginRight: '8px',\r\n },\r\n bmItemList: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n },\r\n bmItem: {\r\n marginTop: '0px',\r\n marginBottom: '30px',\r\n fontSize: '20px',\r\n },\r\n bmMenu: {\r\n backgroundColor: Color.gray[9],\r\n },\r\n bmMenuWrap: {\r\n width: '80%',\r\n top: 0,\r\n },\r\n bmOverlay: {\r\n backgroundColor: Color.gray[8],\r\n opacity: 0.2,\r\n top: 1,\r\n bottom: 1,\r\n left: 1,\r\n right: 1,\r\n },\r\n};\r\n\r\nconst toggleMenu = ({ isOpen }) => {\r\n const menuWrap = document.querySelector('.bm-menu-wrap');\r\n if (isOpen) {\r\n menuWrap.setAttribute('aria-hidden', false);\r\n } else {\r\n menuWrap.setAttribute('aria-hidden', true);\r\n }\r\n};\r\n\r\nconst Sidebar = ({ user, hasSubscription, currentGame }) => {\r\n const classes = useStyles();\r\n const { isLol, isValorant } = useCurrentGame();\r\n const [, globalActions] = useGlobal();\r\n const navigate = useNavigate();\r\n\r\n const { logOut } = globalActions;\r\n\r\n const handleCoachesClickMenuItem = (e) => {\r\n e.preventDefault();\r\n navigate('/coaches');\r\n };\r\n\r\n const handleClickLogout = (e) => {\r\n e.preventDefault();\r\n logOut(navigate);\r\n };\r\n\r\n const renderCurrentGame = () => (\r\n \r\n {isLol && (\r\n <>\r\n \"logo\r\n League of Legends\r\n \r\n )}\r\n {isValorant && (\r\n <>\r\n \r\n Valorant\r\n \r\n )}\r\n \r\n );\r\n\r\n const renderMenuItem = (label, href, onClick) => (\r\n \r\n {label} \r\n \r\n );\r\n\r\n return (\r\n <>\r\n {user ? (\r\n \r\n \r\n\r\n \r\n Jogo\r\n {renderCurrentGame()}\r\n \r\n\r\n {!hasSubscription && (\r\n \r\n )}\r\n\r\n {renderMenuItem('Home', '/home')}\r\n {renderMenuItem('Evolução', '/analysis')}\r\n {isLol && renderMenuItem('Guias', '/izzi-build/lol')}\r\n {renderMenuItem('Cursos', '/classes')}\r\n {renderMenuItem('Biblioteca', '/library')}\r\n {isLol && renderMenuItem('Coaches', '/', handleCoachesClickMenuItem)}\r\n {user &&\r\n user.role !== 'PLAYER' &&\r\n isLol &&\r\n renderMenuItem('Meus Alunos', '/my-students')}\r\n {renderMenuItem('Meu Perfil', '/profile')}\r\n {renderMenuItem('Sair', '/', handleClickLogout)}\r\n\r\n }\r\n onClick={() => {\r\n window.open(izziDiscord, '_blank');\r\n }}\r\n title=\"Acesse nosso Discord\"\r\n />\r\n \r\n ) : (\r\n \r\n \r\n {renderMenuItem('Cadastre-se na IZZI', '/signup')}\r\n {renderMenuItem('Entrar', '/signin')}\r\n\r\n }\r\n onClick={() => {\r\n window.open(izziDiscord, '_blank');\r\n }}\r\n title=\"Acesse nosso Discord\"\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Sidebar;\r\n","export default \"data:image/png;base64,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\"","import { RiArrowDownSLine, RiArrowUpSLine } from 'react-icons/ri';\r\n\r\nimport Popper from '@mui/material/Popper';\r\nimport styled from 'styled-components';\r\n\r\nimport { Color, FontFamily, FontWeight } from '../../../../styles/variables';\r\n\r\nexport const Container = styled(Popper)`\r\n z-index: 1;\r\n position: absolute;\r\n`;\r\n\r\nexport const ContainerDrop = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n img {\r\n width: 12px;\r\n height: 6px;\r\n margin-left: 12px;\r\n }\r\n\r\n img:first-child {\r\n width: 21px;\r\n height: 21px;\r\n }\r\n`;\r\n\r\nexport const Title = styled.h2`\r\n font-size: 14px;\r\n font-family: ${FontFamily.POPPINS};\r\n font-style: normal;\r\n font-weight: normal;\r\n color: #bfbfbf;\r\n text-transform: capitalize;\r\n\r\n margin-left: 13px;\r\n\r\n @media (max-width: 695px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Menu = styled.div`\r\n background: #262626;\r\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.7);\r\n border-radius: 4px;\r\n padding: 16px;\r\n\r\n a:first-child {\r\n margin-top: 10px;\r\n }\r\n\r\n a:last-child {\r\n margin-bottom: 0px;\r\n }\r\n`;\r\n\r\nexport const OptionMenu = styled.a`\r\n display: flex;\r\n margin-bottom: 16px;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const IconGame = styled.img`\r\n height: 21px;\r\n width: 21px;\r\n margin-right: 7px;\r\n`;\r\n\r\nexport const TitleGameMenu = styled.h1`\r\n font-family: ${FontFamily.POPPINS};\r\n font-style: normal;\r\n font-weight: ${FontWeight.REGULAR};\r\n font-size: 14px;\r\n line-height: 22px;\r\n color: #ffffff;\r\n`;\r\n\r\nexport const IconExpandLess = styled(RiArrowUpSLine)`\r\n font-size: 24px;\r\n color: ${Color.gray[1]};\r\n`;\r\nexport const IconExpandMore = styled(RiArrowDownSLine)`\r\n font-size: 24px;\r\n color: ${Color.gray[1]};\r\n`;\r\n","import React, { useEffect } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\n\r\nimport useCurrentGame from '@hooks/localStorage/useCurrentGame';\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\r\nimport Fade from '@mui/material/Fade';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport { gamesEnum } from '@utils/games.utils';\r\n\r\nimport { version } from '../../../../../package.json';\r\nimport IconLol from '../../../../assets/icons/Lol.svg';\r\nimport {\r\n Container,\r\n ContainerDrop,\r\n IconExpandLess,\r\n IconExpandMore,\r\n IconGame,\r\n Menu,\r\n OptionMenu,\r\n Title,\r\n TitleGameMenu,\r\n} from './style';\r\n\r\nconst SelectGame = ({ listGames, userId }) => {\r\n const { pathname } = useLocation();\r\n const navigate = useNavigate();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [open, setOpen] = React.useState(false);\r\n const [placement, setPlacement] = React.useState();\r\n const izziVersion = `izzi-gaming-${version}`;\r\n const { currentGame } = useCurrentGame();\r\n\r\n const handleClick = (newPlacement) => (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setOpen((prev) => placement !== newPlacement || !prev);\r\n setPlacement(newPlacement);\r\n };\r\n\r\n const getGameImg = (game) =>\r\n listGames.filter((g) => g.codeName === game)[0]?.logo ?? IconLol;\r\n\r\n const getGameName = (game) =>\r\n listGames.filter((g) => g.codeName === game)[0]?.name ??\r\n 'League of Legends';\r\n\r\n const settingGameOnStorage = (game) => {\r\n setOpen(false);\r\n\r\n if (currentGame !== game) {\r\n localStorage.setItem(`${izziVersion}-current-game`, game);\r\n if (pathname.includes('classes')) {\r\n navigate('/classes');\r\n if (pathname === '/classes') {\r\n window.location.reload();\r\n }\r\n } else if (pathname.includes('/library/')) {\r\n navigate('/library');\r\n } else if (pathname.includes('izzi-build') && game !== gamesEnum.lol) {\r\n navigate('/home');\r\n } else if (pathname.includes('analysis')) {\r\n navigate(`/analysis/${game}/${userId}`);\r\n if (pathname === `/analysis/${game}/${userId}`) {\r\n window.location.reload();\r\n }\r\n } else {\r\n window.location.reload();\r\n }\r\n }\r\n };\r\n\r\n const handleClickOut = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (currentGame === gamesEnum.valorant && pathname.includes('coaches')) {\r\n navigate('/home');\r\n }\r\n }, [currentGame, pathname]);\r\n\r\n const gameMenuItems = listGames.map((e) => (\r\n settingGameOnStorage(e.codeName)} key={e.id}>\r\n \r\n {e.name}\r\n \r\n ));\r\n\r\n return (\r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n {gameMenuItems}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default SelectGame;\r\n","import styled from 'styled-components';\r\n\r\nimport { Color, FontFamily } from '../../styles/variables';\r\n\r\nexport const SignUpButton = styled.button`\r\n display: flex;\r\n width: 170px;\r\n height: 30px;\r\n background: ${Color.lime[12]};\r\n box-shadow: 0px 0px 8px rgba(111, 255, 1, 0.4);\r\n border-radius: 4px;\r\n align-items: center;\r\n justify-content: center;\r\n border: 0;\r\n cursor: pointer;\r\n text-align: center;\r\n font-family: ${FontFamily.POPPINS};\r\n font-size: 14px;\r\n color: ${Color.gray[9]};\r\n`;\r\n\r\nexport const SignInButton = styled.div`\r\n font-size: 14px;\r\n font-family: ${FontFamily.POPPINS};\r\n color: ${Color.gray[2]};\r\n cursor: pointer;\r\n margin: 0px 10px 0px 20px;\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\n\r\nimport useCurrentGame from '@hooks/localStorage/useCurrentGame';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Box from '@mui/material/Box';\r\nimport requester from '@resources/requester';\r\nimport useUserSelector from '@src/store/selectors/useUserSelector';\r\nimport { FontFamily } from '@styles/variables';\r\nimport { getActiveSubscriptions } from '@utils/subscription.utils';\r\nimport setToast from '@utils/toast.utils';\r\nimport Dropdown from 'rc-dropdown';\r\nimport 'rc-dropdown/assets/index.css';\r\nimport Menu, { Divider, Item as MenuItem } from 'rc-menu';\r\n\r\nimport logoIzzi from '../../assets/izzi/izzi-icon.png';\r\nimport useGlobal from '../../store';\r\nimport Sidebar from '../Sidebar/Sidebar';\r\nimport SubscribeButton from '../SubscribeButton';\r\nimport Text from '../typography/Text.component';\r\nimport UserLogo from '../UserLogo';\r\nimport SelectGame from './components/SelectGame';\r\nimport { SignInButton, SignUpButton } from './style';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n header: {\r\n width: '100%',\r\n background: '#262626',\r\n padding: '0px 21px',\r\n position: 'fixed',\r\n zIndex: 2,\r\n display: 'flex',\r\n minHeight: 54,\r\n alignItems: 'center',\r\n },\r\n sectionHeader: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n\r\n logo: {\r\n width: 40,\r\n cursor: 'pointer',\r\n },\r\n gameInformation: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n marginLeft: 40,\r\n },\r\n gameInformationText: {\r\n fontSize: 14,\r\n fontFamily: FontFamily.POPPINS,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n color: '#BFBFBF',\r\n\r\n marginLeft: 13,\r\n\r\n '@media (max-width: 695px)': {\r\n display: 'none',\r\n },\r\n },\r\n containerInformation: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n containerButton: {\r\n alignItems: 'center',\r\n display: 'flex',\r\n\r\n '@media (max-width: 695px)': {\r\n display: 'none',\r\n },\r\n },\r\n buttons: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n fontSize: 14,\r\n fontFamily: FontFamily.POPPINS,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n color: '#BFBFBF',\r\n cursor: 'pointer',\r\n margin: '0px 10px',\r\n marginTop: 20,\r\n },\r\n dropdownText: {\r\n fontSize: 14,\r\n fontFamily: FontFamily.POPPINS,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n cursor: 'pointer',\r\n margin: 5,\r\n },\r\n user: {\r\n width: 40,\r\n height: 40,\r\n marginLeft: 40,\r\n borderRadius: '50%',\r\n cursor: 'pointer',\r\n },\r\n menu: {\r\n width: 40,\r\n\r\n '@media (min-width: 695px)': {\r\n display: 'none',\r\n },\r\n },\r\n menuOption: {\r\n width: '100%',\r\n height: 3,\r\n backgroundColor: '#8DFF35',\r\n margin: '7px 0px',\r\n },\r\n clickable: {\r\n cursor: 'pointer',\r\n },\r\n select: {\r\n background: '#3BE529',\r\n width: '100%',\r\n height: 4,\r\n marginTop: 16,\r\n },\r\n notSelected: {\r\n background: '#26262',\r\n width: '100%',\r\n height: 4,\r\n marginTop: 16,\r\n },\r\n}));\r\n\r\nconst ApplicationHeader = () => {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [, globalActions] = useGlobal();\r\n const [games, setGames] = useState([]);\r\n\r\n const { logOut } = globalActions;\r\n const { user } = useUserSelector();\r\n const { currentGame, isLol, isFortnite } = useCurrentGame();\r\n const activeSubscriptions = getActiveSubscriptions(user);\r\n const userId = user?._id;\r\n\r\n const hasSubscription =\r\n activeSubscriptions.filter((sub) => sub.game === currentGame).length > 0;\r\n\r\n const mapGame = (response) => ({\r\n name: response.name,\r\n codeName: response.codeName,\r\n publisher: response.publisher,\r\n logo: response.logo,\r\n });\r\n\r\n const fetchGame = async () => {\r\n const [error, response] = await requester('GET', `/v1/public/games`);\r\n\r\n if (error) {\r\n setToast('error', 'Erro ao carregar games.');\r\n } else {\r\n const { data } = response;\r\n const mappedGames = data.map(mapGame);\r\n setGames(mappedGames);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGame();\r\n }, []);\r\n\r\n const path = window.location.pathname;\r\n\r\n const isMenuActive = (slugs) => slugs.some((slug) => path.includes(slug));\r\n const isMenuActiveClass = (slugs) =>\r\n isMenuActive(slugs) ? classes.select : classes.notSelected;\r\n\r\n const menu = (\r\n \r\n navigate('/profile')}\r\n >\r\n Meu Perfil\r\n \r\n \r\n {user && user.role !== 'PLAYER' && isLol && (\r\n <>\r\n navigate('/my-students')}\r\n >\r\n Meus Alunos\r\n \r\n \r\n \r\n )}\r\n logOut(navigate)}\r\n >\r\n Sair\r\n \r\n \r\n );\r\n\r\n const logoRedirect = () => {\r\n if (user) navigate('/home');\r\n else navigate('/signin');\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n {user && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {user ? (\r\n \r\n
\r\n \r\n Home\r\n
\r\n \r\n\r\n {!isFortnite && (\r\n \r\n Evolução\r\n
\r\n \r\n )}\r\n\r\n {isLol && (\r\n \r\n Guias\r\n
\r\n \r\n )}\r\n\r\n \r\n Cursos\r\n
\r\n \r\n\r\n \r\n Biblioteca\r\n
\r\n \r\n {isLol && (\r\n \r\n Coaches\r\n
\r\n \r\n )}\r\n
\r\n {!hasSubscription && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n navigate('/signup')}>\r\n Cadastre-se na IZZI\r\n \r\n navigate('/signin')}>\r\n Entrar\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ApplicationHeader;\r\n","import useUserSelector from '@src/store/selectors/useUserSelector';\r\n\r\nimport {\r\n pageHotmartFortnite,\r\n pageHotmartLol,\r\n pageHotmartValorant,\r\n} from '../resources/config';\r\nimport useCurrentGame from './localStorage/useCurrentGame';\r\n\r\nexport default () => {\r\n const { isValorant, isFortnite } = useCurrentGame();\r\n const { user } = useUserSelector();\r\n\r\n const redirectToHotmart = () => {\r\n const userQueryString = user ? `&email=${user.profile.email}` : '';\r\n\r\n if (isValorant) {\r\n window.open(`${pageHotmartValorant}${userQueryString}`, '_blank');\r\n }\r\n\r\n if (isFortnite) {\r\n window.open(`${pageHotmartFortnite}${userQueryString}`, '_blank');\r\n }\r\n\r\n window.open(`${pageHotmartLol}${userQueryString}`, '_blank');\r\n };\r\n\r\n return { redirectToHotmart };\r\n};\r\n","export const capitalize = (string) => {\r\n if (typeof string !== 'string') return '';\r\n return `${string.charAt(0).toUpperCase()}${string.slice(1).toLowerCase()}`;\r\n};\r\n\r\nexport const getInitials = (name) => {\r\n const initials = name.match(/\\b\\w/g) || [];\r\n return ((initials.shift() || '') + (initials.pop() || '')).toUpperCase();\r\n};\r\n\r\nexport const getRandomString = () =>\r\n (Math.random() + 1).toString(36).substring(7);\r\n\r\nexport const truncate = (string, length) => {\r\n if (typeof string !== 'string') return '';\r\n return `${string.substring(0, length)}...`;\r\n};\r\n\r\nexport const replaceAll = (string, wordsObject) => {\r\n const re = new RegExp(Object.keys(wordsObject).join('|'), 'gi');\r\n return string.replace(re, (matched) => wordsObject[matched.toLowerCase()]);\r\n};\r\n\r\nexport const slugify = (text) =>\r\n text\r\n .toString()\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, '-')\r\n .replace(/\\//g, '-')\r\n .replace(/&/g, '-and-')\r\n .replace(/[^\\w-]+/g, '')\r\n .replace(/--+/g, '-');\r\n\r\nexport const isValidEmail = (email) => {\r\n if (\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\r\n email\r\n )\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const formatTags = (tags) => {\r\n let formatedTags = '#';\r\n formatedTags += tags.join(', #');\r\n return formatedTags;\r\n};\r\n","export default __webpack_public_path__ + \"static/media/AvatarIcon.a61ae994.svg\";","import React from 'react';\r\nimport LoaderSpinnerComponent from 'react-loader-spinner';\r\n\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nconst LoaderSpinner = ({\r\n width = 80,\r\n height = 80,\r\n className = '',\r\n style = {},\r\n}) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LoaderSpinner;\r\n","import { version } from '../../../package.json';\r\n\r\nexport default () => {\r\n const izziVersion = `izzi-gaming-${version}`;\r\n\r\n const getStoredUserId = () => localStorage.getItem(`${izziVersion}-user-id`);\r\n\r\n const getStoredToken = () => localStorage.getItem(`${izziVersion}-token`);\r\n\r\n const storeUserId = (userId) =>\r\n localStorage.setItem(`${izziVersion}-user-id`, JSON.stringify(userId));\r\n\r\n const storeTokenId = (tokenId) =>\r\n localStorage.setItem(`${izziVersion}-token`, JSON.stringify(tokenId));\r\n\r\n const cleanSection = () => {\r\n localStorage.removeItem(`${izziVersion}-user-id`);\r\n localStorage.removeItem(`${izziVersion}-token`);\r\n };\r\n\r\n return {\r\n getStoredUserId,\r\n getStoredToken,\r\n storeUserId,\r\n storeTokenId,\r\n cleanSection,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nimport SuccessIcon from '@material-ui/icons/CheckCircleOutlineOutlined';\r\nimport ErrorIcon from '@material-ui/icons/ErrorOutlineOutlined';\r\nimport WarningIcon from '@material-ui/icons/ReportProblemOutlined';\r\n\r\nimport { language } from '../languages';\r\n\r\nconst style = {\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n successIcon: {\r\n color: '#13c150',\r\n marginRight: 10,\r\n },\r\n warningIcon: {\r\n color: '#ff9300',\r\n marginRight: 10,\r\n },\r\n errorIcon: {\r\n color: '#e10d05',\r\n marginRight: 10,\r\n },\r\n};\r\n\r\nconst setToast = (type, messageKey) => {\r\n const { toast: toastMessages } = language;\r\n\r\n const icon = {\r\n success: ,\r\n warning: ,\r\n error: ,\r\n };\r\n\r\n const completeMessage = (\r\n
\r\n {icon[type]}\r\n {toastMessages[messageKey] || messageKey}\r\n
\r\n );\r\n\r\n toast[type](completeMessage);\r\n};\r\n\r\nexport default setToast;\r\n","const izziApiUrl = process.env.REACT_APP_IZZI_API_URL;\r\nconst izziStorageUrl = process.env.REACT_APP_IZZI_STORAGE_URL;\r\nconst izziDiscordUrl = process.env.REACT_APP_IZZI_DISCORD_URL;\r\nconst youtubeApiUrl = process.env.REACT_APP_YOUTUBE_API_URL;\r\nconst youtubeApiKey = process.env.REACT_APP_YOUTUBE_API_KEY;\r\nconst vimeoApiUrl = process.env.REACT_APP_VIMEO_API_URL;\r\nconst vimeoToken = process.env.REACT_APP_VIMEO_API_TOKEN;\r\nconst lolPatchVersion = process.env.REACT_APP_LOL_PATCH;\r\nconst lolDataDragonApiUrl = process.env.REACT_APP_LOL_DATA_DRAGON_API_URL;\r\nconst lolDataDragonCdnUrl = process.env.REACT_APP_LOL_DATA_DRAGON_CDN_URL;\r\nconst pagarmeEncryptionKey = process.env.REACT_APP_PAGARME_ENCRYPTION_KEY;\r\nconst mixpanelTokenStaging = process.env.REACT_APP_MIXPANEL_TOKEN_STAGING;\r\nconst mixpanelTokenProd = process.env.REACT_APP_MIXPANEL_TOKEN_PROD;\r\nconst environment = process.env.NODE_ENV;\r\nconst gamesIndicationFormsUrl = process.env.REACT_APP_GAMES_INDICATION_FORMS;\r\nconst userTermsUrl = process.env.REACT_APP_USER_TERMS;\r\nconst izziAppEnv = process.env.REACT_APP_ENVIRONMENT;\r\nconst izziLp = process.env.REACT_APP_LANDING_PAGE;\r\nconst izziWhatsappEnv = process.env.REACT_APP_WHATSAPP;\r\nconst izziOldUrl = process.env.REACT_APP_IZZI_OLD_URL;\r\nconst lolRankingRolesUrl = process.env.REACT_APP_LOL_RANKING_ROLES_URL;\r\nconst maintenanceModeConfig =\r\n process.env.REACT_APP_MAINTENANCE_MODE === 'true' ||\r\n process.env.REACT_APP_MAINTENANCE_MODE === true;\r\n\r\nexport const izzi = izziApiUrl;\r\nexport const izziOld = izziOldUrl;\r\nexport const izziApp = izziAppEnv;\r\nexport const izziWhatsapp = izziWhatsappEnv;\r\nexport const izziLpUrl = izziLp;\r\nexport const izziStorage = izziStorageUrl;\r\nexport const izziDiscord = izziDiscordUrl;\r\nexport const lolPatch = lolPatchVersion;\r\nexport const pagarmeKey = pagarmeEncryptionKey;\r\nexport const env = environment;\r\nexport const gamesIndicationForms = gamesIndicationFormsUrl;\r\nexport const regulation = lolRankingRolesUrl;\r\nexport const userTermsLink = userTermsUrl;\r\nexport const getStreamFeed = {\r\n VALORANT: {\r\n appId: process.env.REACT_APP_STREAM_APP_VALORANT_ID,\r\n apiKey: process.env.REACT_APP_STREAM_API_VALORANT_KEY,\r\n },\r\n LOL: {\r\n appId: process.env.REACT_APP_STREAM_APP_LOL_ID,\r\n apiKey: process.env.REACT_APP_STREAM_API_LOL_KEY,\r\n },\r\n FORTNITE: {\r\n appId: process.env.REACT_APP_STREAM_APP_FORTNITE_ID,\r\n apiKey: process.env.REACT_APP_STREAM_API_FORTNITE_KEY,\r\n },\r\n};\r\nexport const streamMainFeedId = process.env.REACT_APP_STREAM_MAIN_FEED_ID;\r\nexport const pageHotmartLol = process.env.REACT_APP_HOTMART_SUBSCRIPTION_LOL;\r\nexport const pageHotmartValorant =\r\n process.env.REACT_APP_HOTMART_SUBSCRIPTION_VALORANT;\r\nexport const pageHotmartFortnite =\r\n process.env.REACT_APP_HOTMART_SUBSCRIPTION_FORTNITE;\r\nexport const mixpanelToken =\r\n env === 'production' && mixpanelTokenProd\r\n ? mixpanelTokenProd\r\n : mixpanelTokenStaging;\r\n\r\nexport const vendors = {\r\n youtube: {\r\n url: youtubeApiUrl,\r\n key: youtubeApiKey,\r\n },\r\n vimeo: {\r\n url: vimeoApiUrl,\r\n token: vimeoToken,\r\n },\r\n lolDataDragonApi: {\r\n url: lolDataDragonApiUrl,\r\n },\r\n lolDataDragonCdn: {\r\n url: lolDataDragonCdnUrl,\r\n },\r\n};\r\n\r\nexport const maintenanceMode = maintenanceModeConfig;\r\n","import axios from 'axios';\r\n\r\nimport { version } from '../../package.json';\r\nimport setToast from '../utils/toast.utils';\r\nimport { izzi, vendors } from './config';\r\n\r\nconst izziVersion = `izzi-gaming-${version}`;\r\n\r\nconst requester = async (\r\n method,\r\n endpoint,\r\n data = null,\r\n vendor = false,\r\n params = null\r\n) => {\r\n const baseURL = vendor ? vendors[vendor].url : izzi;\r\n const config = {\r\n method,\r\n baseURL,\r\n url: endpoint,\r\n data,\r\n params,\r\n };\r\n return axios\r\n .request(config)\r\n .then((response) => [null, response.data])\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n setToast('error', 'Token Expirado');\r\n window.location.replace('/signin');\r\n localStorage.clear();\r\n }\r\n return [error];\r\n });\r\n};\r\n\r\nexport const requesterFormData = async (\r\n method,\r\n endpoint,\r\n data = null,\r\n vendor = false\r\n) => {\r\n const baseURL = vendor ? vendors[vendor].url : izzi;\r\n const token = localStorage.getItem(`${izziVersion}-token`);\r\n const config = {\r\n method,\r\n baseURL,\r\n url: endpoint,\r\n data,\r\n headers: {\r\n 'Content-Type': 'multipart/form-data',\r\n Authorization: `Bearer ${token}`,\r\n },\r\n };\r\n return axios\r\n .request(config)\r\n .then((response) => [null, response.data])\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n setToast('error', 'Token Expirado');\r\n window.location.replace('/signin');\r\n }\r\n return [error];\r\n });\r\n};\r\n\r\naxios.interceptors.request.use(\r\n async (config) => {\r\n let token = localStorage.getItem(`${izziVersion}-token`);\r\n if (config?.baseURL?.includes('vimeo')) {\r\n token = vendors.vimeo.token;\r\n }\r\n\r\n const url = new URL(window.location.href);\r\n const urlToken = url.searchParams.get('token');\r\n if (!token && urlToken) {\r\n token = urlToken;\r\n }\r\n\r\n const isAuthRoute =\r\n config?.url?.includes('auth') &&\r\n !config?.url?.includes('resignin') &&\r\n !config?.url?.includes('update-password');\r\n\r\n const configToReturn =\r\n (token && config?.baseURL?.includes('vimeo')) ||\r\n (config.baseURL === izzi &&\r\n !(isAuthRoute || config.url === '/admin/users'))\r\n ? { ...config, headers: { Authorization: `Bearer ${token}` } }\r\n : config;\r\n\r\n return configToReturn;\r\n },\r\n (error) => Promise.reject(error)\r\n);\r\n\r\naxios.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n // eslint-disable-next-line no-console\r\n if (error.response.status === 401) console.error(error);\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default requester;\r\n","import React from 'react';\r\nimport { ToastContainer } from 'react-toastify';\r\n\r\nconst Toast = () => (\r\n \r\n);\r\n\r\nexport default Toast;\r\n","import React, { lazy } from 'react';\r\n\r\nconst AnalysisResult = lazy(() =>\r\n import('../screens/Analysis/AnalysisResult.screen')\r\n);\r\nconst ValorantAnalysis = lazy(() =>\r\n import('../screens/Analysis/valorant/ValorantAnalysis.screen')\r\n);\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst analysisRoutes = [\r\n {\r\n path: '/analysis/lol/:userId',\r\n element: () => ,\r\n },\r\n {\r\n path: '/analysis/valorant/:userId',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = analysisRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst ForgotPassword = lazy(() => import('../screens/ForgotPassword'));\r\nconst ResetPassword = lazy(() => import('../screens/ResetPassword'));\r\n\r\nconst RegisterForm = lazy(() =>\r\n import('../screens/authentication/RegisterForm')\r\n);\r\nconst SignIn = lazy(() => import('../screens/authentication/SignIn.screen'));\r\nconst SignUp = lazy(() => import('../screens/authentication/SignUp.screen'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst authRoutes = [\r\n { path: '/signin/:game', element: () => },\r\n { path: '/signin', element: () => },\r\n { path: '/signup', element: () => },\r\n { path: '/signup/:game', element: () => },\r\n { path: '/forgot-password', element: () => },\r\n { path: '/reset-password/:token', element: () => },\r\n { path: '/gaming', element: () => },\r\n { path: '/gaming/:gameName', element: () => },\r\n];\r\n\r\nconst mappedAuthRoutes = authRoutes.map(addCommonProps);\r\n\r\nexport default mappedAuthRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst IzziBuild = lazy(() => import('../screens/ChampionsBuild'));\r\nconst Build = lazy(() => import('../screens/Build'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst buildRoutes = [\r\n {\r\n path: '/izzi-build/:game',\r\n element: () => ,\r\n },\r\n {\r\n path: '/izzi-build/:game/:championName',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = buildRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import styled from 'styled-components';\r\n\r\nimport { MediaQuery } from '../../styles/variables';\r\n\r\nexport const Container = styled.div`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const Content = styled.div`\r\n height: 100%;\r\n padding-top: 61px;\r\n\r\n @media ${MediaQuery.TABLET_DOWN} {\r\n padding-top: 54px;\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport Header from '@components/ApplicationHeader';\r\n\r\nimport { Container, Content } from './style';\r\n\r\nconst DefaultLayout = ({ children }) => (\r\n \r\n
\r\n {children}\r\n \r\n);\r\n\r\nexport default DefaultLayout;\r\n","import React, { lazy } from 'react';\r\n\r\nimport DefaultLayout from '../layout/Default';\r\n\r\nconst Class = lazy(() => import('../screens/Class'));\r\nconst Lesson = lazy(() => import('../screens/Lesson'));\r\nconst Library = lazy(() => import('../screens/Library'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n layout: DefaultLayout,\r\n});\r\n\r\nconst classRoutes = [\r\n { path: '/classes', element: () => },\r\n { path: '/classes/:classId', element: () => },\r\n { path: '/classes/:classId/lessons/:lessonId', element: () => },\r\n { path: '/library', element: () => },\r\n { path: '/library/:lessonId', element: () => },\r\n];\r\n\r\nconst mappedClassRoutes = classRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nimport DefaultLayout from '../layout/Default';\r\n\r\nconst Coaches = lazy(() => import('../screens/Coaches'));\r\nconst Coach = lazy(() => import('../screens/Coach'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n layout: DefaultLayout,\r\n});\r\n\r\nconst coachesRoutes = [\r\n { path: '/coaches', element: () => },\r\n {\r\n path: '/coaches/:currentGame/:displayName',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedCoachesRoutes = coachesRoutes.map(addCommonProps);\r\n\r\nexport default mappedCoachesRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst CoachSchedule = lazy(() => import('../screens/CoachSchedule'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst coachesRoutes = [\r\n {\r\n path: '/coaches/:currentGame/:coachName/schedule/:transactionId',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedCoachesRoutes = coachesRoutes.map(addCommonProps);\r\n\r\nexport default mappedCoachesRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nimport DefaultLayout from '../layout/Default';\r\n\r\nconst Dashboard = lazy(() => import('../screens/Dashboard'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n layout: DefaultLayout,\r\n});\r\n\r\nconst dashboardRoutes = [{ path: '/home', element: () => }];\r\n\r\nconst mappedDashboardRoutes = dashboardRoutes.map(addCommonProps);\r\n\r\nexport default mappedDashboardRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst DiagnosticResult = lazy(() =>\r\n import('../screens/diagnostic/DiagnosticResult.screen')\r\n);\r\nconst DiagnosticForm = lazy(() =>\r\n import('../screens/diagnostic/DiagnosticForm.screen')\r\n);\r\nconst DiagnosticFormSent = lazy(() =>\r\n import('../screens/diagnostic/DiagnosticFormSent.screen')\r\n);\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst diagnosticRoutes = [\r\n { path: '/diagnostic', element: () => },\r\n { path: '/diagnostic/result', element: () => },\r\n {\r\n path: '/diagnostic/result/:diagnosticId',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = diagnosticRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst Maintenance = lazy(() => import('../screens/Maintenance'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst performerRoutes = [\r\n {\r\n path: '/maintenance',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = performerRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nimport DefaultLayout from '../layout/Default';\r\n\r\nconst MyStudents = lazy(() => import('../screens/MyStudents'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n layout: DefaultLayout,\r\n});\r\n\r\nconst classRoutes = [{ path: '/my-students', element: () => }];\r\n\r\nconst mappedClassRoutes = classRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst PerformerResult = lazy(() => import('../screens/Performer'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst performerRoutes = [\r\n {\r\n path: '/performer/:performerId',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = performerRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nimport DefaultLayout from '../layout/Default';\r\n\r\nconst Profile = lazy(() => import('../screens/Profile'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n layout: DefaultLayout,\r\n});\r\n\r\nconst classRoutes = [{ path: '/profile', element: () => }];\r\n\r\nconst mappedClassRoutes = classRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { lazy } from 'react';\r\n\r\nconst RankingResult = lazy(() => import('../screens/Ranking'));\r\n\r\nconst addCommonProps = (route) => ({\r\n ...route,\r\n exact: true,\r\n});\r\n\r\nconst rankingRoutes = [\r\n {\r\n path: '/ranking/:game',\r\n element: () => ,\r\n },\r\n];\r\n\r\nconst mappedClassRoutes = rankingRoutes.map(addCommonProps);\r\n\r\nexport default mappedClassRoutes;\r\n","import React, { Suspense, useEffect, useState } from 'react';\r\nimport { Navigate, Route, Routes, useNavigate } from 'react-router-dom';\r\n\r\nimport useSection from '@src/hooks/localStorage/useSection';\r\nimport useGlobal from '@src/store';\r\n\r\nimport { version } from '../../package.json';\r\nimport Loader from '../components/ui/Loader.component';\r\nimport { maintenanceMode } from '../resources/config';\r\nimport requester from '../resources/requester';\r\nimport { mapRouteObject } from '../utils/routes.utils';\r\nimport setToast from '../utils/toast.utils';\r\nimport analysisRoutes from './analysisRoutes';\r\nimport authRoutes from './authenticationRoutes';\r\nimport buildRoutes from './buildRoutes';\r\nimport classRoutes from './classRoutes';\r\nimport coachesRoutes from './coachesRoutes';\r\nimport coachScheduleRoutes from './coachScheduleRoutes';\r\nimport dashboardRoutes from './dashboardRoutes';\r\nimport diagnosticRoutes from './diagnosticRoutes';\r\nimport maintenanceRoutes from './maintenanceRoutes';\r\nimport myStudentsRoutes from './myStudentsRoutes';\r\nimport performerRoutes from './performerRoutes';\r\nimport profileRoutes from './profileRoutes';\r\nimport rankingRoutes from './rankingRoutes';\r\n\r\nconst izziVersion = `izzi-gaming-${version}`;\r\n\r\nconst routeObjects = [\r\n ...authRoutes,\r\n ...classRoutes,\r\n ...coachesRoutes,\r\n ...coachScheduleRoutes,\r\n ...diagnosticRoutes,\r\n ...dashboardRoutes,\r\n ...performerRoutes,\r\n ...analysisRoutes,\r\n ...rankingRoutes,\r\n ...profileRoutes,\r\n ...myStudentsRoutes,\r\n ...maintenanceRoutes,\r\n ...buildRoutes,\r\n];\r\nconst mappedRoutes = routeObjects.map(mapRouteObject);\r\n\r\nconst AppRoutes = () => {\r\n const navigate = useNavigate();\r\n const byPassRoutes = [\r\n '',\r\n 'signin',\r\n 'signup',\r\n 'forgot-password',\r\n 'reset-password',\r\n 'classes',\r\n 'diagnostic',\r\n 'performer',\r\n 'coaches',\r\n 'ranking',\r\n 'izzi-build',\r\n ];\r\n const token = localStorage.getItem(`${izziVersion}-token`);\r\n const path = window.location.pathname;\r\n const { storeTokenId, storeUserId, getStoredUserId } = useSection();\r\n const [_, actions] = useGlobal();\r\n const [loadingUser, setLoadingUser] = useState();\r\n\r\n useEffect(() => {\r\n window.location.href = `https://app.izzi.gg/${path.split('/')[1]}`;\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!maintenanceMode) {\r\n const fetchData = async () => {\r\n const url = new URL(window.location.href);\r\n const urlToken = url.searchParams.get('token');\r\n const resignin = url.searchParams.get('resignin');\r\n const email = url.searchParams.get('email');\r\n\r\n if (!token && urlToken && resignin) {\r\n storeTokenId(urlToken);\r\n const [, response] = await requester(\r\n 'GET',\r\n `/v1/public/auth/resignin`\r\n );\r\n if (response.status === 200) {\r\n const { data } = response;\r\n storeTokenId(data.token);\r\n storeUserId(data.user.id);\r\n\r\n window.history.replaceState(null, null, window.location.pathname);\r\n window.location.reload();\r\n }\r\n } else if (path.split('/')[1] !== 'signup' && !email) {\r\n window.history.replaceState(null, null, window.location.pathname);\r\n\r\n const isPublicRoute = byPassRoutes.includes(path.split('/')[1]);\r\n if (!token && !isPublicRoute) {\r\n navigate('/signin');\r\n setToast('error', 'Login necessário');\r\n }\r\n\r\n if (!token && !path.split('/')[1]) {\r\n navigate('/signin');\r\n } else if (!path.split('/')[1]) {\r\n navigate('/home');\r\n }\r\n }\r\n };\r\n\r\n fetchData();\r\n }\r\n }, []);\r\n\r\n const fetchUserData = async (userId) => {\r\n setLoadingUser(true);\r\n const [_err, response] = await requester(\r\n 'GET',\r\n `/v1/public/users/${userId}`\r\n );\r\n\r\n if (response?.status === 200) actions.setUserContext('root', response.data);\r\n\r\n setLoadingUser(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (!maintenanceMode) {\r\n const storedUserId = getStoredUserId();\r\n\r\n if (storedUserId) fetchUserData(storedUserId);\r\n }\r\n }, []);\r\n\r\n if (loadingUser) return ;\r\n\r\n return (\r\n }>\r\n \r\n {mappedRoutes}\r\n } />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppRoutes;\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\n\r\nimport { getRandomString } from './strings.utils';\r\n\r\nexport const mapRouteObject = (routeObject) => {\r\n const { element: Element, layout: Layout, ...routeProps } = routeObject;\r\n\r\n if (routeObject.layout) {\r\n routeProps.element = (\r\n \r\n \r\n \r\n );\r\n } else {\r\n routeProps.element = ;\r\n }\r\n\r\n return ;\r\n};\r\n","import React from 'react';\r\n\r\nimport Toast from './components/ui/Toast.component';\r\nimport Router from './routes';\r\n\r\nconst App = () => (\r\n <>\r\n \r\n \r\n \r\n);\r\n\r\nexport default App;\r\n","import { css } from 'styled-components';\r\n\r\nimport { Device, MediaQuery } from './variables';\r\n\r\nconst GridCSS = css`\r\n ${'@-ms-viewport'} {\r\n width: device-width;\r\n }\r\n html {\r\n box-sizing: border-box;\r\n -ms-overflow-style: scrollbar;\r\n }\r\n *,\r\n *::before,\r\n *::after {\r\n box-sizing: inherit;\r\n }\r\n\r\n .container {\r\n width: 100%;\r\n margin-right: auto;\r\n margin-left: auto;\r\n }\r\n\r\n @media ${MediaQuery.TABLET_UP} {\r\n .container {\r\n padding-right: 16px;\r\n padding-left: 16px;\r\n }\r\n }\r\n\r\n @media ${MediaQuery.DESKTOP_UP} {\r\n .container {\r\n padding-right: 32px;\r\n padding-left: 32px;\r\n }\r\n }\r\n\r\n @media ${MediaQuery.LARGE_DESKTOP} {\r\n .container {\r\n max-width: ${Device.LARGE_DESKTOP};\r\n padding-right: 16px;\r\n padding-left: 16px;\r\n }\r\n }\r\n\r\n .container-fluid {\r\n width: 100%;\r\n padding-right: 16px;\r\n padding-left: 16px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n }\r\n .row {\r\n display: flex;\r\n flex-wrap: wrap;\r\n margin-right: -16px;\r\n margin-left: -16px;\r\n }\r\n .no-gutters {\r\n margin-right: 0;\r\n margin-left: 0;\r\n }\r\n .col-1,\r\n .col-2,\r\n .col-3,\r\n .col-4,\r\n .col-5,\r\n .col-6,\r\n .col-7,\r\n .col-8,\r\n .col-9,\r\n .col-10,\r\n .col-11,\r\n .col-12,\r\n .col,\r\n .col-auto,\r\n .col-md-1,\r\n .col-md-2,\r\n .col-md-3,\r\n .col-md-4,\r\n .col-md-5,\r\n .col-md-6,\r\n .col-md-7,\r\n .col-md-8,\r\n .col-md-9,\r\n .col-md-10,\r\n .col-md-11,\r\n .col-md-12,\r\n .col-md,\r\n .col-md-auto,\r\n .col-lg-1,\r\n .col-lg-2,\r\n .col-lg-3,\r\n .col-lg-4,\r\n .col-lg-5,\r\n .col-lg-6,\r\n .col-lg-7,\r\n .col-lg-8,\r\n .col-lg-9,\r\n .col-lg-10,\r\n .col-lg-11,\r\n .col-lg-12,\r\n .col-lg,\r\n .col-lg-auto,\r\n .col-xl-1,\r\n .col-xl-2,\r\n .col-xl-3,\r\n .col-xl-4,\r\n .col-xl-5,\r\n .col-xl-6,\r\n .col-xl-7,\r\n .col-xl-8,\r\n .col-xl-9,\r\n .col-xl-10,\r\n .col-xl-11,\r\n .col-xl-12,\r\n .col-xl,\r\n .col-xl-auto {\r\n position: relative;\r\n width: 100%;\r\n min-height: 1px;\r\n padding-right: 16px;\r\n padding-left: 16px;\r\n }\r\n .col {\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .col-auto {\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n }\r\n .col-1 {\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-2 {\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-3 {\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-4 {\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-5 {\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-6 {\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-7 {\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-8 {\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-9 {\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-10 {\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-11 {\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-12 {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n .no-gutters > .col,\r\n .no-gutters > [class*='col-'] {\r\n padding-right: 0;\r\n padding-left: 0;\r\n }\r\n @media ${MediaQuery.TABLET_UP} {\r\n .col-md {\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .col-md-auto {\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n }\r\n .col-md-1 {\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-md-2 {\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-md-3 {\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-md-4 {\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-md-5 {\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-md-6 {\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-md-7 {\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-md-8 {\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-md-9 {\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-md-10 {\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-md-11 {\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-md-12 {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n }\r\n @media ${MediaQuery.DESKTOP_UP} {\r\n .col-lg {\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .col-lg-auto {\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n }\r\n .col-lg-1 {\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-lg-2 {\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-lg-3 {\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-lg-4 {\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-lg-5 {\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-lg-6 {\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-lg-7 {\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-lg-8 {\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-lg-9 {\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-lg-10 {\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-lg-11 {\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-lg-12 {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n }\r\n @media ${MediaQuery.LARGE_DESKTOP} {\r\n .col-xl {\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n }\r\n .col-xl-auto {\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n }\r\n .col-xl-1 {\r\n flex: 0 0 8.333333%;\r\n max-width: 8.333333%;\r\n }\r\n .col-xl-2 {\r\n flex: 0 0 16.666667%;\r\n max-width: 16.666667%;\r\n }\r\n .col-xl-3 {\r\n flex: 0 0 25%;\r\n max-width: 25%;\r\n }\r\n .col-xl-4 {\r\n flex: 0 0 33.333333%;\r\n max-width: 33.333333%;\r\n }\r\n .col-xl-5 {\r\n flex: 0 0 41.666667%;\r\n max-width: 41.666667%;\r\n }\r\n .col-xl-6 {\r\n flex: 0 0 50%;\r\n max-width: 50%;\r\n }\r\n .col-xl-7 {\r\n flex: 0 0 58.333333%;\r\n max-width: 58.333333%;\r\n }\r\n .col-xl-8 {\r\n flex: 0 0 66.666667%;\r\n max-width: 66.666667%;\r\n }\r\n .col-xl-9 {\r\n flex: 0 0 75%;\r\n max-width: 75%;\r\n }\r\n .col-xl-10 {\r\n flex: 0 0 83.333333%;\r\n max-width: 83.333333%;\r\n }\r\n .col-xl-11 {\r\n flex: 0 0 91.666667%;\r\n max-width: 91.666667%;\r\n }\r\n .col-xl-12 {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n }\r\n`;\r\n\r\nexport default GridCSS;\r\n","import { createGlobalStyle } from 'styled-components';\r\n\r\nimport GridCSS from './grid';\r\nimport { FontFamily, FontWeight, MediaQuery } from './variables';\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n *,\r\n *::after,\r\n *::before {\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: inherit;\r\n }\r\n\r\n html {\r\n font-size: 62.5%;\r\n box-sizing: border-box;\r\n -ms-overflow-style: scrollbar;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n body {\r\n box-sizing: border-box;\r\n background-color: #0e0e0e;\r\n font-family: ${FontFamily.POPPINS};\r\n font-weight: ${FontWeight.REGULAR};\r\n font-size: 14px;\r\n color: #1d1d1d;\r\n width: 100%;\r\n height: 100%;\r\n margin: 0;\r\n }\r\n\r\n html,\r\n body,\r\n #app {\r\n height: 100%;\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n background: #0e0e0e;\r\n }\r\n\r\n a {\r\n text-decoration: none;\r\n }\r\n\r\n ::-webkit-scrollbar {\r\n width: 5px;\r\n height: 5px;\r\n }\r\n\r\n ::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n -webkit-box-shadow: inset 0 0 6px #131d20;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 10px;\r\n -webkit-box-shadow: inset 0 0 6px #131d20;\r\n background-color: #747474;\r\n }\r\n\r\n ::-webkit-scrollbar-thumb:hover {\r\n background: #13c150;\r\n }\r\n\r\n section {\r\n padding: 0px 45px;\r\n\r\n @media ${MediaQuery.TABLET_DOWN} {\r\n padding: 0px 24px;\r\n }\r\n }\r\n\r\n .Toastify__toast {\r\n background: #353741;\r\n color: #fff;\r\n font-size: 1.5rem;\r\n padding: 15px;\r\n border-right: 5px solid #fff;\r\n }\r\n\r\n .Toastify__toast--success {\r\n border-color: #13c150;\r\n }\r\n\r\n .Toastify__toast--warning {\r\n border-color: #ff9300;\r\n }\r\n\r\n .Toastify__toast--error {\r\n border-color: #e10d05;\r\n }\r\n\r\n .skeleton {\r\n min-height: 200px;\r\n background-color: #0b1113;\r\n }\r\n\r\n .skeleton::before {\r\n content: '';\r\n position: absolute;\r\n left: -150px;\r\n height: 100%;\r\n width: 150px;\r\n background: linear-gradient(\r\n to right,\r\n transparent 0%,\r\n #353741 50%,\r\n transparent 100%\r\n );\r\n animation: load 1s cubic-bezier(0.4, 0, 0.2, 1) infinite;\r\n }\r\n\r\n @keyframes load {\r\n from {\r\n left: -150px;\r\n }\r\n to {\r\n left: 100%;\r\n }\r\n }\r\n\r\n .carousel form * {\r\n box-sizing: content-box;\r\n }\r\n\r\n .carousel .slider-wrapper {\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n .carousel .slide {\r\n background: transparent;\r\n }\r\n\r\n .loading {\r\n position: relative;\r\n overflow: hidden;\r\n background-color: hsla(0, 0%, 51%, 0.2);\r\n }\r\n\r\n .loading::after {\r\n content: '';\r\n display: block;\r\n background-color: rgba(113, 1, 255, 0.1);\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 100%;\r\n transform: translateX(0);\r\n animation: 1.5s loading-placeholder ease-in-out infinite;\r\n }\r\n\r\n @keyframes loading-placeholder {\r\n 0% {\r\n transform: translateX(-100%);\r\n }\r\n 100% {\r\n transform: translateX(100%);\r\n }\r\n }\r\n\r\n ${'@-ms-viewport'} {\r\n width: device-width;\r\n }\r\n\r\n #root {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n a {\r\n color: #1890ff;\r\n text-decoration: none;\r\n transition: 0.3s all;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n }\r\n \r\n ${GridCSS}\r\n\r\n .ReactModal__Body--open {\r\n overflow: hidden;\r\n }\r\n\r\n .ReactModal__Overlay {\r\n z-index: 10000;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: rgba(0, 0, 0, 0.6) !important;\r\n }\r\n`;\r\n\r\nexport default GlobalStyle;\r\n","/* eslint-disable no-restricted-globals */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nimport { ThemeProvider, createTheme } from '@material-ui/core/styles';\r\nimport * as Sentry from '@sentry/react';\r\nimport { Integrations } from '@sentry/tracing';\r\n\r\nimport { version } from '../package.json';\r\nimport App from './App';\r\nimport { env } from './resources/config';\r\nimport GlobalStyle from './styles/global';\r\n\r\nconst izziVersion = `izzi-gaming-${version}`;\r\n\r\nSentry.init({\r\n dsn: 'https://a29b5dd15d5b4470baeefff40c983a6b@o561128.ingest.sentry.io/5697616',\r\n environment: env,\r\n release: izziVersion,\r\n integrations: [new Integrations.BrowserTracing()],\r\n tracesSampleRate: 1.0,\r\n});\r\n\r\nconst theme = {};\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('app')\r\n);\r\n","import React from 'react';\r\n\r\nimport { Typography } from '@material-ui/core';\r\n\r\nconst Text = ({\r\n children,\r\n color = 'textPrimary',\r\n variant = 'body1',\r\n className,\r\n ...props\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default Text;\r\n","import { version } from '../../../package.json';\r\nimport { gamesEnum } from '../../utils/games.utils';\r\n\r\nexport default () => {\r\n const izziVersion = `izzi-gaming-${version}`;\r\n const currentGame = localStorage.getItem(`${izziVersion}-current-game`);\r\n const isLol = currentGame === gamesEnum.lol;\r\n const isValorant = currentGame === gamesEnum.valorant;\r\n const isFortnite = currentGame === gamesEnum.fortnite;\r\n\r\n const setCurrentGame = (gameName) =>\r\n localStorage.setItem(`${izziVersion}-current-game`, gameName);\r\n\r\n return { isLol, isValorant, isFortnite, currentGame, setCurrentGame };\r\n};\r\n","import { version } from '../../package.json';\r\nimport { availableGames } from '../utils/games.utils';\r\nimport {\r\n getActiveSubscriptions,\r\n getMainGame,\r\n} from '../utils/subscription.utils';\r\n\r\nconst izziVersion = `izzi-gaming-${version}`;\r\n\r\nexport const setAuthAndUser = (store, token = null, user = null) => {\r\n if (token) localStorage.setItem(`${izziVersion}-token`, token);\r\n if (user) {\r\n store.actions.setUserContext('root', user);\r\n localStorage.setItem(`${izziVersion}-user-id`, user._id);\r\n\r\n const activeSubscriptions = getActiveSubscriptions(user);\r\n const game = getMainGame(activeSubscriptions);\r\n\r\n localStorage.setItem(`${izziVersion}-current-game`, game);\r\n }\r\n};\r\n\r\nexport const cleanStorage = (store) => {\r\n store.actions.cleanUser();\r\n\r\n Object.entries(localStorage).forEach(([key]) => {\r\n const gameKey = new RegExp(availableGames.join('|')).test(key);\r\n\r\n if (key.includes(izziVersion) || gameKey) {\r\n delete localStorage[key];\r\n }\r\n });\r\n\r\n delete localStorage.dateDiagnostic;\r\n};\r\n\r\nexport const addInStore = (store, context, item) => {\r\n const contextStore = {\r\n ...store.state.content,\r\n options: [...store.state[context].options, item],\r\n };\r\n store.setState({ ...store.state, [context]: contextStore });\r\n};\r\n\r\nexport const removeFromStore = (store, context, itemId) => {\r\n const itemIndex = store.state[context].options.findIndex(\r\n (i) => i.id === itemId\r\n );\r\n const contextStore = {\r\n ...store.state[context],\r\n options: [\r\n ...store.state[context].options.slice(0, itemIndex),\r\n ...store.state[context].options.slice(itemIndex + 1),\r\n ],\r\n };\r\n store.setState({ ...store.state, [context]: contextStore });\r\n};\r\n\r\nexport const updateInStore = (store, context, item) => {\r\n const itemIndex = store.state[context].options.findIndex(\r\n (i) => i.id === item.id\r\n );\r\n const contextStore = {\r\n ...store.state[context],\r\n options: [\r\n ...store.state[context].options.slice(0, itemIndex),\r\n item,\r\n ...store.state[context].options.slice(itemIndex + 1),\r\n ],\r\n };\r\n store.setState({ ...store.state, [context]: contextStore });\r\n};\r\n\r\nexport const setInStore = (store, context, property, value) => {\r\n const contextStore = {\r\n ...store.state[context],\r\n [property]: value,\r\n };\r\n store.setState({ ...store.state, [context]: contextStore });\r\n};\r\n","import requester from '../resources/requester';\r\nimport Mixpanel from '../utils/mixpanel.utils';\r\nimport { getActiveSubscriptions } from '../utils/subscription.utils';\r\nimport setToast from '../utils/toast.utils';\r\nimport { setAuthAndUser } from './utils.action';\r\n\r\nexport const signIn = async (store, navigate, credentials) => {\r\n const [error, response] = await requester(\r\n 'POST',\r\n '/v1/public/auth/signin',\r\n credentials\r\n );\r\n if (error) {\r\n setToast('error', 'Usuário ou senha incorretos!');\r\n } else {\r\n const { token, user } = response.data;\r\n const isSubscriber = getActiveSubscriptions(user)?.length > 0;\r\n\r\n Mixpanel().people.set({\r\n $username: user.profile.username,\r\n $email: user.profile.email,\r\n $subscriber: isSubscriber,\r\n });\r\n Mixpanel().identify(user.profile.email);\r\n Mixpanel().track(`Login`, {\r\n username: user.profile.username,\r\n id: user._id,\r\n });\r\n setAuthAndUser(store, token, user);\r\n navigate('/home');\r\n }\r\n};\r\n\r\nexport const signUp = async (store, navigate, params, game, ads) => {\r\n store.actions.cleanStorage();\r\n const result = await requester('POST', '/v1/public/auth/signup', params);\r\n const resultData = result[0] || result[1];\r\n const response = resultData.response ? resultData.response : resultData;\r\n\r\n switch (response.status) {\r\n case 201:\r\n case 200: {\r\n const { token, user } = response.data;\r\n const isSubscriber = getActiveSubscriptions(user)?.length > 0;\r\n\r\n Mixpanel().people.set({\r\n $username: user.profile.username,\r\n $email: user.profile.email,\r\n $subscriber: isSubscriber,\r\n $ads: !!ads,\r\n });\r\n\r\n Mixpanel().identify(user.profile.email);\r\n Mixpanel().track(`Signup`, {\r\n username: user.profile.username,\r\n id: user._id,\r\n });\r\n setAuthAndUser(store, token, user);\r\n\r\n if (game) navigate(`/gaming/${game}`);\r\n else navigate('/gaming');\r\n\r\n break;\r\n }\r\n case 400: {\r\n if (response?.data?.data?.error?.message?.split(' ')?.includes('Email')) {\r\n setToast('error', 'Email já cadastrado');\r\n } else if (\r\n response?.data?.data?.error?.message?.split(' ')?.includes('Username')\r\n ) {\r\n setToast('error', 'Nome de usuário já cadastrado');\r\n } else {\r\n setToast('error', 'Erro no cadastro');\r\n }\r\n break;\r\n }\r\n default:\r\n case 500: {\r\n setToast('error', 'Erro no cadastro');\r\n break;\r\n }\r\n }\r\n};\r\n\r\nexport const forgotPassword = async (store, email) => {\r\n const [error] = await requester('POST', '/v1/public/auth/forgot-password', {\r\n email,\r\n });\r\n if (error) {\r\n setToast('error', 'Erro interno');\r\n } else {\r\n setToast('success', 'Email enviado');\r\n }\r\n};\r\n\r\nexport const resetPassword = async (store, navigate, { token, password }) => {\r\n const resetPasswordPayload = {\r\n token,\r\n password,\r\n };\r\n const [error] = await requester(\r\n 'POST',\r\n '/v1/public/auth/reset-password',\r\n resetPasswordPayload\r\n );\r\n if (error) {\r\n setToast('error', 'Erro interno');\r\n } else {\r\n setToast('success', 'passwordUpdated');\r\n navigate('/signin');\r\n }\r\n};\r\n\r\nexport const logOut = (store, navigate) => {\r\n store.actions.cleanStorage();\r\n navigate('/signin');\r\n};\r\n","import requester from '../resources/requester';\r\nimport setToast from '../utils/toast.utils';\r\n\r\nexport const cleanDiagnostic = (store) => {\r\n const diagnostic = {};\r\n store.setState({ ...store.state, diagnostic });\r\n};\r\n\r\nexport const selectDiagnostic = async (store, diagnostic) => {\r\n store.setState({ ...store.state, diagnostic });\r\n};\r\n\r\nexport const sendDiagnosticRequest = async (\r\n store,\r\n navigate,\r\n diagnosticData\r\n) => {\r\n const [error, response] = await requester(\r\n 'POST',\r\n '/v1/public/diagnostics',\r\n diagnosticData\r\n );\r\n if (error || ![200, 201].includes(response.status)) {\r\n setToast(\r\n 'error',\r\n 'Tivemos um problema com o envio dos seus dados, por favor tente novamente!'\r\n );\r\n } else {\r\n const diagnostic = {\r\n ...store.state.diagnostic,\r\n userNickname: diagnosticData.userNickname,\r\n };\r\n store.setState({ ...store.state, diagnostic });\r\n navigate('/diagnostic/result');\r\n }\r\n};\r\n\r\nexport const setSalesButtonClicked = async (store, diagnosticId) => {\r\n await requester('PATCH', `/v1/public/diagnostics/${diagnosticId}`, {\r\n salesButtonClicked: true,\r\n });\r\n};\r\n\r\nexport const getDiagnostic = async (store, navigate, diagnosticId) => {\r\n const [error, response] = await requester(\r\n 'GET',\r\n `/v1/public/diagnostics/${diagnosticId}`\r\n );\r\n if (error) {\r\n setToast('error', 'setDiagnosticError');\r\n } else {\r\n selectDiagnostic(store, response.data);\r\n }\r\n};\r\n","import requester from '../resources/requester';\r\nimport setToast from '../utils/toast.utils';\r\n\r\nexport const getTrackChapters = async (store, trackId) => {\r\n store.actions.setInStore('track', 'isLoading', true);\r\n const [error, response] = await requester(\r\n 'GET',\r\n `/v1/public/tracks/${trackId}/chapters`\r\n );\r\n if (error) {\r\n setToast('error', 'getTrackChaptersError');\r\n } else {\r\n store.actions.setInStore('track', 'trackChapters', response.data);\r\n }\r\n store.actions.setInStore('track', 'isLoading', false);\r\n};\r\n","export const roleType = Object.freeze({\r\n ADMIN: 'ADMIN',\r\n COACH: 'COACH',\r\n SELLER: 'SELLER',\r\n PLAYER: 'PLAYER',\r\n});\r\n\r\nexport const registerType = Object.freeze({\r\n BASIC: 'BASIC',\r\n COMPLETE: 'COMPLETE',\r\n VERIFIED: 'VERIFIED',\r\n});\r\n","import { registerType } from '../models/user.models';\r\nimport requester from '../resources/requester';\r\nimport setToast from '../utils/toast.utils';\r\nimport { setAuthAndUser } from './utils.action';\r\n\r\nexport const cleanUser = (store) => {\r\n const user = {\r\n profile: {\r\n name: '',\r\n username: '',\r\n email: '',\r\n register: null,\r\n },\r\n discord: {\r\n id: null,\r\n avatar: null,\r\n username: null,\r\n discriminator: null,\r\n email: null,\r\n verified: null,\r\n },\r\n gaming: {\r\n lol: {\r\n goals: {\r\n izziGoal: '',\r\n },\r\n },\r\n },\r\n subscription: [],\r\n active: false,\r\n role: null,\r\n };\r\n\r\n store.setState({ ...store.state, user });\r\n};\r\n\r\nexport const setUserGame = (store, game, data) => {\r\n const user = {\r\n ...store.state.user,\r\n gaming: {\r\n ...store.state.user.gaming,\r\n [game]: {\r\n ...store.state.user.gaming[game],\r\n ...data,\r\n },\r\n },\r\n };\r\n store.setState({ ...store.state, user });\r\n};\r\n\r\nexport const setUserContext = (store, context, data) => {\r\n const user =\r\n context === 'root'\r\n ? {\r\n ...store.state.user,\r\n ...data,\r\n }\r\n : {\r\n ...store.state.user,\r\n [context]: {\r\n ...store.state.user[context],\r\n ...data,\r\n },\r\n };\r\n store.setState({ ...store.state, user });\r\n};\r\n\r\nexport const setUser = (store, property, value) => {\r\n const user = {\r\n ...store.state.user,\r\n [property]: value,\r\n };\r\n store.setState({ ...store.state, user });\r\n};\r\n\r\nexport const register = async (store, lolProfile, callback) => {\r\n store.actions.setShowLoader(true);\r\n const { discord, profile } = store.state.user;\r\n const { knowUsBy, recommendedBy } = profile;\r\n const { summoner, goals } = lolProfile;\r\n const registerPayload = {\r\n profile: {\r\n knowUsBy,\r\n recommendedBy,\r\n register: registerType.COMPLETE,\r\n },\r\n discord,\r\n gaming: {\r\n lol: {\r\n summoner,\r\n goals,\r\n },\r\n },\r\n };\r\n const [error, response] = await requester('PUT', '/user', registerPayload);\r\n if (error) {\r\n store.actions.setAlertDialog(true, 'registerProfile');\r\n } else {\r\n setAuthAndUser(store, null, response.data);\r\n if (callback) callback();\r\n }\r\n store.actions.setShowLoader(false);\r\n};\r\n\r\nexport const updateProfile = async (store, profile) => {\r\n const profilePayload = {\r\n profile: {\r\n ...profile,\r\n },\r\n };\r\n const [error, response] = await requester('PUT', '/user', profilePayload);\r\n if (error) {\r\n store.actions.setAlertDialog(true, 'generic');\r\n } else {\r\n setAuthAndUser(store, null, response.data);\r\n setToast('success', 'profileUpdated');\r\n }\r\n};\r\n\r\nexport const updatePassword = async (store, password, callback) => {\r\n const passwordPayload = {\r\n profile: {\r\n password,\r\n },\r\n };\r\n const [error] = await requester('PUT', '/user', passwordPayload);\r\n if (error) {\r\n store.actions.setAlertDialog(true, 'generic');\r\n } else {\r\n if (callback) callback();\r\n setToast('success', 'passwordUpdated');\r\n }\r\n};\r\n\r\nexport const resendVerificationToken = async () => {\r\n const [error] = await requester('GET', '/user/resend-token');\r\n if (error) {\r\n setToast('error', 'verificationTokenResendError');\r\n } else {\r\n setToast('success', 'verificationTokenResend');\r\n }\r\n};\r\n","import content from './content.state';\r\nimport diagnostic from './diagnostic.state';\r\nimport track from './track.state';\r\nimport ui from './ui.state';\r\n\r\nconst initialState = {\r\n content,\r\n track,\r\n diagnostic,\r\n ui,\r\n};\r\n\r\nexport default initialState;\r\n","const content = {\r\n content: {},\r\n};\r\n\r\nexport default content;\r\n","const track = {\r\n options: [],\r\n selectedTrack: {},\r\n isLoading: false,\r\n};\r\n\r\nexport default track;\r\n","const diagnostic = {\r\n diagnostRequestSentSuccess: false,\r\n};\r\n\r\nexport default diagnostic;\r\n","function setState(newState) {\r\n this.state = { ...this.state, ...newState };\r\n this.listeners.forEach((listener) => {\r\n listener(this.state);\r\n });\r\n}\r\n\r\nfunction useCustom(React) {\r\n const newListener = React.useState()[1];\r\n React.useEffect(() => {\r\n this.listeners.push(newListener);\r\n return () => {\r\n this.listeners = this.listeners.filter(\r\n (listener) => listener !== newListener\r\n );\r\n };\r\n }, []);\r\n return [this.state, this.actions];\r\n}\r\n\r\nfunction associateActions(store, actions) {\r\n const associatedActions = {};\r\n Object.keys(actions).forEach((key) => {\r\n if (typeof actions[key] === 'function') {\r\n associatedActions[key] = actions[key].bind(null, store);\r\n }\r\n if (typeof actions[key] === 'object') {\r\n associatedActions[key] = associateActions(store, actions[key]);\r\n }\r\n });\r\n return associatedActions;\r\n}\r\n\r\nconst useGlobalHook = (React, initialState, actions) => {\r\n const store = { state: initialState, listeners: [] };\r\n store.setState = setState.bind(store);\r\n store.actions = associateActions(store, actions);\r\n\r\n return useCustom.bind(store, React);\r\n};\r\n\r\nexport default useGlobalHook;\r\n","import React from 'react';\r\n\r\nimport * as actions from '../actions';\r\nimport initial from '../states/initial.state';\r\nimport useGlobalHook from './useGlobalHook';\r\n\r\nconst useGlobal = useGlobalHook(React, initial, actions);\r\n\r\nexport default useGlobal;\r\n","import mixpanel from 'mixpanel-browser';\r\n\r\nimport { env, mixpanelToken } from '../resources/config';\r\n\r\nconst Mixpanel = () => {\r\n if (mixpanelToken) mixpanel.init(mixpanelToken);\r\n\r\n const envCheck = env === 'production' || env === 'staging';\r\n\r\n const actions = {\r\n identify: (id) => {\r\n if (envCheck && mixpanel.identify) mixpanel.identify(id);\r\n else () => {};\r\n },\r\n alias: (id) => {\r\n if (envCheck && mixpanel.alias) mixpanel.alias(id);\r\n else () => {};\r\n },\r\n track: (name, props) => {\r\n if (envCheck && mixpanel.track) mixpanel.track(name, props);\r\n else () => {};\r\n },\r\n people: {\r\n set: (props) => {\r\n if (envCheck && mixpanel.people) mixpanel.people.set(props);\r\n else () => {};\r\n },\r\n },\r\n };\r\n\r\n return actions;\r\n};\r\n\r\nexport default Mixpanel;\r\n","export const gamesEnum = Object.freeze({\r\n valorant: 'VALORANT',\r\n lol: 'LOL',\r\n fortnite: 'FORTNITE',\r\n});\r\n\r\nexport const availableGames = Object.values(gamesEnum);\r\n","export const getActiveSubscriptions = (userObj) => {\r\n const date = new Date();\r\n\r\n const subscriptions =\r\n userObj?.subscription?.filter(\r\n (s) => s.status === 'ACTIVE' && date <= new Date(s.expiresIn)\r\n ) ?? [];\r\n\r\n return subscriptions;\r\n};\r\n\r\nexport const getMainGame = (subscriptions) => {\r\n if (!subscriptions || subscriptions?.length === 0) {\r\n return 'LOL';\r\n }\r\n return subscriptions[0].game;\r\n};\r\n\r\nexport const modalDescriptionLOL = [\r\n {\r\n id: 0,\r\n description: 'Cursos Completos de Todas as Lanes com Campeões do CBLOL',\r\n },\r\n {\r\n id: 1,\r\n description: 'Sessão Individual com Coach Grão Mestre toda Semana',\r\n },\r\n {\r\n id: 2,\r\n description: 'Canal Exclusivo com Coach 24h no Discord',\r\n },\r\n {\r\n id: 3,\r\n description: 'Campeonatos e Rankings Exclusivos com Premiação',\r\n },\r\n];\r\n\r\nexport const modalDescriptionVALORANT = [\r\n {\r\n id: 0,\r\n description: 'Curso Completo com Fundamentos e Guias de Mapas',\r\n },\r\n {\r\n id: 1,\r\n description: 'Sessão Individual com Coach Imortal toda Semana',\r\n },\r\n {\r\n id: 2,\r\n description: 'Canal Exclusivo com Coach 24h no Discord',\r\n },\r\n {\r\n id: 3,\r\n description: 'Campeonatos e Rankings Exclusivos com Premiação',\r\n },\r\n];\r\n","import useCurrentGame from '@hooks/localStorage/useCurrentGame';\r\n\r\nimport useGlobal from '..';\r\n\r\nexport default () => {\r\n const [store] = useGlobal();\r\n const { currentGame } = useCurrentGame();\r\n\r\n const { user } = store;\r\n\r\n const activeSubscriptions =\r\n user?.subscription?.filter(\r\n (s) => s.status === 'ACTIVE' && new Date() <= new Date(s.expiresIn)\r\n ) || [];\r\n\r\n const isPremium =\r\n activeSubscriptions.filter((sub) => sub.game === currentGame).length > 0;\r\n\r\n const isAdmin = user?.role === 'ADMIN';\r\n\r\n const isCoach = user?.role === 'COACH';\r\n\r\n return { user, isPremium, isAdmin, isCoach, activeSubscriptions };\r\n};\r\n","export const Color = {\r\n gray: {\r\n 1: '#fff',\r\n 2: '#fafafa',\r\n 3: '#f5f5f5',\r\n 5: '#d9d9d9',\r\n 6: '#bfbfbf',\r\n 7: '#8C8C8C',\r\n 8: '#595959',\r\n 9: '#262626',\r\n 10: '#0E0E0E',\r\n },\r\n primary: {\r\n main: '#3BE529',\r\n light: '#52C41A',\r\n },\r\n lime: {\r\n 11: '#8dff35',\r\n 12: '#6fff01',\r\n 13: '#6FFF00',\r\n },\r\n sunsetOrange: {\r\n 11: '#DFA845',\r\n },\r\n yellow: {\r\n 5: '#FFC53D',\r\n },\r\n volcano: {\r\n 1: '#FFF2E8',\r\n 2: '#FFD8BF',\r\n 3: '#FFBB96',\r\n 4: '#FF9C6E',\r\n },\r\n red: {\r\n 6: '#F5222D',\r\n 7: '#CF1322',\r\n },\r\n purple: {\r\n 1: '#24073F',\r\n },\r\n};\r\n\r\nexport const Device = {\r\n TABLET: '768px',\r\n DESKTOP: '1140px',\r\n LARGE_DESKTOP: '1536px',\r\n};\r\n\r\nexport const MediaQuery = {\r\n MOBILE: '(max-width: 767px)',\r\n MINI_MOBILE: '(max-width: 767px) and (max-height: 620px)',\r\n SMALL_MOBILE: '(max-width: 300px)',\r\n LARGE_MOBILE_UP: '(min-height: 692px)',\r\n TABLET_DOWN: '(max-width: 1139px)',\r\n TABLET_UP: '(min-width: 1139px)',\r\n LARGE_MOBILE_WIDTH_UP: '(min-width: 640px)',\r\n SMALL_TABLET_WIDTH_UP: '(min-width: 820px)',\r\n DESKTOP_DOWN: '(max-width: 1535px)',\r\n DESKTOP_UP: '(min-width: 1140px)',\r\n LARGE_DESKTOP: '(min-width: 1536px)',\r\n MEDIUM_DESKTOP: '(min-width: 800px)',\r\n UP_MEDIUM_DESKTOP: '(max-width: 800px)',\r\n SMALL_MEDIUM_DESKTOP: '(min-width: 500px)',\r\n UP_SMALL_MEDIUM_DESKTOP: '(max-width: 500px)',\r\n SMALL_PADDING_MEDIUM_DESKTOP: '(min-width: 800px)',\r\n SMALL_DESKTOP_UP: '(min-width: 1055px)',\r\n MEDIUM_DESKTOP_UP: '(min-width: 1250px)',\r\n LARGE_DESKTOP_UP: '(min-width: 1600px)',\r\n SMALL_SMALL_MOBILE: '(max-width: 279px)',\r\n};\r\n\r\nexport const FontFamily = {\r\n POPPINS: 'Poppins, Arial, Helvetica, sans-serif',\r\n SOURCE_SANS_PRO: 'Source Sans Pro, Arial, Helvetica, sans-serif',\r\n RALEWAY: 'Raleway, Arial, Helvetica, sans-serif',\r\n RADLEY: 'Radley, Arial, Helvetica, sans-serif',\r\n HYEON: 'Do Hyeon, Arial, Helvetica, sans-serif',\r\n QUICKSAND: 'Quicksand, Arial, Helvetica, sans-serif',\r\n};\r\n\r\nexport const FontWeight = {\r\n LIGHT: 300,\r\n REGULAR: 400,\r\n MEDIUM: 500,\r\n SEMI_BOLD: 600,\r\n BOLD: 700,\r\n EXTRA_BOLD: 800,\r\n};\r\n"],"sourceRoot":""}