Просмотр исходного кода

Show Assign or Unassign exclusively in SpoolBuddy slot picker

  When a spool is already assigned/linked, only show Unassign/Unlink.
  When no spool is mapped, only show Assign/Link. Previously both
  buttons appeared simultaneously.
maziggy 2 месяцев назад
Родитель
Сommit
c5dedff113

+ 23 - 25
frontend/src/pages/spoolbuddy/SpoolBuddyAmsPage.tsx

@@ -678,20 +678,8 @@ export function SpoolBuddyAmsPage() {
                   </div>
                 </button>
 
-                {/* Inventory: Assign / Unassign */}
-                {!spoolmanEnabled && (
-                  <button
-                    onClick={openAssignFromPicker}
-                    className="w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left"
-                  >
-                    <Package className="w-5 h-5 text-bambu-green flex-shrink-0" />
-                    <div>
-                      <p className="text-white font-medium">{t('inventory.assignSpool')}</p>
-                      <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.assignDesc', 'Track a spool from your inventory')}</p>
-                    </div>
-                  </button>
-                )}
-                {!spoolmanEnabled && assignment && (
+                {/* Inventory: Assign or Unassign */}
+                {!spoolmanEnabled && (assignment ? (
                   <button
                     onClick={handleUnassignFromPicker}
                     disabled={unassignMutation.isPending}
@@ -703,22 +691,21 @@ export function SpoolBuddyAmsPage() {
                       <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.unassignDesc', 'Remove inventory spool from this slot')}</p>
                     </div>
                   </button>
-                )}
-
-                {/* Spoolman: Link / Unlink */}
-                {spoolmanEnabled && (
+                ) : (
                   <button
-                    onClick={openLinkFromPicker}
+                    onClick={openAssignFromPicker}
                     className="w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left"
                   >
-                    <Link2 className="w-5 h-5 text-bambu-green flex-shrink-0" />
+                    <Package className="w-5 h-5 text-bambu-green flex-shrink-0" />
                     <div>
-                      <p className="text-white font-medium">{t('spoolman.linkToSpoolman')}</p>
-                      <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.linkDesc', 'Link a Spoolman spool to this slot')}</p>
+                      <p className="text-white font-medium">{t('inventory.assignSpool')}</p>
+                      <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.assignDesc', 'Track a spool from your inventory')}</p>
                     </div>
                   </button>
-                )}
-                {spoolmanEnabled && linked?.id && (
+                ))}
+
+                {/* Spoolman: Link or Unlink */}
+                {spoolmanEnabled && (linked?.id ? (
                   <button
                     onClick={() => unlinkSpoolMutation.mutate(linked.id)}
                     disabled={unlinkSpoolMutation.isPending}
@@ -730,7 +717,18 @@ export function SpoolBuddyAmsPage() {
                       <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.unlinkDesc', 'Remove Spoolman link from this slot')}</p>
                     </div>
                   </button>
-                )}
+                ) : (
+                  <button
+                    onClick={openLinkFromPicker}
+                    className="w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left"
+                  >
+                    <Link2 className="w-5 h-5 text-bambu-green flex-shrink-0" />
+                    <div>
+                      <p className="text-white font-medium">{t('spoolman.linkToSpoolman')}</p>
+                      <p className="text-xs text-bambu-gray">{t('spoolbuddy.ams.linkDesc', 'Link a Spoolman spool to this slot')}</p>
+                    </div>
+                  </button>
+                ))}
               </div>
             </div>
           </div>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
static/assets/index-BsSJ-PqL.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-Dh0_3dIz.js"></script>
+    <script type="module" crossorigin src="/assets/index-BsSJ-PqL.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-CZLTApPU.css">
   </head>
   <body>

Некоторые файлы не были показаны из-за большого количества измененных файлов