AlarmTile.swift 944 B

123456789101112131415161718192021222324252627282930313233
  1. // LoopFollow
  2. // AlarmTile.swift
  3. import SwiftUI
  4. struct AlarmTile: View {
  5. let type: AlarmType
  6. let action: () -> Void
  7. var body: some View {
  8. Button(action: action) {
  9. VStack(spacing: 8) {
  10. Image(systemName: type.icon)
  11. .font(.title2)
  12. .foregroundColor(.accentColor)
  13. Text(type.localizedTitle)
  14. .font(.subheadline)
  15. .multilineTextAlignment(.center)
  16. .lineLimit(2)
  17. Text(type.blurb)
  18. .font(.caption2)
  19. .foregroundColor(.secondary)
  20. .multilineTextAlignment(.center)
  21. .lineLimit(2)
  22. }
  23. .padding()
  24. .frame(maxWidth: .infinity, minHeight: 110)
  25. .background(.thinMaterial, in: RoundedRectangle(cornerRadius: 12))
  26. }
  27. .buttonStyle(.plain)
  28. }
  29. }