flutter_bloc_side_effect 0.0.2
flutter_bloc_side_effect: ^0.0.2 copied to clipboard
Extended BLoC with second stream of Side Effects and widgets.
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter_bloc_side_effect/flutter_bloc_side_effect.dart';
import 'package:flutter_bloc_side_effect_example/my_bloc.dart';
void main() {
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(home: MyView());
}
}
final myBloc = MyBloc();
class MyView extends StatelessWidget {
const MyView({super.key});
@override
Widget build(BuildContext context) {
return BlocConsumerWithSideEffects<MyBloc, MyState, MySideEffect>(
bloc: myBloc,
sideEffectsListener: (context, sideEffect) {
sideEffect.map(
error: (sideEffect) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(sideEffect.message)),
);
},
);
},
listener: (_, state) => log(state.stateName),
builder: (context, state) {
return Scaffold(
appBar: AppBar(title: Text(state.stateName)),
floatingActionButton: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
FloatingActionButton(
onPressed: () => myBloc.add(const MyEvent.throwError()),
child: const Text('Error'),
),
],
),
);
},
);
}
}