[object Object]

← back to Wine Finder

persist search-results sort selection to localStorage

62b92a066f7f93cd9e65e8a83e2e088bc77973fe · 2026-05-19 21:42:08 -0700 · Steve Abrams

Hydrate the saved value before the first render and save on every
change, matching the universal sort-persistence rule used across the
DW family. Wrapped in try/catch in case localStorage is disabled.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 62b92a066f7f93cd9e65e8a83e2e088bc77973fe
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 19 21:42:08 2026 -0700

    persist search-results sort selection to localStorage
    
    Hydrate the saved value before the first render and save on every
    change, matching the universal sort-persistence rule used across the
    DW family. Wrapped in try/catch in case localStorage is disabled.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 public/js/app.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/public/js/app.js b/public/js/app.js
index 4a73e4a..802027d 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -16,8 +16,19 @@ const chartTitle = document.getElementById('chartTitle');
 const closeChartBtn = document.getElementById('closeChartBtn');
 const logoutBtn = document.getElementById('logoutBtn');
 
+// LocalStorage keys for UI preferences
+const LS_SORT_KEY = 'wine-finder.sort';
+
 // Initialize
 document.addEventListener('DOMContentLoaded', () => {
+  // Hydrate saved sort preference BEFORE any list render
+  try {
+    const savedSort = localStorage.getItem(LS_SORT_KEY);
+    if (savedSort && sortSelect) {
+      const opt = Array.from(sortSelect.options).find(o => o.value === savedSort);
+      if (opt) sortSelect.value = savedSort;
+    }
+  } catch (e) { /* localStorage may be disabled */ }
   setupEventListeners();
 });
 
@@ -40,6 +51,7 @@ function setupEventListeners() {
 
   // Sort
   sortSelect.addEventListener('change', () => {
+    try { localStorage.setItem(LS_SORT_KEY, sortSelect.value); } catch (e) { /* noop */ }
     sortAndDisplayResults();
   });
 

← c5daa13 guard static-file routes against .bak/.pre-/.orig snapshot l  ·  back to Wine Finder  ·  (newest)