Search packages, repositories and app categories

GitHub repositoryfelangel/sealed_flutter_bloc

sealed_flutter_bloc

flutter_bloc state management extension that integrates sealed_unions.

sealed_flutter_bloc project cover
Stars
78
Forks
12
Last push (UTC)
Mar 24, 2024
Project status
Archived

Original README

English project snapshot. Visit GitHub for the latest content.

⚠️ This package has been discontinued in favor of the built-in sealed class modifier introduced in Dart 3.0. ⚠️

Sealed Flutter Bloc

build codecov Star on Github style: effective dart Flutter Website Awesome Flutter Flutter Samples License: MIT Discord Bloc Library

flutter_bloc meets sealed_unions


Sponsors

Our top sponsors are shown below! [Become a Sponsor]


Try the Flutter Chat Tutorial  💬

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({required String data}) =>
      MyState._(unions.third(Success(data: data)));

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

class Initial {}

class Loading {}

class Success {
  final String data;

  Success({required this.data});
}

class Failure {
  String error;

  Failure({required 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.

Felix Angelov GitHub avatar
GitHub author

Felix Angelov ↗

software engineer by day, software engineer by night.

LanguagesDartCMakeC++HTMLSwiftCKotlinObjective-C

Categories

Dependencies used

Dependency list 5 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗