← back to Commercialrealestate
auto-save: 2026-08-02T07:43:26 (1 files) — public/deals-flow.html
33989192a57fcc2e539150d820fc0906d9f12513 · 2026-08-02 07:43:35 -0700 · Steve Abrams
Files touched
Diff
commit 33989192a57fcc2e539150d820fc0906d9f12513
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun Aug 2 07:43:35 2026 -0700
auto-save: 2026-08-02T07:43:26 (1 files) — public/deals-flow.html
---
public/deals-flow.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/public/deals-flow.html b/public/deals-flow.html
index 52f588f..6ec4641 100644
--- a/public/deals-flow.html
+++ b/public/deals-flow.html
@@ -281,6 +281,7 @@ $('#roleModal').addEventListener('click',e=>{if(e.target.id==='roleModal')closeR
async function loadTicker(){try{const r=await api('/api/ticker');const items=(r&&r.items)||[];if(!items.length)return;const html=items.map(i=>`<span class="it"><span class="t ${i.kind}">${esc(i.tag)}</span>${esc(i.text)}</span>`).join('');const dup=html.replace(/<span class="it">/g,'<span class="it" aria-hidden="true">');const track=$('#tickTrack');track.innerHTML=html+dup;$('#ticker').style.display='';
// constant, comfortable read speed (~45px/s) regardless of how many deals loaded
requestAnimationFrame(()=>{const oneSet=track.scrollWidth/2;const dur=Math.max(60,Math.round(oneSet/45));track.style.animationDuration=dur+'s';});
+ }catch(e){/* ticker is non-critical — never let it break the page */}
}
loadTicker();
// ── stop / resume + dismiss (deselect) controls ──
← 7cb0f03 auto-save: 2026-08-02T07:13:15 (1 files) — data/alerts-state
·
back to Commercialrealestate
·
deals-flow.html: verified drill + fixed try-without-catch in be379e1 →