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

Sabrina Sato será uma das convidadas do próximo 'Domingão com Huck'

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

24/03/2022 20h23

Sabrina Sato, de 41 anos, será uma das convidadas do próximo "Domingão com Huck" deste fim de semana. A apresentadora é recém-contratada da emissora TV Globo. Após oito anos, ela deixou a Record e apresentará dois programas no canal pago GNT.

A página oficial no Instagram do programa dominical compartilhou fotos nos bastidores da apresentadora. "É verdade! O próximo Domingão recebe Sabrina Sato! Seja muito bem-vinda à casa!", escreveu o perfil.

Nos bastidores, Luciano Huck gravou vídeo com a nova apresentadora. "E a felicidade que estou de ter a Sabrina Sato no Domingão,
na Globo, é a realização de um sonho antigo", disse ele.

Em resposta, Sabrina concordou e disse: "Vai ser demais hoje aqui. Eu estou realizando o meu sonho aqui. Você está comigo desde o início de tudo", confessou.

Saída da Record

A apresentadora decidiu, em comum acordo com a emissora, não renovar o seu contrato, segundo apurou Splash.

"Sabrina se despede mantendo uma relação cordial, de respeito e eterna gratidão a toda a cúpula da RecordTV e todos os profissionais que estiveram presentes em sua jornada", diz o comunicado compartilhado pela equipe de Sabrina Sato.

Ela também compartilhou um vídeo de despedida nas redes sociais. "Obrigada, Record, por tanto amor durante esses 8 anos! Vocês foram muito importantes nessa nossa história", escreveu a apresentadora.

"Esse é um dos momentos mais difíceis da minha carreira. Mesmo recebendo todo esse amor, todo esse cuidado, eu sinto que preciso seguir. Seria fácil, seria confortável eu continuar, mas eu também sinto que está na hora de ouvir novas histórias, preciso encarar novos desafios", disse Sabrina no vídeo.

Programas do GNT

Em janeiro, Sabrina Sato foi anunciada como nova apresentadora do canal GNT, que pertence ao Grupo Globo, mas até então seguia contratada pela Record. Ela comandará o "Desapegue se for Capaz", reality que tem estreia prevista para 29 de abril.

Segundo as assessorias de imprensa da Record e da apresentadora, o contrato entre as partes seguia vigente quando Sabrina foi anunciada no comando do reality.

A emissora abriu uma exceção anteriormente para que a ex-BBB continuasse contratada pela Record e também trabalhasse na emissora de TV a cabo paralelamente. Hoje, foi confirmado que as partes decidiram não renovar o contrato.

Ela também foi confirmada hoje como nova apresentadora do "Saia Justa", também da GNT. Larissa Luz e Luana Xavier se juntam a Astrid Fontenelle no comando da nova temporada do programa, que estreia em 30 de março.

Splash apurou que, a princípio, o canal da apresentadora no YouTube será mantido. Diferentemente de outros apresentadores da TV Record, Sabrina já tinha o canal - ele não foi criado a pedido da emissora.