feat(todo): tasks dragged into place or under another, the add button dropped where the task goes (ADR 0033, D16)

- A project's row, held, is dragged before or after another, or a
  little to the right to become its sub-task, or onto a section's
  heading; its sub-tasks go with it, and Order changed offers Undo
  (TaskRepository.place). The list scrolls at its edges.
- The add button is dragged onto a project's list to add the task
  between two rows, onto a day in Upcoming for that day, onto Today
  for today; dropped back on its place, an ×, it gives up.
- Holding a row now drags it; a swipe to the right selects it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-01 17:28:37 +01:00
commit 36f1e9a25c
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -192,7 +192,7 @@ alternative was put to them, the choice is theirs.
the handle dragged up folding it; a button beside the month goes back to today once
another week shows. Tasks are chosen to act on together, as Todoist's: a row swiped
right or held, or *Select tasks* in Today's, Upcoming's and a project's ⋮, a tap then
choosing or letting go; the app bar counts them, with an arrow (or back) ending it,
choosing or letting go (a row held is dragged since D16); the app bar counts them, with an arrow (or back) ending it,
and a bar takes the navigation bar's place: date, move, labels (those all have
ticked; a tick added to each, one unticked taken off each), priority, and ⋮ with
complete (undone together), duplicate, deadline and delete (asked first). *Assign*
@ -221,10 +221,22 @@ alternative was put to them, the choice is theirs.
chips once typing starts, a chip picked taking its token out of the title, and the
description and the deadline behind its + (the description also from the down
arrow).
- **To come, in this order**: rows dragged into another order, and a little to the
right to become the sub-task of the row above, with Undo; the add button dragged onto
the list to add a task there, dropped back on its place (an ×) to give up, wherever
it shows; suggestions of projects and labels as `#` and `@` are typed.
- **D16 Dragging** (the developer's, 1 Nov, as Todoist's): a row of a project's list
(the Inbox's too), held, is dragged into another place, a line showing where: the
upper half of a row puts it before that row, the lower half after it, and the lower
half reached 48 px to the right of where the drag began makes it that row's last
sub-task; a section's heading takes it first in the section, or last in the group
before from its upper half. It goes with its sub-tasks, and *Order changed* offers
to undo it (`TaskRepository.place`, never under itself or its own sub-task). The
list scrolls at its edges. Holding a row therefore drags it everywhere it can be
dragged and no longer selects it (D14): a swipe to the right does. The add button
is dragged straight away, without a hold, its place meanwhile a larger × where
dropping it gives up: dropped between a project's rows, quick add adds there (each
next task below the one before); on a day in Upcoming, for that day; on Today, for
today. Today's and Upcoming's rows aren't dragged, their order being their dates',
times' and priorities'.
- **To come**: suggestions of projects and labels as `#` and `@` are typed; dragging a
task onto another day in Upcoming.
## Steps