-import SwiftUI
+// Copyright (C) 2024 Rubén Beltrán del Río
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see https://map.tranquil.systems.
import Sparkle
+import SwiftUI
struct UpdateCommands: Commands {
let updaterController: SPUStandardUpdaterController
-
+
var body: some Commands {
CommandGroup(after: .appInfo) {
CheckForUpdatesView(updater: updaterController.updater)
}
}
-
struct CheckForUpdatesView: View {
- @ObservedObject private var checkForUpdatesViewModel: CheckForUpdatesViewModel
- private let updater: SPUUpdater
-
- init(updater: SPUUpdater) {
- self.updater = updater
-
- // Create our view model for our CheckForUpdatesView
- self.checkForUpdatesViewModel = CheckForUpdatesViewModel(updater: updater)
- }
-
- var body: some View {
- Button("Check for Updates…", action: updater.checkForUpdates)
- .disabled(!checkForUpdatesViewModel.canCheckForUpdates)
- }
+ @ObservedObject private var checkForUpdatesViewModel: CheckForUpdatesViewModel
+ private let updater: SPUUpdater
+
+ init(updater: SPUUpdater) {
+ self.updater = updater
+
+ // Create our view model for our CheckForUpdatesView
+ self.checkForUpdatesViewModel = CheckForUpdatesViewModel(updater: updater)
+ }
+
+ var body: some View {
+ Button("Check for Updates…", action: updater.checkForUpdates)
+ .disabled(!checkForUpdatesViewModel.canCheckForUpdates)
+ }
}
final class CheckForUpdatesViewModel: ObservableObject {
- @Published var canCheckForUpdates = false
+ @Published var canCheckForUpdates = false
- init(updater: SPUUpdater) {
- updater.publisher(for: \.canCheckForUpdates)
- .assign(to: &$canCheckForUpdates)
- }
+ init(updater: SPUUpdater) {
+ updater.publisher(for: \.canCheckForUpdates)
+ .assign(to: &$canCheckForUpdates)
+ }
}