Skip to content

Commit aa6c3cd

Browse files
committed
[feat] #187 신고하기 경고 시트 추가
1 parent 78684f5 commit aa6c3cd

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

Projects/App/Sources/MainTab/MainTabPath.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ public extension MainTabFeature {
8686
category: category
8787
)))
8888
return .none
89+
90+
case .recommend(.delegate(.컨텐츠_신고_API_반영)):
91+
return .send(.inner(.링크팝업_활성화(.report(title: "신고가 완료되었습니다"))))
8992

9093
/// - 포킷 `추가` 버튼 눌렀을 때
9194
case .delegate(.포킷추가하기),

Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendFeature.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public struct RecommendFeature {
4949
var interests: [BaseInterest] { domain.interests }
5050
var showKeywordSheet: Bool = false
5151
var selectedInterestList = Set<BaseInterest>()
52-
var linkPopup: PokitLinkPopup.PopupType?
52+
var reportContent: BaseContentItem?
5353
}
5454

5555
/// - Action
@@ -71,6 +71,7 @@ public struct RecommendFeature {
7171
case 추가하기_버튼_눌렀을때(BaseContentItem)
7272
case 공유하기_버튼_눌렀을때(BaseContentItem)
7373
case 신고하기_버튼_눌렀을때(BaseContentItem)
74+
case 신고하기_확인_버튼_눌렀을때(BaseContentItem)
7475
case 전체보기_버튼_눌렀을때(ScrollViewProxy)
7576
case 관심사_버튼_눌렀을때(BaseInterest, ScrollViewProxy)
7677
case 관심사_편집_버튼_눌렀을때
@@ -79,6 +80,7 @@ public struct RecommendFeature {
7980
case 검색_버튼_눌렀을때
8081
case 알림_버튼_눌렀을때
8182
case 추천_컨텐츠_눌렀을때(String)
83+
case 경고시트_dismiss
8284
}
8385

8486
public enum InnerAction: Equatable {
@@ -103,6 +105,7 @@ public struct RecommendFeature {
103105
case 추가하기_버튼_눌렀을때(Int)
104106
case 검색_버튼_눌렀을때
105107
case 알림_버튼_눌렀을때
108+
case 컨텐츠_신고_API_반영
106109
}
107110
}
108111

@@ -159,8 +162,12 @@ private extension RecommendFeature {
159162
case let .공유하기_버튼_눌렀을때(content):
160163
state.shareContent = content
161164
return .none
162-
case let .신고하기_버튼_눌렀을때(content):
165+
case let .신고하기_확인_버튼_눌렀을때(content):
166+
state.reportContent = nil
163167
return shared(.async(.컨텐츠_신고_API(content.id)), state: &state)
168+
case let .신고하기_버튼_눌렀을때(content):
169+
state.reportContent = content
170+
return .none
164171
case let .전체보기_버튼_눌렀을때(proxy):
165172
guard state.selectedInterest != nil else { return .none }
166173

@@ -204,6 +211,9 @@ private extension RecommendFeature {
204211
await send(.async(.유저_관심사_조회_API))
205212
await send(.async(.추천_조회_API))
206213
}
214+
case .경고시트_dismiss:
215+
state.reportContent = nil
216+
return .none
207217
}
208218
}
209219

@@ -233,9 +243,8 @@ private extension RecommendFeature {
233243
state.showKeywordSheet = true
234244
return .none
235245
case let .컨텐츠_신고_API_반영(contentId):
236-
state.linkPopup = .report(title: "신고가 완료되었습니다")
237246
state.domain.contentList.data?.removeAll(where: { $0.id == contentId })
238-
return .none
247+
return .send(.delegate(.컨텐츠_신고_API_반영))
239248
}
240249
}
241250

Projects/Feature/FeatureRecommend/Sources/Recommend/RecommendView.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ public extension RecommendView {
3232
list
3333
}
3434
.ignoresSafeArea(edges: .bottom)
35-
.overlay(if: store.linkPopup != nil, alignment: .bottom) {
36-
PokitLinkPopup(type: $store.linkPopup)
37-
}
3835
.sheet(item: $store.shareContent) { content in
3936
if let shareURL = URL(string: content.data) {
4037
PokitShareSheet(
@@ -52,6 +49,15 @@ public extension RecommendView {
5249
action: { send(.키워드_선택_버튼_눌렀을때) }
5350
)
5451
}
52+
.sheet(item: $store.reportContent) { content in
53+
PokitAlert(
54+
"링크를 신고하시겠습니까?",
55+
message: "명확한 사유가 있는 경우 신고해주시기 바랍니다. \nex)음란성/선정성 이미지, 영상, 텍스트 등의 콘텐츠\n욕설, 비속어, 모욕, 저속한 단어 등",
56+
confirmText: "확인",
57+
action: { send(.신고하기_확인_버튼_눌렀을때(content)) },
58+
cancelAction: { send(.경고시트_dismiss) }
59+
)
60+
}
5561
}
5662
}
5763
}

0 commit comments

Comments
 (0)