Skip to content

Instantly share code, notes, and snippets.

@lanserxt
Created April 24, 2023 07:05
Show Gist options
  • Save lanserxt/28dc7664436ffd07e5dc09665557c1d3 to your computer and use it in GitHub Desktop.
Save lanserxt/28dc7664436ffd07e5dc09665557c1d3 to your computer and use it in GitHub Desktop.
SwiftUI Button with events logging
import SwiftUI
struct LoggableButton<Label> : View where Label : View {
let eventName: String
let action: () -> Void
let label: () -> Label
var body: some View {
Button {
//Handel event log
action()
} label: {
label()
}
}
}
struct LoggableButton_Previews: PreviewProvider {
static var previews: some View {
LoggableButton (eventName: "tap_action", action: {
print("tap")
}, label: {
ZStack {
Rectangle().foregroundColor(.brown)
Text("Tap me")
}
}).frame(height: 44.0)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment