Browse Source

Fix sidebar bottom icons cut off when smart plugs enabled (#862)

maziggy 1 month ago
parent
commit
f228a8b549

+ 1 - 0
CHANGELOG.md

@@ -27,6 +27,7 @@ All notable changes to Bambuddy will be documented in this file.
 - **Plate Thumbnails 401 in Print Modal** — Multi-plate 3MF plate thumbnails in the print modal returned 401 Unauthorized when authentication was enabled. The backend returns bare URL paths for plate thumbnails, but the `PlateSelector` component used them directly in `<img src>` without appending the stream token. Fixed by passing the URL through `withStreamToken()`.
 - **Schedule Calendar Picker Opens Off-Screen** — Clicking the calendar icon in the print modal's scheduled mode opened the native date picker at the bottom of the viewport instead of near the date field. The hidden `datetime-local` input used `sr-only` positioning which anchored the picker off-screen. Fixed by positioning the hidden input inside the date field's container.
 - **SpoolBuddy Kiosk Display Blanking and Crashes** — The kiosk Chromium flags added in 0.2.2.2 caused display instability: `--js-flags=--max-old-space-size=128` crashed the V8 renderer when heap exceeded 128 MB, `--enable-low-end-device-mode` aggressively killed GPU rendering surfaces, and resetting `CHROMIUM_FLAGS` discarded the Pi's GPU defaults (`--enable-gpu-rasterization`, ANGLE/GLES) creating an unstable mixed CPU/GPU rendering path. Fixed by removing both flags, appending kiosk flags to Pi defaults instead of replacing them, adding a `wlr-randr` keep-alive loop to prevent display blanking, and adding `<screenBlankTimeout>0</screenBlankTimeout>` to the labwc config.
+- **Sidebar Bottom Icons Cut Off With Smart Plugs** ([#862](https://github.com/maziggy/bambuddy/issues/862)) — Adding smart plug buttons to the sidebar caused the bottom icon row to overflow and get partially cut off. The footer section could be compressed by the flexbox layout when the navigation area grew. Fixed by preventing the footer from shrinking, allowing the expanded icon row to wrap, and adding scroll overflow to the collapsed sidebar icon stack. Reported by @chrismaddahl.
 
 ## [0.2.2.2] - 2026-03-27
 

+ 3 - 3
frontend/src/components/Layout.tsx

@@ -680,11 +680,11 @@ export function Layout() {
         )}
 
         {/* Footer */}
-        <div className="p-2 border-t border-bambu-dark-tertiary">
+        <div className="flex-shrink-0 p-2 border-t border-bambu-dark-tertiary">
           {isSidebarCompact || sidebarExpanded ? (
             <div className="flex flex-col gap-2 px-2">
               {/* Top row: icons */}
-              <div className="flex items-center justify-center gap-1">
+              <div className="flex items-center justify-center gap-1 flex-wrap">
                 {hasSwitchbarPlugs && (
                   <div className="relative">
                     <button
@@ -779,7 +779,7 @@ export function Layout() {
               </div>
             </div>
           ) : (
-            <div className="flex flex-col items-center gap-1">
+            <div className="flex flex-col items-center gap-1 overflow-y-auto max-h-[50vh]">
               {updateCheck?.update_available && (
                 <button
                   onClick={() => navigate('/settings')}

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


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


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


+ 2 - 2
static/index.html

@@ -23,8 +23,8 @@
 
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-CPo_HX6d.js"></script>
-    <link rel="stylesheet" crossorigin href="/assets/index-B4zcncds.css">
+    <script type="module" crossorigin src="/assets/index-vkI-ayst.js"></script>
+    <link rel="stylesheet" crossorigin href="/assets/index-Bz3PqAxB.css">
   </head>
   <body>
     <div id="root"></div>

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