Part of PAR-357. Needs the controlled Dialog from the design-system primitives task.
Problem
- Full page only. Creating an issue is a 560px standalone page (
ui/app/(app)/w/[workspace]/issues/new/page.tsx). You lose your context every time.
- Awkward layout. Team and Priority come first, then Title, then a plain textarea. Assignee, project, due date, parent, sprint and labels are hidden in a collapsed "Assignment, project and other properties" disclosure (
:127-176). Create and Cancel are stacked vertically (:180-186).
- Every entry point navigates to that page. The board's "New issue" links and the palette's "New issue" (
lib/search.ts:13) both do.
- Drafts are weak. Only title and description are kept, in sessionStorage.
Reference
Linear new-issue modal (Mobbin):
- breadcrumb "TEAM › New issue"
- large borderless title field, description editor
- a row of property pills (status · priority · assignee · project · labels · …)
- attach button
- "Create more" toggle and a "Create issue" primary button with a ⌘Enter hint
- "Save as draft" and expand-to-full-screen in the header
Do
- Build a modal openable from
C, ⌘K → "New issue", the sidebar button, group-header "+" and the board column "+". Prefill status, project, team or assignee from that context.
- Put the title first and autofocus it, then the description (rich editor), then property pills using the same pickers as the detail page.
- Add a "Create more" switch that keeps the modal open and the properties sticky.
- Persist drafts, properties included, to localStorage and show a Drafts entry in the sidebar.
- On success, show a toast "PAR-123 created · View".
- Keep
/issues/new as a full-screen fallback for deep links.
PR: https://github.com/ParadauxIO/taskl.ie/pull/61. Quick-create dialog from C, toolbar button and group +. Drafts dropped. Still to wire: sidebar button, command palette and board column + should open the dialog.