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

Virgínia, Safadão e outros famosos doam para regiões afetadas na Bahia

Virginia Fonseca doará o lucro de sua marca de beleza - Reprodução / Instagram
Virginia Fonseca doará o lucro de sua marca de beleza Imagem: Reprodução / Instagram

De Splash, em São Paulo

27/12/2021 12h34

Famosos estão unindo forças nas redes sociais para arrecadar doações para ajudar o estado da Bahia, atingido por fortes chuvas nos últimos dias que afetaram cerca de 430 mil pessoas, deixando 58 cidades debaixo d'água, segundo balanço divulgado ontem pela da Defesa Civil.

Em publicação nos Stories do Instagram, a influenciadora digital Virgínia afirmou que todos os lucros da We Pink, sua marca de beleza, até o final do ano serão destinados às cidades afetadas.

Vou pedir pra ninguém pular esses Stories, que é sobre tudo o que está acontecendo na Bahia. Estava falando com meus sócios da We Pink e a gente decidiu que de hoje até o dia 31, até a virada do ano, nós vamos doar todos os nossos lucros para ajudar a Bahia. E continuo pedindo para que vocês ajudem com a quantia que conseguirem, da maneira que vocês conseguirem.

No Twitter, Wesley Safadão disse que doará 100% do cachê do show que fará hoje em Barra Grande, também na Bahia.

Já a dançarina e influenciadora digital Lore Improta, mulher do cantor Leo Santana, fará um bazar beneficente para reverter o lucro em doações.

Por favor, gente, vamos ajudar! Estou aqui mobilizando, vendo como podemos ajudar de uma forma mais massiva. Realmente as cidades aqui no sul da Bahia estão precisando muito, muito de ajuda da gente. Eles perderam casa, tem muita gente desabrigada, não tem água para tomar, não tem agasalho, nada. [...] Já fiz minha doação, mas queria algo mais, e aí estava no meu quarto antigo na casa dos meus pais. Quem me acompanha sabe que faço um bazar beneficente. Todo dinheiro arrecadado no bazar [que ela fará em janeiro] será doado para as cidades que estão precisando por conta das chuvas.

Outros famosos, como Whindersson Nunes, Rafa Kalimann, Ivete Sangalo e Gil do Vigor também usaram as redes sociais para compartilhar informações sobre como doar.

Confira: