Skip to content

Commit 16424fd

Browse files
committed
refactor: TodoDetail Store 조립 방식 정리
1 parent fb64f75 commit 16424fd

4 files changed

Lines changed: 34 additions & 42 deletions

File tree

Application/DevLogPresentation/Sources/Home/Detail/TodoDetailView.swift

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,6 @@ struct TodoDetailView: View {
2020
self._store = State(initialValue: store)
2121
}
2222

23-
init(
24-
fetchTodoUseCase: FetchTodoByIdUseCase,
25-
fetchReferenceItemsUseCase: FetchReferenceItemsUseCase,
26-
todoId: String,
27-
showEditButton: Bool = true
28-
) {
29-
self.init(store: Store(
30-
initialState: TodoDetailFeature.State(
31-
todoId: todoId,
32-
showEditButton: showEditButton
33-
)
34-
) {
35-
TodoDetailFeature()
36-
} withDependencies: {
37-
$0.fetchTodoByIdUseCase = fetchTodoUseCase
38-
$0.fetchReferenceItemsUseCase = fetchReferenceItemsUseCase
39-
})
40-
}
41-
4223
var body: some View {
4324
ZStack {
4425
Color(.systemGroupedBackground).ignoresSafeArea()
@@ -139,12 +120,14 @@ struct TodoDetailView: View {
139120
}
140121
case .todo(let item):
141122
NavigationStack {
142-
TodoDetailView(
143-
fetchTodoUseCase: container.resolve(FetchTodoByIdUseCase.self),
144-
fetchReferenceItemsUseCase: container.resolve(FetchReferenceItemsUseCase.self),
145-
todoId: item.id,
146-
showEditButton: false
147-
)
123+
TodoDetailView(store: Store(
124+
initialState: TodoDetailFeature.State(todoId: item.id, showEditButton: false)
125+
) {
126+
TodoDetailFeature()
127+
} withDependencies: {
128+
$0.fetchTodoByIdUseCase = container.resolve(FetchTodoByIdUseCase.self)
129+
$0.fetchReferenceItemsUseCase = container.resolve(FetchReferenceItemsUseCase.self)
130+
})
148131
.toolbar {
149132
ToolbarLeadingButton {
150133
sheetStore.send(.tapCloseButton)

Application/DevLogPresentation/Sources/Home/Editor/TodoEditorView.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import MarkdownUI
99
import OrderedCollections
1010
import SwiftUI
11+
import ComposableArchitecture
1112
import DevLogCore
1213
import DevLogDomain
1314

@@ -61,12 +62,14 @@ struct TodoEditorView: View {
6162
set: { viewModel.send(.setSelectedTodoId($0)) }
6263
)) { item in
6364
NavigationStack {
64-
TodoDetailView(
65-
fetchTodoUseCase: container.resolve(FetchTodoByIdUseCase.self),
66-
fetchReferenceItemsUseCase: container.resolve(FetchReferenceItemsUseCase.self),
67-
todoId: item.id,
68-
showEditButton: false
69-
)
65+
TodoDetailView(store: Store(
66+
initialState: TodoDetailFeature.State(todoId: item.id, showEditButton: false)
67+
) {
68+
TodoDetailFeature()
69+
} withDependencies: {
70+
$0.fetchTodoByIdUseCase = container.resolve(FetchTodoByIdUseCase.self)
71+
$0.fetchReferenceItemsUseCase = container.resolve(FetchReferenceItemsUseCase.self)
72+
})
7073
.toolbar {
7174
ToolbarLeadingButton {
7275
viewModel.send(.setSelectedTodoId(nil))

Application/DevLogPresentation/Sources/Root/RootView.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,14 @@ public struct RootView: View {
8989
switch route {
9090
case .todoDetail(let todoId):
9191
NavigationStack {
92-
TodoDetailView(
93-
fetchTodoUseCase: container.resolve(FetchTodoByIdUseCase.self),
94-
fetchReferenceItemsUseCase: container.resolve(FetchReferenceItemsUseCase.self),
95-
todoId: todoId,
96-
showEditButton: false
97-
)
92+
TodoDetailView(store: Store(
93+
initialState: TodoDetailFeature.State(todoId: todoId, showEditButton: false)
94+
) {
95+
TodoDetailFeature()
96+
} withDependencies: {
97+
$0.fetchTodoByIdUseCase = container.resolve(FetchTodoByIdUseCase.self)
98+
$0.fetchReferenceItemsUseCase = container.resolve(FetchReferenceItemsUseCase.self)
99+
})
98100
.toolbar {
99101
ToolbarLeadingButton {
100102
selectedRoute = nil

Application/DevLogPresentation/Sources/Search/SearchView.swift

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77

88
import SwiftUI
9+
import ComposableArchitecture
910
import DevLogCore
1011
import DevLogDomain
1112

@@ -21,11 +22,14 @@ struct SearchView: View {
2122
.navigationDestination(for: Path.self) { path in
2223
switch path {
2324
case .todo(let todoId):
24-
TodoDetailView(
25-
fetchTodoUseCase: container.resolve(FetchTodoByIdUseCase.self),
26-
fetchReferenceItemsUseCase: container.resolve(FetchReferenceItemsUseCase.self),
27-
todoId: todoId
28-
)
25+
TodoDetailView(store: Store(
26+
initialState: TodoDetailFeature.State(todoId: todoId, showEditButton: true)
27+
) {
28+
TodoDetailFeature()
29+
} withDependencies: {
30+
$0.fetchTodoByIdUseCase = container.resolve(FetchTodoByIdUseCase.self)
31+
$0.fetchReferenceItemsUseCase = container.resolve(FetchReferenceItemsUseCase.self)
32+
})
2933
case .web(let page):
3034
WebView(url: page.url)
3135
.ignoresSafeArea()

0 commit comments

Comments
 (0)