macos: "OK" should dismiss error

This commit is contained in:
Mitchell Hashimoto
2025-10-08 21:16:07 -07:00
parent 95a9e63401
commit 9e17255ca9
5 changed files with 9 additions and 2 deletions

View File

@@ -1008,7 +1008,7 @@ class AppDelegate: NSObject,
}
@IBAction func checkForUpdates(_ sender: Any?) {
UpdateSimulator.notFound.simulate(with: updateViewModel)
UpdateSimulator.error.simulate(with: updateViewModel)
}

View File

@@ -38,7 +38,9 @@ class UpdateDriver: NSObject, SPUUserDriver {
}
func showUpdaterError(_ error: any Error, acknowledgement: @escaping () -> Void) {
viewModel.state = .error(.init(error: error, retry: retryHandler))
viewModel.state = .error(.init(error: error, retry: retryHandler, dismiss: { [weak viewModel] in
viewModel?.state = .idle
}))
}
func showDownloadInitiated(cancellation: @escaping () -> Void) {

View File

@@ -336,6 +336,7 @@ fileprivate struct UpdateErrorView: View {
HStack(spacing: 8) {
Button("OK") {
error.dismiss()
dismiss()
}
.keyboardShortcut(.cancelAction)

View File

@@ -92,6 +92,9 @@ enum UpdateSimulator {
]),
retry: {
simulateHappyPath(viewModel)
},
dismiss: {
viewModel.state = .idle
}
))
}

View File

@@ -172,6 +172,7 @@ enum UpdateState: Equatable {
struct Error {
let error: any Swift.Error
let retry: () -> Void
let dismiss: () -> Void
}
struct Downloading {