Skip to content

Separate Dashboard-tree expansion from opening the Dashboard #472

Description

@BorisTyshkevich

Problem

The Dashboard hierarchy currently uses the Dashboard row itself to expand/collapse the tree, while opening the Dashboard in View mode requires a different gesture.

This makes the primary Dashboard name behave like a disclosure control instead of navigation. Users expect the Dashboard name to open that Dashboard, while the visible chevron should own hierarchy expansion.

This revises the Dashboard-row gesture contract originally defined in #426.

Required behaviour

Split the Dashboard row into distinct click targets:

  • Disclosure chevron (> / expanded variant): expand or collapse that Dashboard's hierarchy only.
  • Dashboard name / primary row content: open the exact Dashboard in View mode on the main surface.
  • Trailing action menu: retain its existing Dashboard actions and do not trigger navigation or expansion.

Opening the Dashboard must use its stable Dashboard ID:

openDashboard({ dashboardId, mode: 'view' });

Do not identify the Dashboard by title or collection position.

Interaction details

  • Clicking the Dashboard name must not change its expanded/collapsed tree state.
  • Clicking the chevron must not open, rerender, or focus the Dashboard surface.
  • The Dashboard icon may be part of the same primary navigation target as the name.
  • Double-clicking the name must not create duplicate navigation/history entries or introduce a second action.
  • If Shift-click currently opens Edit mode, retain that behaviour on the primary name target unless Edit navigation is redesigned separately.
  • Menu-button clicks must stop propagation and affect neither expansion nor navigation.

The old delayed single-click/double-click arbitration is no longer needed for Dashboard rows because expansion and navigation have separate explicit targets. Member-row arbitration is outside this issue unless shared code requires a safe refactor.

Keyboard and accessibility

  • The chevron/disclosure control must have an accessible name such as Expand / Collapse and expose aria-expanded.
  • Enter/Space on the disclosure control toggles expansion only.
  • Activating the Dashboard name/primary row opens View mode.
  • Tree Left/Right keys should continue to collapse/expand according to the existing keyboard-tree model.
  • Focus styling must make the disclosure control and Dashboard navigation target distinguishable.

Acceptance criteria

  • Clicking only the disclosure chevron expands or collapses the Dashboard hierarchy.
  • Clicking the Dashboard name opens that Dashboard in View mode.
  • Name navigation preserves the current expansion state.
  • Chevron activation does not navigate or rerun the Dashboard.
  • Opening uses the stable Dashboard ID.
  • The trailing menu remains isolated from both behaviours.
  • Double-click does not cause duplicate route/history changes.
  • Keyboard and screen-reader users can independently expand the hierarchy and open the Dashboard.
  • Tests cover collapsed and expanded rows, active and inactive Dashboards, menu isolation, and repeated name activation.

Non-goals

  • Changing panel/filter row interactions.
  • Changing Dashboard View/Edit rendering.
  • Moving or redesigning the trailing Dashboard action menu.
  • Persisting expansion state in workspace data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions