;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Surfe 360°

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Chegou a hora! Gabriel Medina anuncia retorno ao circuito mundial de surfe

Gabriel Medina, tricampeão mundial de surfe - WSL
Gabriel Medina, tricampeão mundial de surfe Imagem: WSL

Colunista do UOL

22/04/2022 15h13

Ele já tava dando pinta nas últimas semanas. E hoje veio a confirmação.

Depois de pedir dispensa das 5 primeiras etapas do circuito mundial da World Surf League, Gabriel Medina anunciou que vai voltar às competições.

A notícia foi dada em conversa com os jornalistas Breno Dines e Guilherme Pereira, da TV Globo. A entrevista vai ao ar no domingo.

gabriel - reprodução/Instagram - reprodução/Instagram
Gabriel Medina pronto para mais uma sessão de treinos
Imagem: reprodução/Instagram

A notícia de hoje já havia sido antecipada pelo jornalista Guilherme Dorini, aqui do UOL, em fevereiro.

"Estou melhor. Fico feliz de estar me reencontrando. Aprendi bastante durante esse tempo que eu me afastei das competições, e eu sinto que estou 100%. Por isso que estou anunciando a minha volta. Estou animado, com saudades de competir, de viajar, naquele ambiente que eu vejo todos os meus amigos ali", disse Medina, na exclusiva que vai ser exibida no Esporte Espetacular.

Nos últimos dias, Medina publicou diversas postagens de treinos na academia ao lado do personal Allan Menache, além de sessões de surfe em Maresias.

O tricampeão não disputou as duas etapas da WSL no Havaí (Pipeline e Sunset), além das provas de Peniche (Portugal) e Austrália (Bells Beach). Vai ficar fora também da outra australiana, que começa neste sábado em Margaret River.

O retorno será em G-Land, na Indonésia. O 6º evento do calendário começa em 28/5, e marca o início da segunda parte do tour da elite.

Para oficializar sua volta, o camisa 10 ainda precisa de um convite formal da WSL. Mas a direção da Liga já havia deixado claro que o brasileiro poderia voltar à ativa quando quisesse.

Medina não compete desde setembro do ano ado, quando conquistou o tricampeonato nas ondas de Trestles, na Califórnia.

gabriel - Sean M. Haffey/Getty Images/AFP - Sean M. Haffey/Getty Images/AFP
Gabriel Medina voa em um aéreo nas finais da WSL
Imagem: Sean M. Haffey/Getty Images/AFP

Além da Indonésia, o Championship Tour ainda irá ar por El Salvador, Brasil (Saquarema), África do Sul e Taiti.

As finais, com os 5 melhores dos rankings masculino e feminino, acontecem de novo na Califórnia, em setembro.

Apesar da ausência nas 5 primeiras etapas, Medina poderá alcançar pontos suficientes para buscar o tetra em 2022.

Fim do casamento com Yasmin Brunet

O surfista anunciou a pausa na carreira em 24 de janeiro. Três dias depois veio a divulgação do término do casamento com a modelo Yasmin Brunet. Eles começaram a se relacionar em 2020, casaram no final daquele ano e estiveram juntos até janeiro de 2022.

De acordo com a apuração da coluna 'Olhar Olímpico', foi Medina quem optou pelo término. Ele estava devastado pelo fim da relação quando decidiu por não participar da primeira etapa do Circuito Mundial de Surfe de 2022. No dia seguinte ao anúncio, Brunet fez um post de apoio no Instagram.

No entanto, a mensagem da ex-esposa não continha nenhum trecho de amor. O tricampeão mundial comentou a publicação com o verbo no ado, dando indícios da separação: "Você foi um anjo da minha vida".

A relação entre eles foi marcada por atrito familiar e alfinetadas. O casamento foi realizado no Havaí, em uma cerimônia particular, sem o conhecimento dos pais de Medina. Antes do matrimônio, uma viagem em família tinha escancarado as diferenças entre Yasmin e Simone, mãe de Medina.

Enquanto estava com Brunet, Medina trocou seu técnico, o padrasto Charles, ficou em quarto nas Olimpíadas de Tóquio e conquistou seu terceiro título mundial.

por @thiago_blum / @surf360_