Browse Source

Separate firmware and software sections in Updates settings card

  The Updates card on the Settings page mixed printer firmware and
  Bambuddy software update toggles with no visual distinction. Now
  groups them into labeled sections ("Printer Firmware" at top,
  "Bambuddy Software" below) with a divider between them.
maziggy 2 months ago
parent
commit
aa59e0028e
4 changed files with 15 additions and 10 deletions
  1. 1 0
      CHANGELOG.md
  2. 13 9
      frontend/src/pages/SettingsPage.tsx
  3. 0 0
      static/assets/index-l2j9UFyu.js
  4. 1 1
      static/index.html

+ 1 - 0
CHANGELOG.md

@@ -27,6 +27,7 @@ All notable changes to Bambuddy will be documented in this file.
 ### Improved
 - **SpoolBuddy Scale Value Stabilization** — The SpoolBuddy daemon now suppresses redundant scale weight reports: only sends updates when the weight changes by ≥2g. Previously every 1-second report interval sent a reading regardless of change, and stability state flips (stable ↔ unstable) also triggered reports — when ADC noise kept the spread hovering around the 2g stability threshold, the flag toggled every cycle, forcing a report with a slightly different weight each time. Removed stability flipping as a report trigger (the stable flag is still included in each report for consumers). Also increased the NAU7802 moving average window from 5 to 20 samples (500ms → 2s) to smooth ADC noise. The frontend also applies a 3g display threshold as defense-in-depth.
 - **SpoolBuddy TopBar: Online Printer Selection** — The printer selector in the SpoolBuddy top bar now only shows online printers and auto-selects the first online printer. If the currently selected printer goes offline, it automatically switches to the next available online printer. Also replaced the placeholder icon with the SpoolBuddy logo.
+- **Updates Card Separates Firmware and Software Settings** — The Updates card on the Settings page mixed printer firmware and Bambuddy software update toggles with no visual grouping. Now splits the card into two labeled sections ("Printer Firmware" and "Bambuddy Software") separated by a divider, making it clear which toggles control what.
 
 ## [0.2.1] - 2026-02-27
 

+ 13 - 9
frontend/src/pages/SettingsPage.tsx

@@ -1624,35 +1624,39 @@ export function SettingsPage() {
               <h2 className="text-lg font-semibold text-white">Updates</h2>
             </CardHeader>
             <CardContent className="space-y-4">
+              <p className="text-xs font-medium text-bambu-gray uppercase tracking-wider">Printer Firmware</p>
               <div className="flex items-center justify-between">
                 <div>
-                  <p className="text-white">{t('settings.checkForUpdatesLabel')}</p>
+                  <p className="text-white">{t('settings.checkPrinterFirmware')}</p>
                   <p className="text-sm text-bambu-gray">
-                    Automatically check for new versions on startup
+                    Check for printer firmware updates from Bambu Lab
                   </p>
                 </div>
                 <label className="relative inline-flex items-center cursor-pointer">
                   <input
                     type="checkbox"
-                    checked={localSettings.check_updates}
-                    onChange={(e) => updateSetting('check_updates', e.target.checked)}
+                    checked={localSettings.check_printer_firmware ?? true}
+                    onChange={(e) => updateSetting('check_printer_firmware', e.target.checked)}
                     className="sr-only peer"
                   />
                   <div className="w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green"></div>
                 </label>
               </div>
+              <div className="border-t border-bambu-dark-tertiary pt-4">
+                <p className="text-xs font-medium text-bambu-gray uppercase tracking-wider mb-4">Bambuddy Software</p>
+              </div>
               <div className="flex items-center justify-between">
                 <div>
-                  <p className="text-white">{t('settings.checkPrinterFirmware')}</p>
+                  <p className="text-white">{t('settings.checkForUpdatesLabel')}</p>
                   <p className="text-sm text-bambu-gray">
-                    Check for printer firmware updates from Bambu Lab
+                    Automatically check for new versions on startup
                   </p>
                 </div>
                 <label className="relative inline-flex items-center cursor-pointer">
                   <input
                     type="checkbox"
-                    checked={localSettings.check_printer_firmware ?? true}
-                    onChange={(e) => updateSetting('check_printer_firmware', e.target.checked)}
+                    checked={localSettings.check_updates}
+                    onChange={(e) => updateSetting('check_updates', e.target.checked)}
                     className="sr-only peer"
                   />
                   <div className="w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green"></div>
@@ -1676,7 +1680,7 @@ export function SettingsPage() {
                   <div className="w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green"></div>
                 </label>
               </div>
-              <div className="border-t border-bambu-dark-tertiary pt-4">
+              <div>
                 <div className="flex items-center justify-between mb-2">
                   <div>
                     <p className="text-white">{t('settings.currentVersion')}</p>

File diff suppressed because it is too large
+ 0 - 0
static/assets/index-l2j9UFyu.js


+ 1 - 1
static/index.html

@@ -23,7 +23,7 @@
 
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-rCstaUXR.js"></script>
+    <script type="module" crossorigin src="/assets/index-l2j9UFyu.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-BW78djlt.css">
   </head>
   <body>

Some files were not shown because too many files changed in this diff