TeraTodayStatusView.swift (1106B)
1 import SwiftUI 2 3 struct TeraTodayStatusView: View { 4 let presentation: TeraTodayPresentation 5 6 var body: some View { 7 VStack(alignment: .leading, spacing: 8) { 8 if presentation.refresh == .refreshing { 9 ProgressView("Checking for updates…") 10 } 11 if presentation.isReading { 12 ProgressView("Reading saved posts…") 13 } 14 if case let .failed(failure) = presentation.refresh { 15 Label("Refresh failed. \(failure.message)", systemImage: failure.systemImage) 16 } 17 ForEach(Array(presentation.relayMessages.enumerated()), id: \.offset) { _, message in 18 Text(message) 19 } 20 if let failure = presentation.readFailure { 21 Label(failure.readStatus, systemImage: failure.systemImage) 22 } 23 if let message = presentation.freshnessMessage { 24 Text(message) 25 } 26 } 27 .font(.footnote) 28 .foregroundStyle(.secondary) 29 .accessibilityElement(children: .ignore) 30 .accessibilityLabel("Today status") 31 .accessibilityValue(presentation.accessibilityStatus) 32 .accessibilityIdentifier("radroots.today.status") 33 } 34 }