sealed_flutter_bloc 1.0.0 copy "sealed_flutter_bloc: ^1.0.0" to clipboard
sealed_flutter_bloc: ^1.0.0 copied to clipboard

discontinued
outdated

flutter_bloc state management extension that integrates sealed_unions.

logo
Build Status Code Coverage Pub Package MIT License

flutter_bloc meets sealed_unions


Quick Start #

Extend UnionNImpl #

class MyState extends Union4Impl<Initial, Loading, Success, Failure> {
  static final unions = const Quartet<Initial, Loading, Success, Failure>();

  MyState._(Union4<Initial, Loading, Success, Failure> union) : super(union);

  factory MyState.initial() => MyState._(unions.first(Initial()));

  factory MyState.loading() => MyState._(unions.second(Loading()));

  factory MyState.success({String data}) =>
      MyState._(unions.third(Success(data: data)));

  factory MyState.failure({String error}) =>
      MyState._(unions.fourth(Failure(error: error)));
}

class Initial {}

class Loading {}

class Success {
  final String data;

  Success({this.data});
}

class Failure {
  String error;

  Failure({this.error});
}

Use SealedBlocBuilder #

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SealedBlocBuilder4<MyBloc, MyState, Initial, Loading, Success,
        Failure>(
      builder: (context, states) => states(
        (initial) => Text('Initial'),
        (loading) => CircularProgressIndicator(),
        (success) => Text('Success: ${success.data}'),
        (failure) => Text('Failure: ${failure.error}'),
      ),
    );
  }
}

Additional Examples #

More examples can be found at sealed_flutter_bloc_samples.

80
likes
0
pub points
72%
popularity

Publisher

verified publisherbloc-dev.com

flutter_bloc state management extension that integrates sealed_unions.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

bloc, flutter, flutter_bloc, sealed_unions

More

Packages that depend on sealed_flutter_bloc