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

Paparazzi

Modelo tem feito de tudo para reatar namoro com mãe de Neymar, diz jornal

Nadine Gonçalves, mãe de Neymar, assume namoro com Tiago Ramos - Reprodução/Instagram
Nadine Gonçalves, mãe de Neymar, assume namoro com Tiago Ramos Imagem: Reprodução/Instagram

Do UOL, em São Paulo (SP)

02/04/2022 08h56

O modelo Tiago Ramos, ex-namorado de Nadine Gonçalves, está fazendo de tudo para reatar o namoro com a mãe de Neymar.

De acordo com o jornal 'Extra', o jovem de 24 anos quer mostrar para a mãe do camisa 10 da seleção brasileira e do PSG que amadureceu e ainda tem esperança no relacionamento.

"Ele quer mostrar que mudou, que amadureceu de uns tempos para cá. Tiago acredita que tem chances porque diz que ela ainda gosta dele", disse uma fonte ouvida pelo portal de notícias.

Em abril de 2020, Nadine e Tiago compartilharam a mesma foto romântica e deixaram nítido ao público que estavam juntos. Na época, o fato deles terem uma diferença de 30 anos de idade teria deixado a família de Neymar um pouco receosa, segundo informações divulgadas.

Contudo, as mesmas notícias indicavam que Tiago teria sido bem recebido pelos parentes de Nadine, afinal, ele já era conhecido do craque há algum tempo. O ex-jogador e modelo, no entanto, teria deixado em segredo detalhes de seu ado que não foram aceitos com facilidade por Nadine.

Em declaração ao Extra, o assessor de imprensa Irinaldo Oliver revelou que já namorou com Tiago durante um ano, afirmando que o jogador de futebol é bissexual e que tem preferência por mulheres mais velhas.

Pouco depois, o modelo pernambucano e influenciador teve mais uma informação sobre seu ado divulgada: De acordo com o "Extra", o massoterapeuta e também modelo Hans Madrid, de 24 anos, e o marido dele, o empresário Raphael Stemberg, de 32 anos, tiveram um romance a três, um "trisal", que durou um ano e seis meses.

Além disso, Tiago teria se relacionado com um cozinheiro de Neymar. Nadine teria ficado chateada por ter descoberto pela imprensa sobre a bissexualidade do companheiro. Segundo pessoas próximas ao então casal, o namoro não teria ficado estremecido por conta da novidade, porque apenas pessoas muito próximas de Tiago tinham conhecimento das outras relações, como a mãe do gamer.

Em maio, o casal teria ficado perto de terminar após a acusação contra Tiago de agressão a uma ex-namorada de 44 anos na Espanha. O fim do namoro teria sido pedido por parentes que desaprovavam o namoro.

Frequentador da mansão de Neymar, Tiago estava morando em Santos, em São Paulo, para ficar próximo da companheira. Longe das redes sociais, os dois estariam sofrendo críticas por conta da relação. Mesmo assim, Nadine assumiu a bronca e contrariou a família.

No começo de junho, o namoro chegou ao fim. O fim do relacionamento foi ocasionado após o "surto" do modelo, gerando um incidente no qual ele socou um vidro e foi levado ao hospital para receber 12 pontos. No mesmo dia, Neymar teria criticado a postura do namorado da mãe.

Entre o fim do namoro e a reconciliação romântica em Cancún, no México, Tiago teria tirado alguns dias para orar e "colocar a cabeça no lugar". Apostando na vida gamer, ele é youtuber e joga Free Fire. Embora Nadine não confirme, os dois foram flagrados juntos no México em vídeos compartilhados nas redes.

Paparazzi