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

Mayra Cardi e Arthur Aguiar voltam a morar juntos: 'A hora é agora'

Mayra e Arthur mostraram nova organização de closets e explicaram decisão de voltar a morar juntos  - Reprodução/Instagram
Mayra e Arthur mostraram nova organização de closets e explicaram decisão de voltar a morar juntos Imagem: Reprodução/Instagram

Do UOL, em São Paulo

22/12/2021 19h42Atualizada em 22/12/2021 19h42

Mayra Cardi e Arthutr Aguiar deram mais um o no relacionamento após anunciar a reconciliação no final de outubro. O casal voltou a morar na mesma casa, com o cantor se mudando para a mansão da coach no interior de São Paulo.

"A hora é agora! Eu e Arthur Aguiar resolvemos juntar nossas escovas de dentes novamente! E obviamente eu não poderia deixar de dividir com vocês essa nova fase!", afirmou Mayra em um vídeo ao lado do marido, postado em seu Instagram.

Mayra, que participou do "Big Brother Brasil 9", e Arthur, cotado para entrar na próxima edição do reality, mostraram o trabalho de uma equipe de organização para fazer a mudança do ator, adaptando "os três closets bagunçados" da coach para abrigar as roupas e órios do marido.

No vídeo anunciano a decisão, a ex-BBB questiona: "E aí, vamos juntar?". "Tem certeza?", questiona o ator. "Pensa não, só vai", completa Mayra, antes de mostrar cenas de caixas chegando à mansão.

Os dois ainda explicaram a decisão de voltar a morar juntos, filosofando: "Não deixe para amanhã o que você tem que viver agora".

"Quando eu vim morar aqui eu era solteira. E aí resolvemos voltar, como é que faz? Vai para uma outra casa? Jamais. Como eu sofri pra deixar essa casa pronta…foi uma luta, não vou mudar. Para o benefício da nossa filha, nós vamos ficar aqui", explicou Mayra em outro trecho da mudança.

"Aí encaixa como der, depois a gente pensa o que vai fazer. Ele vai morar no nosso mundo cor de rosa, o que é mara. Mas é um desapego porque ele saiu do apartamento dele, deixou as coisas dele pra se encaixar no nosso mundo rosa, e eu perdi metade de todos os meus guarda-roupas", completou a coach, que é mãe de Sofia, de 3 anos, do casamento com Arthur.