Skip to content

Commit a8d6b92

Browse files
committed
fix: 키워드 멀티 터치 방지 [#199]
- isTouchActive: touch상태를 확인할 Flag simultaneousGesture를 통해 dragGesture를 확인하여 한 상태를 변경중일 때 추가/삭제가 불가능하게 막아버림 결과: 다중 드래그 시 이벤트 성립 불가능 / 단일만 가능케 수정하였음
1 parent 6370dee commit a8d6b92

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ struct RecommendKeywordBottomSheet: View {
1616
private var selectedInterests: Set<BaseInterest>
1717
@State
1818
private var height: CGFloat = 0
19+
@State
20+
private var isTouchActive: Bool = false
1921

2022
private let interests: [BaseInterest]
2123
private let onSave: ((Set<BaseInterest>) -> Void)?
@@ -113,15 +115,24 @@ extension RecommendKeywordBottomSheet {
113115
: isMaxCount ? .disable : .default(.primary),
114116
size: .medium
115117
) {
118+
guard !isTouchActive else { return }
119+
116120
if isSelected {
117121
selectedInterests.remove(field)
118122
} else {
119-
selectedInterests.insert(field)
123+
if selectedInterests.count < 3 {
124+
selectedInterests.insert(field)
125+
}
120126
}
121127
}
122128
}
123129
.animation(.pokitDissolve, value: selectedInterests)
124130
}
131+
.simultaneousGesture(
132+
DragGesture(minimumDistance: 0)
133+
.onChanged { _ in isTouchActive = true }
134+
.onEnded { _ in isTouchActive = false }
135+
)
125136
}
126137
}
127138

0 commit comments

Comments
 (0)