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

"Me escolheu", diz Janaina Xavier sobre noticiar morte de Rodrigo Rodrigues

Rodrigo Rodrigues ao lado de Janaína Xavier - Reprodução/Instagram
Rodrigo Rodrigues ao lado de Janaína Xavier Imagem: Reprodução/Instagram

Beatriz Cesarini

Do UOL, em São Paulo

28/07/2020 16h20

Janaina Xavier foi a responsável por confirmar ao vivo, no SporTV News, a morte de Rodrigo Rodrigues. Emocionada, a jornalista relembrou com carinho a estreia do amigo no canal esportivo, que ocorreu justamente como comentarista do mesmo programa na qual ela noticiou o triste acontecimento.

"Hoje, eu tive a dura missão de dar a notícia da morte do meu amigo. Senti que ele me escolheu. Foi emocionante... Quase que entendendo que foi a forma de fecharmos o nosso ciclo. Ele começou comigo, no meu programa, e coube a mim dar a notícia da despedida dele. Acho que o legado que ele deixa é de um jornalista super versátil, inteligente, culto, bem-humorado e cativante. Ele era de uma doçura ímpar. Nunca vou me esquecer dele", declarou Janaína ao UOL Esporte.

A apresentadora contou que se encontrou pessoalmente com Rodrigo tempos depois da rotina de ambos no SporTV News, já que ele ficava na redação em São Paulo. Janaina relembrou do abraço cheio de carinho que recebeu do amigo quando eles se conheceram 'ao vivo' - um ato que hoje a jornalista não pôde fazer com seus colegas de emissora por causa da pandemia por coronavírus.

"Conheci Rodrigo 'pelo tubo', assim como ele brincava... Ele começou no SporTV em São Paulo. E a primeira missão dele foi ser comentarista no meu programa. Ele brincava: 'Eu só te conheço pelo tubo. Você é de verdade? Você não existe'. Quando ele me encontrou pessoalmente, me deu um abraço... Aí nasceu uma amizade. Ele era muito verdadeiro, se doava muito para as pessoas, se dedicava demais aos outros", contou Janaina.

Rodrigo Rodrigues morreu hoje, aos 45 anos de idade, vítima de uma trombose no cérebro após diagnóstico de Covid-19. Ele estava internado desde o último sábado, no Hospital Unimed-Rio, no Rio de Janeiro.