diff --git a/index.html b/index.html
index 84dfcb7..8af4c97 100644
--- a/index.html
+++ b/index.html
@@ -180,6 +180,7 @@
} else {
BLE.connect().catch(e => {
console.error('[BLE Connect Error]', e);
+ UI.setButtonLoading('btn-ble-connect', false);
if (!e.message?.includes('cancelled')) {
UI.log(`Connect error: ${e.message} (${e.name})`, 'error');
}
diff --git a/web/js/ui.js b/web/js/ui.js
index 95067b7..0997a64 100644
--- a/web/js/ui.js
+++ b/web/js/ui.js
@@ -46,21 +46,12 @@ const UI = (() => {
: 'Disconnected';
if (btn) {
btn.disabled = false;
- btn.innerHTML = connected
- ? 'Disconnect'
- : 'Connect';
- btn.className = connected
- ? 'btn btn-sm btn-danger'
- : 'btn btn-sm btn-primary';
-
- // Rebind: when connected, button should disconnect
- btn.onclick = connected
- ? () => BLE.disconnect()
- : () => BLE.connect().catch(e => {
- if (!e.message?.includes('cancelled')) {
- log(`Connect failed: ${e.message}`, 'error');
- }
- });
+ const btnText = btn.querySelector('.btn-text');
+ if (btnText) {
+ btnText.textContent = connected ? 'Disconnect' : 'Connect';
+ }
+ btn.classList.toggle('btn-danger', connected);
+ btn.classList.toggle('btn-primary', !connected);
}
}