AlarmTile.swift 969 B

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