Skip to content

Commit 300f0a6

Browse files
committed
refactor: TodoCategoryPreferenceItem -> TodoCategoryItem
1 parent 6a2922e commit 300f0a6

12 files changed

Lines changed: 46 additions & 46 deletions

DevLog/Presentation/Structure/TodoCategoryPreferenceItem.swift renamed to DevLog/Presentation/Structure/TodoCategoryItem.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
//
2-
// TodoCategoryPreferenceItem.swift
2+
// TodoCategoryItem.swift
33
// DevLog
44
//
55
// Created by opfic on 3/30/26.
66
//
77

88
import SwiftUI
99

10-
struct TodoCategoryPreferenceItem: Identifiable, Hashable {
10+
struct TodoCategoryItem: Identifiable, Hashable {
1111
var category: TodoCategory
1212
var isVisible: Bool
1313

@@ -70,7 +70,7 @@ struct TodoCategoryPreferenceItem: Identifiable, Hashable {
7070
}
7171
}
7272

73-
static func == (lhs: TodoCategoryPreferenceItem, rhs: TodoCategoryPreferenceItem) -> Bool {
73+
static func == (lhs: TodoCategoryItem, rhs: TodoCategoryItem) -> Bool {
7474
lhs.category == rhs.category && lhs.isVisible == rhs.isVisible
7575
}
7676

DevLog/Presentation/Structure/TodoReferenceItem.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import Foundation
1010
struct TodoReferenceItem: Equatable {
1111
let id: String
1212
let title: String
13-
let category: TodoCategoryPreferenceItem
13+
let category: TodoCategoryItem
1414

1515
init(from todoReference: TodoReference) {
1616
self.id = todoReference.id
1717
self.title = todoReference.title
18-
self.category = TodoCategoryPreferenceItem(from: todoReference.category)
18+
self.category = TodoCategoryItem(from: todoReference.category)
1919
}
2020
}

DevLog/Presentation/ViewModel/HomeViewModel.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Combine
1111
@Observable
1212
final class HomeViewModel: Store {
1313
struct State: Equatable {
14-
var preferences: [TodoCategoryPreferenceItem] = []
14+
var preferences: [TodoCategoryItem] = []
1515
var recentTodos: [RecentTodoItem] = []
1616
var webPages: [WebPageItem] = []
1717
var isNetworkConnected: Bool = true
@@ -42,8 +42,8 @@ final class HomeViewModel: Store {
4242
case setToast(isPresented: Bool, type: ToastType? = nil)
4343
case setLoading(LoadingTarget, Bool)
4444
case tapTodoCategory(TodoCategory)
45-
case orderTodoCategoryPreferences([TodoCategoryPreferenceItem])
46-
case setTodoCategoryPreferences([TodoCategoryPreferenceItem])
45+
case orderTodoCategory([TodoCategoryItem])
46+
case setTodoCategory([TodoCategoryItem])
4747
case addTodo(Todo)
4848
case updateRecentTodos([RecentTodoItem])
4949
case updateWebPageURLInput(String)
@@ -60,7 +60,7 @@ final class HomeViewModel: Store {
6060
case deleteWebPage(WebPageItem, Int)
6161
case undoDeleteWebPage(String)
6262
case fetchTodoCategoryPreferences
63-
case updateTodoCategoryPreferences([TodoCategoryPreferenceItem])
63+
case updateTodoCategoryPreferences([TodoCategoryItem])
6464
case fetchRecentTodos
6565
case fetchWebPages
6666
case showModalAfterDelay(ModalType)
@@ -141,11 +141,11 @@ final class HomeViewModel: Store {
141141
case .networkStatusChanged(let isConnected):
142142
state.isNetworkConnected = isConnected
143143
case .onAppear, .setPresentation, .setAlert, .setToast, .tapTodoCategory,
144-
.orderTodoCategoryPreferences, .addTodo, .updateWebPageURLInput,
144+
.orderTodoCategory, .addTodo, .updateWebPageURLInput,
145145
.addWebPage, .deleteWebPage, .undoDeleteWebPage:
146146
effects = reduceByView(action, state: &state)
147147

148-
case .setLoading, .setTodoCategoryPreferences, .updateRecentTodos,
148+
case .setLoading, .setTodoCategory, .updateRecentTodos,
149149
.updateWebPages, .restoreWebPage:
150150
effects = reduceByRun(action, state: &state)
151151
}
@@ -162,7 +162,7 @@ final class HomeViewModel: Store {
162162
do {
163163
defer { endLoading(for: .preferences, mode: .immediate) }
164164
let preferences = try await fetchPreferencesUseCase.execute()
165-
send(.setTodoCategoryPreferences(preferences.map(TodoCategoryPreferenceItem.init(from:))))
165+
send(.setTodoCategory(preferences.map(TodoCategoryItem.init(from:))))
166166
} catch {
167167
send(.setAlert(isPresented: true, type: .error))
168168
}
@@ -302,7 +302,7 @@ private extension HomeViewModel {
302302
state.selectedTodoCategory = category
303303
state.showContentPicker = false
304304
return [.showModalAfterDelay(.todoEditor)]
305-
case .orderTodoCategoryPreferences(let preferences):
305+
case .orderTodoCategory(let preferences):
306306
state.preferences = preferences
307307
state.recentTodos = syncRecentTodos(state.recentTodos, preferences: preferences)
308308
return [.updateTodoCategoryPreferences(preferences)]
@@ -339,7 +339,7 @@ private extension HomeViewModel {
339339
switch action {
340340
case .setLoading(let loadingTarget, let isLoading):
341341
setLoading(&state, loadingTarget: loadingTarget, isLoading: isLoading)
342-
case .setTodoCategoryPreferences(let preferences):
342+
case .setTodoCategory(let preferences):
343343
state.preferences = preferences
344344
state.recentTodos = syncRecentTodos(state.recentTodos, preferences: preferences)
345345
case .updateRecentTodos(let todos):
@@ -441,7 +441,7 @@ private extension HomeViewModel {
441441

442442
func syncRecentTodos(
443443
_ recentTodos: [RecentTodoItem],
444-
preferences: [TodoCategoryPreferenceItem]
444+
preferences: [TodoCategoryItem]
445445
) -> [RecentTodoItem] {
446446
recentTodos.map { recentTodo in
447447
guard let item = preferences.first(where: {

DevLog/Presentation/ViewModel/TodoEditorViewModel.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ final class TodoEditorViewModel: Store {
5757
var tagText: String = ""
5858
var focusOnEditor: Bool = false
5959
var tabViewTag: Tag = .editor
60-
var categories: [TodoCategoryPreferenceItem] = []
61-
var category = TodoCategoryPreferenceItem(from: .system(.etc))
60+
var categories: [TodoCategoryItem] = []
61+
var category = TodoCategoryItem(from: .system(.etc))
6262
var isValidToSave: Bool {
6363
!title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
6464
}
@@ -75,14 +75,14 @@ final class TodoEditorViewModel: Store {
7575
case setContent(String)
7676
case setCompleted(Bool)
7777
case setDueDate(Date?)
78-
case setCategory(TodoCategoryPreferenceItem)
78+
case setCategory(TodoCategoryItem)
7979
case setPinned(Bool)
8080
case setShowInfo(Bool)
8181
case setSelectedTodoId(TodoIdItem?)
8282
case setTabViewTag(Tag)
8383
case setTagText(String)
8484
case setTitle(String)
85-
case setCategories([TodoCategoryPreferenceItem])
85+
case setCategories([TodoCategoryItem])
8686
case setReferenceItems([Int: TodoReferenceItem])
8787
}
8888

@@ -133,8 +133,8 @@ final class TodoEditorViewModel: Store {
133133
self.number = nil
134134
self.createdAt = nil
135135
self.originalDraft = nil
136-
state.category = TodoCategoryPreferenceItem(from: category)
137-
state.categories = [TodoCategoryPreferenceItem(from: category)]
136+
state.category = TodoCategoryItem(from: category)
137+
state.categories = [TodoCategoryItem(from: category)]
138138
}
139139

140140
// 기존 Todo 편집용 생성자
@@ -158,7 +158,7 @@ final class TodoEditorViewModel: Store {
158158
state.content = todo.content
159159
state.dueDate = todo.dueDate
160160
state.tags = OrderedSet(todo.tags)
161-
state.category = TodoCategoryPreferenceItem(from: todo.category)
161+
state.category = TodoCategoryItem(from: todo.category)
162162
}
163163

164164
func reduce(with action: Action) -> [SideEffect] {
@@ -221,7 +221,7 @@ final class TodoEditorViewModel: Store {
221221
Task {
222222
do {
223223
let preferences = try await fetchPreferencesUseCase.execute()
224-
send(.setCategories(preferences.map(TodoCategoryPreferenceItem.init(from:))))
224+
send(.setCategories(preferences.map(TodoCategoryItem.init(from:))))
225225
} catch { }
226226
}
227227
case .resolveMarkdown(let content):

DevLog/Presentation/ViewModel/TodoManageViewModel.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@ import SwiftUI
1010
@Observable
1111
final class TodoManageViewModel: Store {
1212
struct State: Equatable {
13-
var preferences: [TodoCategoryPreferenceItem]
14-
var category: TodoCategoryPreferenceItem?
13+
var preferences: [TodoCategoryItem]
14+
var category: TodoCategoryItem?
1515
var showSheet: Bool = false
1616
var showAlert: Bool = false
1717
}
1818

1919
enum Action {
2020
case tapAddUserCategory
2121
case moveItem(from: IndexSet, target: Int)
22-
case tapItem(TodoCategoryPreferenceItem)
23-
case tapEditUserCategory(TodoCategoryPreferenceItem)
24-
case tapDeleteUserCategory(TodoCategoryPreferenceItem)
22+
case tapItem(TodoCategoryItem)
23+
case tapEditUserCategory(TodoCategoryItem)
24+
case tapDeleteUserCategory(TodoCategoryItem)
2525
case confirmDeleteUserCategory
2626
case setShowSheet(Bool)
2727
case setShowAlert(Bool)
@@ -106,7 +106,7 @@ final class TodoManageViewModel: Store {
106106
return true
107107
}
108108

109-
init(_ preferences: [TodoCategoryPreferenceItem]) {
109+
init(_ preferences: [TodoCategoryItem]) {
110110
self.state = State(preferences: preferences)
111111
}
112112

@@ -119,7 +119,7 @@ final class TodoManageViewModel: Store {
119119
break
120120
}
121121

122-
state.category = TodoCategoryPreferenceItem(
122+
state.category = TodoCategoryItem(
123123
from: .user(
124124
UserTodoCategory(
125125
id: UUID().uuidString.lowercased(),

DevLog/UI/Home/HomeView.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ struct HomeView: View {
6464
onDismiss: { array in
6565
viewModel.send(.setPresentation(.reorderTodo, false))
6666
withAnimation {
67-
viewModel.send(.orderTodoCategoryPreferences(array))
67+
viewModel.send(.orderTodoCategory(array))
6868
}
6969
}
7070
)
@@ -370,7 +370,7 @@ struct HomeView: View {
370370
}
371371

372372
private enum Path: Hashable {
373-
case category(TodoCategoryPreferenceItem)
373+
case category(TodoCategoryItem)
374374
case detail(String)
375375
case web(WebPageItem)
376376
}
@@ -381,13 +381,13 @@ private struct RecentTodoRow: View {
381381
let sceneWidth: CGFloat
382382

383383
var body: some View {
384-
let todoCategoryItem = TodoCategoryPreferenceItem(from: todo.category)
384+
let category = TodoCategoryItem(from: todo.category)
385385
HStack(alignment: .top, spacing: 12) {
386386
RoundedRectangle(cornerRadius: 8)
387-
.fill(todoCategoryItem.color)
387+
.fill(category.color)
388388
.frame(width: sceneWidth * 0.08, height: sceneWidth * 0.08)
389389
.overlay {
390-
Image(systemName: todoCategoryItem.symbolName)
390+
Image(systemName: category.symbolName)
391391
.foregroundStyle(Color.white)
392392
.font(.title3)
393393
}
@@ -412,9 +412,9 @@ private struct RecentTodoRow: View {
412412
}
413413

414414
HStack(spacing: 6) {
415-
Text(todoCategoryItem.localizedName)
415+
Text(category.localizedName)
416416
.font(.caption.weight(.semibold))
417-
.foregroundStyle(todoCategoryItem.color)
417+
.foregroundStyle(category.color)
418418

419419
RelativeTimeText(date: todo.updatedAt)
420420
}

DevLog/UI/Home/TodoDetailView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ private struct TodoDetailInfoSheetView: View {
118118
HStack {
119119
Text("카테고리")
120120
Spacer()
121-
Text(TodoCategoryPreferenceItem(from: todo.category).localizedName)
121+
Text(TodoCategoryItem(from: todo.category).localizedName)
122122
.foregroundStyle(.secondary)
123123
}
124124

DevLog/UI/Home/TodoListView.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct TodoListView: View {
4141
set: { viewModel.send(.setIsSearching($0)) }
4242
),
4343
placement: .navigationBarDrawer(displayMode: .always),
44-
prompt: "\(TodoCategoryPreferenceItem(from: viewModel.state.category).localizedName) 검색"
44+
prompt: "\(TodoCategoryItem(from: viewModel.state.category).localizedName) 검색"
4545
)
4646
}
4747
}
@@ -76,7 +76,7 @@ struct TodoListView: View {
7676
) {
7777
Label(viewModel.state.toastMessage, systemImage: "arrow.uturn.left")
7878
}
79-
.navigationTitle(TodoCategoryPreferenceItem(from: viewModel.state.category).localizedName)
79+
.navigationTitle(TodoCategoryItem(from: viewModel.state.category).localizedName)
8080
.fullScreenCover(isPresented: Binding(
8181
get: { viewModel.state.showEditor },
8282
set: { viewModel.send(.setShowEditor($0)) }
@@ -222,7 +222,7 @@ struct TodoListView: View {
222222
set: { viewModel.send(.setIsSearching($0)) }
223223
),
224224
placement: .navigationBarDrawer(displayMode: .always),
225-
prompt: "\(TodoCategoryPreferenceItem(from: viewModel.state.category).localizedName) 검색"
225+
prompt: "\(TodoCategoryItem(from: viewModel.state.category).localizedName) 검색"
226226
)
227227
}
228228

@@ -235,7 +235,7 @@ struct TodoListView: View {
235235
: Array(searchResults.prefix(limit))
236236

237237
if viewModel.state.searchText.isEmpty {
238-
Text("\(TodoCategoryPreferenceItem(from: viewModel.state.category).localizedName)의 제목이나 내용을 검색해 보세요.")
238+
Text("\(TodoCategoryItem(from: viewModel.state.category).localizedName)의 제목이나 내용을 검색해 보세요.")
239239
.foregroundStyle(Color.gray)
240240
.frame(maxWidth: .infinity)
241241
} else if viewModel.state.isLoading {

DevLog/UI/Home/TodoManageView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import SwiftUI
1010
struct TodoManageView: View {
1111
@State var viewModel: TodoManageViewModel
1212
@State private var tmpText = ""
13-
var onDismiss: (([TodoCategoryPreferenceItem]) -> Void)?
13+
var onDismiss: (([TodoCategoryItem]) -> Void)?
1414

1515
var body: some View {
1616
NavigationStack {

DevLog/UI/Profile/ProfileView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ struct ProfileView: View {
332332
Button {
333333
router.push(Path.activity(activity))
334334
} label: {
335-
let todoCategoryItem = TodoCategoryPreferenceItem(from: activity.todo.category)
335+
let todoCategoryItem = TodoCategoryItem(from: activity.todo.category)
336336
HStack(spacing: 8) {
337337
Image(systemName: todoCategoryItem.symbolName)
338338
.foregroundStyle(todoCategoryItem.color)

0 commit comments

Comments
 (0)