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

Lucas Pasin

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Ex-BBB Thais Braz sobre críticas de que estaria irreconhecível: 'Não ligo'

Colunista do UOL

25/05/2023 11h29

Receba os novos posts desta coluna no seu e-mail

Email inválido

Thais Braz participou do desfile de Igor Dadona hoje (25), na 55ª edição da SPFW (São Paulo Fashion Week). Ela conversou com esta coluna de Splash sobre as mudanças — tanto físicas quanto internas — após o BBB 21 (Globo).

É nítida a mudança porque no reality eu fiquei meio travada mesmo, sabe? Nem eu sei o porquê. Mas quando eu descobri o que eu queria, no que eu queria trabalhar, mudei muito. Acho que quando a gente tá feliz com quem a gente é, tudo muda. Thais Braz

Procedimentos: "A minha vida inteira eu usei minha franjinha. Quando eu fiz a frontoplastia, que é a cirurgia que diminuiu minha testa, eu tive a liberdade de usar penteados e usar o cabelo sem a franjinha. Isso eu acho que mudou muito. A franja, querendo ou não, ela tampava minha sobrancelha. Agora eu acho que tá mostrando mais meu rosto".

Críticas de que estaria irreconhecível: "Eu não ligo. Eu falo 'eu tô me sentindo bem em como estou agora? Sim'. Eu sei que o que eu fiz foi para me sentir melhor, então tá ótimo".

1 - Brazil News - Brazil News
Thais Braz no São Paulo Fashion Week
Imagem: Brazil News

Comparações com Camila Queiroz: "Isso é um elogio de um tamanho para mim, porque ela é perfeita. iro muito, fiquei muito feliz".

Vida amorosa: "O coração tá bem tranquilo. Eu não gosto de ficar ficando com um monte de gente, beijando por beijar, eu acredito muito em energia. Então eu não quero ficar trocando energia com qualquer pessoa, então eu tô bem tranquila. Só quando eu acho a pessoa bem interessante e combina, aí a gente vê no que vai dar".

Relação com a moda: "Sempre amei a moda, e estar aqui prestigiando a semana de moda brasileira é incrível. Eu acho que a moda brasileira tá cada vez mais se consolidando no mercado internacional".