diff --git a/content/behavior.js b/content/behavior.js index c6ee825..ea55e27 100644 --- a/content/behavior.js +++ b/content/behavior.js @@ -32,26 +32,27 @@ window.OutlookRelook.Behavior = (function () { function setupRememberSidebar() { if (!currentSettings.rememberSidebarState) return; - var savedState = localStorage.getItem('or-sidebar-collapsed'); - if (savedState === 'true') { - var timer = setTimeout(function () { - var pane = OR.resolveSelector('folder-pane'); - for (var i = 0; i < pane.length; i++) { - var toggle = pane[i].closest('[aria-expanded]') || pane[i].querySelector('[aria-expanded]'); - if (toggle && toggle.getAttribute('aria-expanded') === 'true') { - toggle.click(); + chrome.storage.local.get({ sidebarCollapsed: false }, function (result) { + if (result.sidebarCollapsed) { + var timer = setTimeout(function () { + var pane = OR.resolveSelector('folder-pane'); + for (var i = 0; i < pane.length; i++) { + var toggle = pane[i].closest('[aria-expanded]') || pane[i].querySelector('[aria-expanded]'); + if (toggle && toggle.getAttribute('aria-expanded') === 'true') { + toggle.click(); + } } - } - }, 2000); - cleanupFns.push(function () { clearTimeout(timer); }); - } + }, 2000); + cleanupFns.push(function () { clearTimeout(timer); }); + } + }); // Watch for sidebar toggle changes var sidebarObserver = new MutationObserver(function () { var pane = OR.resolveSelector('folder-pane'); if (pane.length > 0) { var isVisible = pane[0].offsetWidth > 50; - localStorage.setItem('or-sidebar-collapsed', String(!isVisible)); + chrome.storage.local.set({ sidebarCollapsed: !isVisible }); } }); diff --git a/content/content.js b/content/content.js index 8dfcf33..b465294 100644 --- a/content/content.js +++ b/content/content.js @@ -62,7 +62,7 @@ // Accent color if (settings.accentColor) { - document.documentElement.style.setProperty('--or-accent', settings.accentColor); + document.documentElement.style.setProperty('--or-accent-override', settings.accentColor); } console.log('[Outlook Relook] Settings applied to DOM'); diff --git a/content/keyboard.js b/content/keyboard.js index 0bb342b..04a9f2c 100644 --- a/content/keyboard.js +++ b/content/keyboard.js @@ -90,6 +90,7 @@ window.OutlookRelook.Keyboard = (function () { // --- Selection count badge --- function createCountBadge() { + if (!document.body) return null; var badge = document.createElement('div'); badge.className = 'or-kb-selection-count'; badge.style.opacity = '0'; @@ -99,6 +100,7 @@ window.OutlookRelook.Keyboard = (function () { function updateCountBadge() { if (!countBadge) countBadge = createCountBadge(); + if (!countBadge) return; var count = selectedSet.size; if (count === 0) { countBadge.style.opacity = '0'; @@ -141,20 +143,22 @@ window.OutlookRelook.Keyboard = (function () { function actionDelete(targets) { performAction(targets, function () { - // Try keyboard shortcut first (Delete key) - var deleteEvent = new KeyboardEvent('keydown', { - key: 'Delete', - code: 'Delete', - bubbles: true, - cancelable: true - }); - document.activeElement.dispatchEvent(deleteEvent); - - // Fallback: find and click the delete button in the toolbar + // Find and click the delete button in the toolbar var deleteBtn = document.querySelector( '[aria-label*="Delete" i][role="button"], [aria-label*="delete" i][role="menuitem"]' ); - if (deleteBtn) deleteBtn.click(); + if (deleteBtn) { + deleteBtn.click(); + } else { + // Fallback: try dispatching Delete key + var deleteEvent = new KeyboardEvent('keydown', { + key: 'Delete', + code: 'Delete', + bubbles: true, + cancelable: true + }); + document.activeElement.dispatchEvent(deleteEvent); + } }); } @@ -436,9 +440,15 @@ window.OutlookRelook.Keyboard = (function () { } function updateSettings(settings) { - stop(); + var wasEnabled = currentSettings.keyboardMultiSelect; + var isEnabled = settings.keyboardMultiSelect; currentSettings = settings; - start(settings); + + // Only tear down and restart if the keyboard setting itself changed + if (wasEnabled !== isEnabled) { + stop(); + start(settings); + } } function stop() {