Wire 'Break up' button in task selection modal #13

Closed
opened 2026-07-05 20:02:17 -07:00 by pyr0ball · 1 comment
Collaborator

Context

Part of #7. task_selection_modal.dart has a bare "Break up" _ActionButton with no callback param, while the backend command V1ApplicationCommandUseCases.breakUpTask is implemented and tested (MVP-AC-11).

Scope

  • Add an onBreakUp callback param to the modal's action button
  • Wire it to open the child-task breakup flow and call breakUpTask

Out of scope

Timeline card quick-action icon (tracked in #13); any new UI for entering child task rows if one doesn't already exist — reuse existing components where possible.

Acceptance criteria

Tapping "Break up" in the task modal creates child tasks via the existing backend command.

#7

## Context Part of #7. `task_selection_modal.dart` has a bare "Break up" `_ActionButton` with no callback param, while the backend command `V1ApplicationCommandUseCases.breakUpTask` is implemented and tested (MVP-AC-11). ## Scope - [ ] Add an `onBreakUp` callback param to the modal's action button - [ ] Wire it to open the child-task breakup flow and call `breakUpTask` ## Out of scope Timeline card quick-action icon (tracked in #13); any new UI for entering child task rows if one doesn't already exist — reuse existing components where possible. ## Acceptance criteria Tapping "Break up" in the task modal creates child tasks via the existing backend command. ## Related #7
pyr0ball added this to the FocusFlow V1 — Feature Complete milestone 2026-07-05 20:02:17 -07:00
pyr0ball added the
type:feature
priority:blocking-v1
area:flutter-ui
labels 2026-07-05 20:02:17 -07:00
pyr0ball added a new dependency 2026-07-05 20:04:17 -07:00
Author
Collaborator

Implemented. Added:

  • SchedulerCommandController.breakUpTask() wiring to V1ApplicationCommandUseCases.breakUpTask.
  • A new _BreakUpDialog (lib/widgets/task_selection/break_up_dialog.dart) supporting the full MVP-AC-11 shape: a growable list of child-task rows, each with title (required), duration, priority, and reward. "Break up" submits only rows with a non-empty title.
  • Modal's "Break up" button opens the dialog via showDialog and forwards drafted ApplicationChildTaskDrafts to a new onBreakUp callback, which FocusFlowHome wires to the command above.

Updated the existing modal widget test (it previously asserted Break up was a no-op — now it asserts the dialog opens and can be cancelled). flutter test and flutter analyze clean.

Implemented. Added: - `SchedulerCommandController.breakUpTask()` wiring to `V1ApplicationCommandUseCases.breakUpTask`. - A new `_BreakUpDialog` (`lib/widgets/task_selection/break_up_dialog.dart`) supporting the full MVP-AC-11 shape: a growable list of child-task rows, each with title (required), duration, priority, and reward. "Break up" submits only rows with a non-empty title. - Modal's "Break up" button opens the dialog via `showDialog` and forwards drafted `ApplicationChildTaskDraft`s to a new `onBreakUp` callback, which `FocusFlowHome` wires to the command above. Updated the existing modal widget test (it previously asserted Break up was a no-op — now it asserts the dialog opens and can be cancelled). `flutter test` and `flutter analyze` clean.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: eva/focus-flow#13
No description provided.