Skip to content

Commit 56850ea

Browse files
committed
[fix] #203 키워드 선택 바텀시트와 선택한 키워드의 가나다 순 정렬 추가, 키워드 선택 바텀시트에서 선택된 키워드 누락 문제 수정
1 parent d1ce305 commit 56850ea

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

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

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ private extension RecommendFeature {
168168
case .onAppear:
169169
return .merge(
170170
shared(.async(.추천_조회_API), state: &state),
171-
shared(.async(.유저_관심사_조회_API), state: &state)
171+
shared(.async(.관심사_조회_API), state: &state)
172172
)
173173
case .pagination:
174174
return shared(.async(.추천_조회_페이징_API), state: &state)
@@ -215,7 +215,8 @@ private extension RecommendFeature {
215215
guard let url = URL(string: urlString) else { return .none }
216216
return .run { _ in await openURL(url) }
217217
case .관심사_편집_버튼_눌렀을때:
218-
return shared(.async(.관심사_조회_API), state: &state)
218+
state.showKeywordSheet = true
219+
return .none
219220
case let .키워드_선택_버튼_눌렀을때(interests):
220221
state.showKeywordSheet = false
221222
state.selectedInterest = nil
@@ -255,14 +256,18 @@ private extension RecommendFeature {
255256
state.isLoading = false
256257
return .none
257258
case let .유저_관심사_조회_API_반영(interests):
258-
state.domain.myInterests = interests
259-
interests.forEach { state.selectedInterestList.insert($0) }
259+
state.domain.myInterests = interests.filter { interest in
260+
state.interests.contains(interest)
261+
}
262+
interests.forEach {
263+
guard state.interests.contains($0) else { return }
264+
state.selectedInterestList.insert($0)
265+
}
260266
return .none
261267
case let .관심사_조회_API_반영(interests):
262268
state.domain.interests = interests.filter({ interest in
263269
interest.code != "default"
264270
})
265-
state.showKeywordSheet = true
266271
return .none
267272
case let .컨텐츠_신고_API_반영(contentId):
268273
state.domain.contentList.data?.removeAll(where: { $0.id == contentId })
@@ -319,13 +324,20 @@ private extension RecommendFeature {
319324
return contentListFetch(state: &state)
320325
case .유저_관심사_조회_API:
321326
return .run { send in
322-
let interests = try await userClient.유저_관심사_목록_조회().map { $0.toDomian() }
327+
let interests = try await userClient.유저_관심사_목록_조회()
328+
.map { $0.toDomian() }
329+
.sorted { $0.description < $1.description }
330+
323331
await send(.inner(.유저_관심사_조회_API_반영(interests)))
324332
}
325333
case .관심사_조회_API:
326334
return .run { send in
327-
let interests = try await userClient.관심사_목록_조회().map { $0.toDomian() }
335+
let interests = try await userClient.관심사_목록_조회()
336+
.map { $0.toDomian() }
337+
.sorted { $0.description < $1.description }
338+
328339
await send(.inner(.관심사_조회_API_반영(interests)))
340+
await send(.async(.유저_관심사_조회_API))
329341
}
330342
case let .컨텐츠_신고_API(contentId):
331343
return .run { send in

0 commit comments

Comments
 (0)