@@ -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) ) )
0 commit comments