Disable start button if profiles is empty on macOS
This commit is contained in:
@@ -120,8 +120,10 @@ public struct ActiveDashboardView: View {
|
||||
|
||||
} catch {
|
||||
alert = Alert(error)
|
||||
return
|
||||
}
|
||||
}
|
||||
environments.emptyProfiles = profileList.isEmpty
|
||||
}
|
||||
|
||||
private nonisolated func doReloadSystemProxy() async {
|
||||
|
||||
@@ -36,6 +36,7 @@ public struct StartStopButton: View {
|
||||
#endif
|
||||
}
|
||||
}
|
||||
.disabled(environments.emptyProfiles)
|
||||
}
|
||||
|
||||
private struct Button0: View {
|
||||
|
||||
@@ -207,6 +207,7 @@ public struct ProfileView: View {
|
||||
return
|
||||
}
|
||||
}
|
||||
environments.emptyProfiles = profileList.isEmpty
|
||||
}
|
||||
|
||||
private func updateProfile(_ profile: Profile) async {
|
||||
@@ -254,6 +255,7 @@ public struct ProfileView: View {
|
||||
profileList[index].origin
|
||||
}
|
||||
profileList.remove(atOffsets: profileIndex)
|
||||
environments.emptyProfiles = profileList.isEmpty
|
||||
Task {
|
||||
do {
|
||||
_ = try await ProfileManager.delete(profileToDelete)
|
||||
|
||||
@@ -5,6 +5,7 @@ public class ExtensionEnvironments: ObservableObject {
|
||||
@Published public var logClient = CommandClient(.log)
|
||||
@Published public var extensionProfileLoading = true
|
||||
@Published public var extensionProfile: ExtensionProfile?
|
||||
@Published public var emptyProfiles = false
|
||||
|
||||
public let profileUpdate = ObjectWillChangePublisher()
|
||||
public let selectedProfileUpdate = ObjectWillChangePublisher()
|
||||
|
||||
@@ -77,11 +77,11 @@ open class ExtensionProvider: NEPacketTunnelProvider {
|
||||
do {
|
||||
profile = try await ProfileManager.get(Int64(SharedPreferences.selectedProfileID.get()))
|
||||
} catch {
|
||||
writeFatalError("(packet-tunnel) error: missing default profile: \(error.localizedDescription)")
|
||||
writeFatalError("(packet-tunnel) error: read selected profile: \(error.localizedDescription)")
|
||||
return
|
||||
}
|
||||
guard let profile else {
|
||||
writeFatalError("(packet-tunnel) error: missing default profile")
|
||||
writeFatalError("(packet-tunnel) error: missing selected profile")
|
||||
return
|
||||
}
|
||||
let configContent: String
|
||||
|
||||
Reference in New Issue
Block a user