Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Implementação do Reset do temporizador.

Refazendo o código, para aprendizado, me desafiei a criar um botão que resetasse o temporizador e voltasse para o front o tempo do modo que estava na tela.

adicionei no htm um botão com a mesma classe do começar/pausar, e defini um id novo para ele, assim poderia acessar ele em específico para adicionar um evento de "click"e passar para que quando ele fosse clicado, ele verificasse qual data-contexto estava, definisse o tempo decorrido para o mesmo do inicial de cada opção, ai chamei a função de resetar e logo em seguida chamei a de mostrar na tela.

evento do botão:

btReset.addEventListener("click", () => {
  if (html.getAttribute("data-contexto") === "foco") {
    tempoDecorrido = 1500;
    resetar();
    mostrarTela();
  }
  if (html.getAttribute("data-contexto") === "descanso-curto") {
    tempoDecorrido = 300;
    resetar();
    mostrarTela();
  }

  if (html.getAttribute("data-contexto") === "descanso-longo") {
    tempoDecorrido = 900;
    resetar();
    mostrarTela();
  }
});

função resetar:

function resetar() {
  clearInterval(intervalo_id);
  intervalo_id = null;
  imgBtStartPause.setAttribute("src", "/imagens/play_arrow.png");
  btStartPause.textContent = "Começar";
}

função mostrarTela:

function mostrarTela() {
  const tempo = new Date(tempoDecorrido * 1000); // multiplica por 1000 porque é em milisegundos
  const tempoFormatado = tempo.toLocaleTimeString("pt-br", {
    minute: "2-digit",
    second: "2-digit",
  });
  tempoNaTela.innerHTML = `${tempoFormatado}`;
}

Espero que gostem dessa atualiação no projeto.

2 respostas
solução!

Olá, Luiz Felipe. Tudo bem?

Parabéns pela sua implementação para resetar o temporizador no projeto de manipulação de elementos no DOM em JavaScript. É ótimo ver o seu esforço em desafiar a si mesmo e adicionar essa funcionalidade extra.

A abordagem que você utilizou, adicionando um novo botão com uma classe específica e um ID distinto, foi uma maneira inteligente de identificar o botão de reset e adicionar um evento de clique a ele.

Sua atualização no projeto demonstra um bom entendimento dos conceitos abordados e um bom domínio das manipulações no DOM com JavaScript. Continue praticando e explorando novas funcionalidades!

Um abraço e bons estudos.

Muito obrigado, Lorena! Vamos evoluindo com o tempo, e logo logo estarei atuando como DEV!