Skip to content

Commit c8e3dfb

Browse files
committed
refactor: RootFeature 뷰 스토어 액션 분리 제거
1 parent 5b505a2 commit c8e3dfb

3 files changed

Lines changed: 25 additions & 33 deletions

File tree

Application/DevLogPresentation/Sources/Root/RootFeature.swift

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,16 @@ struct RootFeature {
4242
case alert(PresentationAction<Never>)
4343
case binding(BindingAction<State>)
4444
case sheet(PresentationAction<Sheet>)
45-
case view(ViewAction)
46-
case store(StoreAction)
47-
48-
enum ViewAction: Equatable {
49-
case onAppear
50-
case presentTodoDetail(String)
51-
case openWidgetRoute(MainTab)
52-
}
45+
case onAppear
46+
case presentTodoDetail(String)
47+
case openWidgetRoute(MainTab)
48+
case networkStatusChanged(Bool)
49+
case setTheme(SystemTheme)
50+
case didLogined(Bool)
5351

5452
enum Sheet: Equatable {
5553
case tapCloseButton
5654
}
57-
58-
enum StoreAction: Equatable {
59-
case networkStatusChanged(Bool)
60-
case setTheme(SystemTheme)
61-
case didLogined(Bool)
62-
}
6355
}
6456

6557
@Dependency(\.observeAuthSessionUseCase) var observeAuthSessionUseCase
@@ -80,7 +72,7 @@ struct RootFeature {
8072
state.sheet = nil
8173
case .sheet:
8274
break
83-
case .view(.onAppear):
75+
case .onAppear:
8476
var effect = clearApplicationBadgeCountEffect()
8577

8678
if !state.isObservingNetworkConnectivity {
@@ -99,20 +91,20 @@ struct RootFeature {
9991
}
10092

10193
return effect
102-
case .view(.presentTodoDetail(let todoId)):
94+
case .presentTodoDetail(let todoId):
10395
state.sheet = .init(todoId: todoId)
104-
case .view(.openWidgetRoute(let mainTab)):
96+
case .openWidgetRoute(let mainTab):
10597
guard state.signIn == true else { break }
10698
state.selectedMainTab = mainTab
107-
case .store(.networkStatusChanged(let isConnected)):
99+
case .networkStatusChanged(let isConnected):
108100
let wasConnected = state.isNetworkConnected
109101
state.isNetworkConnected = isConnected
110102
if wasConnected && !isConnected {
111103
state.alert = Self.alertState()
112104
}
113-
case .store(.setTheme(let theme)):
105+
case .setTheme(let theme):
114106
state.theme = theme
115-
case .store(.didLogined(let result)):
107+
case .didLogined(let result):
116108
state.signIn = result
117109
if result {
118110
state.selectedMainTab = .home
@@ -166,7 +158,7 @@ private extension RootFeature {
166158
func observeNetworkConnectivityEffect() -> Effect<Action> {
167159
.publisher { [networkConnectivityUseCase] in
168160
networkConnectivityUseCase.observe()
169-
.map { Action.store(.networkStatusChanged($0)) }
161+
.map(Action.networkStatusChanged)
170162
}
171163
.cancellable(id: CancelID.networkConnectivity, cancelInFlight: true)
172164
}
@@ -175,7 +167,7 @@ private extension RootFeature {
175167
.publisher { [observeAuthSessionUseCase] in
176168
observeAuthSessionUseCase.observe()
177169
.removeDuplicates()
178-
.map { Action.store(.didLogined($0)) }
170+
.map(Action.didLogined)
179171
}
180172
.cancellable(id: CancelID.session, cancelInFlight: true)
181173
}
@@ -184,7 +176,7 @@ private extension RootFeature {
184176
.publisher { [systemThemeUseCase] in
185177
systemThemeUseCase.observe()
186178
.removeDuplicates()
187-
.map { Action.store(.setTheme($0)) }
179+
.map(Action.setTheme)
188180
}
189181
.cancellable(id: CancelID.theme, cancelInFlight: true)
190182
}

Application/DevLogPresentation/Sources/Root/RootView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ public struct RootView: View {
5959
}
6060
}
6161
.preferredColorScheme(store.theme.colorScheme)
62-
.onAppear { store.send(.view(.onAppear)) }
62+
.onAppear { store.send(.onAppear) }
6363
.onOpenURL { url in
6464
guard let mainTab = widgetURLTab(url) else { return }
65-
store.send(.view(.openWidgetRoute(mainTab)))
65+
store.send(.openWidgetRoute(mainTab))
6666
}
6767
.alert($store.scope(state: \.alert, action: \.alert))
6868
.sheet(item: $store.scope(state: \.sheet, action: \.sheet)) { sheetStore in
@@ -85,7 +85,7 @@ public struct RootView: View {
8585
.presentationDragIndicator(.visible)
8686
}
8787
.onReceive(pushNotificationTodoIdPublisher) { todoId in
88-
store.send(.view(.presentTodoDetail(todoId)))
88+
store.send(.presentTodoDetail(todoId))
8989
clearPushNotificationRoute()
9090
}
9191
}

Application/DevLogPresentation/Tests/Root/RootFeatureTestSupport.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,32 +79,32 @@ struct RootStoreTestAdapter: RootStateDriving {
7979
}
8080

8181
func onAppear() async {
82-
await store.send(.view(.onAppear))
82+
await store.send(.onAppear)
8383
await drainReceivedActions()
8484
}
8585

8686
func setAlert(_ isPresented: Bool) async {
8787
if isPresented {
88-
await store.send(.store(.networkStatusChanged(false)))
88+
await store.send(.networkStatusChanged(false))
8989
} else {
9090
await store.send(.alert(.dismiss))
9191
}
9292
}
9393

9494
func networkStatusChanged(_ isConnected: Bool) async {
95-
await store.send(.store(.networkStatusChanged(isConnected)))
95+
await store.send(.networkStatusChanged(isConnected))
9696
}
9797

9898
func setTheme(_ theme: SystemTheme) async {
99-
await store.send(.store(.setTheme(theme)))
99+
await store.send(.setTheme(theme))
100100
}
101101

102102
func didLogined(_ signIn: Bool) async {
103-
await store.send(.store(.didLogined(signIn)))
103+
await store.send(.didLogined(signIn))
104104
}
105105

106106
func presentTodoDetail(_ todoId: String) async {
107-
await store.send(.view(.presentTodoDetail(todoId)))
107+
await store.send(.presentTodoDetail(todoId))
108108
}
109109

110110
func dismissSheet() async {
@@ -116,7 +116,7 @@ struct RootStoreTestAdapter: RootStateDriving {
116116
}
117117

118118
func openWidgetRoute(_ tab: MainTab) async {
119-
await store.send(.view(.openWidgetRoute(tab)))
119+
await store.send(.openWidgetRoute(tab))
120120
}
121121

122122
private func drainReceivedActions() async {

0 commit comments

Comments
 (0)