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

Com "baile do corona", periferia de SP tem rachas e aglomerações no feriado

Cleber Souza

Do UOL, em São Paulo

22/04/2020 15h27

Em meio ao aumento de casos de covid-19 na periferia de São Paulo, jovens resistem ao isolamento social. No bairro do Jardim Mirna, Grajaú, extremo sul da capital paulista, o feriado prolongado foi de baile funk, rachas, correria e aglomerações.

A movimentação de motocicletas, som alto e grupos de jovens tomou conta da avenida Carlos Alberto Bastos Machado. Nas redes sociais, a divulgação do evento era chamada de "baile do corona" por frequentadores.

O UOL teve o a vídeos divulgados do racha. Em um momento, é possível ver correria causada pela presença de uma viatura da PM (Polícia Militar) tentando dispersar a aglomeração. Segundo a própria PM, não há registros de detidos ou apreensões de veículos.

Luiz Henrique, 19, se disse despreocupado quanto a contaminação do coronavírus. Ele garante que vem tomando todos os cuidados para não adoecer, mas acha importante a diversão entre amigos.

"Fui [ao racha] com meus amigos, todos estão se cuidando, ninguém sai para qualquer lugar. Aqui é só gente conhecida. A gente nem ficou no meio da "muvuca". Fomos mais para ouvir um som, ver as motos, mas a polícia chegou lá acabando com tudo, aí saímos fora", disse ao UOL.

Jovens aglomeração - Reprodução - Reprodução
Jovens se aglomeram em rachas durante o feriado na periferia de São Paulo
Imagem: Reprodução

Entre queixas sobre "falta de diversão", os jovens se arriscam para se divertirem e reverem amizades. Amanda Silva, 18, também foi ao local com um grupo de cinco amigas.

"Eu recebi o convite no meu WhatsApp, para o baile do corona, logo chamei minhas amigas. Esse vírus aí não mata tanto como estão falando não. Isso aí é briga política, e quem paga é a gente que mora em quebrada. Na periferia já não tem nada para o jovem curtir. Não podemos nos divertir?", questionou Amanda.

Moradores, que não quiseram se identificar, afirmaram à reportagem que os eventos acontecem com frequência, e que "ficaram piores" durante a quarentena por causa do coronavírus.

Segundo dados da SMS (Secretaria Municipal da Saúde) de São Paulo, o distrito do Grajaú já tem 164 casos de coronavírus. Os óbitos somam 32. Constam números de casos suspeitos e confirmados por covid-19. O local está entre os seis com mais casos e óbitos pelo novo coronavírus na capital paulista.

Casas de show funcionam com portas fechadas

Ainda no Grajaú, estabelecimentos que costumam atrair jovens de diversos bairros funcionam com portas fechadas. O UOL acompanhou, também pelas redes sociais, movimentações em casas de show.

Na avenida Estrada Canal do Cocaia, portas fechadas se abrem após identificação do frequentador.

Pelo menos cinco casas de show da região mantêm suas rotinas com aglomerações em meio a pandemia da covid-19. A reportagem tentou contato os estabelecimentos, mas nenhum dos proprietários quis comentar sobre o assunto.

Em contato com o UOL, a Subprefeitura de Capela de Socorro, que istra o distrito do Grajaú, afirma que não tem recebido denúncias sobre o funcionamento de estabelecimentos com aglomerações, e que a Polícia Militar está dando apoio para inibir quebras na quarentena.

Já a PM, esclarece que, ao ser acionada em apoio aos órgãos fiscalizadores, a determinação é para que os espaços interrompam as atividades irregulares e, caso persistam, o proprietário deverá ser conduzido ao Distrito Policial por infringir determinação do poder público.