add native examples
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import SwiftUI
|
||||
|
||||
struct PriorityPicker: View {
|
||||
@Binding var selectedPriority: Priority
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
Text("Priority")
|
||||
.font(.subheadline)
|
||||
.fontWeight(.semibold)
|
||||
|
||||
HStack(spacing: 8) {
|
||||
ForEach(Priority.allCases) { priority in
|
||||
let isSelected = selectedPriority == priority
|
||||
|
||||
Button {
|
||||
selectedPriority = priority
|
||||
} label: {
|
||||
HStack(spacing: 6) {
|
||||
Circle()
|
||||
.fill(colorForPriority(priority))
|
||||
.frame(width: 10, height: 10)
|
||||
Text(priority.displayName)
|
||||
.font(.subheadline)
|
||||
}
|
||||
.frame(maxWidth: .infinity)
|
||||
.padding(.vertical, 10)
|
||||
.background(
|
||||
RoundedRectangle(cornerRadius: 8)
|
||||
.fill(isSelected ? colorForPriority(priority).opacity(0.15) : Color(.systemGray6))
|
||||
)
|
||||
.overlay(
|
||||
RoundedRectangle(cornerRadius: 8)
|
||||
.stroke(isSelected ? colorForPriority(priority) : Color.clear, lineWidth: 2)
|
||||
)
|
||||
.foregroundStyle(isSelected ? colorForPriority(priority) : .primary)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func colorForPriority(_ priority: Priority) -> Color {
|
||||
switch priority {
|
||||
case .low: return .green
|
||||
case .medium: return .orange
|
||||
case .high: return .red
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user