← back to Rentv 2026
fix(metros): metro deal items drill to the specific deal (/news/:id), not generic /deals
c06e94cea7a8a7a596faa2dff2737dc477984839 · 2026-07-31 17:37:33 -0700 · Steve Abrams
HARD RULE (all data points href to deeper data): each metro group's deal rows
linked to the /deals firehose instead of the individual deal. Now drills to
/news/${id} (in-app reader, no rentv.com hotlink) — same pattern as deals.html +
watchlist.html. d.id survives the metro grouping (full object pushed); all scripts
parse; drill URL resolves (e.g. /news/34238).
Files touched
Diff
commit c06e94cea7a8a7a596faa2dff2737dc477984839
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri Jul 31 17:37:33 2026 -0700
fix(metros): metro deal items drill to the specific deal (/news/:id), not generic /deals
HARD RULE (all data points href to deeper data): each metro group's deal rows
linked to the /deals firehose instead of the individual deal. Now drills to
/news/${id} (in-app reader, no rentv.com hotlink) — same pattern as deals.html +
watchlist.html. d.id survives the metro grouping (full object pushed); all scripts
parse; drill URL resolves (e.g. /news/34238).
---
public/metros.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/metros.html b/public/metros.html
index 69cd6e7d..ec418582 100644
--- a/public/metros.html
+++ b/public/metros.html
@@ -147,7 +147,7 @@ function render(){
</div>
<div class="r"><div class="vol">${g.vol?esc(usd(g.vol)):'—'}</div><div class="ct">${g.count} deal${g.count===1?'':'s'}</div><div class="chev">▾ deals</div></div>
</div>
- <div class="deals">${g.deals.map(d=>`<a class="deal" href="/deals"><div><h4>${esc(d.title)}</h4><div class="m">${[d.property_type,d.txn_type].filter(Boolean).map(esc).join(' · ')}</div></div><div class="amt">${esc(d.amount_label||(d.amount?usd(d.amount):'—'))}</div></a>`).join('')}</div>
+ <div class="deals">${g.deals.map(d=>`<a class="deal" href="${d.id?('/news/'+encodeURIComponent(d.id)):'/deals'}"><div><h4>${esc(d.title)}</h4><div class="m">${[d.property_type,d.txn_type].filter(Boolean).map(esc).join(' · ')}</div></div><div class="amt">${esc(d.amount_label||(d.amount?usd(d.amount):'—'))}</div></a>`).join('')}</div>
</div>`).join('');
$('metros').querySelectorAll('.mrow').forEach(r=>r.onclick=()=>r.parentElement.classList.toggle('open'));
}
← 4e674a28 fix(watchlist): deal cards drill to the specific deal (/news
·
back to Rentv 2026
·
chore: lint (py with-context), refactor (Invalid-Date guard, 871a02b4 →