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

Existe 'date' pior que um jantar com Caio Castro, e a internet pode provar

Não foi só o Caio Castro: internet fica lotada de relatos sobre dates ruins - Divulgação
Não foi só o Caio Castro: internet fica lotada de relatos sobre dates ruins Imagem: Divulgação

Marcela Schiavon

Colaboração para Splash, de Santo André (SP)

03/08/2022 16h30

O ator Caio Castro, de 33 anos, deu o que falar depois de contar no podcast 'Sua Brother' que se incomoda por ter que pagar a conta em encontros. "Me incomoda muito essa sensação de ter que sustentar, ter que pagar... Eu não tenho que fazer p**** nenhuma", disse.

De lá para cá, celebridades como Felipe Neto, Jojo Todynho, Deolane Bezerra e Mariana Rios discordaram da fala do ator. E é claro que a internet não deixou ar.

Alvo de outras polêmicas envolvendo homofobia, desrespeito a práticas ambientais e até brigas com outros famosos, a opinião do ator sobre como agir em encontros foi o ponto de partida para diversos depoimentos sobre dates ruins no Twitter. Todos os tuítes provam que na hora de pagar a conta, muitos pretendentes saem correndo.

Entre eles, essa moça conta que da primeira vez que saiu com atual marido, em 2003, os dois ficaram com medo de o pagamento ser recusado, porque ele estava com o nome sujo. E a história virou até tirinha:

E tem cada argumento furado. Este aqui jogou a culpa no rendimento das criptomoedas.

Também teve gente que pagou aquele encontro amoroso com cartão fidelidade ou até quem pediu desconto por fazer parte da OAB (Ordem dos Advogados do Brasil). E fizeram as acompanhantes arem vergonha, claro!

Por falar nas mil desculpas para não pagar a conta, surgiu, ainda, história de quem finge que vai bancar o date, mas na verdade mente sobre a consumação.

E tem que banca o rolê, sim, mas depois se arrepende e cobra até os centavos.

Sorte daqueles que contam com uma ajudinha financeira do(a) parceiro(a) quando estão apertados, mas querem sair juntinhos.

Aproveitando a deixa, essa aqui relembrou sobre a história de ficção The Twilight Saga, uma série de 5 filmes dos gêneros fantasia e romance, lançados entre 2008 e 2012 no cinema e baseados na autora norte-americana Stephenie Meyer.

Os filmes são estrelados por Kristen Stewart, Robert Pattinson e Taylor Lautner. Neles, o casal de vampiros Bella e Edward vivem grandes aventuras. Apesar de empecilhos e medos, ele sempre foi cavalheiro e pagou a conta.

Já o ator Caio Castro, após uma nota de retratação em seu Instagram, aproveitou a polêmica para pedir doações de cestas básicas para "quem precisa".

"Muito se falou do meu nome nesses últimos dias sobre a grande polêmica de o homem ter obrigação de pagar a conta ou não. Muitas opiniões diferentes. Gerou uma polêmica muito grande em relação a isso. Meu nome estava envolvido. Afinal, eu que levantei essa bandeira".

Então, finalizou tentando transformar a polêmica em algo agregador: "Deixo a conta bancária e faço questão de comprar cestas básicas para as pessoas que precisam de alimentos nos dias de hoje. Mais uma vez, você não tem obrigação alguma, faça se quiser".

Ele promete mostrar a quantidade arrecadada.