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

Nina Lemos

OPINIÃO

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

Jantar fora e aglomeração: Neymar faz no Brasil o que é proibido na França

Neymar em restaurante em SP - Manuela Scarpa e Marcos Ribas/Brazil News
Neymar em restaurante em SP Imagem: Manuela Scarpa e Marcos Ribas/Brazil News

Colunista de Universa

25/05/2021 14h14Atualizada em 25/05/2021 18h13

Na quarta-feira da semana ada, os cafés e restaurantes de Paris reabriram depois de mais de seis meses fechados. Mesmo assim, a volta à normalidade ainda está cheia de restrições. Você só pode sentar do lado de fora e no máximo em um grupo de seis. Depois das 21h, você tem que voltar para casa, já que existe um toque de recolher.

Impossível não lembrar como a Europa trata a pandemia, com muita responsabilidade e restrições, depois de ver Neymar, que mora em Paris, aproveitando para curtir um restaurante fino em São Paulo com o ex-BBB Gil do Vigor, Thiaguinho, Tirulipa e as também ex-BBBs Kerline e Flayslane.

Há vídeo feito dentro do restaurante mostrando todos com as máscaras soltas, nariz meio para fora. Nas mesas, outros clientes, sem máscaras, riem e tiram fotos. Parece que eles estão em um mundo sem pandemia. Nada de restrições nem limites. Uma festa da uva. E Neymar, que no Brasil curte a vida adoidado e de forma irresponsável — não esquecemos do polêmico Ano Novo em Angra — jamais poderia fazer o mesmo na cidade onde mora e trabalha.

Em Paris, ele não conseguiria entrar em um restaurante para comer dentro, porque ainda é proibido e também não teria organizado festa no Réveillon, já que reuniões estavam proibidas.

Na Alemanha, onde moro, os cafés e restaurantes foram abertos no fim de semana e só é possível sentar do lado de fora. Mesmo assim, no sábado, saí toda animada para finalmente tomar café da manhã na rua, depois de seis meses. O que aconteceu? Fui expulsa de um restaurante. Explico: escolhi um café bem vazio e com uma ampla varanda, mas não tinha lido direito as regras. Não tinha ninguém perto, o garçom veio até mim e, antes que eu pedisse o cardápio, perguntou: "Você tem teste ou certificado de vacina?". Eu, que tomei apenas uma dose da vacina, disse que não tinha. Ele falou que então eu teria que ir embora. Agradeci e saí. A regra é essa: você só pode sentar se tiver tomado as duas doses da vacina ou feito teste no mesmo dia. Paciência.

Todas essas restrições têm motivos. Estamos em uma pandemia, lembram? E apesar da vacinação avançando — na França, cerca de 35% da população já tomou a primeira dose, na Alemanha o número é 40% — e os casos caindo muito, os cientistas avisam que os cuidados têm que continuar para que não se perca o controle de novo.

Morando em Paris, Neymar certamente sabe quais são as regras que precisa seguir enquanto está lá. E, óbvio, deve ser capaz de entender que, no Brasil, onde os números não caíram, a vacinação está lenta e todos os especialistas dizem que uma terceira onda está chegando, o cuidado deveria ser muito maior.

Não, não é ok ir a um restaurante no meio da pandemia. Muito menos se você tem o a informação. Se países com governos mais sérios que o do Brasil proíbem, é porque isso tem uma razão, não?

Além de tudo, claro, Neymar, um dos jogadores mais famosos do mundo, devia ser exemplo de conduta. Mas disso ele parece já ter decidido abrir mão. A tal festa de Ano Novo pegou mal no mundo todo. Ele não aprendeu. Ou, mais provável, ele realmente não está nem aí.

Errata: este conteúdo foi atualizado
Diferentemente do informado, o toque de recolher em Paris começa às 21h, não às 22h.

** Este texto não reflete, necessariamente, a opinião do UOL