| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //
- // OpenMockCGMSettingsOnLongPressGesture.swift
- // MockKitUI
- //
- // Created by Nathaniel Hamming on 2023-05-18.
- // Copyright © 2023 LoopKit Authors. All rights reserved.
- //
- import SwiftUI
- import LoopKitUI
- import MockKit
- extension View {
- func openMockCGMSettingsOnLongPress(enabled: Bool = true, minimumDuration: Double = 5, cgmManager: MockCGMManager, displayGlucosePreference: DisplayGlucosePreference) -> some View {
- modifier(OpenMockCGMSettingsOnLongPressGesture(enabled: enabled, minimumDuration: minimumDuration, cgmManager: cgmManager, displayGlucosePreference: displayGlucosePreference))
- }
- }
- fileprivate struct OpenMockCGMSettingsOnLongPressGesture: ViewModifier {
- private let enabled: Bool
- private let minimumDuration: TimeInterval
- private let cgmManager: MockCGMManager
- private let displayGlucosePreference: DisplayGlucosePreference
- @State private var mockCGMSettingsDisplayed = false
- init(enabled: Bool, minimumDuration: Double, cgmManager: MockCGMManager, displayGlucosePreference: DisplayGlucosePreference) {
- self.enabled = enabled
- self.minimumDuration = minimumDuration
- self.cgmManager = cgmManager
- self.displayGlucosePreference = displayGlucosePreference
- }
- func body(content: Content) -> some View {
- modifiedContent(content: content)
- }
-
- func modifiedContent(content: Content) -> some View {
- ZStack {
- content
- .onLongPressGesture(minimumDuration: minimumDuration) {
- mockCGMSettingsDisplayed = true
- }
- NavigationLink(destination: MockCGMManagerControlsView(cgmManager: cgmManager, displayGlucosePreference: displayGlucosePreference), isActive: $mockCGMSettingsDisplayed) {
- EmptyView()
- }
- .opacity(0) // <- Hides the Chevron
- .buttonStyle(PlainButtonStyle())
- .disabled(true)
- }
- }
- }
|