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

Poucos beijos e máscaras: a recepção de voos da Europa antes da restrição

Saguões de desembarque dos aeroportos antes das restrições dos voos vindos da Europa apresentavam cenários atípicos - Lucas Borges Teixeira/UOL
Saguões de desembarque dos aeroportos antes das restrições dos voos vindos da Europa apresentavam cenários atípicos Imagem: Lucas Borges Teixeira/UOL

Lucas Borges Teixeira

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

21/03/2020 12h41

Em silêncio, um homem com máscara cirúrgica divide o olhar atento entre o telão e o celular enquanto vê um grupo heterogêneo de pessoas, também de máscara, sair pela porta do desembarque. Quando vê quem esperava, começa a acenar e vai de encontro a ela. Ambos parecem sorrir por baixo das máscaras, mas, quando se aproximam, não se tocam, apenas encostam o braço em sinal afetuoso.

Sob o protocolo de distanciamento social recomendado pela OMS (Organização Mundial da Saúde) para evitar a disseminação do novo coronavírus (Covid-19), este foi o clima do Terminal 3 no Aeroporto Internacional de Guarulhos, em São Paulo, no último fim de semana antes de começar a restrição a voos da Europa e da Ásia, que a a valer na segunda (23).

Entre as aguardadas chegadas, eram poucas as famílias que quebravam o protocolo e se cumprimentavam com um abraço apertado.

Soquinhos, toques de cotovelo e acenos

Se beijos e abraços estavam sendo evitados, ageiros e familiares abusavam da criatividade para se cumprimentarem. Soquinho para cá, aceno para lá, uma ou outra batida desengonçada batida de pés — e um monte de beijinhos à distância.

"A vontade é abraçar, mas a gente tem que tomar cuidado. O problema é que não sei se vou me segurar", afirmou a empresária Alicia Tavares, que esperava a filha e o genro vindos de Lisboa.

"Eu sou daquelas que faz um escarcéu e a filha fala que estou pagando mico", contou, rindo por baixo da máscara cirúrgica. "Mas este é um assunto muito delicado, sério. Lá está realmente todo mundo preocupado, acho que aqui estamos começando também."

O protocolo de distanciamento foi respeitado pela maioria, embora alguns, como Alicia, não se aguentassem. Ao ver a filha chegar, um pai, emocionado, foi a seu encontro. Quando se aproximaram, ela mandou um beijo, sem encostar.

Em resposta, ele a agarrou e deu um abraço apertado seguido de beijo no rosto. "Eu não posso beijar minha filha, po?", falou alto, de bom humor, depois de ser repreendido por ela.

Desconfortáveis no saguão

Apesar da emoção do reencontro, a preocupação com o Covid-19 estava presente no terminal. Invisível como o vírus, a sensação de não-normalidade pairava no ar do aeroporto.

O engenheiro aposentado Roberto Denucchi esperava a filha chegar de Miami, nos Estados Unidos, onde ela mora. De máscara, ele não se dizia muito confortável em um saguão de aeroporto que recebia voos internacionais.

"São muitas pessoas vindo de muitos lugares, a chance de contágio aumenta. A gente vê que tem voo vindo da Itália, já fica mais alarmado. O que a gente não faz pela filha, não é?", declarou.

Segundo ele, ela não apresenta sintomas, mas deverá fazer quarentena. "A gente segue as determinações, apesar de eu achar que aqui já deve estar pior do que lá."

O casal Carlos e Renata Ramos preferiram "não arriscar" e esperavam por parentes vindos de Londres do lado de fora do saguão, ao ar livre. "Melhor, né?", disse a jovem.

"Fala que vem da Itália, já olham com medo"

Angelica Dama esperava a irmã desembarcar de um dos últimos voos da Itália para o país antes da interrupção. Segundo a arquiteta, a irmã vinha com agem comprada desde o ano ado.

"Se fosse agora, era impossível. Está todo mundo querendo ir embora, lá está tudo fechado. A gente nunca imaginaria a Europa vivendo uma confusão desse nível, está muito feio", afirmou.

Ela diz que a irmã não tem os sintomas do novo coronavírus, mas que deverá fazer a quarentena de sete dias. "Você fala que vem da Itália, as pessoas já olham com medo, acham que ela está doente, que vai ar para todo mundo."

Mesmo assintomática, a família decidiu tomar algumas precauções. "Meus pais sempre vêm recebe-la, dessa vez não vieram. Só vão vê-la depois que ela tomar um bom banho", contou.

Motoristas de app também estão apreensivos

Para sair do aeroporto, a reportagem teve a corrida por aplicativo cancelada duas vezes. O mesmo aconteceu com outra ageira, que aguardava na saída do Terminal 3.

O motorista Luiz Claudio diz ver relação entre os cancelamentos e o medo do vírus. "É uma possibilidade. Queira ou não queira, no Terminal 3 são só voos internacionais, né? Está todo mundo com medo. Trabalhando, porque precisa, mas com medo", relatou.