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

Gretchen participa de cobertura da Copa do Mundo por página de fofocas

Gretchen aparece em vídeo do Choquei na cobertura da Copa do Mundo do Qatar - Reprodução/Twitter
Gretchen aparece em vídeo do Choquei na cobertura da Copa do Mundo do Qatar Imagem: Reprodução/Twitter

Colaboração para Splash, no Rio de Janeiro

24/11/2022 14h02

Gretchen, de 63 anos, viajou para o Qatar para cobrir a Copa do Mundo 2022 por um perfil de fofocas nas redes sociais. A cantora já havia contado que iria ao país do Oriente Médio após aceitar um convite de trabalho.

Em uma publicação no Twitter, a página de fofocas Choquei divulgou o vídeo da cantora em Doha, no Qatar, onde o Brasil enfrentará a Sérvia às 16h pelo grupo G.

"A correspondente Choquei já está on, diretamente daqui do estádio onde será o jogo do Brasil. Ativem as notificações que vocês terão as notícias em tempo real. Até mais", disse Gretchen.

A cantora contou que consultou o seu filho Thammy Miranda e estudou leis antes de ir ao Qatar para a Copa do Mundo. No país desde terça-feira, a cantora afirmou que não teve nenhum medo de ser presa.

"Estudei as leis deles. E, além disso, procurei trazer somente roupas lícitas na cultura deles. Não tive medo nenhum de ser presa. É muito tranquilo. Me adaptei desde o momento em que cheguei. Em nenhum momento me preocupei em ser presa, porque já sabia de todos os costumes como, por exemplo, não ter atitudes de carinho publicamente como abraços e beijos. Foi tudo combinado por nós dois, eu e Esdras", disse.

Questionada sobre viajar para um país que considera a homossexualidade ilegal, Gretchen ressaltou que não foi um fator determinante para que ela recusasse a ida ao Qatar.

"Isso não pesou porque eu vim, além de trabalhar, conhecer essa cultura. Sei que existe essa opressão, com mulheres e LGBTQIAP+, porém eu não estou em um hotel. Até porque, se estivesse, não teria ficado de biquíni. Estamos hospedados em uma mansão. Os casais em uma casa e os solteiros em outra. E a piscina é privativa", justificou.

"Eu acho que para uma mulher como você não tem limites. O céu é o limite para você que se supera a cada dia. Você é uma mulher forte, empoderada e dona de si. Não existe país preconceituoso que resista. Então, vá tranquila, porque você sempre soube se portar em qualquer lugar que vai. E curta muito", afirmou Thammy à mãe sobre a oportunidade de trabalho dela no país do Oriente Médio.