;(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

Flamengo

Do xadrez à fé, Thiago Maia se redescobre e avança por volta ao Flamengo

Thiago Maia, volante do Flamengo, se recupera de uma cirurgia no joelho esquerdo - Alexandre Vidal / Flamengo
Thiago Maia, volante do Flamengo, se recupera de uma cirurgia no joelho esquerdo Imagem: Alexandre Vidal / Flamengo

Do UOL, no Rio de Janeiro (RJ)

04/06/2021 04h00

Afastado desde novembro por conta de uma lesão no joelho esquerdo, Thiago Maia vê o retorno aos gramados cada vez mais próximo. Neste complicado período de recuperação, o meio-campista do Flamengo descobriu o xadrez, se aproximou ainda mais do atacante Michael e fortaleceu a fé.

Contratado no início da temporada ada, o camisa 33 sofreu a lesão no momento em que vivia uma ascensão no elenco. Agora, a volta causa ainda mais expectativa pelo fato de ele ser apontado como provável substituto de Gerson, que está próximo se transferir ao Olympique de Marselha, da França.

Thiago Maia foi operado em dezembro, e havia uma previsão inicial de oito meses para seu retorno aos campos. O Rubro-Negro ainda adota muita cautela sobre o assunto, mas o técnico Rogério Ceni apontou otimismo ao comentar a possibilidade de contar com o volante já no mês que vem.

"Mesmo que não consiga trazer jogador caro [em caso de saída do Gerson], mas que consigamos, dentro do mercado nacional, achar alguém que possa suprir, compensar a ausência ou em alguma outra posição que a gente precise. O Thiago Maia acho que no mês de julho temos possibilidade de tê-lo. Tomara que volte bem", disse o comandante, após a conquista do Carioca.

O período longe dos gramados não foi fácil para o volante, que não escondeu que chegou a pensar em desistir. Na fé, porém, encontrou refúgio, e as visitas ao monte de Papucaia, em Cachoeiras de Macacu, no Rio de Janeiro, foram constantes.

"Após quase 6 meses da operação, me sinto cada vez mais forte e pronto para voltar a fazer o que mais amo. Foram momentos difíceis, de muita dor, sofrimento e, ainda mais, de saudade do estar dentro de campo. Cheguei até pensar em desistir, mas agora sei que tudo isso serviu para me fortalecer. A cicatriz no meu joelho é prova de uma batalha que preciso superar. Para isso sempre me apoiei na fé que me guia", afirmou, em trecho de publicação em que mostra a cicatriz no joelho.

O xadrez, jogo que Thiago Maia não praticava anteriormente, ou a ser um dos seus atempos preferidos, além do reencontro com a sinuca, um amor já mais antigo.

A amizade com Michael também ganhou novos contornos. O atacante, que chegou ao Flamengo no mesmo período que o camisa 33 e foi apresentado ao lado dele à torcida, se tornou um parceiro durante a recuperação, até mesmo com caronas ao Ninho do Urubu.

Além disso, ele pôde reviver o lado torcedor. Rubro-negro declarado, esteve próximo ao elenco em diversos jogos e viu algumas partidas importantes da arquibancada.

Agora, o camisa 33 se torna um "reforço caseiro" e pode se tornar nome importante na montagem do time de Rogério Ceni. Com os direitos ligados ao Lille, da França, ele teve o contrato renovado em fevereiro, e o atual vínculo vai até o meio do ano que vem.

Flamengo