Skip to content

Wire up Collapse All / Expand All — implemented, tested, unreachable #89

Description

@kitikonti

Problem

collapseAll and expandAll are fully implemented, unit-tested, and wired to zero UI surfaces. No user can reach them.

  • Implementation: src/store/slices/expansionActions.ts:82 (expandAll) and :90 (collapseAll)
  • Exposed on the store interface: src/store/slices/taskSlice.ts:125-126
  • Unit tests: tests/unit/store/taskSlice.test.ts:1425-1505
  • References anywhere in src/components/, src/config/, src/hooks/: none

Verified by grep — outside the store slice and its tests, the identifiers appear nowhere in the codebase.

Why it is worth wiring

Measured on examples/mars-colony.ownchart (29 tasks, 7 summaries): collapse-all reduces the chart from 29 visible rows to 7. For users with phase-structured projects this is a significant readability win that costs one evening of work, because the hard part is already written and tested.

Scope

Wire the existing actions to the UI. No new state, no new logic.

  • Ribbon buttons in the appropriate tab (candidate: View), following the existing useViewTabActions pattern
  • Keyboard shortcuts, registered via useKeyboardShortcuts (candidates: Ctrl+Shift+[ / Ctrl+Shift+] — confirm no collision with existing bindings)
  • A HelpTopic entry in src/config/helpContent.ts (project rule: new user-facing features need help content)
  • Consider a context-menu entry on summary rows

Acceptance criteria

  • Collapse All on the mars-colony fixture leaves 7 visible rows; Expand All restores 29
  • Expansion state round-trips through save/load (open is already persisted per task)
  • Undo/redo of an unrelated edit does not disturb expansion state
  • E2E coverage for both actions
  • npm run ci:local green

Notes

Split out of #88. During the concept work on #88 this surfaced as existing-but-unreachable functionality. It is not a substitute for #88 — collapsing hides child tasks, whereas #88 aims to keep every child bar visible while compressing vertically. The two solve different problems and both are wanted.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions