NightscoutContentView.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // LoopFollow
  2. // NightscoutContentView.swift
  3. import SwiftUI
  4. struct NightscoutContentView: View {
  5. @ObservedObject private var url = Storage.shared.url
  6. @ObservedObject private var token = Storage.shared.token
  7. var body: some View {
  8. if url.value.isEmpty {
  9. VStack(spacing: 16) {
  10. Image(systemName: "network")
  11. .font(.system(size: 60))
  12. .foregroundStyle(.secondary)
  13. Text("Please enter your Nightscout URL in Settings.")
  14. .foregroundStyle(.secondary)
  15. .multilineTextAlignment(.center)
  16. }
  17. .padding()
  18. } else {
  19. NightscoutWebView()
  20. // NightscoutViewController loads the page once in viewDidLoad,
  21. // so recreate it when the URL or token changes.
  22. .id(url.value + "|" + token.value)
  23. }
  24. }
  25. }
  26. private struct NightscoutWebView: UIViewControllerRepresentable {
  27. func makeUIViewController(context _: Context) -> NightscoutViewController {
  28. NightscoutViewController()
  29. }
  30. func updateUIViewController(_ uiViewController: NightscoutViewController, context _: Context) {
  31. uiViewController.overrideUserInterfaceStyle = Storage.shared.appearanceMode.value.userInterfaceStyle
  32. }
  33. }