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

Maju Coutinho procura casa no Rio: 'Decidindo em qual vou morar'

Maju Coutinho disse que está decidindo em qual bairro carioca vai viver; jornalista deixou SP para o "Fantástico" - Marcos Rosa/Globo
Maju Coutinho disse que está decidindo em qual bairro carioca vai viver; jornalista deixou SP para o 'Fantástico' Imagem: Marcos Rosa/Globo

De Splash, em São Paulo

20/12/2021 08h11

Maju Coutinho afirmou que está procurando um bairro e uma casa ideal para morar no Rio de Janeiro agora que é apresentadora do "Fantástico" (TV Globo). Antes, a jornalista morava em São Paulo e fazia o "Jornal Hoje" da capital paulista.

Em entrevista a Quem, Maju disse que tem saudades da família, mas que é um processo de se adaptar com o Rio de Janeiro.

Tem o lado maravilhoso da mudança, que é estar no 'Fantástico', com uma equipe muito receptiva, amorosa. É um programa muito relevante. E tem o lado da adaptação a uma cidade, que é maravilhosa, mas ainda estou procurando minha casa aqui, decidindo em qual bairro vou morar e quero viver. Maju Coutinho a Quem

Desde o dia 21 de novembro, Maju virou a apresentadora titular do programa de domingo da Globo ao lado de Poliana Abritta.

Maju Coutinho - João Cotta/TV Globo - João Cotta/TV Globo
Maju Coutinho é a nova apresentadora do 'Fantástico'
Imagem: João Cotta/TV Globo

Maju famosa

A jornalista brincou sobre como é, para ela, difícil lidar com a o status de celebridade agora que é apresentadora do "Fantástico".

Maju já tinha projeção nacional após ser a jornalista responsável pela previsão do tempo no "Jornal Nacional" e por assumir o "JH" após a saída de Sandra Annenberg. Ela também foi a primeira mulher negra a apresentar o Jornal Nacional em 2019.

"É um pouco assustador, porque você está em um momento de praia, de intimidade. Mas faz parte do combo de quem é pessoa pública. Vivemos em uma era em que nós temos que celebrar nossos corpos e já que estou morando aqui, quero curtir as praias lindas do Rio. Vou continuar indo para praia de maiô e curtindo a natureza, como qualquer outra pessoa", afirma ao lembrar de quando um paparazzo a flagrou com o marido, Agostinho Paulo Moura, na praia.

Maju Coutinho - Agnews - Agnews
Maju Coutinho com o marido no Leblon em janeiro do ano ado
Imagem: Agnews

Ela esteve na sessão de exibição de "Medida Provisória", filme de Lázaro Ramos com Taís Araújo, Alfred Enoch e Adriana Esteves.

A jornalista elogiou e reconheceu a importância de ter negros envolvidos em todos os níveis de uma produção para gerar uma mudança de perspectiva efetiva.

"É essencial um projeto com tantos negros envolvidos no elenco, na produção e direção. A gente já devia ter isso há muito tempo. Me sinto muito honrada com o Lázaro trazer para essa perspectiva, de trazer para produção e não só para frente das câmeras pretos e pretas para mostrar o Brasil com o nosso olhar", contou.