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

Se arrependeu? Maíra Cardi afirma que não fará casamento surpresa desta vez

Maíra Cardi rebate sugestão de casamento surpresa - Reprodução/Instagram
Maíra Cardi rebate sugestão de casamento surpresa Imagem: Reprodução/Instagram

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

27/03/2023 16h54Atualizada em 27/03/2023 16h54

Maíra Cardi respondeu o comentário de uma fã nas redes sociais que sugeriu um casamento surpresa dela com o atual namorado, Thiago Nigro, após a influenciadora digital ter publicado uma foto com uma declaração de amor a ele.

O assunto surgiu porque Maíra já organizou duas cerimônias surpresas de casamento. Ela contou que não irá repetir a mesma atitude e surpreendeu com os motivos por trás desta decisão.

Dessa vez [no relacionamento atual] eu posso ser a menina, ocupei meu lugar na relação. Ele [Thiago] jamais aceitaria isso [uma cerimônia surpresa]. Conheci um homem mais macho que eu e agora eu posso ser a menina

Thiago e Maíra assumiram o relacionamento no começo de março deste ano. Ela estava solteira desde o fim de seu casamento com Arthur Aguiar, em outubro de 2022. Com o ator ela tem uma filha, Sophia, de quatro anos.

Como Maíra realizou as surpresas?

Antes de Arthur Aguiar, Maíra foi casada com Greto Guariz. Ele já foi amigo de infância dela. A influenciadora digital organizou a cerimônia de casamento em 2013, no Mato Grosso do Sul, que custou cerca de R$ 500 mil reais na época.

Greto foi orientado a viajar para o casamento de um amigo como convidado e só soube que era o noivo ao chegar na festa. Maíra contou em entrevista ao portal EGO que planejava tudo durante a madrugada, enquanto ele dormia.

Para a cerimônia, Maíra não economizou: o vestido de noiva tinha 80 metros de renda, e custou cerca de R$ 30 mil. O casal dividiu a maior parte da história a dois em Los Angeles, nos Estados Unidos.

Arthur Aguiar pediu Maíra Cardi em noivado pouco tempo depois de iniciarem o namoro. Porém, quem organizou e idealizou a cerimônia foi ela. O casamento aconteceu em dezembro de 2017, na casa deles, na Barra da Tijuca, zona oeste do Rio de Janeiro. Eles estavam juntos há cinco meses.

O ator falou sobre o assunto durante o BBB 22. Ele havia viajado para as gravações da novela 'O Outro Lado do Paraíso', da Rede Globo. Três dias antes de o noivo voltar para casa, Maíra teve a ideia de levar uma juíza para oficializar a cerimônia, sem que ele soubesse.

Quando chegou na casa, Arthur deu de cara com uma decoração repleta de flores e também da presença de amigos e familiares. Ele estava de branco, assim como Maíra, que apostou em mini saia, cropped rendado e tênis com spikes na mesma cor.