fix: address code review findings
- Fix accent color CSS variable: write to --or-accent-override - Fix actionDelete double-fire: toolbar button first, key fallback - Fix localStorage collision: use chrome.storage.local for sidebar - Fix updateSettings preserving keyboard selection state - Add document.body guard for count badge creation
This commit is contained in:
@@ -32,8 +32,8 @@ window.OutlookRelook.Behavior = (function () {
|
|||||||
function setupRememberSidebar() {
|
function setupRememberSidebar() {
|
||||||
if (!currentSettings.rememberSidebarState) return;
|
if (!currentSettings.rememberSidebarState) return;
|
||||||
|
|
||||||
var savedState = localStorage.getItem('or-sidebar-collapsed');
|
chrome.storage.local.get({ sidebarCollapsed: false }, function (result) {
|
||||||
if (savedState === 'true') {
|
if (result.sidebarCollapsed) {
|
||||||
var timer = setTimeout(function () {
|
var timer = setTimeout(function () {
|
||||||
var pane = OR.resolveSelector('folder-pane');
|
var pane = OR.resolveSelector('folder-pane');
|
||||||
for (var i = 0; i < pane.length; i++) {
|
for (var i = 0; i < pane.length; i++) {
|
||||||
@@ -45,13 +45,14 @@ window.OutlookRelook.Behavior = (function () {
|
|||||||
}, 2000);
|
}, 2000);
|
||||||
cleanupFns.push(function () { clearTimeout(timer); });
|
cleanupFns.push(function () { clearTimeout(timer); });
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Watch for sidebar toggle changes
|
// Watch for sidebar toggle changes
|
||||||
var sidebarObserver = new MutationObserver(function () {
|
var sidebarObserver = new MutationObserver(function () {
|
||||||
var pane = OR.resolveSelector('folder-pane');
|
var pane = OR.resolveSelector('folder-pane');
|
||||||
if (pane.length > 0) {
|
if (pane.length > 0) {
|
||||||
var isVisible = pane[0].offsetWidth > 50;
|
var isVisible = pane[0].offsetWidth > 50;
|
||||||
localStorage.setItem('or-sidebar-collapsed', String(!isVisible));
|
chrome.storage.local.set({ sidebarCollapsed: !isVisible });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
// Accent color
|
// Accent color
|
||||||
if (settings.accentColor) {
|
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');
|
console.log('[Outlook Relook] Settings applied to DOM');
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ window.OutlookRelook.Keyboard = (function () {
|
|||||||
// --- Selection count badge ---
|
// --- Selection count badge ---
|
||||||
|
|
||||||
function createCountBadge() {
|
function createCountBadge() {
|
||||||
|
if (!document.body) return null;
|
||||||
var badge = document.createElement('div');
|
var badge = document.createElement('div');
|
||||||
badge.className = 'or-kb-selection-count';
|
badge.className = 'or-kb-selection-count';
|
||||||
badge.style.opacity = '0';
|
badge.style.opacity = '0';
|
||||||
@@ -99,6 +100,7 @@ window.OutlookRelook.Keyboard = (function () {
|
|||||||
|
|
||||||
function updateCountBadge() {
|
function updateCountBadge() {
|
||||||
if (!countBadge) countBadge = createCountBadge();
|
if (!countBadge) countBadge = createCountBadge();
|
||||||
|
if (!countBadge) return;
|
||||||
var count = selectedSet.size;
|
var count = selectedSet.size;
|
||||||
if (count === 0) {
|
if (count === 0) {
|
||||||
countBadge.style.opacity = '0';
|
countBadge.style.opacity = '0';
|
||||||
@@ -141,7 +143,14 @@ window.OutlookRelook.Keyboard = (function () {
|
|||||||
|
|
||||||
function actionDelete(targets) {
|
function actionDelete(targets) {
|
||||||
performAction(targets, function () {
|
performAction(targets, function () {
|
||||||
// Try keyboard shortcut first (Delete key)
|
// 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();
|
||||||
|
} else {
|
||||||
|
// Fallback: try dispatching Delete key
|
||||||
var deleteEvent = new KeyboardEvent('keydown', {
|
var deleteEvent = new KeyboardEvent('keydown', {
|
||||||
key: 'Delete',
|
key: 'Delete',
|
||||||
code: 'Delete',
|
code: 'Delete',
|
||||||
@@ -149,12 +158,7 @@ window.OutlookRelook.Keyboard = (function () {
|
|||||||
cancelable: true
|
cancelable: true
|
||||||
});
|
});
|
||||||
document.activeElement.dispatchEvent(deleteEvent);
|
document.activeElement.dispatchEvent(deleteEvent);
|
||||||
|
}
|
||||||
// Fallback: 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();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,10 +440,16 @@ window.OutlookRelook.Keyboard = (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateSettings(settings) {
|
function updateSettings(settings) {
|
||||||
stop();
|
var wasEnabled = currentSettings.keyboardMultiSelect;
|
||||||
|
var isEnabled = settings.keyboardMultiSelect;
|
||||||
currentSettings = settings;
|
currentSettings = settings;
|
||||||
|
|
||||||
|
// Only tear down and restart if the keyboard setting itself changed
|
||||||
|
if (wasEnabled !== isEnabled) {
|
||||||
|
stop();
|
||||||
start(settings);
|
start(settings);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
for (var i = 0; i < cleanupFns.length; i++) {
|
for (var i = 0; i < cleanupFns.length; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user