@@ -991,16 +991,35 @@ function updateSlotsDisplay(zone) {
991991 return ;
992992 }
993993
994- const { slots_available, slots_max, at_capacity } = zone ;
994+ const { slots_available, slots_max, at_capacity, code } = zone ;
995995
996996 if ( at_capacity || slots_available === 0 ) {
997997 slotsDisplay . textContent = `Full (0/${ slots_max } )` ;
998998 slotsDisplay . className = "font-medium text-red-400" ;
999+
1000+ // Show persistent error in dynamic status bar
1001+ const errorMsg = `No wardriving slots for ${ code } . RX only.` ;
1002+ statusMessageState . outsideZoneError = errorMsg ;
1003+ setDynamicStatus ( errorMsg , STATUS_COLORS . error ) ;
1004+ debugError ( `[GEO AUTH] ${ errorMsg } ` ) ;
1005+
1006+ // Disable Connect button - can't TX wardrive without a slot
1007+ setConnectButtonDisabled ( true ) ;
1008+
9991009 debugLog ( `[UI] Slots display: Full (0/${ slots_max } )` ) ;
10001010 } else {
1011+ // Clear any slots-full error if we now have slots available
1012+ if ( statusMessageState . outsideZoneError && statusMessageState . outsideZoneError . includes ( "No wardriving slots" ) ) {
1013+ statusMessageState . outsideZoneError = null ;
1014+ debugLog ( `[UI] Cleared slots-full error - slots now available` ) ;
1015+ }
1016+
10011017 slotsDisplay . textContent = `${ slots_available } available` ;
10021018 slotsDisplay . className = "font-medium text-emerald-300" ;
10031019 debugLog ( `[UI] Slots display: ${ slots_available } available (${ slots_available } /${ slots_max } )` ) ;
1020+
1021+ // Re-check connect button state now that slots are available
1022+ updateConnectButtonState ( ) ;
10041023 }
10051024}
10061025
@@ -5618,8 +5637,8 @@ function updateConnectButtonState() {
56185637 debugLog ( "[UI] Not in valid zone - waiting for zone check" ) ;
56195638 // Don't show message here, zone check will update status
56205639 } else {
5621- debugLog ( "[UI] External antenna selected and in valid zone - clearing message from status bar " ) ;
5622- setDynamicStatus ( "— " , STATUS_COLORS . idle ) ;
5640+ debugLog ( "[UI] External antenna selected and in valid zone - ready to connect " ) ;
5641+ setDynamicStatus ( "Idle " , STATUS_COLORS . idle ) ;
56235642 }
56245643 }
56255644}
0 commit comments