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

Duda Reis cria instituto contra violência doméstica: 'sou uma sobrevivente'

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

14/03/2022 04h00

A atriz e influenciadora digital Duda Reis criou um instituto para acolher mulheres vítimas de violência doméstica. Em janeiro do ano ado, ela denunciou o ex-noivo, o cantor Nego do Borel, sob a acusação de ameaça, estupro de vulnerável, lesão corporal, entre outros crimes.

A vítima é sempre culpabilizada e eu não tive culpa. Eu também sou uma sobrevivente, toda mulher que a por um relacionamento abusivo é uma sobrevivente (...) No meu instituto vamos disponibilizar uma rede de apoio para essas mulheres. É na dor que encontramos um propósito e esse é um dos meus propósitos de vida.

Na época em que registrou o Boletim de Ocorrência contra Borel na Delegacia da Mulher de São Paulo, Duda Reis também expôs em suas redes sociais tudo o que aconteceu. Ela conta que ter sido transparente com seus amigos e seguidores sobre a situação ajudou outras mulheres vítimas de violência doméstica.

A exposição não só me ajudou a sair definitivamente de um relacionamento abusivo como ajudou milhares de mulheres. Todos os dias eu recebo milhares de relatos de mulheres que detalham que saíram de casamentos de anos onde eram vítimas de violência doméstica.

Única artista de uma família de médicos

Natural da cidade de Volta Redonda, no interior do Rio de Janeiro, Duda Reis é a única artista de uma família de médicos. Seu primeiro papel como atriz na televisão foi como Mari em "Malhação: Toda Forma de Amar (2019)".

Eu nunca senti vontade de fazer medicina apesar de irar a profissão. Eu sou uma pessoa que se ver sangue desmaia, então eu não nasci para isso. Sempre fui comunicativa e fazia de tudo para ser protagonista.

Hoje com 9,6 milhões de seguidores apenas no Instagram, Duda diz que viu o número de pessoas que a acompanham na internet disparar com o início da pandemia, em 2020. Antes de sua carreira como atriz estourar, ela já usava as redes sociais para mostrar seu trabalho, mas não tinha conhecimento sobre como poderia ganhar dinheiro com publicidade.

Eu postava sobre a minha vida, minha rotina, mas não tinha consciência de que era possível monetizar isso. Eu tinha 2 milhões de seguidores e não monetizava minhas redes sociais ainda.

'Entre Likes'

"Entre Likes" é um programa de entrevistas que recebe personalidades de destaque na internet. Os convidados contam sua jornada profissional, como conquistaram o público e abrem o coração sobre detalhes da sua vida. O programa vai ao ar todas as segundas, às 10h, no canal Splash no YouTube e no UOL.