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

Professoras se conhecem na internet e criam ação que já doou 37 t de comida

Marina (de Batman) leva cestas básicas e também dá aulas gratuitas de cozinha para a comunidade - Divulgação
Marina (de Batman) leva cestas básicas e também dá aulas gratuitas de cozinha para a comunidade Imagem: Divulgação

Rayane Moura

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

17/12/2021 06h00

Marina Príncipe Cardoso, Bruna Anisio e Rosa Maria de Souza têm em comum mais do que o fato de serem professoras. Elas não se conheciam até que interagiram em algumas postagens em redes sociais que tratavam de ajudar famílias atingidas em cheio pela crise gerada pela pandemia de covid-19.

Por meio dessas portagens, as três perceberam a necessidade de ir além das redes. "Vimos na pandemia muitas famílias ando necessidades de alimentos e começamos essa corrente que inicialmente era algo pontual", explica Marina.

Logo nasceu o projeto 'Ajude uma Família', com a intenção inicial de amparar apenas algumas pessoas, mas hoje transformada em uma ação social que se faz presente mensalmente na vida de 105 famílias de comunidades do Rio de Janeiro, com doações de cestas básicas.

"Auxiliamos toda e qualquer família, de qualquer configuração, seja de uma mãe com filhos, avó que cria filhos, família só com pai, com tio...", conta Marina, gestora do projeto ao lado de Bruna e Rosa, que fazem de tudo um pouco para atender a todos.

Projeto dá preferência para desempregados

Ajude uma família - Divulgação - Divulgação
As amigas querem agora fazer parcerias com outros projetos ou empresas para oferecer mais cursos
Imagem: Divulgação

Para que as famílias possam ser cadastradas e receber as doações mensais, é preciso estar em situação de vulnerabilidade social (caracterizada principalmente pelo desemprego, quando não há ninguém empregado na família, seja formal ou informalmente) e morar em comunidades do Rio de Janeiro.

"Atualmente concentramos as cestas básicas na comunidade do Urubu, que fica na altura de Cavalcante e Piedade, mas também temos famílias na comunidade de Clodovil, Thomás Coelho e Parque Analândia, que fica no município de São João de Meriti", explica Marina. "No entanto, se recebemos solicitação de outros bairros ou até outros municípios, caso haja disponibilidade, atendemos."

Desde que o projeto foi criado, o 'Ajude uma Família' já doou em torno de 37 toneladas de alimentos em cestas básicas. Além disso, as amigas também fazem arrecadação e doação de enxoval para as gestantes que estão em vulnerabilidade social.

Enxoval para gestantes do SUS

A futura mãe não precisa estar cadastrada no projeto recebendo cesta básica. "A única ressalva que a gente faz é que ela esteja fazendo o acompanhamento do pré-natal no próprio SUS, porque isso é uma segurança para a própria mãe e para o bebê", ressalta Marina.

Marina também dá aulas gratuitas de confeitaria nas comunidades, como forma de incentivar o empreendedorismo. E leva sempre campanhas de saúde e de conscientização. "A gente não vai lá simplesmente entregar a cesta, tentamos entender quais as necessidades das pessoas. Teve uma família que ajudamos com leite especial, outra que conseguimos uma cadeira nova, levamos um pouco de dignidade e de qualidade de vida", completa.

Para os próximos os, as amigas do "Ajude uma Família" querem estabelecer parcerias com outros projetos ou empresas que ofereçam cursos profissionalizantes. A intenção é que essas famílias possam ser autossustentáveis e tenham a capacidade de ter o seu próprio ganho com dignidade, e em algum momento não precisem mais de cesta básica.

O projeto recebe doações de alimentos, roupas, brinquedos e até móveis usados. Além disso, a ação aceita auxílio de voluntários — basta entrar em contato via direct do Instagram para receber as instruções. O projeto também recebe doações em dinheiro, por meio do pix (chave e-mail): [email protected].