@@ -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