remote_state 0.17.0 copy "remote_state: ^0.17.0" to clipboard
remote_state: ^0.17.0 copied to clipboard

outdated

Tools for mapping data from remote sources in Dart, similar to Elm's RemoteData.

remote_state #

Slaying a UI Antipattern with Angular. #

Library inspired by a blog post by Kris Jenkins about How Elm slays a UI antipattern.

What problem does this package solve? #

You are making an API request, and you want to display or do different things based on the status of the request.

Why RemoteState, not RemoteData? #

I gained secondary inspiration from a talk by Jed Watson, A Treatise on State. As much as possible, I try to categorize state correctly in my applications.

The RemoteState approach #

Instead of using a complex object we use a single data type to express all possible request states. This approach makes it impossible to create invalid states.

Usage #

Here is an example that uses StateNotifier.


class Counter extends StateNotifier<int> {
  Counter(): super(RemoteState.initial())

  void increment() {
    try {
      state = RemoteState.loading();
    
      var count = await api.increment();
    
      state = RemoteState.success(count);
    } catch (e) {
      state = RemoteState.error(e.message);
    }
  }
}

7
likes
0
pub points
27%
popularity

Publisher

verified publishercancode.dev

Tools for mapping data from remote sources in Dart, similar to Elm's RemoteData.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

freezed_annotation

More

Packages that depend on remote_state