| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import SwiftDate
- import SwiftUI
- import UIKit
- struct LoopView: View {
- @Binding var suggestion: Suggestion?
- private var dateFormatter: DateFormatter {
- let formatter = DateFormatter()
- formatter.timeStyle = .short
- return formatter
- }
- var body: some View {
- VStack {
- Circle().strokeBorder(color, lineWidth: 6).frame(width: 38, height: 38)
- Spacer()
- if let date = suggestion?.deliverAt {
- Text(dateFormatter.string(from: date)).font(.caption)
- } else {
- Text("--").font(.caption)
- }
- }
- }
- var color: Color {
- guard let lastDate = suggestion?.deliverAt else {
- return Color(UIColor(named: "LoopGrey")!)
- }
- let delta = Date().timeIntervalSince(lastDate)
- if delta <= 5.minutes.timeInterval {
- return Color(UIColor(named: "LoopGreen")!)
- } else if delta <= 10.minutes.timeInterval {
- return Color(UIColor(named: "LoopYellow")!)
- } else {
- return Color(UIColor(named: "LoopRed")!)
- }
- }
- }
|