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

'Segunda pior notícia da carreira': Bruno Henrique recebe apoio no Flamengo

21/06/2022 12h23

Os exames feitos na segunda-feira confirmaram a gravidade da lesão no joelho direito e Bruno Henrique ficará afastado dos jogos por até 12 meses, informou o Flamengo. Após a confirmação de que ará por procedimento cirúrgico no local, o atacante rubro-negro afirmou estar muito triste, mas seguirá "firme e forte" em sua recuperação.

"Hoje (segunda) realizei novamente exame no joelho e recebi a segunda pior notícia da minha carreira, nunca imaginei que um dia iria ter que ar por esse momento difícil, mas sei que na carreira de um atleta isso pode acontecer", escreveu BH27.

"Precisarei ar por essa cirurgia e ficarei por um longo período fora dos gramados sem fazer o que eu mais amo. Muito triste por esse momento, mas com fé em Deus vou superar mais essa. Seguirei firme e forte na minha recuperação, para que aquele menino sonhador, que sempre acreditou nos seus sonhos, possa chegar aonde quer chegar", completou.

Após a publicação, Bruno Henrique recebeu mensagens de apoio de muitos torcedores, mas também de companheiros de clube, como Thiago Maia, Matheuzinho e Arrascaeta.

"Vamo, BH, vai da certo. Já já vai tá de volta, amigo", escreveu Arrasca.

Dedé, hoje no Athletico, Ricardo Oliveira, ex-Santos e São Paulo, Gabriel Batista Lincoln, Pedro Rocha, Berrío e César, ex-Flamengo, e Dodô, do Atlético-MG, foram alguns dos companheiros que desejaram boa recuperação ao atacante nas redes sociais.

Preparador físico da comissão técnica de Paulo Sousa, Lluis Sala também manifestou solidariedade ao camisa 27 do Rubro-Negro.

"Você não merecia isso, meu amigo. Desejo que tenha uma boa recuperação. Você vai voltar ainda mais forte", publicou Lluis Sala.

Bruno Henrique não deixou claro qual seria "a pior notícia que já recebeu" em sua carreira. Antes da lesão no joelho direito, o atacante, contudo, encarou outro delicado problema de saúde, em 2018. Como jogador do Santos, o camisa 27 sofreu cinco lesões no olho direito, por conta de uma bolada no rosto, e correu o risco de não poder mais atuar. A recuperação, contudo, foi plena.

Flamengo