Skip to content

List Sidebar & Drag-Drop

The sidebar shows the user’s Lists and Groups and supports drag-and-drop reordering and grouping. It is built from islands in src/islands over the offline cache.

  • ListCollection.tsx / ListItem.tsx — render the flat + grouped Lists; GroupHeader.tsx renders expandable/collapsible Groups; MainColumn.tsx composes the sidebar column.
  • Drag-and-drop sets the persisted custom order (fractional rank) — per-User for Lists and Groups (Product Brief §5.2). A List can move into/out of a Group; Groups never nest (spec 008). For shared Lists, order + group are per-viewer (stored on listMembers), so each Member arranges them independently (see Idempotency & List-Members Repos).

List/View counts shown in the sidebar come from src/lib/sidebar/counts-store.ts + src/lib/offline/sidebar-counts.ts (see Sidebar Counts & Local-Today).

Related: Fractional Rank Algorithm (the order keys), Sort Modes & Reordering, Group/List Context Menus, Sidebar Counts & Local-Today.