Olá Jefferson! Tudo ok contigo?
Você está no caminho certo com suas observações.
Em React, quando usamos a função setEstado (no seu caso, setSelecionado e setTarefas), a atualização do estado não é imediata. Isso ocorre porque o React faz uso de algo chamado "atualizações de estado assíncronas". O que isso significa é que, quando você chama setEstado, o React não atualiza o estado imediatamente, mas coloca a atualização em uma fila de tarefas a serem executadas posteriormente, geralmente na próxima renderização.
Então, na sua função selecionaTarefa, quando você chama setSelecionado(tarefaSelecionada), o estado tarefaSelecionada não é atualizado imediatamente. Por isso, se você tentar usar tarefaSelecionada logo em seguida, ainda estará acessando o valor antigo do estado.
Isso explica por que você precisou usar o parâmetro tarefaSelecionada diretamente, em vez de confiar no estado tarefaSelecionada.
Aqui está um exemplo para ilustrar isso:
function selecionaTarefa(tarefaSelecionada){
setSelecionado(tarefaSelecionada);
console.log(tarefaSelecionada); // Vai imprimir o valor atual de tarefaSelecionada
console.log(tarefaSelecionada); // Vai imprimir o valor antigo, pois o estado ainda não foi atualizado
}
Em suma era isso. Espero ter ajudado!
Abraços e bons estudos!