Skip to content

console(nav): drag-to-reorder is wired only for group-free navigation — every stock app's sidebar is grouped, so enableReorder never renders a grip #11626

Description

@objectstack-fleet

QA-source: objectstack-ai/objectstack#21782 · platform-core.shell-nav-personalization · acceptance[2]

Clause A3 of platform-core.shell-nav-personalization fails in the ObjectStack 17.7 pre-release checklist run objectstack-ai/objectstack#21782 (framework subject 316be321e, console pin 2e818d0b51ec). An independent verifier (VF4, RUNNER rule 7; code at the pin) confirmed it: P3 (product gap). It predates the 17.6.0 console pin 31971ff1e; no open duplicate was found. Owner: objectui.

Reproduction

  1. Stock showcase boot, admin form sign-in.
  2. Server truth: GET /api/v1/meta/app?id=showcase_app. The navigation carries groups (8), as do Setup and Account.
  3. Browser: open /_console/apps/showcase_app/showcase_task and hover or try to drag any sidebar entry.
  4. Expected: a drag grip, and the new order restored after reload (localStorage objectui-nav-order-showcase_app).
  5. Actual: 0 [aria-label="Drag to reorder"], no sortable, and the key is never written. Seen on two loads.

Mechanism

  • NavigationRenderer.tsx:1590 computes hasGroups.
  • The DndContext / SortableNavigationItem path exists only in the if (!hasGroups) arm (:1614-1631). The grouped arm (:1650 ff.) renders plain NavigationItemRenderer.
  • UnifiedSidebar.tsx:583 passes enableReorder={!isMobile} unconditionally.
  • useNavOrder (:76-110) persists only __root__.
  • The prop doc (:224, "Enable drag-to-reorder for navigation items") states no flat-only limit.
  • The code is identical at 31971ff1e. No open duplicate.

Done when

Reorder works on grouped navigation (within or across groups), or the maintainers rule flat-only and the prop doc and checklist clause say so.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions