[object Object]

← back to Nationalrealestate

USRE nav: render one canonical nav across all pages via nav-drawer.js (fixes drift; active-by-URL) v0.5.1

6924dcd8a51b685c9fb1f3e30f8d65bfa1da86ef · 2026-07-26 16:39:43 -0700 · Steve

Files touched

Diff

commit 6924dcd8a51b685c9fb1f3e30f8d65bfa1da86ef
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jul 26 16:39:43 2026 -0700

    USRE nav: render one canonical nav across all pages via nav-drawer.js (fixes drift; active-by-URL) v0.5.1
---
 package-lock.json    |  4 ++--
 package.json         |  2 +-
 public/nav-drawer.js | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 1426d1c..510d8c6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "nationalrealestate",
-  "version": "0.5.0",
+  "version": "0.5.1",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "nationalrealestate",
-      "version": "0.5.0",
+      "version": "0.5.1",
       "dependencies": {
         "better-sqlite3": "^13.0.1",
         "dotenv": "^16.4.5",
diff --git a/package.json b/package.json
index c73e00a..d0a35a9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nationalrealestate",
-  "version": "0.5.0",
+  "version": "0.5.1",
   "private": true,
   "type": "module",
   "description": "USRealEstate — national U.S. residential market explorer. Free-data v1 (Redfin Data Center, Zillow Research, Census ACS, FHFA). Internal analyst tool behind basic auth.",
diff --git a/public/nav-drawer.js b/public/nav-drawer.js
index 60b3143..ec5f1b4 100644
--- a/public/nav-drawer.js
+++ b/public/nav-drawer.js
@@ -29,6 +29,26 @@
       bar.parentNode && bar.parentNode.removeChild(bar);
     }
 
+    // Canonical nav — render one identical link set on every page (marks the
+    // current page active by URL) so the nav never drifts page-to-page.
+    var NAV = [
+      ['/', 'Map'], ['/markets.html', 'Markets'], ['/commercial.html', 'Commercial'],
+      ['/compare.html', 'Compare'], ['/brokers.html', 'Brokers'], ['/sources.html', 'Sources'],
+      ['/watchlist.html', 'Watchlist'], ['/admin.html', 'Admin']
+    ];
+    var here = location.pathname.replace(/\/index\.html$/, '/');
+    var nav = body.querySelector('nav');
+    if (!nav) {
+      nav = document.createElement('nav');
+      var brand = body.querySelector('.brand');
+      if (brand && brand.nextSibling) body.insertBefore(nav, brand.nextSibling);
+      else body.insertBefore(nav, body.firstChild);
+    }
+    nav.innerHTML = NAV.map(function (x) {
+      var active = x[0] === here || (x[0] === '/' && (here === '' || here === '/'));
+      return '<a href="' + x[0] + '"' + (active ? ' class="active"' : '') + '>' + x[1] + '</a>';
+    }).join('');
+
     document.body.appendChild(backdrop);
     document.body.appendChild(drawer);
     document.body.appendChild(burger);

← 9ca6907 Refine: add situs addresses to Sonoma/Maricopa/Thurston deed  ·  back to Nationalrealestate  ·  auto-save: 2026-07-26T16:44:36 (2 files) — public/crcp-grid. 02bd28c →