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

Plásticas íntimas e processos: a vida de Viviane, mãe de Viih Tube

Viviane, mãe de Viih Tube, defende a filha na justiça e adora intervenções estéticas - Instagram/Reprodução
Viviane, mãe de Viih Tube, defende a filha na justiça e adora intervenções estéticas Imagem: Instagram/Reprodução

De Splash, em São Paulo

28/04/2022 04h00

Viviane Felício, mãe da ex-BBB Viih Tube, se viu no meio de uma confusão ao ter seu pedido de indenização contra Felipe Neto negado pelo Tribunal de Justiça de São Paulo.

Viviane pedia uma indenização no valor de R$ 40 mil por danos morais, além de uma retratação pública do youtuber por dizer em 2016 que Viih Tube era explorada pelos pais por lucro, quando ela ainda era menor de idade.

Splash te conta mais detalhes sobre a vida de Viviane.

56y65 - Reprodução: Instagram - Reprodução: Instagram
Felipe Neto não terá que pagar indenização a mãe de Viih Tube
Imagem: Reprodução: Instagram

Questões jurídicas

Esta não é a primeira vez que Viviane busca a justiça para resolver problemas relacionados a filha. Durante o "BBB 21", Viviane registrou um boletim de ocorrência contra ameaças e ofensas que Viih Tube recebeu nas redes sociais pela sua participação no reality.

"O povo aqui fora está doente. Normalizar fake news, ameaças, discurso de ódio para nos enquadrarmos no 'espírito esportivo de um meme?! Será?!", desabafou nas redes sociais, na época.

Intervenções estéticas

Aos 46 anos, Viviane é musa fitness e mantém uma rotina de exercícios regrada para cultivar o corpo. Mas a influenciadora também é adepta das cirurgias plásticas.

Dentro do "BBB", Viih Tube revelou que já gastou R$ 50 mil em plásticas para a mãe. "Ela fez abdominoplastia, fez lipo, fez silicone. Ela quis fazer tudo de uma vez", relembrou.

No ano ado, Viviane também realizou uma harmonização facial e ainda uma outra cirurgia que deu o que falar...

65uh56 - Reprodução/Instagram - Reprodução/Instagram
Viviane Tube e Viih Tube
Imagem: Reprodução/Instagram

Intimidade

Em novembro, Viviane ou por uma ninfoplastia, uma operação íntima na região dos grandes lábios vaginais. A influencer festejou os resultados e o pós-operatório tranquilo em entrevista.

"A doutora disse que ficou com aspecto de adolescente de 15 anos. E não é que ficou mesmo? Ficou realmente como eu era menina. Se eu soubesse, teria feito antes", comentou em entrevista ao "Extra".

Separada do pai de Viih Tube desde que a ex-BBB ainda era criança, Viviane diz que sua aparência jovial acaba atraindo homens mais jovens.

"Sempre namoro homens mais novos do que eu, de uns 35 anos. Tem aqueles mais velhos do que isso que acham que porque já conquistaram muita coisa não precisam se cuidar. Quando me comparam com meninas de 20 anos, fico feliz sim", festejou também ao "Extra".