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

Whindersson faz declaração de amor e seguidores criticam: 'Coitada'

Whindersson Nunes - Clayton Felizardo/Brazil News
Whindersson Nunes Imagem: Clayton Felizardo/Brazil News

Do UOL, em São Paulo

19/03/2022 18h43Atualizada em 19/03/2022 18h55

Whindersson Nunes, 27, mostrou aos seguidores uma série de críticas que recebeu após compartilhar a letra da música "Dias de Luta, Dias de Glória", da banda Charlie Brown Jr. O comediante havia publicado um trecho da canção, que é uma declaração de amor, e alguns usuários entenderam que ele se referia a uma suposta nova namorada. No entanto, segundo Whindersson, a música era para o filho, João Miguel, que morreu após parto prematuro, em maio de 2021.

Na publicação, Whindersson mostrou os comentários de algumas pessoas criticando ele e a mãe dele. "E era só uma parte de uma música que eu atribuo ao meu filho quando estou com saudade", escreveu ele.

As imagens mostram comentários como "boa sorte para ela com aquela sogra", "mais uma nora que será odiada". Além disso, outros citavam que a possível nova amante estaria "caindo no golpe". "Coitada da próxima", dizia uma das pessoas.

Os comentários surgem após a mãe de Whindersson Nunes, Valdenice, revelar ao podcast 'IelCast' que não aprovava os familiares de Maria Lina, ex-noiva do youtuber, e Luísa Sonza, ex-esposa dele.

"Quando cheguei na segunda vez, agora da segunda [Maria Lina], ele foi me mostrar a casa, me perguntou se gostei. Eu disse: 'Gostei. Acontece, meu filho, que você só mudou de sobrenome. A família é pior do que a da primeira [Luísa Sonza]", disse ela.

Diante disso, a mãe do youtuber relembrou o que o filho falou para ela na ocasião. "Ele [disse] então: 'Mãe, pelo amor de Deus, a senhora já diz isso. Eu namoro com ela, não é com a família, não'. Eu respondi: 'Quem aceita a mulher, aceita a família todinha'. Mas mudei, fiquei com medo de ele ficar com raiva e eu estava na casa dele. Tive que procurar o meu lugar", concluiu.

Após as declarações, Maria Lina, mãe de João Miguel, publicou um vídeo elogiando os próprios pais. "Pai e mãe, eu quero que vocês saibam, na verdade, que quero que todo mundo saiba, que vocês são pessoas maravilhosas", disse ela, antes de seguir tecendo uma série de elogios aos familiares.

"Problemas todos nós temos, ninguém é perfeito e nós não somos uma família perfeita, mas mesmo com os nossos problemas a gente se ama, a gente se respeita e eles são a minha base mais sólida. Só quem teve a oportunidade de conviver com vocês, pai e mãe, sabe o que eu tô falando. Vocês são incríveis. Amo vocês demais!", afirmou. Os dois anunciaram o término do relacionamento em novembro do ano ado.

A fala de Valdenice também ressoou na família de Luísa Sonza. Os pais da cantora, Eliane Gerloff e Cezar Luiz Sonza, se pronunciaram sobre o assunto. Enquanto Eliane disse que não quer comentar coisas negativas, Cezar foi mais explícito: disse achar o comentário desnecessário, e que acreditava que a atitude da mãe de Whindersson só prejudica todos os envolvidos.

Após a polêmica, Whindersson comentou o caso afirmando estar "morto de vergonha" com as alegações da mãe.