Editor's Path Properties has 'Path Properties' but no 'Add to favorites' for the path — user wanting to mark certain paths as 'favorites' (e.g., for a multi-path design) has no such affordance #362

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

Finding

grep -rn 'favoritePath\|isFavoritePath' src/components/editor/ returns 0. The editor has no path-level favorites.

A user with 30 paths:

  • Wants to mark the 5 most-important ones as "favorites"
  • For quick access
  • For filtering

The Gallery has design-level favorites (per the snippet). The editor has no path-level equivalent.

Where

  • Path list row: src/components/editor/EditorRightPanel.tsx
  • No favorite: grep -rn 'isFavoritePath' src/components/editor/ returns 0

Suggested fix shape

  1. Type: add isFavorite: boolean to the StitchPath type.

  2. UI: a small star icon in the path list row:

<button
  onClick={() => onToggleFavorite(p.id)}
  data-testid="favorite-path"
  title={p.isFavorite ? 'Unfavorite' : 'Favorite'}
>
  <Star size={11} fill={p.isFavorite ? '#E6A948' : 'none'} />
</button>
  1. Filter: a "Show favorites only" toggle in the path list:
<button onClick={() => setShowFavoritesOnly((v) => !v)}>
  <Star size={12} /> Favorites only
</button>
  1. Use cases:
  • Power users with many paths
  • Quick access to important paths
  • The compact path list (per #267) shows only favorites
  1. Persistence: the favorite flag persists with the design (in the Gallery).

Severity

Low. The user can organize. Power users notice.

Discovered by

Gap analysis (2026-10-02) of editor path identification.

  • The Gallery's design favorites (per the snippet) are the parent.
  • #244 (open) — Stitch type icon. Same row; the icon is one visual cue.
  • #270 (open) — Node count. Same row.
  • #282 (open) — Color name. Same row.
  • Figma's "Star" component is the parallel.
## Finding `grep -rn 'favoritePath\|isFavoritePath' src/components/editor/` returns 0. The editor has no path-level favorites. A user with 30 paths: - Wants to mark the 5 most-important ones as "favorites" - For quick access - For filtering The Gallery has design-level favorites (per the snippet). The editor has no path-level equivalent. ## Where - Path list row: `src/components/editor/EditorRightPanel.tsx` - No favorite: `grep -rn 'isFavoritePath' src/components/editor/` returns 0 ## Suggested fix shape 1. **Type**: add `isFavorite: boolean` to the StitchPath type. 2. **UI**: a small star icon in the path list row: ```tsx <button onClick={() => onToggleFavorite(p.id)} data-testid="favorite-path" title={p.isFavorite ? 'Unfavorite' : 'Favorite'} > <Star size={11} fill={p.isFavorite ? '#E6A948' : 'none'} /> </button> ``` 3. **Filter**: a "Show favorites only" toggle in the path list: ```tsx <button onClick={() => setShowFavoritesOnly((v) => !v)}> <Star size={12} /> Favorites only </button> ``` 4. **Use cases**: - Power users with many paths - Quick access to important paths - The compact path list (per #267) shows only favorites 5. **Persistence**: the favorite flag persists with the design (in the Gallery). ## Severity Low. The user can organize. Power users notice. ## Discovered by Gap analysis (2026-10-02) of editor path identification. ## Related - The Gallery's design favorites (per the snippet) are the parent. - #244 (open) — Stitch type icon. Same row; the icon is one visual cue. - #270 (open) — Node count. Same row. - #282 (open) — Color name. Same row. - Figma's "Star" component is the parallel.
Mark closed this issue 2026-10-05 14:09:13 +00:00
Author
Owner

Closed by feat(#362): per-path favorites in editor's Path Properties. Commit c0ba105 on main.

Adds:

  • isFavorite?: boolean on StitchPath (back-compat optional)
  • Per-row Star button in compact + comfortable path list rows (filled amber when starred, outlined gray when not)
  • "Favorites only" filter chip next to the stitch-type chips (composes with search + stitch-type + sort)
  • handleTogglePathFavorite in Editor.tsx: undoable + dirty-flag, mirrors handleTogglePathLock / handleToggleColorLock / handleTogglePathBackground

10 component tests + 1 page-level placeholder, all passing. Back-compat: optional prop, button renders disabled when caller does not wire it. Editor-session metadata (pathsToStitchObjects strips it), same pattern as locked/isBackground/colorLocked/groupId.

Closed by feat(#362): per-path favorites in editor's Path Properties. Commit c0ba105 on main. Adds: * `isFavorite?: boolean` on StitchPath (back-compat optional) * Per-row Star button in compact + comfortable path list rows (filled amber when starred, outlined gray when not) * "Favorites only" filter chip next to the stitch-type chips (composes with search + stitch-type + sort) * `handleTogglePathFavorite` in Editor.tsx: undoable + dirty-flag, mirrors handleTogglePathLock / handleToggleColorLock / handleTogglePathBackground 10 component tests + 1 page-level placeholder, all passing. Back-compat: optional prop, button renders disabled when caller does not wire it. Editor-session metadata (pathsToStitchObjects strips it), same pattern as locked/isBackground/colorLocked/groupId.
Sign in to join this conversation.
No description provided.