dash 0.4.0 copy "dash: ^0.4.0" to clipboard
dash: ^0.4.0 copied to clipboard

outdated

Dash library is responsible to offer a BlocProvider pattern that cares about dispose all the streams of blocs.

Dash #

Logo

Dash is a simple but efficient library that provides BloCs class without headaches.

IMPORTANT: Dart2 is required to use this package.

Installation #

  • Add dash to your pubspec.yaml under the dependencies section:
dependencies:
  dash: ^latest_version
  • Add build_runner and dash_generator to your pubspec.yaml under the dev_dependencies section:
dev_dependencies:
  build_runner: ^1.1.3
  dash_generator: ^latest_version

Usage #

1 - Create a provider class that is going to gathering all BlocProvider annotation:

IMPORTANT: Do not forget to add: part 'provider.g.dart';.

import 'package:dash/dash.dart';

part 'provider.g.dart';

@BlocProvider.factory(MySampleBloc)
@BlocProvider.factory(MyOtherBloc)
abstract class Provider {}

2 - Extends all your bloc class from Bloc. It will allow you to override disposable and dispose method.

IMPORTANT: In order to cache bloc class it must has an unique ID that is represented by a static string property named as key. Also an instance() function that returns the instance of the bloc class as show bellow is necessary.

class MySampleBloc extends Bloc {
  static final String key = 'MySampleBloc-uid';

  @override
  bool disposable() {
    return true;
  }

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() {
    return MySampleBloc();
  }
}

class MyOtherBloc extends Bloc {
  static final String key = 'MyOtherBloc-uid';

  @override
  bool disposable() {
    return true;
  }

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() {
    return MyOtherBloc();
  }
}

3 - Run build_runner, it will generate the provider.g.dart class that you added as part on your provider class.

On project directory run on terminal:

pub run build_runner build

For flutter is:

flutter packages pub run build_runner build

Note: If you encounter a conflict error, please add the --delete-conflicting-outputs argument to your command:

flutter packages pub run build_runner build --delete-conflicting-outputs

4 - Finally you can get your bloc class instance from wherever you want, example:

@override
  Widget build(BuildContext context) {
    final _bloc = $Provider.of<MyOtherBloc>();

    return Container();
  }

Changelog #

Please see the Changelog page to know what's recently changed.

9
likes
0
pub points
78%
popularity

Publisher

unverified uploader

Dash library is responsible to offer a BlocProvider pattern that cares about dispose all the streams of blocs.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on dash