Skip to content

Commit ecade60

Browse files
committed
feat: 🎸 [JIRA:HCPSDKFIORIUIKIT-2729] Update button visible and touch area height
1 parent 2a533e0 commit ecade60

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

Diff for: ‎Sources/FioriSwiftUICore/FioriButton/FioriButton.swift

+11-6
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public struct FioriButton: View {
6262
let image: (UIControl.State) -> any View
6363
let imagePosition: FioriButtonImagePosition
6464
let imageTitleSpacing: CGFloat
65-
private let touchAreaInset: CGFloat = 50
65+
private let touchAreaInset: CGFloat = 3
6666

6767
@Environment(\.isEnabled) private var isEnabled
6868
@Environment(\.fioriButtonStyle) private var fioriButtonStyle
@@ -164,17 +164,20 @@ public struct FioriButton: View {
164164
})
165165
} else {
166166
Button {
167-
self.action?(.normal)
167+
//
168168
} label: {
169169
EmptyView()
170170
}
171-
.buttonStyle(_ButtonStyleImpl(fioriButtonStyle: self.fioriButtonStyle, label: self.label, image: self.image, imagePosition: self.imagePosition, imageTitleSpacing: self.imageTitleSpacing, isEnabled: self.isEnabled))
171+
.buttonStyle(_ButtonStyleImpl(fioriButtonStyle: self.fioriButtonStyle, label: self.label, image: self.image, imagePosition: self.imagePosition, imageTitleSpacing: self.imageTitleSpacing, isEnabled: self.isEnabled, state: self.state))
172+
.overlay(GeometryReader { proxy in
173+
Color.clear.contentShape(Rectangle()).gesture(self.createGesture(proxy.size))
174+
})
172175
}
173176
}
174177
}
175178

176179
func createGesture(_ size: CGSize) -> some Gesture {
177-
let touchArea = CGRect(origin: .zero, size: size).insetBy(dx: -self.touchAreaInset, dy: -self.touchAreaInset)
180+
let touchArea = CGRect(origin: .zero, size: size).insetBy(dx: 0, dy: -self.touchAreaInset)
178181
var isCancelled = false
179182

180183
return DragGesture(minimumDistance: 0)
@@ -185,6 +188,9 @@ public struct FioriButton: View {
185188

186189
if !touchArea.contains(value.location) {
187190
isCancelled = true
191+
} else if !self.isSelectionPersistent {
192+
self._state = self.state == .normal ? .selected : .normal
193+
self.action?(self.state)
188194
}
189195
}
190196
.onEnded { _ in
@@ -233,10 +239,9 @@ private struct _ButtonStyleImpl: ButtonStyle {
233239
let imagePosition: FioriButtonImagePosition
234240
let imageTitleSpacing: CGFloat
235241
let isEnabled: Bool
242+
let state: UIControl.State
236243

237244
func makeBody(configuration: Configuration) -> some View {
238-
let state: UIControl.State = self.isEnabled ? (configuration.isPressed ? .highlighted : .normal) : .disabled
239-
240245
let config = FioriButtonStyleConfiguration(state: state, _label: { state in
241246
let v = self.label(state)
242247
return FioriButtonStyleConfiguration.Label(v)

Diff for: ‎Sources/FioriSwiftUICore/FioriButton/FioriButtonStyleProvider.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ extension View {
198198
.foregroundColor(config.foregroundColor)
199199
.tint(config.foregroundColor)
200200
.padding(config.padding)
201-
.frame(minWidth: 44, maxWidth: config.maxWidth, minHeight: 44)
201+
.frame(minWidth: 44, maxWidth: config.maxWidth, minHeight: 38)
202202
.background(RoundedRectangle(cornerRadius: 8).fill(config.backgroundColor))
203203
.contentShape(Rectangle())
204204
}

0 commit comments

Comments
 (0)