Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-300Done

5.4.10 Components admin UI — Project settings → Components (list, create/edit w/ default assignee, move-or-remove delete)

Estimate: 32m · Depends on: 5.4.3, 5.4.7

The settings surface: app/(authed)/settings/project/components/page.tsx + the hub card (after Estimation), per the 5.4.7 design, on the 5.4.3 routes — the 6.4 members page (and the in-flight 5.3.6 fields page) as the structural template.

Build: the name-ordered list (description, default assignee w/ Avatar, item count, actions); add/edit (name uniqueness inline error, description, the member picker with the explicit "None" row + the at-create helper copy); the move-or-remove delete dialog (radio choice + target picker excluding self + counts, both branches wired); empty / loading / error; the non-admin read-only state. Server actions → componentsServicerouter.refresh(); strings under settings.components (next-intl).

Acceptance criteria

  • The page matches components.mock.html panel-for-panel (list, add/edit incl. default-assignee picker, the move-or-remove dialog with live counts + both branches, empty/read-only states).
  • All mutations round-trip honouring the admin gate; a non-admin member sees read-only; the delete dialog's move branch actually reassigns (verified against an in-use component) and the remove branch detaches.
  • Axe-clean; token tiers only; next-intl strings; integration tests over the action wiring + gate; coverage ≥90%.

Context refs

  • design/projects/components.mock.html + notes (5.4.7) — THE authority
  • 5.4.3 routes/actions; settings/project/members/page.tsx (6.4) + the hub card list
  • The i18n threading pattern; the 2.4.9 destructive-dialog grammar