fuzzyworld

north-star / commit

fixed issues with friends list and dark mode

c5543782f061411f8e1d0ec8abd6a2c7b7ea33e8 · Pavel Safronov · 2026-03-15 23:43:59 -0700 · parents 65034d4e98b7

fixed issues with friends list and dark mode
 .vscode/settings.json |  8 +++++---
 src/friends-panel.ts  | 11 ++++++++---
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/.vscode/settings.json b/.vscode/settings.json
index fc86c15..b9c2b23 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -21,9 +21,11 @@
     },
     "cSpell.words": [
         "darkmode",
-        "wakelock",
-        "Icongeek26",
         "Flaticon",
-        "Freepik"
+        "Freepik",
+        "Icongeek26",
+        "noopener",
+        "noreferrer",
+        "wakelock"
     ]
 }
\ No newline at end of file
diff --git a/src/friends-panel.ts b/src/friends-panel.ts
index 231f092..a05aa0e 100644
--- a/src/friends-panel.ts
+++ b/src/friends-panel.ts
@@ -160,13 +160,17 @@ export const createFriendsPanelController = ({
     document.addEventListener('pointerdown', (event) => {
         if (!friendsPanelVisible) return;
 
+        if (document.body.classList.contains('dark')) return;
+
         const target = event.target;
         if (!(target instanceof Node)) return;
 
         const clickedInsidePanel = friendsPanel ? friendsPanel.contains(target) : false;
         const clickedToggle = friendsToggle ? friendsToggle.contains(target) : false;
+        const darkModeToggle = document.getElementById('dark-mode-toggle');
+        const clickedDarkModeToggle = darkModeToggle ? darkModeToggle.contains(target) : false;
 
-        if (clickedInsidePanel || clickedToggle) return;
+        if (clickedInsidePanel || clickedToggle || clickedDarkModeToggle) return;
 
         friendsPanelVisible = false;
         applyFriendsPanelVisibility();
@@ -272,7 +276,8 @@ export const createFriendsPanelController = ({
     };
 
     const renderFriendControls = (friendsToRender) => {
-        lastFriendsToRender = friendsToRender;
+        const orderedFriends = sortFriendsForDisplay(friendsToRender);
+        lastFriendsToRender = orderedFriends;
         if (!friendsPanel) return;
 
         friendsPanel.textContent = '';
@@ -280,7 +285,7 @@ export const createFriendsPanelController = ({
         heading.textContent = 'Friends';
         friendsPanel.appendChild(heading);
 
-        for (const friend of friendsToRender) {
+        for (const friend of orderedFriends) {
             const row = document.createElement('div');
             row.className = 'friend-row';
             row.dataset.friendId = friend.id;