Files
sing-box-for-apple/ApplicationLibrary/Views/Dashboard/Components/InstallProfileButton.swift
T

33 lines
784 B
Swift

import Library
import SwiftUI
@MainActor
public struct InstallProfileButton: View {
@State private var alert: AlertState?
private let callback: () async -> Void
public init(_ callback: @escaping (() async -> Void)) {
self.callback = callback
}
public var body: some View {
FormButton {
Task {
await installProfile()
}
} label: {
Label("Install Network Extension", systemImage: "lock.doc.fill")
}
.alert($alert)
}
private func installProfile() async {
do {
try await ExtensionProfile.install()
await callback()
} catch {
alert = AlertState(action: "install network extension", error: error)
}
}
}