feat(nav): UI-consistency sweep across Scheduled, Kudos, Your stats (LC-691) #657
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/LC-691-nav-sweep"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Brings the remaining left-nav pages in line with the Inbox / Saved / Activity redesign: card rows on token surfaces, quiet metadata, avatars where a person is involved, and the shared empty-state partial. Presentation only - no data, route, or behavior changes. Token colors throughout (all four themes + both densities).
Pages
divide-y); bare-paragraph empty state -> sharedpartials/empty_state.html; Cancel restyled to the standard secondary/destructive control (keepshx-confirm). Bug fix: the dropped section rendered<a href="{{ room_label }}">- a dead link pointing at the label text ("#general"), not a URL.DroppedRowhas no room path, so the room is now plain text.LIMIT, so per-id lookups are cheap). New sharedkudos/row.htmlrenders both lists.rounded-lgelevated surfaces to match the card language. No change to which stats show.Transcripts already uses its own polished card + empty-state treatment (
lc-tx-*), so it needs no change and is intentionally untouched.Tests
routes_scheduled(16) +routes_stats(3) integration tests pass. Full lib suite (317).cargo fmt+clippyclean; Tailwind rebuild confirms classes resolve.🤖 Generated with Claude Code
https://claude.ai/code/session_01PBAyCesyqJkZ5JgixXf9Lf
Brings the remaining left-nav pages in line with the Inbox / Saved / Activity redesign: card rows on token surfaces, quiet metadata, avatars where a person is involved, and the shared empty-state partial. Presentation only - no data, route, or behavior changes. Token colors throughout, so all four themes + both densities hold. - Scheduled (scheduled.html, scheduled_row.html): pending + dropped lists become card rows instead of flat divide-y lines; the bare-paragraph empty state becomes the shared partials/empty_state.html; the Cancel action is restyled to the standard secondary/destructive control (keeps its hx-confirm). Also fixes a dead link in the dropped section - it rendered `<a href="{{ room_label }}">` (href pointing at the label text, e.g. "#general", not a URL); DroppedRow carries no room path, so the room is now plain text. - Kudos (kudos/page.html + new kudos/row.html, view, route): the receivers / givers leaderboards now show each person's avatar with live presence, on elevated card rows, and the empty state uses the shared partial. The route resolves each ranked user's record once (label + avatar + presence) instead of a labels-only lookup; the lists are capped at LIMIT so per-id lookups are cheap. A new shared kudos/row.html renders both lists. - Your stats (stats/page.html): chart/tile page, so only a token-consistency pass - the stat tiles and the top-channels rows move onto rounded-lg elevated surfaces to match the card language. No change to which stats show or their computation. Transcripts already uses its own polished card + empty-state treatment (lc-tx-*), so it needs no change and is intentionally untouched. routes_scheduled (16) and routes_stats (3) integration tests pass; full lib suite (317); fmt + clippy clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PBAyCesyqJkZ5JgixXf9Lf