[object Object]

← back to Commercialrealestate

CRCP index: fix property-detail popup — findProp must read the top-level DATA binding, not window.DATA (window.DATA is undefined, so clicks silently no-oped)

39a36a4cea59480849780c3c472715f2bdc1e1ca · 2026-08-20 11:30:55 -0700 · Steve

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

Files touched

Diff

commit 39a36a4cea59480849780c3c472715f2bdc1e1ca
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Aug 20 11:30:55 2026 -0700

    CRCP index: fix property-detail popup — findProp must read the top-level DATA binding, not window.DATA (window.DATA is undefined, so clicks silently no-oped)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 public/index.html | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/public/index.html b/public/index.html
index 49720e3..8fe31f1 100644
--- a/public/index.html
+++ b/public/index.html
@@ -2525,7 +2525,8 @@ function loadRanked(_retry){ return fetch('data/ranked.json').then(r=>{ if(!r.ok
     var esc=function(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c];});};
     var money=function(n){return (n==null||n==='')?'—':'$'+Number(n).toLocaleString();};
     var keyOf=function(id){return 'prop:'+id;};
-    var findProp=function(id){try{return (window.DATA&&DATA.ranked||[]).find(function(x){return String(x.id)===String(id);});}catch(_){return null;}};
+    // DATA is a top-level `let` (shared across classic scripts by bare name, NOT on window).
+    var findProp=function(id){try{return ((typeof DATA!=='undefined'&&DATA&&DATA.ranked)||[]).find(function(x){return String(x.id)===String(id);});}catch(_){return null;}};
     var notesSet=new Set();
     function refreshNotesSet(){return fetch('/api/agent-notes',{headers:{Accept:'application/json'}}).then(function(r){return r.ok?r.json():{notes:{}};})
       .then(function(j){notesSet=new Set(Object.keys(j.notes||{}).filter(function(k){return j.notes[k]&&j.notes[k].note&&j.notes[k].note.trim();}));return notesSet;}).catch(function(){return notesSet;});}

← be1fb30 CRCP index: bake full nav-agent skillset into UI — list-on-l  ·  back to Commercialrealestate  ·  CRCP list: click row open-space to expand consolidated detai 9ed857d →