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

Luva de Pedreiro é convidado pela CBF para assistir Brasil x Chile

Iran Ferreira, o Luva de Pedreiro, foi convidado pela CBF para assistir Brasil x Chile no Maracanã - Reprodução / Instagram
Iran Ferreira, o Luva de Pedreiro, foi convidado pela CBF para assistir Brasil x Chile no Maracanã Imagem: Reprodução / Instagram

Bruno Braz

Do UOL, no Rio de Janeiro

23/03/2022 21h25

Fenômeno atual da internet com seus golaços postados nas redes sociais, Iran Ferreira, mais conhecido como "Luva de Pedreiro", foi convidado pela CBF para assistir ao jogo entre Brasil e Chile amanhã (24), às 20h30, no Maracanã (RJ), pelas Eliminatórias da Copa do Mundo.

A programação do jovem com a seleção brasileira no estádio ainda está sendo definida, mas ele fará ações com o mascote Canarinho "Pistola" e também irá interagir com os torcedores. Iran tem a vontade de conhecer os atacantes Neymar e Richarlison.

Luva de Pedreiro está no Rio de Janeiro desde a última segunda-feira (21) para uma série de compromissos e ou toda esta quarta-feira (23) cumprindo uma agenda com o Vasco da Gama, seu clube do coração.

O jovem baiano de 20 anos visitou São Januário, o CT Moacyr Barbosa, e conheceu o elenco vascaíno e o ídolo Roberto Dinamite, que arrancou lágrimas de seu pai Vandinho. Além disso, ele foi o convidado de estreia do podcast "Fala, Vascão", produzido pela Vasco TV.

Natural de Tábua, povoado do município de Quijingue (BA), cidade que fica a 340 km de Salvador, Iran Ferreira viajou de avião pela primeira vez com a ida ao Rio e vive um momento de mudança radical em sua vida.

Ele começou a bombar nas redes sociais com seus golaços e sua comemoração característica ainda em 2021, mas foi no começo deste ano que o sucesso veio de vez. No Tiktok são mais de 9,2 milhões de seguidores e no Instagram, mais de 5,7 milhões. Clubes como o Barcelona e o Bayern de Munique já realizaram ações com o garoto, além do perfil institucional do Instagram, que publicou um vídeo do "Luva de Pedreiro" para os seus mais de 438 milhões de seguidores. O filho de Cristiano Ronaldo também já postou um vídeo o imitando.