Files
sing-box-for-apple/ApplicationLibrary/Views/Dashboard/Cards/HTTPProxyCard.swift
T

39 lines
1.2 KiB
Swift

import Library
import SwiftUI
public struct HTTPProxyCard: View {
@EnvironmentObject private var profile: ExtensionProfile
@Binding private var systemProxyAvailable: Bool
@Binding private var systemProxyEnabled: Bool
private let onToggle: (Bool) async -> Void
public init(
systemProxyAvailable: Binding<Bool>,
systemProxyEnabled: Binding<Bool>,
onToggle: @escaping (Bool) async -> Void
) {
_systemProxyAvailable = systemProxyAvailable
_systemProxyEnabled = systemProxyEnabled
self.onToggle = onToggle
}
public var body: some View {
DashboardCardView(title: "", isHalfWidth: false) {
HStack {
DashboardCardHeader(icon: "network", title: "System HTTP Proxy")
Spacer()
Toggle(isOn: $systemProxyEnabled) {}
.labelsHidden()
#if os(macOS)
.toggleStyle(.switch)
#endif
.onChangeCompat(of: systemProxyEnabled) { newValue in
Task {
await onToggle(newValue)
}
}
}
}
}
}