Skip to content

Commit ba064bf

Browse files
committed
Enhance slot availability handling in UI: show error message and disable Connect button when full, clear error when slots are available, and re-check button state.
1 parent c8d808d commit ba064bf

1 file changed

Lines changed: 22 additions & 3 deletions

File tree

content/wardrive.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)