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

Matheus Pichonelli

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Ainda vamos levar um tempo para reaprender a andar pelo mundo sem máscaras

Máscaras da Covid liberadas em SP e no Rio - Imagem: Unsplash/Reprodução
Máscaras da Covid liberadas em SP e no Rio Imagem: Imagem: Unsplash/Reprodução

Colunista do UOL

13/03/2022 04h00

São Paulo e Rio de Janeiro retiraram a obrigatoriedade do uso de máscaras em lugares abertos e eu só consigo pensar nos versos da Tabacaria, de Álvaro de Campos, um dos muitos heterônimos de Fernando Pessoa. Quando quis tirar a máscara, estava pegada à cara. Quando a tirei e me vi ao espelho, já tinha envelhecido.

Há mais ou menos dois anos, voltei de uma viagem para fora do país e lembro do estranhamento ao observar os estrangeiros indo e voltando de máscaras com suas bagagens pelo aeroporto. Parecia um exagero.

Pouco depois, a Organização Mundial da Saúde anunciou a pandemia e recomendou que ficássemos em casa até segunda ordem. De lá só sairíamos com elas, as máscaras que aram a definir nossas personalidades e posições políticas. Usar ou não a peça de proteção se tornou uma resistência ou uma provocação.

Quem não se lembra daquele dirigente esportivo que no meio de uma entrevista constrangeu o repórter de uma rádio ao vê-lo protegido de seus perdigotos? "Nós somos Bolsonaro, para com esse negócio, tire a máscara", provocou.

Não teve quarentener que não vivenciou situação semelhante. O constrangimento de pedir para alguém usar o equipamento era recorrente, e muitas vezes descambou para a agressão. Sintomas de um país que adoecia a os largos.

O fato é que a pandemia alterou nossa forma de estar no mundo — não só porque nossas casas viraram, e para muitos ainda são, nosso mundo onde se condensam as áreas de lazer, trabalho, descanso, namoro.

Quando criança, um pesadelo recorrente me lançava para o meio da sala de aula apenas de cuecas. No sonho, só percebia o vacilo quando levantava para fazer uma pergunta e todos os colegas começavam a rir, desesperadamente. No auge da quarentena, esse pesadelo mudou de contexto. Certa vez, por muito pouco não fui de fato flagrado só com a íntima indumentária ao sair do banho e cruzar desatento a câmera do computador que lançava meu filho para dentro da sala de aula. A algaravia das crianças era a mesma, só mudava(m) o(s) endereço(s).

Mas terror mesmo ou a ser um sonho comum no qual me encontrava em um elevador de hotel, quase sempre a trabalho, e me deparava com uma multidão ao ver as portas se abrirem. Pelo espelho de um saguão, descobria que eu era o único dali sem máscara, o que explicava a profusão de olhares de reprovação, como se meu corpo fosse exposto na mais indigente intimidade.

Geralmente acordava molhado de suor, gritando que não, não era como aqueles caras da cloroquina, eu só tinha esquecido a máscara em um canto do quarto. Tentava correr para buscá-la, mas quanto mais corria, mais tropeçava, e quanto mais tropeçava, mais o chão se abria, mais vergonha ava.

Além do medo de sair sem máscara, a pandemia me deixou mais atento (mais sensível?) a ruídos. Sei quando a vizinha liga e desliga a bomba da piscina, colada na parede do meu quarto. Cortadores de grama agora parecem um helicóptero tentando pousar em minha cabeça. E transitar novamente no mundo fora de casa é transitar numa cápsula gelatinosa na qual pareço ter desaprendido, pela falta de hábito, os ritos e as liturgias de outros tempos. Como usar o cartão de débito? Onde guardar a carteira? Quanto tempo leva para o semáforo abrir? Meia azul combina com chinelo Havaianas?

O pior mesmo é manter o contato visual numa conversa de mais de um 10 segundos. Como falar sem poder borrar minhas costas com uma boa imagem de fundo?

De certa forma, as máscaras eram quase um escudo nesse momento de transição, embora jamais tenham conseguido proteger o que costumamos dizer pelos olhos. Mas já era alguma coisa.

Nos primeiros meses da pandemia, achava que a saudade de outros tempos e presenças poderia ser tão fatal quanto um vírus. Não era. Não foi de saudade que morremos.

Achava que iria correr para ver todo mundo na primeira oportunidade, quando recebesse minhas doses de vacina ou quando as autoridades anunciassem que poderíamos finalmente circular sem máscaras.

Mas não quis. Não quero. Não agora.

Não porque me acostumei a viver ausente, mas porque não amos ilesos ao excesso de intimidade e convívio forçado, diário, produzidos no confinamento das videochamadas, dos grupos de WhatsApp, dos Stories e das timelines.

Ali muita coisa foi dita no calor do momento. Havia um mundo em colapso e não faltou gente apontando o dedo sobre quem tinha mais culpa do que quem.

A hostilidade é o efeito-rebote do ressentimento. E andamos todos ressentidos. Não tem como ser diferente ao saber que aquele mundo para o qual nos preparamos a vida toda, com alguma esperança indenizatória, simplesmente deixou de existir. Livros, projetos de pesquisa, viagens, filhos, compra da casa própria.

Tínhamos muitos planos para "quando tudo isso ar" e quando tudo isso começou a ar, ou parou de piorar, encontramos um mundo definhado. Os sonhos esbarram agora numa prateleira de supermercado onde o café é vendido a R$ 22.

O saldo e as marcas dos estragos ainda não foram calculados. No meio dos escombros muita coisa foi dita e muita não foi digerida. Minha expressão facial, agora nua de qualquer tecido, me denuncia. Como tampar meu desgosto sem minha boa e velha máscara?