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

Esse conteúdo é antigo

Bolsonaro é condenado a indenizar colunista do UOL

Mateus Bonomi/AGIF/Estadão Conteúdo
Imagem: Mateus Bonomi/AGIF/Estadão Conteúdo

Do UOL, em São Paulo

10/12/2020 23h26Atualizada em 10/12/2020 23h33

O presidente Jair Bolsonaro (sem partido) foi condenado a indenizar em R$ 10 mil a colunista Bianca Santana, de Ecoa, por danos morais, após acusá-la de propagar notícias falsas. A decisão é do juiz César Augusto Vieira Macedo, da 31ª Vara Cível do TJ-SP (Tribunal de Justiça de São Paulo), e o presidente ainda pode recorrer.

O caso aconteceu durante uma live, em 28 de maio deste ano. Na ocasião, Bolsonaro atribuiu à jornalista uma matéria que ela não escreveu, sobre o TSE (Tribunal Superior Eleitoral) ter barrado uma propaganda eleitoral de Fernando Haddad (PT) que acusava o presidente — então candidato — de ter votado contra a LBI (Lei Brasileira de Inclusão), voltada a pessoas com deficiência.

Na mesma semana, Bianca publicou um texto citando relações entre pessoas próximas a Bolsonaro e os acusados do assassinato da vereadora Marielle Franco, no Rio de Janeiro. A colunista defendeu a tese de que a federalização do caso interessava ao presidente, que, segundo ela, queria se aproveitar do cargo para proteger os mandantes do crime.

Dois meses depois, em outra live, Bolsonaro se desculpou por citar o nome de Bianca e acusá-la de disseminar notícias falsas. "Lamento o ocorrido na live de 28 de maio. Peço desculpas à jornalista Bianca Santana. Eu fiz referência a várias reportagens de fake news, e uma falei que era dela. Não era dela, tinha o nome dela lá embaixo. Houve equívoco da minha parte", disse.

A transmissão também foi excluída das redes sociais do presidente.

O pedido de desculpas foi suficiente para que o juiz reduzisse a indenização inicialmente pleiteada, de R$ 50 mil para R$ 10 mil. Embora Bianca tenha argumentado que a menção ao seu nome não foi "meramente um erro", Macedo entendeu que a quantia reduzida "é razoável e suficiente à compensação, estando ainda em conformidade com a mais recente jurisprudência".

Nas redes sociais, Bianca comemorou a decisão do TJ-SP. "Uma vitória, dentre tantas que a população negra deveria ter na justiça. Uma condenação, dentre as agressões de Jair Bolsonaro, seus filhos e ministros feitas a jornalistas e comunicadoras constantemente. Só a luta muda a vida!", escreveu.

A jornalista pretende doar o dinheiro "para a busca de justiça pelo assassinato de Marielle Franco", como anunciou no dia do pedido de desculpas de Bolsonaro, em 30 de julho.