Skip to content

Commit bb4ea77

Browse files
committed
[#477] PaperListView 폴더 선택 시 상단바 추가
1 parent 1b68bc6 commit bb4ea77

File tree

2 files changed

+84
-52
lines changed

2 files changed

+84
-52
lines changed

Presentation/Home/Paper/PaperListView.swift

+81-43
Original file line numberDiff line numberDiff line change
@@ -35,59 +35,97 @@ struct PaperListView: View {
3535
var body: some View {
3636
GeometryReader { geometry in
3737
ZStack {
38-
HStack(spacing: 0) {
39-
if homeViewModel.filteredLists.isEmpty {
40-
Spacer()
41-
42-
VStack(spacing: 0) {
38+
VStack(spacing: 0) {
39+
if let currentFolder = homeViewModel.currentFolder {
40+
HStack(spacing: 0) {
41+
if currentFolder.parentFolderID != nil {
42+
Button(action: {
43+
homeViewModel.navigateToParent()
44+
}) {
45+
Image(systemName: "chevron.left")
46+
.font(.system(size: 18))
47+
.foregroundStyle(.primary1)
48+
}
49+
.padding(.leading, 20)
50+
}
51+
4352
Spacer()
4453

45-
Image(.homePlaceholder)
46-
.resizable()
47-
.scaledToFit()
48-
.frame(height: 146)
49-
.padding(.bottom, 11)
50-
Text(emptyStateMessage())
51-
.reazyFont(.h5)
52-
.foregroundStyle(.gray550)
53-
.padding(.bottom, 80)
54+
Text(currentFolder.title)
55+
.reazyFont(.h2)
56+
.foregroundStyle(.primary1)
57+
.frame(maxWidth: 734)
5458

5559
Spacer()
60+
61+
if currentFolder.parentFolderID != nil {
62+
Rectangle()
63+
.frame(width: 14, height: 34)
64+
.foregroundStyle(.clear)
65+
.padding(.trailing, 20)
66+
}
5667
}
68+
.frame(height: 52)
5769

58-
Spacer()
59-
} else {
60-
ScrollView {
70+
Rectangle()
71+
.frame(height: 1)
72+
.foregroundStyle(.primary3)
73+
}
74+
75+
HStack(spacing: 0) {
76+
if homeViewModel.filteredLists.isEmpty {
77+
Spacer()
78+
6179
VStack(spacing: 0) {
62-
Spacer().frame(height: 6)
80+
Spacer()
81+
82+
Image(.homePlaceholder)
83+
.resizable()
84+
.scaledToFit()
85+
.frame(height: 146)
86+
.padding(.bottom, 11)
87+
Text(emptyStateMessage())
88+
.reazyFont(.h5)
89+
.foregroundStyle(.gray550)
90+
.padding(.bottom, 80)
6391

64-
ForEach(homeViewModel.filteredLists, id: \.self) { paperInfo in
65-
// MARK: searchview 들어갈 위치
66-
HomePDFCell(
67-
paperInfo: paperInfo,
68-
onTapGesture: {
69-
navigateToPaper(paperInfo.id)
70-
homeViewModel.updateLastModifiedDate(at: paperInfo.id, lastModifiedDate: Date())
71-
},
72-
starAction: {
73-
homeViewModel.updatePaperFavorite(at: paperInfo.id, isFavorite: !paperInfo.isFavorite)
74-
},
75-
tagAction: { _ in },
76-
editAction: {
77-
homeViewModel.editButtonTapped(paperInfo)
78-
},
79-
copyAction: { homeViewModel.duplicatePDF(at: paperInfo.id )},
80-
deleteAction: {
81-
selectedPaper = paperInfo
82-
deleteAlertPresented.toggle()
83-
}
84-
)
92+
Spacer()
93+
}
94+
95+
Spacer()
96+
} else {
97+
ScrollView {
98+
VStack(spacing: 0) {
99+
Spacer().frame(height: 6)
85100

86-
Rectangle()
87-
.frame(height: 1)
88-
.foregroundStyle(.primary3)
101+
ForEach(homeViewModel.filteredLists, id: \.self) { paperInfo in
102+
// MARK: searchview 들어갈 위치
103+
HomePDFCell(
104+
paperInfo: paperInfo,
105+
onTapGesture: {
106+
navigateToPaper(paperInfo.id)
107+
homeViewModel.updateLastModifiedDate(at: paperInfo.id, lastModifiedDate: Date())
108+
},
109+
starAction: {
110+
homeViewModel.updatePaperFavorite(at: paperInfo.id, isFavorite: !paperInfo.isFavorite)
111+
},
112+
tagAction: { _ in },
113+
editAction: {
114+
homeViewModel.editButtonTapped(paperInfo)
115+
},
116+
copyAction: { homeViewModel.duplicatePDF(at: paperInfo.id )},
117+
deleteAction: {
118+
selectedPaper = paperInfo
119+
deleteAlertPresented.toggle()
120+
}
121+
)
122+
123+
Rectangle()
124+
.frame(height: 1)
125+
.foregroundStyle(.primary3)
126+
}
127+
.padding(.leading, 24)
89128
}
90-
.padding(.leading, 24)
91129
}
92130
}
93131
}

Presentation/Home/ViewModel/HomeViewModel.swift

+3-9
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ extension HomeViewModel {
321321
selectedFolderID = folderID
322322
currentFolder = folders.first { $0.id == folderID }
323323
}
324+
updateFilteredList()
324325
}
325326

326327
func updateFilteredList() {
@@ -386,16 +387,9 @@ extension HomeViewModel {
386387
public func navigateToParent() {
387388
if let parentID = currentFolder?.parentFolderID {
388389
currentFolder = folders.first { $0.id == parentID }
389-
} else {
390-
currentFolder = nil
391-
}
392-
}
393-
394-
public func navigateTo(folder: Folder) {
395-
if isFavoriteSelected {
396-
navigationStack.append((isFavoriteSelected: isFavoriteSelected, folder: currentFolder))
390+
selectedFolderID = parentID
397391
}
398-
currentFolder = folder
392+
updateFilteredList()
399393
}
400394

401395
// 탭 변경 시 최초 상태로 초기화

0 commit comments

Comments
 (0)