chore(core): Integration and UX Polish fixes

This commit is contained in:
Timo
2026-04-22 10:44:31 +02:00
parent 32044dab57
commit 643c70772e
3 changed files with 26 additions and 6 deletions
+1 -1
View File
@@ -146,7 +146,6 @@ async function connect() {
isConnecting = false;
reconnectDelay = 1000;
addLog('WebSocket Connection Opened', 'success');
broadcastConnectionStatus('connected');
reconnectStartTime = null;
reconnectFailed = false;
isNamespaceJoined = false;
@@ -176,6 +175,7 @@ async function connect() {
addLog(`Socket.IO Handshake: ${msg}`, 'info');
} else if (msg.startsWith('40')) {
isNamespaceJoined = true;
broadcastConnectionStatus('connected');
addLog('Joined Namespace /', 'success');
// Auto-rejoin room if we have one in settings
if (settings.roomId) {
+20
View File
@@ -364,6 +364,15 @@ function showError(msg) {
// --- Action Handlers ---
elements.joinBtn.addEventListener('click', async () => {
if (elements.joinBtn.disabled) return;
elements.joinBtn.disabled = true;
const originalText = elements.joinBtn.textContent;
elements.joinBtn.textContent = 'Joining...';
setTimeout(() => {
elements.joinBtn.disabled = false;
elements.joinBtn.textContent = originalText;
}, 1500);
const serverUrl = elements.serverUrl.value;
const roomId = elements.roomId.value || Math.random().toString(36).substring(2, 8).toUpperCase();
const password = elements.password.value;
@@ -412,9 +421,20 @@ elements.targetTab.addEventListener('change', async () => {
});
elements.forceSyncBtn.addEventListener('click', async () => {
if (elements.forceSyncBtn.disabled) return;
const settings = await chrome.storage.sync.get(['targetTabId']);
if (!settings.targetTabId) return;
// Lockout to prevent spamming
const originalText = elements.forceSyncBtn.textContent;
elements.forceSyncBtn.disabled = true;
elements.forceSyncBtn.textContent = 'Syncing...';
setTimeout(() => {
elements.forceSyncBtn.disabled = false;
elements.forceSyncBtn.textContent = originalText;
}, 5000);
const tabId = parseInt(settings.targetTabId);
const sendForceSync = (time) => {