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

Santos

Santos: Willian Maranhão minimiza desconfiança: 'única forma é dar a vida'

Willian Maranhão, do Santos, na apresentação oficial - Lucas Musetti/UOL Esporte
Willian Maranhão, do Santos, na apresentação oficial Imagem: Lucas Musetti/UOL Esporte

Lucas Musetti Perazolli

Colaboração para o UOL, em Santos (SP)

30/03/2022 14h55

Willian Maranhão foi apresentado como reforço do Santos hoje (30) à tarde, no CT Rei Pelé. O meio-campista ex-Bahia vestiu a camisa 5 e falou sobre as críticas que recebeu de parte da torcida.

Antes mesmo de ver Maranhão em campo, torcedores criticaram a chegada do volante. Uma campanha contra a negociação foi iniciada nas redes sociais, sem sucesso.

"A única forma é me dedicar ao máximo, dar a vida e muita raça, vencendo jogos. Com isso eu trago a torcida para o meu lado", disse Maranhão.

"Fiz um bom campeonato pelo Atlético-GO, fui importante e logo depois fui para o Bahia. Recebi a ligação do Santos, não desmerecendo o Bahia, que é grande também, mas pensei na Série A e em jogar em alto nível. Isso mexeu bastante comigo", completou.

Willian Maranhão foi cogitado no Santos em dezembro, quando não renovou com o Atlético-GO, mas a conversa não avançou. Com a crise do Bahia e a nova procura do Peixe, o jogador pediu para sair. O Alvinegro da Vila Belmiro ficou com 70% dos direitos econômicos e pagou R$ 500 mil fechar o contrato até dezembro de 2024.

Maranhão foi indicado pela equipe de análise de mercado e aprovado pelo técnico Fabián Bustos. O argentino sugeriu outras opções, mas gostou do que viu e priorizou o atleta do Bahia.

"É um jogador que temos muita confiança por tudo que fez nos últimos anos. Se destacou bastante pelo poder de marcação. Jogou 34 como titular em 38 rodadas e mostrou seu potencial. Por isso o Santos fez todo o esforço para trazê-lo. Que tenha sucesso, sorte e nos ajude a cumprir os objetivos. É ano de reconstrução e contamos com seu apoio", disse Edu Dracena, para Willian Maranhão, na apresentação.

Willian Maranhão foi líder de desarmes no Atlético-GO em 2021 e teve números superiores à maioria dos volantes que disputaram o último Campeonato Brasileiro. Bustos se animou por não ter um volante canhoto como ele e pelo forte jogo aéreo do reforço. O treinador diagnosticou antes mesmo de chegar ao Brasil a necessidade de um "cão de guarda". Neste Paulistão, o Santos só não cedeu mais chances reais de gol aos adversários que o lanterna e rebaixado Novorizontino.

Maranhão tem 26 anos e foi revelado pelo Boavista-RJ. De lá para cá, atuou por Santa Cruz, Vasco, América-MG, Atlético-GO e Bahia.

Santos