Editor's settings modal's Thread Library section is collapsible but the user can't tell from the collapsed state how many custom colors they have — user collapses, comes back, has to expand to count #276

Closed
opened 2026-10-04 03:41:37 +00:00 by Mark · 1 comment
Owner

Finding

src/components/workspace/ThreadLibrarySection.tsx (per the snippet in SettingsModal.tsx:103-110) is a Collapsible. The body shows the custom color CRUD form. The user can hide the body by collapsing.

grep -n 'subtitle\|customCount' src/components/workspace/ThreadLibrarySection.tsx returns 0.

A user with 5 custom colors collapses the section. They come back later, see "Thread Library" but don't remember they have 5 custom colors. They re-add 5 colors (the existing 5 are still there, but they think they need to add more).

Or they think they have 0 custom colors and the app's auto-matching is sufficient.

The fix is a subtitle in the section header showing the custom color count.

Where

  • ThreadLibrarySection: src/components/workspace/ThreadLibrarySection.tsx
  • Collapsible: same wrapper as the Path Defaults section
  • No count display: grep -n 'customCount' src/ returns 0

Suggested fix shape

Same pattern as the Path Defaults subtitle (#275):

<Collapsible
  title="Thread Library"
  subtitle={`${userColors.length} custom colors`}
  icon={<Palette size={14} />}
  open={open}
  onToggle={onToggle}
>
  {/* existing body */}
</Collapsible>

The user sees "Thread Library: 5 custom colors" without expanding.

Severity

Low. The user can expand. Power users with many custom colors notice.

Discovered by

Gap analysis (2026-10-02) of settings modal affordances.

  • #275 (open) — Path Defaults subtitle. Same pattern.
  • The Collapsible component (per src/components/workspace/Collapsible.tsx) is the shared wrapper.
  • The Thread Library's per-color CRUD is in the body; the count is the collapsed-state summary.
## Finding `src/components/workspace/ThreadLibrarySection.tsx` (per the snippet in `SettingsModal.tsx:103-110`) is a Collapsible. The body shows the custom color CRUD form. The user can hide the body by collapsing. `grep -n 'subtitle\|customCount' src/components/workspace/ThreadLibrarySection.tsx` returns 0. A user with 5 custom colors collapses the section. They come back later, see "Thread Library" but don't remember they have 5 custom colors. They re-add 5 colors (the existing 5 are still there, but they think they need to add more). Or they think they have 0 custom colors and the app's auto-matching is sufficient. The fix is a subtitle in the section header showing the custom color count. ## Where - ThreadLibrarySection: `src/components/workspace/ThreadLibrarySection.tsx` - Collapsible: same wrapper as the Path Defaults section - No count display: `grep -n 'customCount' src/` returns 0 ## Suggested fix shape Same pattern as the Path Defaults subtitle (#275): ```tsx <Collapsible title="Thread Library" subtitle={`${userColors.length} custom colors`} icon={<Palette size={14} />} open={open} onToggle={onToggle} > {/* existing body */} </Collapsible> ``` The user sees "Thread Library: 5 custom colors" without expanding. ## Severity Low. The user can expand. Power users with many custom colors notice. ## Discovered by Gap analysis (2026-10-02) of settings modal affordances. ## Related - #275 (open) — Path Defaults subtitle. Same pattern. - The Collapsible component (per `src/components/workspace/Collapsible.tsx`) is the shared wrapper. - The Thread Library's per-color CRUD is in the body; the count is the collapsed-state summary.
Author
Owner

Shipped at 6db9235 on origin/main.

src/components/workspace/ThreadLibrarySection.tsx now passes a subtitle to the Collapsible wrapper using the existing count prop. Header reads:

[icon] Thread Library
         5 colors in library

in both collapsed and expanded states. The body's count row remains as the expanded-state source of truth.

Same pattern as #275 (Path Defaults). Collapsible already supports subtitle after the #275 fix — no wrapper change needed.

Closes #276.

Shipped at 6db9235 on origin/main. `src/components/workspace/ThreadLibrarySection.tsx` now passes a `subtitle` to the `Collapsible` wrapper using the existing `count` prop. Header reads: ``` [icon] Thread Library 5 colors in library ``` in both collapsed and expanded states. The body's count row remains as the expanded-state source of truth. Same pattern as #275 (Path Defaults). `Collapsible` already supports `subtitle` after the #275 fix — no wrapper change needed. Closes #276.
Mark closed this issue 2026-10-04 13:58:38 +00:00
Sign in to join this conversation.
No description provided.