MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-1305

2.4 follow-up — child-item panel rows open the quick-view peek on click (reuse RelationshipPeekLink), like the relationships panel

Done
Description

Make the child-item panel on the work-item detail page open the SHARED quick-view peek on click, exactly like the relationships panel already does — a consistency fix (motir-core, frontend only).

Shipped reality

  • app/(authed)/items/[key]/_components/ChildList.tsx renders each child as a plain <Link href="/items/<id>"> that NAVIGATES away.
  • The relationships panel already does the right thing via RelationshipPeekLink (same dir): a real anchor to the item, but a PLAIN primary click is intercepted to open ?peek=<id> (the shared IssueQuickView modal); modifier/middle-click still opens the full page in a new tab natively.
  • The detail page ALREADY mounts <IssueQuickViewController /> (items/[key]/page.tsx:455), so the peek infra is present — nothing new to wire.

The change

  • In ChildList, replace the inner <Link> with RelationshipPeekLink (reuse it — do not re-implement the click interception), keeping the existing row markup (type icon · identifier · title · status pill · assignee) and classes. RelationshipPeekLink is 'use client'; rendering it from the (server) ChildList is fine.

Acceptance criteria

  • Plain-clicking a child row opens the quick-view peek modal (not a full navigation); ⌘/ctrl/middle-click still opens the child's detail page in a new tab; keyboard Enter opens the peek.
  • Row markup/fields/tokens unchanged (--el-* + shape tokens only); no new component invented — reuses RelationshipPeekLink.
  • Extend the issue-detail E2E to assert a child row opens the peek (and a modified click does not), waiting on the ?peek URL / panel state, not a timeout.

Context refs

  • Reuses RelationshipPeekLink + usePeekOpen/IssueQuickView (shipped). Files: ChildList.tsx, RelationshipPeekLink.tsx, IssueQuickViewController. Token/interaction rules per motir-core/CLAUDE.md.
Status
Done
Type
Sub-task