]> git.r.bdr.sh - rbdr/map/blobdiff - Map/Presentation/Commands/UpdateCommands.swift
Add some debouncing
[rbdr/map] / Map / Presentation / Commands / UpdateCommands.swift
index 44a46107bb9fb293ec025a5265a6d23046eac646..bfe707817d67f522ae7f9de00b733042ab0bc63b 100644 (file)
@@ -1,9 +1,23 @@
-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)
@@ -11,29 +25,28 @@ struct UpdateCommands: Commands {
   }
 }
 
-
 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)
+  }
 }