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

Goleira da seleção de handebol, Mayssa Pessoa pede namorada em casamento

Mayssa Pessoa posa ao lado da noiva Nikita Ramona após o pedido de casamento em Budapeste - Arquivo Pessoal
Mayssa Pessoa posa ao lado da noiva Nikita Ramona após o pedido de casamento em Budapeste Imagem: Arquivo Pessoal

Fernanda Schimidt

Do UOL, em São Paulo

16/05/2019 04h00

A atleta Mayssa Pessoa, goleira da seleção brasileira de handebol, escolheu a arena Papp Laszlo, em Budapeste, como palco para o pedido de casamento à namorada, a holandesa Nikita Ramona, no domingo (12). Mayssa estava na cidade para a disputa do Final 4, as finais da Champions League do handebol.

"Estou super feliz. Pedi minha namorada em casamento agora no Final 4 em Budapeste. Foi no ginásio, todo mundo viu", disse Mayssa em entrevista ao UOL Esporte. "E ela disse sim."

A jogadora ajoelhou na lateral da quadra e tirou do bolso o anel, escolhido na Bélgica, feito em ouro branco e cravejado por diamantes: "Lindo, lindo! Ela merece."

O momento não foi mais marcante, porque Mayssa saiu de lá com a medalha de prata. A atleta defende o clube russo Rostov-Don e acabou perdendo a final contra o húngaro Györ por apenas um gol.

Nikita Ramona mostra o anel após aceitar pedido de casamento de Mayssa Pessoa, goleira da seleção de handebol - Arquivo Pessoal - Arquivo Pessoal
Mayssa escolheu um anel em ouro branco cravejado por diamantes
Imagem: Arquivo Pessoal

Mayssa conheceu Nikita em 2012 por meio de uma amiga em comum que joga na França. "Sempre tive olhos para ela, mas nunca aconteceu nada porque estávamos em caminhos diferentes", comentou. As coisas mudaram há três meses, quando Nikita começou a ajudar Mayssa com sua nutrição. "Então ela se apaixonou, ou eu acredito que essa paixão já estava guardada. Sempre a via pelas redes sociais e algumas vezes nos falamos por mensagens."

O casamento ainda não tem data, pois depende dos compromissos de Mayssa com a seleção brasileira. "Se eu for para as Olimpíadas não vai dar para casar, só depois."

O local, no entanto, já foi escolhido: uma praia em João Pessoa, cidade natal da goleira.

Ela ainda espera poder compartilhar o momento com toda a família. Sua mãe, em especial, não lidou bem quando soube de sua orientação sexual. "Minha mãe me ama muito, mas ela ainda não aceita essas coisas. Posts que estou namorando. Se eu falar que vou casar, ela não entende. Ainda é bem difícil para mim nesse ponto", falou.

Antes de Nikita, Mayssa namorou a modelo canadense Nikki Shumaker. O casal fez sucesso durante as Olimpíadas do Rio, em 2016, e ajudou a fortalecer a bandeira da diversidade, que marcou os Jogos no Brasil.