Line data Source code
1 : import 'dart:developer';
2 :
3 : import 'package:redux/redux.dart';
4 :
5 : import '../types/red_fire_state.dart';
6 : import '../types/redux_action.dart';
7 :
8 : class DevToolsMiddleware<T extends RedFireState>
9 : extends TypedMiddleware<T, ReduxAction> {
10 1 : DevToolsMiddleware()
11 2 : : super((store, action, next) async {
12 1 : next(action);
13 :
14 2 : postEvent('redfire:action_dispatched', <String, Object?>{
15 2 : 'state_json': store.state.toJson(),
16 1 : 'action': {
17 3 : 'description': action.toString().split('(').first,
18 1 : 'json': action.toJson()
19 : }
20 : });
21 : }) {
22 : // When the middleware is created, send an event to clear data from devtools.
23 : // This is useful when user performs a hot restart.
24 2 : postEvent('redfire:remove_all', <String, Object?>{});
25 : }
26 : }
|