Skip to content

Commit c739660

Browse files
committed
[#12] 중요 탭 기능 구현하기
1 parent 018a954 commit c739660

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

Todo/View/Favorite/FavoriteView.swift

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,64 @@
88
import SwiftUI
99

1010
struct FavoriteView: View {
11+
@Environment(TaskManager.self) var taskManager
12+
@State private var isShowDoneTask: Bool = true
1113

14+
var tasks: [TaskModel] { taskManager.tasks.filter { $0.isFavorite && $0.isDone == false} }
15+
var doneTasks: [TaskModel] {taskManager.tasks.filter { $0.isFavorite && $0.isDone == true } }
16+
17+
var isShowDoneTaskButtonTitle: String {
18+
isShowDoneTask ? "완료 숨기기" : "완료 보기"
19+
}
1220

1321
var body: some View {
22+
@Bindable var taskManager = taskManager
23+
1424
NavigationStack {
1525
List {
26+
Section {
27+
if tasks.isEmpty {
28+
TaskEmptyView()
29+
} else {
30+
ForEach(tasks) {
31+
TaskListItemView(task: $0)
32+
.swipeActions {
33+
Button("삭제") {
34+
35+
}.tint(Color.Todo.red)
36+
}
37+
}
38+
}
39+
40+
} header: {
41+
Text("하는 중")
42+
}
1643

44+
if isShowDoneTask {
45+
Section {
46+
ForEach(doneTasks) {
47+
TaskListItemView(task: $0)
48+
.swipeActions {
49+
Button("삭제") {
50+
51+
}.tint(Color.Todo.red)
52+
}
53+
}
54+
} header: {
55+
Text("완료")
56+
}
57+
}
1758
}
59+
.buttonStyle(.borderless) // 리스트에서 아이템을 탭했을때 모든 버튼들이 이벤트를 동시에 받는 것을 방지
1860
.toolbar {
1961
ToolbarItem(placement: .topBarLeading) {
2062
Text("Star")
2163
.font(.Todo.title)
2264
.foregroundStyle(Color.Todo.black)
2365
}
2466
ToolbarItem(placement: .topBarTrailing) {
25-
Button("완료 숨기기") {
26-
67+
Button(isShowDoneTaskButtonTitle) {
68+
isShowDoneTask.toggle()
2769
}
2870
}
2971
}

Todo/View/Main/MainView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct MainView: View {
1414
var tasks: [TaskModel] { taskManager.tasks.filter { $0.isDone == false } }
1515
var doneTasks: [TaskModel] {taskManager.tasks.filter { $0.isDone == true } }
1616

17-
var isShowDontTaskButtonTitle: String {
17+
var isShowDoneTaskButtonTitle: String {
1818
isShowDoneTask ? "완료 숨기기" : "완료 보기"
1919
}
2020

@@ -64,7 +64,7 @@ struct MainView: View {
6464
.foregroundStyle(Color.Todo.black)
6565
}
6666
ToolbarItem(placement: .topBarTrailing) {
67-
Button(isShowDontTaskButtonTitle) {
67+
Button(isShowDoneTaskButtonTitle) {
6868
isShowDoneTask.toggle()
6969
}
7070
}

Todo/View/Main/TaskListItemView.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ struct DoneButton: View {
3737

3838
var body: some View {
3939
Button {
40-
print("done button")
4140
isDone.toggle()
4241
} label: {
4342
Image(isDone ? "ic_notyet_fill" : "ic_notyet")
@@ -52,7 +51,6 @@ struct FavoriteButton: View {
5251

5352
var body: some View {
5453
Button {
55-
print("favorite button")
5654
isFavorite.toggle()
5755
} label: {
5856
Image(isFavorite ? "ic_tap_star_fill" : "ic_tap_star")

0 commit comments

Comments
 (0)