1
resposta

[Sugestão] Eu encontrei outra maneira para tirar a seleção.

O que eu fiz? Se o outroLi for diferente do li clicado não remove a classe.

li.onclick = () => {
        const todosLi = document.querySelectorAll(".app__section-task-list-item");
        todosLi.forEach(outroLi => {if (outroLi !== li) {
            outroLi.classList.remove("app__section-task-list-item-active")
        }
        });
        
        li.classList.contains("app__section-task-list-item-active") ? tarefaQueEstaSendoExecutada.textContent = "" : tarefaQueEstaSendoExecutada.textContent = tarefa.descricao;
        li.classList.contains("app__section-task-list-item-active") ? li.classList.remove("app__section-task-list-item-active") : li.classList.add("app__section-task-list-item-active");
    }
    return li;
}
1 resposta

Fala, Erik! o/

Cara, curti a ideia! A lógica de remover a classe dos outros li tá redondinha, faz sentido e resolve bem o problema!

Só uma dica pra deixar o código mais limpo: você tá verificando duas vezes se o li tem a classe "app__section-task-list-item-active" usando operador ternário. Dá pra simplificar isso com um único if, tipo assim:

li.onclick = () => {
  const todosLi = document.querySelectorAll(".app__section-task-list-item");
  todosLi.forEach(outroLi => {
    if (outroLi !== li) {
      outroLi.classList.remove("app__section-task-list-item-active");
    }
  });

  const estaAtivo = li.classList.contains("app__section-task-list-item-active");

  if (estaAtivo) {
    li.classList.remove("app__section-task-list-item-active");
    tarefaQueEstaSendoExecutada.textContent = "";
  } else {
    li.classList.add("app__section-task-list-item-active");
    tarefaQueEstaSendoExecutada.textContent = tarefa.descricao;
  }
}

Fica mais legível e evita repetir a mesma checagem duas vezes. Mas tá mandando bem, parabéns!
Se cuida \o