Adds onReceive reducer overloads.

This commit is contained in:
2024-02-24 17:28:12 -05:00
parent de5616a780
commit 74e10b704c
2 changed files with 143 additions and 31 deletions

View File

@@ -57,21 +57,15 @@ struct ReducerWithArg {
@Dependency(\.numberClient) var numberClient
var body: some Reducer<State, Action> {
Reduce<State, Action> { state, action in
switch action {
case let .receive(number):
state.currentNumber = number
return .none
case .task:
return .none
}
}
.subscribe(
using: \.number,
to: numberClient.numberStreamWithArg,
on: \.task,
with: \.receive
)
EmptyReducer()
.onReceive(action: \.receive, set: \.currentNumber)
.subscribe(
to: numberClient.numberStreamWithArg,
using: \.number,
on: \.task,
with: \.receive
)
}
}
@@ -84,23 +78,16 @@ struct ReducerWithTransform {
@Dependency(\.numberClient) var numberClient
var body: some Reducer<State, Action> {
Reduce<State, Action> { state, action in
switch action {
case let .receive(number):
state.currentNumber = number
return .none
case .task:
return .none
EmptyReducer()
.onReceive(action: \.receive, set: \.currentNumber)
.subscribe(
to: numberClient.numberStreamWithArg,
using: \.number,
on: \.task,
with: \.receive
) {
$0 * 2
}
}
.subscribe(
using: \.number,
to: numberClient.numberStreamWithArg,
on: \.task,
with: \.receive
) {
$0 * 2
}
}
}