Como mostrar estados de carregamento e erro com AsyncValue no Flutter Riverpod
Renderize estados de carregamento, dados e erro a partir de um único AsyncValue no Riverpod 3. Use AsyncNotifier e AsyncValue.guard para as mutações, .when() e correspondência de padrões com switch para a UI, mantenha os dados anteriores ao atualizar e migre o padrão legado StateNotifier. Testado em flutter_riverpod 3.x, Flutter 3.44, Dart 3.x.