Skip to content

Commit 015718a

Browse files
Merge pull request #101 from componentskit/fix-sucard-tap
isolate `SUCard` tap handling from nested controls
2 parents b703cf5 + 00ac821 commit 015718a

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

Sources/ComponentsKit/Components/Card/SUCard.swift

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,19 @@ public struct SUCard<Content: View>: View {
5959
.shadow(self.model.shadow)
6060
.observeSize { self.contentSize = $0 }
6161
.contentShape(.rect)
62-
.gesture(
62+
.onTapGesture {
63+
guard self.model.isTappable else { return }
64+
self.onTap()
65+
}
66+
.simultaneousGesture(
6367
DragGesture(minimumDistance: 0.0)
6468
.onChanged { _ in
65-
guard self.model.isTappable else { return }
6669
self.isPressed = true
6770
}
68-
.onEnded { value in
69-
guard self.model.isTappable else { return }
70-
71-
defer { self.isPressed = false }
72-
73-
if CGRect(origin: .zero, size: self.contentSize)
74-
.contains(value.location) {
75-
self.onTap()
76-
}
77-
}
71+
.onEnded { _ in
72+
self.isPressed = false
73+
},
74+
isEnabled: self.model.isTappable
7875
)
7976
.scaleEffect(
8077
self.isPressed ? self.model.animationScale.value : 1,

0 commit comments

Comments
 (0)