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-997

2.9.7 [design] Delete affordance in the archived view + archived-item delete-confirm (live-descendant cascade)

Done
Description

Estimate: 40m · Type: design

Design gate for 2.9.5 (MOTIR-994) — deleting an archived work item. Extend the design/work-items/ THREE-file asset set (notes + archived.mock.html / delete-confirm.mock.html + regenerated .png).

Design:

  • The Delete affordance in the archived view (built by 2.9.3 / archived.mock.html): where Delete sits relative to the existing Restore column/action (e.g. a row ⋯ menu carrying Restore + Delete…, or a separate danger control). Reflect the gate split — Restore = canEdit, Delete = canManage — so a row can show Restore but not Delete. Also decide whether Delete appears on the archived item's detail page actions (alongside the 2.9.6 banner).
  • The confirm modal for an ARCHIVED item. Reuse the shipped delete-confirm treatment (2.8.1) + its count grammar (totalCount / per-kind breakdown). The one new thing to design is the single-node cascade warning: deleting an archived PARENT also permanently deletes its non-archived, live descendants (archive is single-node). Design copy + emphasis that makes this unmistakable (e.g. "This also permanently deletes N active work item(s) that are not archived"), distinct from the normal all-archived case.
  • Danger-tone, button states, and the post-delete feedback (row leaves the list / navigate away from detail).

Acceptance criteria

  • design/work-items/ three files updated together (notes + mock + regenerated png), showing the archived-view Delete affordance (with the canManage/canEdit split) and the archived-item confirm modal incl. the live-descendant cascade warning copy.
  • Notes specify placement, gating, the cascade-warning copy for the live-children case, tones, and states — citing reuse of delete-confirm (2.8.1) rather than a new modal.

Context refs

  • design/work-items/archived.mock.html (2.9.1, the archived view), design/work-items/delete-confirm.mock.html + notes (2.8.1)
  • lib/services/workItemsService.ts:1533 deleteWorkItem (subtree cascade incl. live descendants), :1601 getDeletePreview
  • components/issues/actions/DeleteWorkItemDialog.tsx (the modal being reused)