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

Príncipe Harry diz que William riu de sua crise de pânico: 'Justo ele'

Os príncipes Harry e William tiveram suas desavenças retratadas no livro O Que Sobra - Max Mumby/Indigo/Getty Images
Os príncipes Harry e William tiveram suas desavenças retratadas no livro O Que Sobra Imagem: Max Mumby/Indigo/Getty Images

Colaboração para Splash

10/01/2023 19h00Atualizada em 11/01/2023 11h17

As declarações do príncipe Harry em sua autobiografia "O Que Sobra", lançada recentemente no Brasil, continuam dando o que falar - sobretudo as que se referem à relação dele com o irmão, William.

Em um dos trechos da obra, Harry relata que teve seu primeiro ataque de pânico enquanto se dirigia a uma partida de polo junto de William e da cunhada, Kate Middleton. Nesta ocasião, tanto o irmão como Kate o apoiaram.

Posteriormente, porém, Harry repetiu a experiência e ficou a ponto de desmaiar nos bastidores de um discurso - e, desta vez, a reação de William à situação do irmão teria sido bem diferente.

"Willy veio até mim nos bastidores. Rindo. Não consegui entender a reação dele. Justo dele. Ele me disse naquele [primeiro ataque de pânico] ou logo depois que eu precisava de ajuda. E agora estava me zoando? Eu não conseguia entender como ele conseguia ser tão insensível", desabafou o caçula de Lady Di.

Mais adiante, Harry relata como, em outubro de 2019, foi procurado por William através de uma mensagem de texto após ter sofrido outra manifestação de ansiedade durante um evento.

"Ele disse que eu estava claramente com dificuldades, que não estava bem, disse novamente que eu precisava de ajuda", recordou o marido de Meghan Markle, acrescentando que suspeitava que o irmão estava sofrendo uma 'lavagem cerebral' nas sessões de terapia a que vinha se submetendo.

Segundo Harry, William havia sinalizado o desejo de estar presente em uma das sessões, mas nunca se esforçou de fato em fazê-lo. Ele mencionou essa contradição ao marido de Kate, iniciando uma longa discussão virtual de três dias com William.

"Nunca havíamos tido uma briga assim, por mensagem de texto antes. Raivosos, mas também a quilômetros de distância, como se falássemos línguas diferentes", afirmou Harry sobre o episódio.

"De vez em quando, eu percebia que meu pior medo estava se tornando realidade: após meses de terapia, após trabalhar duro para me tornar mais consciente, mais independente, eu era um estranho para meu irmão mais velho. Ele não conseguia mais se relacionar comigo, me tolerar", acrescentou o duque de Sussex.

O que sobra (editora Objetiva)

var Collection = { "path" : "commons.uol.com.br/monaco/export/api.uol.com.br/collection/splash/celebs/data.json", "channel" : "celebs", "central" : "splash", "titulo" : "Celebs", "search" : {"tags":"80369"} };