4
respostas

Vídeo descontinuado | problema com código diff

Infelizmente, mesmo após outros usuários terem comentado anteriormente sobre os cortes do vídeo. Nenhum ajuste foi feito. Como não consegui postar no tópico criado anteriormente, compartilho aqui qual foi o momento cortado que me causou problemas e espero ajudar alguém.

Dentro do 'módulo' carregaTarefa precisamos retornar a função tarefasCadastradas para:

tarefasCadastradas.forEach((tarefa) => {
        const dia = moment(tarefa.dataFormatada, 'DD/MM/YYYY')
            lista.appendChild(criaData(dia))
    })

Apesar de não mostar no vídeo esse passo, sem ele não conseguimos fazer a listagem funcionar pois não há como fazer o cálculo de diff dentro deste módulo usando a data (apenas possível dentro do módulo cria data).

Espero que ajude aos demais alunos e que em breve o vídeo seja ajustado.

4 respostas

Fala ai Adriana, tudo bem? Peço desculpas pelos problemas, essa correção está na nossa lista de afazeres.

Obrigado por compartilhar a dica com a gente.

Abraços e bons estudos.

Oi Adriana, obrigado pelo código! Eu estou totalmente perdido nesse curso, tá bem mal explicado, o professor não fala as coisas que tá fazendo em contexto, fica mudando o código toda hora, enfim. E como fica o criaData.js? Eu deixei o forEach no carregaTarefa.js como vc explicou, mas aí tenho erro no diff, que está no criaData.js (Uncaught ReferenceError: lista is not defined at criaData.js:14). Tá assim no criaData:

tarefas.forEach((tarefa => {
        const dia = moment(tarefa.dataFormatada, 'DD/MM/YYYY');
        dataTopo.appendChild(Tarefa(tarefa));
        const diff = data.diff(dia);        
        if(diff === 0) {
            lista.appendChild(criaData(dia))
        }
    }));

Ola @Lucas Vidal de Andrade.

Deixe seus códigos dessa forma que dará certo.

criaData.js

import { Tarefa } from "./criaTarefa.js";

export const criaData = (data) => {

   const tarefas = JSON.parse(localStorage.getItem('tarefas')) ||[];

   const dataTopo = document.createElement('li');
   const conteudo = `<p class="content-data">${data.format('DD/MM/YYYY')}</p>`;

   dataTopo.innerHTML = conteudo;

   tarefas.forEach((tarefa => {
      const dia = moment(tarefa.dataFormatada,'DD/MM/YYYY');

      const diff = data.diff(dia);
      if (diff === 0) {
         dataTopo.appendChild(Tarefa(tarefa));
      }
   }));

   return dataTopo;
}

carregaTarefa.js

import { criaData } from "./criaData.js";

export const carregaTarefa = () => {

    const lista = document.querySelector("[data-list]");

    const tarefasCadastradas = JSON.parse(localStorage.getItem('tarefas')) ||[];

    lista.innerHTML = " ";

    tarefasCadastradas.forEach((tarefa) => {
        const dia = moment(tarefa.dataFormatada, 'DD/MM/YYYY')
        lista.appendChild(criaData(dia))
    });
}

Valeu amigo! Funciounou desse jeito :)