From aa6c3cd2b493051165342effeacb0cd7d2263751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=84=ED=98=95?= Date: Sat, 1 Mar 2025 19:47:18 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20#187=20=EC=8B=A0=EA=B3=A0=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=EA=B2=BD=EA=B3=A0=20=EC=8B=9C=ED=8A=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/App/Sources/MainTab/MainTabPath.swift | 3 +++ .../Sources/Recommend/RecommendFeature.swift | 17 +++++++++++++---- .../Sources/Recommend/RecommendView.swift | 12 +++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Projects/App/Sources/MainTab/MainTabPath.swift b/Projects/App/Sources/MainTab/MainTabPath.swift index 31547516..67fa8fdb 100644 --- a/Projects/App/Sources/MainTab/MainTabPath.swift +++ b/Projects/App/Sources/MainTab/MainTabPath.swift @@ -86,6 +86,9 @@ public extension MainTabFeature { category: category ))) return .none + + case .recommend(.delegate(.컨텐츠_신고_API_반영)): + return .send(.inner(.링크팝업_활성화(.report(title: "신고가 완료되었습니다")))) /// - 포킷 `추가` 버튼 눌렀을 때 case .delegate(.포킷추가하기), diff --git a/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendFeature.swift b/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendFeature.swift index 6202072d..5ed6ddb7 100644 --- a/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendFeature.swift +++ b/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendFeature.swift @@ -49,7 +49,7 @@ public struct RecommendFeature { var interests: [BaseInterest] { domain.interests } var showKeywordSheet: Bool = false var selectedInterestList = Set() - var linkPopup: PokitLinkPopup.PopupType? + var reportContent: BaseContentItem? } /// - Action @@ -71,6 +71,7 @@ public struct RecommendFeature { case 추가하기_버튼_눌렀을때(BaseContentItem) case 공유하기_버튼_눌렀을때(BaseContentItem) case 신고하기_버튼_눌렀을때(BaseContentItem) + case 신고하기_확인_버튼_눌렀을때(BaseContentItem) case 전체보기_버튼_눌렀을때(ScrollViewProxy) case 관심사_버튼_눌렀을때(BaseInterest, ScrollViewProxy) case 관심사_편집_버튼_눌렀을때 @@ -79,6 +80,7 @@ public struct RecommendFeature { case 검색_버튼_눌렀을때 case 알림_버튼_눌렀을때 case 추천_컨텐츠_눌렀을때(String) + case 경고시트_dismiss } public enum InnerAction: Equatable { @@ -103,6 +105,7 @@ public struct RecommendFeature { case 추가하기_버튼_눌렀을때(Int) case 검색_버튼_눌렀을때 case 알림_버튼_눌렀을때 + case 컨텐츠_신고_API_반영 } } @@ -159,8 +162,12 @@ private extension RecommendFeature { case let .공유하기_버튼_눌렀을때(content): state.shareContent = content return .none - case let .신고하기_버튼_눌렀을때(content): + case let .신고하기_확인_버튼_눌렀을때(content): + state.reportContent = nil return shared(.async(.컨텐츠_신고_API(content.id)), state: &state) + case let .신고하기_버튼_눌렀을때(content): + state.reportContent = content + return .none case let .전체보기_버튼_눌렀을때(proxy): guard state.selectedInterest != nil else { return .none } @@ -204,6 +211,9 @@ private extension RecommendFeature { await send(.async(.유저_관심사_조회_API)) await send(.async(.추천_조회_API)) } + case .경고시트_dismiss: + state.reportContent = nil + return .none } } @@ -233,9 +243,8 @@ private extension RecommendFeature { state.showKeywordSheet = true return .none case let .컨텐츠_신고_API_반영(contentId): - state.linkPopup = .report(title: "신고가 완료되었습니다") state.domain.contentList.data?.removeAll(where: { $0.id == contentId }) - return .none + return .send(.delegate(.컨텐츠_신고_API_반영)) } } diff --git a/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendView.swift b/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendView.swift index 7a7e3b25..93358f64 100644 --- a/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendView.swift +++ b/Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendView.swift @@ -32,9 +32,6 @@ public extension RecommendView { list } .ignoresSafeArea(edges: .bottom) - .overlay(if: store.linkPopup != nil, alignment: .bottom) { - PokitLinkPopup(type: $store.linkPopup) - } .sheet(item: $store.shareContent) { content in if let shareURL = URL(string: content.data) { PokitShareSheet( @@ -52,6 +49,15 @@ public extension RecommendView { action: { send(.키워드_선택_버튼_눌렀을때) } ) } + .sheet(item: $store.reportContent) { content in + PokitAlert( + "링크를 신고하시겠습니까?", + message: "명확한 사유가 있는 경우 신고해주시기 바랍니다. \nex)음란성/선정성 이미지, 영상, 텍스트 등의 콘텐츠\n욕설, 비속어, 모욕, 저속한 단어 등", + confirmText: "확인", + action: { send(.신고하기_확인_버튼_눌렀을때(content)) }, + cancelAction: { send(.경고시트_dismiss) } + ) + } } } }