← back to Silkwallcoverings
hydrate saved sort before first grid load so initial /api/products request honors persisted choice
e81c98e6f7106fb5e6bfc4cbd8a5643db9bc8061 · 2026-05-25 21:33:16 -0700 · Steve Abrams
Files touched
Diff
commit e81c98e6f7106fb5e6bfc4cbd8a5643db9bc8061
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon May 25 21:33:16 2026 -0700
hydrate saved sort before first grid load so initial /api/products request honors persisted choice
---
public/index.html | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/public/index.html b/public/index.html
index 4141cae..69329b8 100644
--- a/public/index.html
+++ b/public/index.html
@@ -659,6 +659,21 @@ slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
const savedDensity = parseInt(localStorage.getItem('sc_theme_density') || '6');
if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
+// DW STANDARD: hydrate saved sort BEFORE first grid load so the initial
+// /api/products request honors the user's persisted choice (avoids a
+// jarring "newest" flash followed by re-sort once the wire-up below runs).
+(function(){
+ try {
+ const sortSel = document.getElementById('sortSelect');
+ if (!sortSel) return;
+ const saved = localStorage.getItem(HOSTKEY + '_sort');
+ if (saved && [...sortSel.options].some(o => o.value === saved)) {
+ sortSel.value = saved;
+ state.sort = saved;
+ }
+ } catch(e){}
+})();
+
// ===== Grid / List view toggle =====
const viewToggle = document.getElementById('viewToggle');
function setView(v) {
@@ -980,14 +995,13 @@ loadGridPage();
})();
-// DW STANDARD sort-select wire-up (added by fleet patcher)
+// DW STANDARD sort-select change handler. Initial hydration runs earlier
+// (before loadGridPage) so the first /api/products request honors the saved
+// sort. This block only wires the change-event listener.
(function(){
const sortSel = document.getElementById('sortSelect');
if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
+ const KEY = (typeof HOSTKEY === 'string' ? HOSTKEY : location.hostname.replace(/\./g, '_')) + '_sort';
sortSel.addEventListener('change', e => {
const v = e.target.value;
try { localStorage.setItem(KEY, v); } catch(e){}
← 02548e7 retag aesthetic from PG: 47 rows updated
·
back to Silkwallcoverings
·
/api/facets total now reflects FILTERED count (honors q/aest 04ede70 →