Skip to content

Commit f5a9630

Browse files
committed
[refactor] #173 링크 편집 개선
1 parent 1a47fa7 commit f5a9630

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

Projects/Feature/FeaturePokit/Sources/PokitLinkEditFeature.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public struct PokitLinkEditFeature {
8585
}
8686

8787
public enum DelegateAction: Equatable {
88-
case 링크_편집_종료
88+
case 링크_편집_종료(items: [BaseContentItem])
8989
}
9090
}
9191

@@ -135,7 +135,8 @@ private extension PokitLinkEditFeature {
135135
return .none
136136

137137
case .dismiss:
138-
return .run { _ in await dismiss() }
138+
return .send(.delegate(.링크_편집_종료(items: state.list.elements)))
139+
// return .run { _ in await dismiss() }
139140

140141
case .뷰가_나타났을때:
141142
return fetchCateogryList()
@@ -223,7 +224,7 @@ private extension PokitLinkEditFeature {
223224
state.selectedItems.removeAll()
224225

225226
if state.list.isEmpty {
226-
return .send(.delegate(.링크_편집_종료))
227+
return .send(.delegate(.링크_편집_종료(items: [])))
227228
}
228229
return .none
229230
}

Projects/Feature/FeaturePokit/Sources/PokitRootFeature.swift

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
//
55
// Created by 김민호 on 7/16/24.
66

7+
import Foundation
8+
79
import ComposableArchitecture
810
import FeatureContentCard
911
import Domain
@@ -518,14 +520,26 @@ private extension PokitRootFeature {
518520
case .contents:
519521
return .none
520522

521-
case .linkEdit(.presented(.delegate(.링크_편집_종료))):
522-
state.contents.removeAll()
523+
case let .linkEdit(.presented(.delegate(.링크_편집_종료(list)))):
524+
/// 링크가 비어있을때는 전부 삭제
525+
if list.isEmpty {
526+
state.contents.removeAll()
527+
} else {
528+
/// 링크가 일부 있을 때 -> 그 일부를 붙여넣기
529+
var linkIds = IdentifiedArrayOf<ContentCardFeature.State>()
530+
list.forEach { item in
531+
state.contents.forEach { content in
532+
if item.id == content.content.id {
533+
linkIds.append(content)
534+
}
535+
}
536+
}
537+
state.contents.removeAll()
538+
state.contents = linkIds
539+
}
523540
state.linkEdit = nil
524541
return .none
525542

526-
case .linkEdit(.dismiss):
527-
return .send(.view(.뷰가_나타났을때))
528-
529543
case .linkEdit:
530544
return .none
531545

0 commit comments

Comments
 (0)