Files
Thijooree-iOS/Thijooree iOS/Views/Shared/NumpadView.swift
T

59 lines
1.5 KiB
Swift

import SwiftUI
struct NumpadView: View {
let onKey: (String) -> Void
private let rows: [[String]] = [
["1", "2", "3"],
["4", "5", "6"],
["7", "8", "9"],
["⌫", "0", "✓"]
]
var body: some View {
VStack(spacing: 12) {
ForEach(rows, id: \.self) { row in
HStack(spacing: 20) {
ForEach(row, id: \.self) { key in
NumpadKey(label: key) { onKey(key) }
}
}
}
}
}
}
private struct NumpadKey: View {
let label: String
let action: () -> Void
var isConfirm: Bool { label == "✓" }
var body: some View {
Button(action: action) {
Group {
switch label {
case "⌫":
Image(systemName: "delete.left")
.font(.system(size: 22))
case "✓":
Image(systemName: "checkmark")
.font(.system(size: 22, weight: .semibold))
default:
Text(label)
.font(.system(size: 28, weight: .light))
}
}
.frame(width: 72, height: 72)
.background(isConfirm ? Color.accentColor : Color(.systemFill))
.foregroundStyle(isConfirm ? .white : .primary)
.clipShape(Circle())
}
.buttonStyle(.plain)
}
}
#Preview {
NumpadView { _ in }
}