Helper package for creating Bloc for controlling one UI Page.
Features
Build on top of flutter_bloc BlocConsumer
widget, flutter_bloc_page provides better separation
between UI state
and UI event.
UI state will be last until bloc emit a new state.
While UI event (e.g. show snackbar, show dialog, open another page) should be handled only once.
Getting started
Pubspec
dependencies:
flutter_bloc_page: ^1.0.0
Usage
When create a page, define UiEvent
class to represent event that can happen.
Let say it will be 2 events: showDialog and openAnotherPage. You can define UiEvent
class like
this.
sealed class UiEvent {}
class ShowDialog extends UiEvent {
// Fields
}
class OpenAnotherPage extends UiEvent {
// Fields
}
Note Avoid having const
constructor in UiEvent
class. PageBlocConsumer
uses identical
for
checking arrival of new UiEvent.
Create a Bloc with state
of type PageBlocState
. Implement your Bloc logic as normal bloc.
class YourBloc extends Bloc<Event, PageBlocState<UiEvent, UiState>> {
// Your implementation
}
Now you can use PageBlocConsumer
:
PageBlocConsumer<YourBloc, UiEvent, UiState>
(
uiEventListener: (context, uiEvent) async {
// Handle UiEvent
},
uiBuilder: (context, uiState) {
// Build your widget from UiState
}
);
Libraries
- flutter_bloc_page
- Helper package for creating Bloc for controlling one UI Page.