;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Mercado do interior de São Paulo doa álcool em gel para mais de 500 pessoas

Mercado Nagae, em Votorantim, doa álcool em gel para mais de 500 pessoas - Arquivo pessoal
Mercado Nagae, em Votorantim, doa álcool em gel para mais de 500 pessoas Imagem: Arquivo pessoal

Simone Machado

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

20/03/2020 14h32

Em meio à pandemia do coronavírus, um mercado de Votorantim, interior de São Paulo, está dando exemplo de empatia. O estabelecimento decidiu doar álcool em gel à população. A iniciativa atraiu mais de 500 pessoas em 24 horas.

De acordo com o sócio proprietário do Mercado Nagae, Paulo Kiynori Nagae da Silva, na segunda-feira moradores da cidade começaram uma corrida atrás de álcool em gel e o produto acabou rapidamente. No dia seguinte, a busca da população pelo produto continuou alta, porém ele não tinha mais para vender.

"Normalmente nós vendemos dois frascos [de 500 ml] de álcool por mês e por isso nosso estoque não era grande, tínhamos apenas 12 frascos, que foram vendidos no primeiro dia. Na terça-feira já não tínhamos mais o produto e apareceram três vendedores oferecendo, mas os preços estavam muito altos. Nós vendemos o frasco de 500 ml por R$ 5,80 e os fornecedores estavam cobrando R$ 12 como preço de custo. Achei aquilo abusivo demais", lembra.

Diante da situação, Paulo procurou outro fornecedor na cidade e encontrou um que vendia garrafas de álcool em gel a um preço justo. "Comprei 25 litros e resolvi doar já que tantas pessoas estavam procurando e os preços estavam abusivos. Vender tão caro vai contra a missão da nossa empresa, que é uma empresa familiar de bairro", acrescenta.

Na tarde de ontem, por volta das 17h, Paulo fez a postagem nas redes sociais. Com uma foto dos galões do produto e com uma plaquinha dizendo "Estamos doando álcool em gel, traga a sua vasilha" ele divulgou a ação. Até o fechamento do mercado, às 23h, cerca de 300 pessoas foram retirar o produto, que é limitado a 50 ml por pessoa.

O mercado fica no bairro Rio Acima e ainda tem 20 litros de álcool em gel para serem doados. Cerca de 200 pessoas aram pelo local até o meio-dia de hoje.

"Já consegui mais álcool em gel para comprar e vamos continuar com a ação o tempo que for preciso, até que a situação melhore", diz Paulo.

Sem filas e aglomeração

Apesar do grande movimento de pessoas em busca do álcool em gel, Paulo garante que não há filas ou aglomerações e que todos estão atentos para que isso não aconteça.

"Como somos um mercado de bairro, o movimento é bem tranquilo e normalmente vem uma, duas pessoas ao mesmo tempo em busca do álcool em gel. Mas se em algum horário vier mais gente vamos fazer uma fila do lado de fora para não gerar aglomeração", explica.