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

Justiça nega liminar de Klara Castanho contra Fontenelle

A atriz Klara Castanho - Instagram/@klarafgcastanho
A atriz Klara Castanho Imagem: Instagram/@klarafgcastanho

Rodolfo Vicentini e Weudson Ribeiro

De Splash, em São Paulo, e colaboração para o UOL, em Brasília

18/07/2022 19h40

A Justiça negou liminar para Klara Castanho contra a youtuber Antonia Fontenelle. A atriz pedia a retirada das declarações feitas pela apresentadora bolsonarista sobre ela, no último dia 24 de junho, do YouTube. Fontenelle expôs a entrega para adoção de um bebê fruto de estupro sofrido pela atriz

A notícia foi divulgada pelo colunista Ancelmo Gois, do site O Globo, e Splash teve o à decisão. No documento, assinado pela juíza Flávia Viveiro de Castro, da 2ª Vara Cível da Barra, a magistrada retirou o segredo de Justiça do processo e entendeu que a determinação para retirar as declarações da Fontenelle seria "uma espécie de censura".

"Os fatos relatados neste processo são de conhecimento público. Inclusive no que diz respeito às declarações publicadas pela ré, que, pelo que se viu no YouTube para poder decidir a tutela antecipada, no primeiro momento não revelou o nome da autora em suas críticas; Desta forma, não se justifica o segredo de justiça. Trata-se de pretensão que objetiva responsabilizar a ré por suas declarações e postagens. Os fatos, os comentários sobre os fatos, as postagens estão todas na rede social. Não se pode censurar um discurso, por mais que com ele não concordemos. Isso, entretanto, não livra aquele que publica e emite opinião ofensiva, ou que espalha um discurso de ódio, produzida a prova e provados os fatos, de ser responsabilizado pelo que divulgou", diz um trecho do documento.

A decisão ainda reforça que o Poder Judiciário não pode censurar as redes sociais de Fontenelle.

"A situação vivenciada pela autora é digna de consideração e respeito. Se a ré não soube respeitar o ser humano que a demandante é e, como afirmado na inicial, pretendeu tirar proveito financeiro do sofrimento alheio, tal conduta, repita-se, após a prova dos fatos, deverá ser sancionada negativamente pelo Poder Judiciário; No momento, entretanto, não pode o Poder Judiciário censurar a rede social da demandada proibindo-a de divulgar a sua versão de fatos já divulgados. No limite, poder-se-ia pensar que então, antes de qualquer publicação em rede, deveria ser consultada a Justiça, o que seria absurdo."

A ação prossegue com o pedido de indenização.

Entenda o caso

No mês ado, Klara Castanho relatou, por meio de uma carta aberta nas redes sociais, que gestou e colocou para adoção um bebê fruto de estupro.

O assunto íntimo ganhou notoriedade após ser abordado por Fontenelle em uma live. Na ocasião, mesmo sem citar o nome da atriz, a apresentadora deu dicas de que se tratava de Klara.

Ao vir a público, Castanho explicou que foi violentada sexualmente, engravidou e optou pela doação, conforme prevê a legislação brasileira. Naquela ocasião, Antonia acusou a atriz de "abandono de incapaz".

Na entrevista ao Diário de S.Paulo, a apresentadora voltou a dizer que "nunca" vai "compreender uma mãe que gera um filho em seu ventre e não consegue ter amor por ele". Ainda, a comunicadora disse estar "à disposição dos órgãos competentes para explicar o motivo do meu relato ríspido a respeito disso tudo".