[object Object]

← 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 →