@@ -21,55 +21,59 @@ class SpinAssembly: Assembly {
21
21
// Trending Spin
22
22
// (ReactiveSwift implementation)
23
23
container. register ( ReactiveSpin < Trending . State , Trending . Event > . self) { resolver -> ReactiveSpin < Trending . State , Trending . Event > in
24
- let loadFeedback = resolver. resolve ( TrendingReactiveSwiftFeedback . self) !
24
+ let loadEntityFunction = resolver. resolve ( TrendingReactiveSwiftEntity . self) !
25
25
26
26
// build Spin with a Builder pattern
27
27
return
28
28
Spinner
29
29
. initialState ( . idle)
30
- . feedback ( ReactiveFeedback ( effect: loadFeedback , on: QueueScheduler ( ) ) )
30
+ . feedback ( ReactiveFeedback ( effect: Trending . Feedbacks . loadPage , on: QueueScheduler ( ) , dep1 : loadEntityFunction ) )
31
31
. reducer ( Reducer ( Trending . reducer) )
32
32
}
33
33
34
34
// Trending Spin
35
35
// (Combine implementation)
36
36
container. register ( CombineSpin < Trending . State , Trending . Event > . self) { resolver -> CombineSpin < Trending . State , Trending . Event > in
37
- let loadFeedback = resolver. resolve ( TrendingCombineFeedback . self) !
37
+ let loadEntityFunction = resolver. resolve ( TrendingCombineEntity . self) !
38
38
39
39
// build Spin with a Builder pattern
40
40
return
41
41
Spinner
42
42
. initialState ( . idle)
43
- . feedback ( CombineFeedback ( effect: loadFeedback, on: DispatchQueue ( label: " background " ) . eraseToAnyScheduler ( ) ) )
43
+ . feedback ( CombineFeedback ( effect: Trending . Feedbacks. loadPage,
44
+ on: DispatchQueue ( label: " background " ) . eraseToAnyScheduler ( ) ,
45
+ dep1: loadEntityFunction) )
44
46
. reducer ( Reducer ( Trending . reducer) )
45
47
}
46
48
47
49
// Trending Spin
48
50
// (RxSwift implementation)
49
51
container. register ( RxSpin < Trending . State , Trending . Event > . self) { resolver -> RxSpin < Trending . State , Trending . Event > in
50
- let loadFeedback = resolver. resolve ( TrendingRxSwiftFeedback . self) !
52
+ let loadEntityFunction = resolver. resolve ( TrendingRxSwiftEntity . self) !
51
53
52
54
// build Spin with a Builder pattern
53
55
return
54
56
Spinner
55
57
. initialState ( . idle)
56
- . feedback ( RxFeedback ( effect: loadFeedback, on: SerialDispatchQueueScheduler ( qos: . userInitiated) ) )
58
+ . feedback ( RxFeedback ( effect: Trending . Feedbacks. loadPage,
59
+ on: SerialDispatchQueueScheduler ( qos: . userInitiated) ,
60
+ dep1: loadEntityFunction) )
57
61
. reducer ( Reducer ( Trending . reducer) )
58
62
}
59
63
60
64
// Gif Spin
61
65
// (ReactiveSwift implementation)
62
66
container. register ( ReactiveSpin < Gif . State , Gif . Event > . self) { ( resolver, gifId: String )
63
67
-> ReactiveSpin < Gif . State , Gif . Event > in
64
- let loadGifFeedback = resolver. resolve ( LoadGifReactiveSwiftFeedback . self, name : " ReactiveSwiftLoadFeedback " ) !
65
- let persistFavoriteFeedback = resolver. resolve ( SetFavoriteReactiveSwiftFeedback . self, name : " ReactiveSwiftPersistFeedback " ) !
68
+ let loadEntityFunction = resolver. resolve ( GifReactiveSwiftEntity . self) !
69
+ let favoriteService = resolver. resolve ( FavoriteService . self) !
66
70
67
71
// build Spin with a declarative "SwiftUI" pattern
68
72
return
69
73
ReactiveSpin ( initialState: . loading( id: gifId) ) {
70
- ReactiveFeedback ( effect: loadGifFeedback )
74
+ ReactiveFeedback ( effect: Gif . Feedbacks . load , dep1 : loadEntityFunction )
71
75
. execute ( on: QueueScheduler ( ) )
72
- ReactiveFeedback ( effect: persistFavoriteFeedback )
76
+ ReactiveFeedback ( effect: Gif . Feedbacks . persist , dep1 : favoriteService . set ( favorite : for : ) )
73
77
. execute ( on: QueueScheduler ( ) )
74
78
Reducer ( Gif . reducer)
75
79
}
@@ -79,15 +83,15 @@ class SpinAssembly: Assembly {
79
83
// (Combine implementation)
80
84
container. register ( CombineSpin < Gif . State , Gif . Event > . self) { ( resolver, gifId: String )
81
85
-> CombineSpin < Gif . State , Gif . Event > in
82
- let loadGifFeedback = resolver. resolve ( LoadGifCombineFeedback . self, name : " CombineLoadFeedback " ) !
83
- let persistFavoriteFeedback = resolver. resolve ( SetFavoriteCombineFeedback . self, name : " CombinePersistFeedback " ) !
86
+ let loadEntityFunction = resolver. resolve ( GifCombineEntity . self) !
87
+ let favoriteService = resolver. resolve ( FavoriteService . self) !
84
88
85
89
// build Spin with a declarative "SwiftUI" pattern
86
90
return
87
91
CombineSpin ( initialState: . loading( id: gifId) ) {
88
- CombineFeedback ( effect: loadGifFeedback )
92
+ CombineFeedback ( effect: Gif . Feedbacks . load , dep1 : loadEntityFunction )
89
93
. execute ( on: DispatchQueue ( label: " \( UUID ( ) ) " , qos: . userInitiated) . eraseToAnyScheduler ( ) )
90
- CombineFeedback ( effect: persistFavoriteFeedback )
94
+ CombineFeedback ( effect: Gif . Feedbacks . persist , dep1 : favoriteService . set ( favorite : for : ) )
91
95
. execute ( on: DispatchQueue ( label: " \( UUID ( ) ) " , qos: . userInitiated) . eraseToAnyScheduler ( ) )
92
96
Reducer ( Gif . reducer)
93
97
}
@@ -97,15 +101,15 @@ class SpinAssembly: Assembly {
97
101
// (RxSwift implementation)
98
102
container. register ( RxSpin < Gif . State , Gif . Event > . self) { ( resolver, gifId: String )
99
103
-> RxSpin < Gif . State , Gif . Event > in
100
- let loadGifFeedback = resolver. resolve ( LoadGifRxSwiftFeedback . self, name : " RxSwiftLoadFeedback " ) !
101
- let persistFavoriteFeedback = resolver. resolve ( SetFavoriteRxSwiftFeedback . self, name : " RxSwiftPersistFeedback " ) !
104
+ let loadEntityFunction = resolver. resolve ( GifRxSwiftEntity . self) !
105
+ let favoriteService = resolver. resolve ( FavoriteService . self) !
102
106
103
107
// build Spin with a declarative "SwiftUI" pattern
104
108
return
105
109
RxSpin ( initialState: . loading( id: gifId) ) {
106
- RxFeedback ( effect: loadGifFeedback )
110
+ RxFeedback ( effect: Gif . Feedbacks . load , dep1 : loadEntityFunction )
107
111
. execute ( on: SerialDispatchQueueScheduler ( qos: . userInitiated) )
108
- RxFeedback ( effect: persistFavoriteFeedback )
112
+ RxFeedback ( effect: Gif . Feedbacks . persist , dep1 : favoriteService . set ( favorite : for : ) )
109
113
. execute ( on: SerialDispatchQueueScheduler ( qos: . userInitiated) )
110
114
Reducer ( Gif . reducer)
111
115
}
0 commit comments