Files
sing-box-for-apple/ApplicationLibrary/Views/Dashboard/InstallProfileButton.swift
T
2023-10-01 20:31:03 +08:00

31 lines
665 B
Swift

import Library
import SwiftUI
@MainActor
public struct InstallProfileButton: View {
@State private var alert: Alert?
private let callback: () async -> Void
public init(_ callback: @escaping (() async -> Void)) {
self.callback = callback
}
public var body: some View {
Button("Install NetworkExtension") {
Task {
await installProfile()
}
}
.alertBinding($alert)
}
private func installProfile() async {
do {
try await ExtensionProfile.install()
await callback()
} catch {
alert = Alert(error)
}
}
}