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

Ícaro Silva nega ida ao 'BBB 22' e é criticado: Entretenimento medíocre

Colaboração para Splash, no Rio de Janeiro

21/12/2021 07h46

Primeira polêmica do "BBB 22" antes mesmo da estreia: Ícaro Silva, 34 anos, que era um dos grandes cotados para participação no reality, negou sua ida nesta edição. No entanto, as palavras usadas pelo ator geraram uma grande onda de críticas e o nome do global tornou-se um dos mais comentados nas redes sociais.

Tudo começou quando, mais uma vez, o ator era dado como confirmado na edição. "Gente, respeita a minha história, a minha trajetória, meu ódio por entretenimento medíocre e minha repulsa por dividir banheiro. Parem de acreditar nessa história absurda de que eu cogitaria ir para o Big Boster Brasil", dispara. O tweet foi apagado com a repercussão do caso.

Na mesma hora, internautas recordaram quando Ícaro posou nu para comemorar a vitória de Thelma Assis, no "BBB 20". "Quando foi pra ganhar engajamento o BBB serviu, né?" e "Totalmente perdida na personagem, mana" foram alguns comentários que surgiram na publicação.

Mais tarde, Ícaro voltou à rede social para comentar a repercussão. "Gente, eu estou muito excitado que minha primeira interação em massa no Twitter seja na base do ódio. O esgoto está transbordando. A parte mais legal é que agora vocês sabem que eu não estou topando ar uma parte da minha vida dividindo quarto com luz de necrotério", continua.

Por fim, ele citou o cancelamento de Karol Conká no "BBB 21" como um dos motivos para não aceitar participar de um reality assim e volta a fazer piada. "A parte mais agressiva do mundo midiático é a misoginia. Combinada com racismo e então... Olha o que a Karol viveu esse ano. (...) Gente, muito obrigado mesmo! Até me atrasei pro rolê, mas amei essa enxurrada de paixões juvenis; não esperava na segundona pré férias. Amanhã venho dar minha opinião sobre futebol pra gente recuperar esse calor. Cuidem-se, bebam água e me sigam no Instagram".