Skip to content

Conversation

@dyecks
Copy link

@dyecks dyecks commented Jul 6, 2025

Simplifica o gerenciamento de estados com addWhenListener, melhorando significativamente a experiência do desenvolvedor ao trabalhar com estados dos Commands.

Adiciona uma API mais intuitiva e declarativa para reagir a mudanças de estado em Commands. O novo método addWhenListener elimina a necessidade de usar command.when com data e orElse obrigatórios (required).

Testes: Incluídos testes unitários cobrindo todos os cenários.

Benefícios:

  • Código mais limpo: Substitui pattern matching manual por callbacks declarativos
  • Menos boilerplate: Um único método para todos os estados
  • Execução imediata: Reage ao estado atual sem esperar mudanças
  • Fácil cleanup: Retorna função para remover o listener
  • Flexibilidade: Callbacks opcionais + fallback orElse

Antes:

command.addListener(() {
  command.value.when<String>(
    data: (value) => handleData, // Obrigatório e nem sempre precisamos usar
    failure: (e) => handleError,
    running: () => handleRunning,
    orElse: () => handleOrElse, // Obrigatório e nem sempre precisamos usar
  );
});

Depois:

command.addWhenListener(
  onFailure: handleError,
  onRunning: handleRunning
);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant