mirror of
https://github.com/yattee/yattee.git
synced 2026-02-20 01:39:46 +00:00
Yattee v2 rewrite
This commit is contained in:
35
Yattee/Views/Components/SwipeAction.swift
Normal file
35
Yattee/Views/Components/SwipeAction.swift
Normal file
@@ -0,0 +1,35 @@
|
||||
//
|
||||
// SwipeAction.swift
|
||||
// Yattee
|
||||
//
|
||||
// Custom swipe actions for list views (similar to Mail swipe actions).
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
/// Model representing a single swipe action button.
|
||||
struct SwipeAction: Identifiable {
|
||||
var id = UUID().uuidString
|
||||
var symbolImage: String
|
||||
var tint: Color
|
||||
var background: Color
|
||||
var font: Font = .title3
|
||||
var size: CGSize = CGSize(width: 45, height: 45)
|
||||
var action: (_ reset: @escaping () -> Void) -> Void
|
||||
}
|
||||
|
||||
/// Result builder for declarative swipe action definitions.
|
||||
@resultBuilder
|
||||
struct SwipeActionBuilder {
|
||||
static func buildBlock(_ components: SwipeAction...) -> [SwipeAction] {
|
||||
components
|
||||
}
|
||||
}
|
||||
|
||||
/// Configuration for swipe action layout and behavior.
|
||||
struct SwipeActionConfig {
|
||||
var leadingPadding: CGFloat = 0
|
||||
var trailingPadding: CGFloat = 10
|
||||
var spacing: CGFloat = 10
|
||||
var occupiesFullWidth: Bool = false
|
||||
}
|
||||
Reference in New Issue
Block a user