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

BBB 23: Sarah explica discussão com Bruna para aliados: 'Não fez sentido'

BBB 23: Sarah Aline fala sobre bate boca com Bruna Griphao - Reprodução/Globoplay
BBB 23: Sarah Aline fala sobre bate boca com Bruna Griphao Imagem: Reprodução/Globoplay

Colaboração para Splash, em São Paulo

28/03/2023 14h39

Sarah Aline levou para seus aliados do Fundo do Mar a discussão que teve com Bruna Griphao mais cedo hoje no BBB 23 (Globo). A líder da semana, que indicou a atriz ao Paredão, viu que recebeu um emoji de 'mentiroso' no queridômetro, e perguntou se tinha vindo de Bruna.

Para Ricardo Alface, Domitila e Fred Nicácio, Sarah contou o que aconteceu.

Sarah: "Ela disse: 'Eu não acho que eu sou a pessoa menos importante pra você na casa, por isso, acho que é uma mentira', e eu falei: 'Mas era a dinâmica'"

Fred: "Ela fez uma consideração que, na visão dela, tem outras pessoas menos importantes pra você do que ela, por causa das coisas que vocês já viveram aqui dentro. Mas tipo, que coisas são essas? São importantes pra ela e não pra você"

Sarah: "Foi isso que eu falei: quem são as pessoas? E ela não falu. Talvez foi a maneira que ela interpretou, mas essa era a dinâmica. Ela falou: 'Acho que você fez isso por estratégia', e eu falei: 'Sim'"

Fred: "Até porque, Sarinha, se você não coloca ela como menos importante naquele momento, fica incoerente pra você. Gente, pera aí. A Sarah, como líder, indica alguém pro Paredão, é porque a Sarah entende que aquela pessoa tem que sair. Quando a Sarah coloca a Bruna no Paredão e no Jogo da Discórdia como menos importante, isso é coerente. Se ela coloca outra pessoa, por que então ela colocou a Bruna no Paredão. Se tem alguém menos importante pra Sarah do que a Bruna, por que a Sarah colocou a Bruna no Paredão? Isso é muito coerente"

Sarah: "Quando ela fala que ela não achou coerente, é porque ela não entendeu o que eu falei no Jogo da Discórdia. Eu comecei falando: 'Pra ser coerente com meu voto, com meu jogo'

Fred: "Você ainda usou uma expressão muito importante: 'Neste momento'. De todo mundo da casa, neste momento, ela é a menos importante. Tá tudo certo. Não fez sentido a Bruna pegar esse ar com você ali"

Domitila: "Preguiça"

ENQUETE UOL BBB 23: Quem você quer eliminar no Paredão?

Enquete encerrada

Total de 172630 votos
50,75%
Divulgação/Globo