- Ya
- 5 Agosti 2026, 18:41 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 66ef87d
Three defects, each invisible until it bites. The row expander wrapped the whole header in a <button>, and DateTimeDisplay renders its own interactive tooltip trigger inside that. Nested interactive elements are invalid HTML: browsers hoist the inner control out, screen readers announce one control where there are two, and the timestamp tooltip stops being keyboard-reachable. The expander is now a transparent overlay, so the row stays clickable while the timestamp remains a sibling — with a real accessible name, since the visible title is no longer inside the button. Day headings sliced the raw ISO string while the rows beneath them rendered in the member's own timezone, so a member in Los Angeles reading server-UTC timestamps saw a 5pm call filed under a heading that read the following day. Both now go through the same zone. The Details-tab Communications card was fed by leadsApi.getInsights, which has no backing route — it 404'd on every lead view and the card rendered zeros regardless of the lead. It now reads the real per-channel counts, and the two dead calls are gone. Also: setCommsTab now applies the unsaved-changes guard setTab already had. The Notes sub-tab hosts a composer and the header quick actions switch sub-tabs directly, so an unsent draft could vanish on a single click.