feat(ui): group and polish the sidebar room/DM list (LC-371) #381
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lc-371-room-list-sections"
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?
Closes LC-371. Part of the LC-364 redesign epic.
What
Makes the populated room/DM list read as scannable, grouped sections. Files:
partials/sidebar_nav.html,partials/sidebar_room_row.html,partials/sidebar_peer_row.html,base.html,main.css.lc-section-labeltypography). The collapsed set is device-local: it persists inlocalStorageand on<html data-lc-collapsed-groups>, set no-flash by the base.html bootstrap, exactly like the unread-only filter. Body hiding + chevron rotation are pure CSS keyed on that attribute, so a collapsed group never flashes open and survives the sidebar's OOB swaps with no JS scan.aria-expandedis synced from the attribute on load and every htmx settle..lc-room-row-active(soft accent fill + a left accent bar via inset shadow, no layout shift) plusaria-current="page". An unread, unmuted row bolds its name; a muted room stays subtle.#/ voice glyph so their text aligns with the DM avatars at one row rhythm.lc-section-labeltypography for consistency.Preserved
data-lc-sb-section/data-lc-sb-row, drag-and-drop (data-room-list/data-positions-url/draggable/data-room-id), the id-keyed unread/mention/draft badge spans for live OOB swaps, per-room mark-read + star, the category rename/delete/move menus, and the add-room / add-category forms. The unread-only CSS filter still matches because the badges stay inside eachdata-lc-sb-section. No backend or route changes; no new i18n keys.Testing
./dev/cargo check -p lets-chat-server- clean.just build-css- clean.just testandjust test-saas- both green (incl.routes_enclave_nav).🤖 Generated with Claude Code