Skip to content

Commit cf15c0b

Browse files
committed
support nullable action
1 parent 59087e1 commit cf15c0b

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

lib/src/redux_store_stream_transformer.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
8888
Stream<S> bind(Stream<A> stream) {
8989
late StreamController<S> controller;
9090
List<StreamSubscription<dynamic>>? subscriptions;
91-
StreamController<WrapperAction<A>>? _actionController;
91+
StreamController<WrapperAction>? _actionController;
9292

9393
void onListen() {
9494
S state;
@@ -101,7 +101,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
101101
return;
102102
}
103103

104-
void onDataActually(WrapperAction<A> wrapper) {
104+
void onDataActually(WrapperAction wrapper) {
105105
final type = wrapper.type;
106106
final currentState = state;
107107

@@ -114,7 +114,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
114114
return controller.add(currentState);
115115
}
116116

117-
final action = wrapper.action;
117+
final action = wrapper.action<A>();
118118
try {
119119
final newState = _reducer(currentState, action);
120120
controller.add(newState);
@@ -144,7 +144,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
144144
}
145145

146146
final actionController =
147-
_actionController = StreamController<WrapperAction<A>>.broadcast();
147+
_actionController = StreamController<WrapperAction>.broadcast();
148148

149149
// Call reducer on each action.
150150
final subscriptionActionController =
@@ -163,7 +163,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
163163

164164
final getState = () => state;
165165
final actionStream = actionController.stream
166-
.map((wrapper) => wrapper.action)
166+
.map((wrapper) => wrapper.action<A>())
167167
.asBroadcastStream(onCancel: (s) => s.cancel());
168168

169169
subscriptions = [
@@ -205,7 +205,7 @@ class ReduxStoreStreamTransformer<A, S> extends StreamTransformerBase<A, S> {
205205
}
206206

207207
Iterable<StreamSubscription<dynamic>> _listenSideEffects(
208-
StreamController<WrapperAction<A>> actionController,
208+
StreamController<WrapperAction> actionController,
209209
GetState<S> getState,
210210
StreamController<S> stateController,
211211
Stream<A> actionStream,

lib/src/wrapper_action.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,21 @@ class _SideEffect extends ActionType {
4545
_SideEffect(this.index) : super._empty();
4646
}
4747

48-
class WrapperAction<A> {
48+
class WrapperAction {
4949
final dynamic _action;
5050
final ActionType type;
5151

5252
const WrapperAction._(this._action, this.type);
5353

54-
factory WrapperAction.external(A action) =>
54+
factory WrapperAction.external(dynamic action) =>
5555
WrapperAction._(action, ActionType._external);
5656

57-
factory WrapperAction.sideEffect(A action, int index) =>
57+
factory WrapperAction.sideEffect(dynamic action, int index) =>
5858
WrapperAction._(action, ActionType._sideEffect(index));
5959

60-
static const initial = WrapperAction<Never>._(null, ActionType._initial);
60+
static const initial = WrapperAction._(null, ActionType._initial);
6161

62-
A get action {
62+
A action<A>() {
6363
if (identical(this, initial)) {
6464
throw StateError('Cannot get action from WrapperAction.initial');
6565
}

0 commit comments

Comments
 (0)