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

Aline Mineiro diz que Léo Lins está 'extremamente magoado'

Aline Mineiro e Léo Lins estavam juntos desde 2018 - Reprodução/RecordTV
Aline Mineiro e Léo Lins estavam juntos desde 2018 Imagem: Reprodução/RecordTV

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

21/12/2021 22h07Atualizada em 22/12/2021 10h01

Aline Mineiro falou hoje em seus stories sobre seu relacionamento com o comediante Léo Lins. Após sua agem pelo reality 'A Fazenda' e um conturbado relacionamento com Mc Gui dentro da casa, a relação de três anos chegou ao fim.

A ex-participante do reality postou uma foto com o comediante e compartilhou uma mensagem que mandou a uma amiga falando sobre o término. "Só ontem eu e o Léo conseguimos parar para conversar pessoalmente sobre tudo o que aconteceu. Somos muito sinceros um com o outro. Nos amamos ainda e construímos muita coisa nesses três anos de namoro. Porém, ele está extremamente magoado com tudo que aconteceu e prefere ficar sozinho no momento", disse a peoa na mensagem.

Ela continuou o desabafo: "Ele é o cara mais incrível que eu conheci na minha vida, fico muito triste com isso que está acontecendo, porém, entendo ele perfeitamente". Apesar de viverem uma relação aberta, segundo ambos, eles decidiram pelo término.

Aline disse em seus stories que os compromissos após a saída da Fazenda e os shows do comediante impediram que a conversa acontecesse antes. "Fui conversar com o Léo e comecei a ver tudo com os olhos dele, com a visão dele. O comportamento que ele teve durante toda a situação que rolou foi incrível", disse ela, completando: "Eu iro muito o posicionamento dele. Ele foi incrível. Talvez, se fosse ao contrário, de tudo que estava acontecendo com ele aqui fora, eu não sei se eu teria essa paciência que ele teve. Eu acho que eu ia enlouquecer".

Aline Mineiro mostra mensagem que compartilhou com amiga sobre término - Reprodução/Instagram - Reprodução/Instagram
Aline Mineiro mostra mensagem que compartilhou com amiga sobre término
Imagem: Reprodução/Instagram