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

McDonald's suspende venda de milkshake na Inglaterra por falta de produtos

Além da sobremesa, empresários reclamam da falta de peru e frango - Lucas Lima/UOL
Além da sobremesa, empresários reclamam da falta de peru e frango Imagem: Lucas Lima/UOL

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

24/08/2021 10h06

Cerca de 1.300 unidades da rede de fast food McDonald's no Reino Unido foram forçadas a parar de vender milkshakes por conta de escassez dos produtos. Outras redes também foram afetadas pelo desabastecimento, que ocorre devido à pandemia de covid-19 e ao novo acordo do Brexit, segundo a CNN.

"Como a maioria dos varejistas, estamos enfrentando alguns problemas de cadeia de suprimentos, afetando a disponibilidade de um pequeno número de produtos. Bebidas engarrafadas e milkshakes estão temporariamente indisponíveis em restaurantes na Inglaterra, Escócia e País de Gales", disse um representante do McDonald's em um comunicado.

"Pedimos desculpas por qualquer inconveniente e agradecemos aos nossos clientes pela contínua paciência. Estamos trabalhando muito para devolver esses itens ao cardápio o mais rápido possível", acrescentou o porta-voz.

Além da rede de fast-food, outras empresas sofrem com o desabastecimento da cadeia de suprimentos. Na semana ada, a rede Nando's fechou 45 de suas unidades no Reino Unido devido à falta de frango, marca registrada da marca. Até cerveja chegou a ficar em risco em algumas redes de pubs.

De acordo com a CNN, a pandemia pressionou produtores de alimentos e restaurantes que lutam para encontrar trabalhadores. Nos últimos meses, por exemplo, a falta de mão de obra foi prejudicada pelas regras do Reino Unidos, que exigem que as pessoas se isolem quando entram em contato com um indivíduo que teve resultado positivo para o novo coronavírus. Já na Inglaterra, pessoas vacinadas totalmente imunizadas não são obrigadas a se isolar nesse caso.

No entanto, os problemas ainda estão longe de desaparecer. A falta de motoristas de caminhão causou a interrupção de fornecimento de alguns alimentos na Grã-Bretanha. A Road Haulage Association disse que faltam cerca de 100 mil caminhoneiros, dos quais 20 mil deixaram o país após o Brexit.

James Hook, de fazendas, disse ao portal norte-americano que em junho sua empresa tinha o dobro de vagas disponíveis que o normal. E a British Poultry Council informou que a falta de trabalhadores pode resultar em falta de perus no próximo natal.

"O ambiente operacional se deteriorou tão profundamente que não consigo ver outro resultado a não ser uma grande escassez de alimentos no Reino Unido. O fornecimento de frango e peru está ameaçado", disse Ranjit Singh Boparan, fundador da 2 Sisters Food Group.