Skip to content

Commit 6e5c49b

Browse files
committed
[fix] #183 정렬기능 수정
내부 필터 시트에서 작동하던 기능 외부로 이전
1 parent db18b46 commit 6e5c49b

File tree

2 files changed

+38
-42
lines changed

2 files changed

+38
-42
lines changed

Projects/Feature/FeatureCategoryDetail/Sources/CategoryDetailFeature.swift

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ public struct CategoryDetailFeature {
5757
var isCategorySheetPresented: Bool = false
5858
var isCategorySelectSheetPresented: Bool = false
5959
var isPokitDeleteSheetPresented: Bool = false
60-
var isFilterSheetPresented: Bool = false
6160
/// pagenation
6261
var hasNext: Bool {
6362
domain.contentList.hasNext
@@ -84,11 +83,13 @@ public struct CategoryDetailFeature {
8483
case dismiss
8584
case pagenation
8685

86+
/// 즐겨찾기 or 안읽음 버튼 눌렀을 때
87+
case 분류_버튼_눌렀을때(SortCollectType)
88+
case 정렬_버튼_눌렀을때
8789
case 공유_버튼_눌렀을때
8890
case 카테고리_케밥_버튼_눌렀을때
8991
case 카테고리_선택_버튼_눌렀을때
9092
case 카테고리_선택했을때(BaseCategoryItem)
91-
case 필터_버튼_눌렀을때
9293
case 뷰가_나타났을때
9394
case 링크_추가_버튼_눌렀을때
9495
}
@@ -114,7 +115,6 @@ public struct CategoryDetailFeature {
114115
public enum ScopeAction {
115116
case categoryBottomSheet(PokitBottomSheet.Delegate)
116117
case categoryDeleteBottomSheet(PokitDeleteBottomSheet.Delegate)
117-
case filterBottomSheet(CategoryFilterSheet.Delegate)
118118
case contents(IdentifiedActionOf<ContentCardFeature>)
119119
}
120120

@@ -178,6 +178,31 @@ private extension CategoryDetailFeature {
178178
case .binding:
179179
return .none
180180

181+
case .정렬_버튼_눌렀을때:
182+
state.sortType = state.sortType == .최신순
183+
? .오래된순
184+
: .최신순
185+
186+
state.domain.pageable.sort = [
187+
state.sortType == .최신순 ? "createdAt,desc" : "createdAt,asc"
188+
]
189+
190+
return .concatenate(
191+
.send(.inner(.pagenation_초기화), animation: .pokitDissolve),
192+
.send(.async(.카테고리_내_컨텐츠_목록_조회_API))
193+
)
194+
195+
case let .분류_버튼_눌렀을때(type):
196+
if type == .즐겨찾기 {
197+
state.domain.condition.isFavoriteFlitered.toggle()
198+
} else {
199+
state.domain.condition.isUnreadFlitered.toggle()
200+
}
201+
return .concatenate(
202+
.send(.inner(.pagenation_초기화), animation: .pokitDissolve),
203+
.send(.async(.카테고리_내_컨텐츠_목록_조회_API))
204+
)
205+
181206
case .공유_버튼_눌렀을때:
182207
kakaoShareClient.카테고리_카카오톡_공유(
183208
CategoryKaKaoShareModel(
@@ -206,10 +231,6 @@ private extension CategoryDetailFeature {
206231
await send(.inner(.카테고리_선택_시트_활성화(false)))
207232
}
208233

209-
case .필터_버튼_눌렀을때:
210-
state.isFilterSheetPresented.toggle()
211-
return .none
212-
213234
case .dismiss:
214235
return .run { _ in await dismiss() }
215236

@@ -365,8 +386,6 @@ private extension CategoryDetailFeature {
365386
/// - 카테고리에 대한 `공유` / `수정` / `삭제` Delegate
366387
case .categoryBottomSheet(let delegateAction):
367388
switch delegateAction {
368-
case .shareCellButtonTapped:
369-
return .none
370389
case .editCellButtonTapped:
371390
return .run { [category = state.category] send in
372391
await send(.inner(.카테고리_시트_활성화(false)))
@@ -394,25 +413,6 @@ private extension CategoryDetailFeature {
394413
try await categoryClient.카테고리_삭제(categoryId)
395414
}
396415
}
397-
/// - 필터 버튼을 눌렀을 때
398-
case .filterBottomSheet(let delegateAction):
399-
switch delegateAction {
400-
case .dismiss:
401-
state.isFilterSheetPresented.toggle()
402-
return .none
403-
case let .확인_버튼_눌렀을때(type, bookMarkSelected, unReadSelected):
404-
state.isFilterSheetPresented.toggle()
405-
state.domain.pageable.sort = [
406-
type == .최신순 ? "createdAt,desc" : "createdAt,asc"
407-
]
408-
state.sortType = type
409-
state.domain.condition.isFavoriteFlitered = bookMarkSelected
410-
state.domain.condition.isUnreadFlitered = unReadSelected
411-
return .concatenate(
412-
.send(.inner(.pagenation_초기화), animation: .pokitDissolve),
413-
.send(.async(.카테고리_내_컨텐츠_목록_조회_API))
414-
)
415-
}
416416

417417
case let .contents(.element(id: _, action: .delegate(.컨텐츠_항목_케밥_버튼_눌렀을때(content)))):
418418
return .send(.delegate(.contentItemTapped(content)))

Projects/Feature/FeatureCategoryDetail/Sources/CategoryDetailView.swift

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,6 @@ public extension CategoryDetailView {
6464
delegateSend: { store.send(.scope(.categoryDeleteBottomSheet($0))) }
6565
)
6666
}
67-
.sheet(isPresented: $store.isFilterSheetPresented) {
68-
CategoryFilterSheet(
69-
sortType: $store.sortType,
70-
isBookMarkSelected: store.isFavoriteFiltered,
71-
isUnreadSeleected: store.isUnreadFiltered,
72-
delegateSend: { store.send(.scope(.filterBottomSheet($0))) }
73-
)
74-
}
7567
.task { await send(.뷰가_나타났을때).finish() }
7668
}
7769
}
@@ -172,24 +164,28 @@ private extension CategoryDetailView {
172164
HStack(spacing: 8) {
173165
PokitTextButton(
174166
"즐겨찾기",
175-
state: .filled(.primary),
167+
state: store.isFavoriteFiltered
168+
? .filled(.primary)
169+
: .default(.secondary),
176170
size: .small,
177171
shape: .round,
178-
action: {}
172+
action: { send(.분류_버튼_눌렀을때(.즐겨찾기)) }
179173
)
180174
PokitTextButton(
181175
"안읽음",
182-
state: .filled(.primary),
176+
state: store.isUnreadFiltered
177+
? .filled(.primary)
178+
: .default(.secondary),
183179
size: .small,
184180
shape: .round,
185-
action: {}
181+
action: { send(.분류_버튼_눌렀을때(.안읽음)) }
186182
)
187183

188184
Spacer()
189185
PokitIconLTextLink(
190-
"최신순",
186+
store.sortType.title,
191187
icon: .icon(.align),
192-
action: {}
188+
action: { send(.정렬_버튼_눌렀을때) }
193189
)
194190
.contentTransition(.numericText())
195191
}

0 commit comments

Comments
 (0)