mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-11-11 13:07:48 +01:00
702 -> 220 lines, decomposed rather than just moved, because a single
~600-line State class was the actual problem:
note_editor_document.dart the text model -- template, controllers, and
which of the two sources (raw body vs. section
fields) is authoritative. None of it needed a
BuildContext or a setState, which is what made
it the honest seam. The raw<->guided conversions
and the initial-template detection moved here as
tryAdoptGuided/materialiseToRaw/forInitialText.
note_editor_wizard.dart the two-step priority+template wizard, which now
owns its own step state instead of parking three
fields on the editor.
note_editor_step_page.dart the guided per-step view.
note_editor_chrome.dart the template picker + mode toggle.
note_editor_raw_field.dart the raw-mode text field.
note_editor_mode.dart the mode enum, re-exported so callers are
unaffected.
note_editor_{widget,views} parts, not libraries: createState returns a
private class, so the widget and its State
cannot be split across libraries.
The layout comments about Expanded/expands:true are load-bearing (nesting
broke the constraint chain in release builds before), so they travelled with
the code they describe rather than being summarised away.
Verified: 313 tests pass, flutter analyze clean. Covered lines went UP,
1922 -> 1958, because the wizard's state is now exercised in a widget of its
own; every new file reports 100%.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| capture_screen.dart | ||
| confirm.dart | ||
| github_mirror_screen.dart | ||
| markdown_view.dart | ||
| note_actions_sheet.dart | ||
| note_date_range_field.dart | ||
| note_detail_screen.dart | ||
| note_editor_chrome.dart | ||
| note_editor_document.dart | ||
| note_editor_mode.dart | ||
| note_editor_raw_field.dart | ||
| note_editor_step_page.dart | ||
| note_editor_views.dart | ||
| note_editor_widget.dart | ||
| note_editor_wizard.dart | ||
| note_editor.dart | ||
| note_tile.dart | ||
| notes_filter_sheet.dart | ||
| notes_list_navigation.dart | ||
| notes_list_screen.dart | ||
| settings_screen.dart | ||
| theme.dart | ||