[object Object]

← back to Commercialrealestate

CRCP filters: fan responsive filter-modal to deals-flow + contractors; sparse (<=2 section) pages start expanded

5d50017a2954f0a435e751943a78b130aa3c34b7 · 2026-08-18 18:27:42 -0700 · Steve Abrams

Files touched

Diff

commit 5d50017a2954f0a435e751943a78b130aa3c34b7
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Aug 18 18:27:42 2026 -0700

    CRCP filters: fan responsive filter-modal to deals-flow + contractors; sparse (<=2 section) pages start expanded
---
 public/deals-flow.html | 1 +
 public/filter-modal.js | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/public/deals-flow.html b/public/deals-flow.html
index 16b53f1..643b3c3 100644
--- a/public/deals-flow.html
+++ b/public/deals-flow.html
@@ -471,5 +471,6 @@ Promise.all([
 }).catch(()=>{$('#count').textContent='failed to load deal data';});
 </script><script src="/corner-nav.js" defer></script>
   <script src="/nav-agent/nav-agent.js" defer></script><!-- nav-agent -->
+  <script src="/filter-modal.js" defer></script><!-- responsive filters: collapsed rail (desktop) / modal (mobile) -->
   <script src="/crcp-theme.js" defer></script><!-- CRCP day/night toggle (auto-injects into header) -->
 </body></html>
diff --git a/public/filter-modal.js b/public/filter-modal.js
index b4c581a..187c62e 100644
--- a/public/filter-modal.js
+++ b/public/filter-modal.js
@@ -54,7 +54,11 @@
       var h = sec.querySelector('h4');
       var label = h ? (h.textContent || '').trim() : ('Filter ' + (i + 1));
       sec.classList.add('fm-panel');
-      if (openState[i] === true) sec.classList.add('fm-open');   // collapsed unless remembered open
+      // collapsed by default on multi-section pages; sparse pages (<=2 sections) start
+      // expanded so a single filter isn't hidden behind a click.
+      var defOpen = secs.length <= 2;
+      var open = (i in openState) ? openState[i] === true : defOpen;
+      if (open) sec.classList.add('fm-open');
       if (h) {
         h.classList.add('fm-ph');
         h.innerHTML = '<span class="fm-ptitle">' + escapeHtml(label) + '</span><span class="fm-pcount"></span><span class="fm-chev">▸</span>';

← 2681078 contractors: always show email alongside phone (TK-10703)  ·  back to Commercialrealestate  ·  licensed-agents + licensed: require name+firm match for brok 132b8b7 →