[object Object]

← back to NationalPaperHangers

/find shows ALL installers by default (was 5 claimed-only) · LIMIT 600

c75cd328479db902c30579ea0b42a9c3c3d1db0d · 2026-05-06 19:53:57 -0700 · SteveStudio2

Steve override 2026-05-07: '/find' was hiding 519 of 524 installers behind
?show=all because the 2026-05-06 UX critic flipped default to 'claimed'.
Steve wants the directory's full breadth visible by default — flipping
back: default is now 'all', ?show=claimed opts down to 5 verified.

Toggle href reverses direction accordingly. LIMIT bumped 200 → 600 so
the full 524-installer list returns in one page.

Live verified: https://nationalpaperhangers.com/find renders 524 cards.

Files touched

Diff

commit c75cd328479db902c30579ea0b42a9c3c3d1db0d
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Wed May 6 19:53:57 2026 -0700

    /find shows ALL installers by default (was 5 claimed-only) · LIMIT 600
    
    Steve override 2026-05-07: '/find' was hiding 519 of 524 installers behind
    ?show=all because the 2026-05-06 UX critic flipped default to 'claimed'.
    Steve wants the directory's full breadth visible by default — flipping
    back: default is now 'all', ?show=claimed opts down to 5 verified.
    
    Toggle href reverses direction accordingly. LIMIT bumped 200 → 600 so
    the full 524-installer list returns in one page.
    
    Live verified: https://nationalpaperhangers.com/find renders 524 cards.
---
 routes/public.js | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/routes/public.js b/routes/public.js
index 44e595e..3e3282d 100644
--- a/routes/public.js
+++ b/routes/public.js
@@ -36,15 +36,15 @@ router.get('/find', async (req, res, next) => {
     const material = (req.query.material || '').trim();
     const zip = (req.query.zip || '').trim();
     const state = (req.query.state || '').trim();
-    // Default: show claimed studios only (the 5 "real" verified ones).
-    // ?show=all surfaces unclaimed directory listings too. UX critic flagged
-    // (2026-05-06) that 519 unclaimed shells were drowning 5 claimed studios
-    // on the default landing.
-    const show = (req.query.show || 'claimed').trim();
-
-    const where = (show === 'all')
-      ? [`(status = 'active' OR claim_status = 'unclaimed')`]
-      : [`status = 'active' AND (claim_status = 'self' OR claim_status = 'claimed')`];
+    // Default: show ALL active installers (claimed + unclaimed). Steve override
+    // 2026-05-07 — wants the directory's full breadth visible by default; the
+    // earlier 'claimed-only' default was hiding 519 of 524 shops. ?show=claimed
+    // now opts down to the 5 verified studios; toggleHref still works in reverse.
+    const show = (req.query.show || 'all').trim();
+
+    const where = (show === 'claimed')
+      ? [`status = 'active' AND (claim_status = 'self' OR claim_status = 'claimed')`]
+      : [`(status = 'active' OR claim_status = 'unclaimed')`];
     const params = [];
     let i = 1;
 
@@ -93,7 +93,7 @@ router.get('/find', async (req, res, next) => {
        ORDER BY (CASE WHEN claim_status = 'claimed' OR claim_status = 'self' THEN 0 ELSE 1 END),
                 (CASE tier WHEN 'enterprise' THEN 0 WHEN 'signature' THEN 1 WHEN 'pro' THEN 2 ELSE 3 END),
                 verified DESC, updated_at DESC
-       LIMIT 200`;
+       LIMIT 600`;
 
     const installers = await db.many(sql, params);
 
@@ -114,7 +114,8 @@ router.get('/find', async (req, res, next) => {
     if (state) _filterParams.set('state', state);
     if (segment) _filterParams.set('segment', segment);
     if (material) _filterParams.set('material', material);
-    if (show !== 'all') _filterParams.set('show', 'all');
+    // Toggle now flips the OTHER way: default is all → claimed-only opt-in
+    if (show === 'all') _filterParams.set('show', 'claimed');
     const toggleHref = '/find' + (_filterParams.toString() ? '?' + _filterParams.toString() : '');
 
     // Cross-link to /map preserving the shared filter params (q/segment/material).

← 698afa0 tests: e2e suite runner — npm run test:e2e runs all e2e-*.js  ·  back to NationalPaperHangers  ·  tests: e2e-public-pages — 12 routes × 4 assertions = 48; sta cead641 →