Loading
feat(sidebar): indent threads and helpers under project folders
Closes #7
Summary
In the sidebar's Project layout, folder rows and the threads inside them previously sat at the same leading edge (Chrome.rowHorizontalPadding = 8 pt). When multiple project folders were expanded, the lack of hierarchy made it difficult to tell at a glance where a folder ended and which threads belonged to it.
This change introduces indentation for all items nested inside a project folder while keeping top-level folder rows flush with the sidebar edge.
What Changed
- Folder Indentation Metric: Added
ThreadRowMetrics.folderIndent = 12 pttoSidebarView.swift. - Nested Hierarchy Modeling: Added
isNested: BooltoSidebarItem(defaultfalse). - Project & Search Layouts:
- Open thread rows under a project folder are indented by 12 pt.
- Helper rows (
SidebarHelperRow,HeadCardsRow,HelperStubRow) under nested threads receive the same 12 pt indentation, keeping the dottedHelperConnectorpixel-aligned under the parent thread's provider badge. - Project-level
Settledsection headers and settled threads indent under the project folder. - Search result threads displayed under project headers also receive the nested indentation.
- Activity Layout: Remains top-level (
isNested: false) under date and attention headers, preserving existing design where thread subtitles display project names.
Verification
- Built and verified with
xcodebuild -project DroppyCode.xcodeproj -scheme DroppyCode -configuration Debug build. - Verified in
Droppy Code Dev.appthat folder rows stay flush, thread rows and helper connectors indent cleanly, and drag reordering / row glide settle animations function smoothly.
| Before | After |
|---|---|
![]() |
![]() |

