diet-guard/app/lib/widgets
Krzysztof kuhy Rudnicki c897279c8b fix: clear every macro field before a prefill, add the phone's delivery button
`fillControllersFromDish` set the dish's name, four macros and `grams` but
left `perGrams` untouched. A `100` left there by an earlier food-bank pick
made `nutritionForPortion` read the dish's per-portion macros as per-100g and
rescale them: one real entry on 2026-08-23 logged 472 kcal as 1217.8 (258/100).

The PC never had this -- `_gatelock_delivery.py` calls `_clear_inputs()` first
-- so the fix is that same discipline, as one `MacroControllers.clear()` call
rather than a `perGrams.clear()` line a seventh field could forget. `fillFrom`
now clears too, and `edit_entry_screen` routes through it instead of six
hand-written assignments; its `initState` fill had the same shape.

The old tests asserted controller *text* and passed throughout the bug, so the
new ones assert the computed `Nutrition` -- verified failing (400 -> 1200.0)
before the fix. `clear()` gets an enumerated test so a new field fails until
it is cleared too.

Also adds the log screen's "Today's delivery" button, matching the PC lock
screen's affordance: explicit taps are unguarded per the Triggers table, still
skip dishes already logged, and show the queue count. The whole action row
moved to its own widget, which put `log_meal_screen.dart` back under the cap.
The label is a FittedBox in an Expanded -- measured, since a Row clips an
oversized label without ever throwing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QQpCiPaSbyRpwsLkH3dgsX
2026-08-23 09:34:47 +02:00
..
filters Split food_bank_screen; share the filter widgets with history 2026-08-15 19:43:08 +02:00
food_bank Split food_bank_screen; share the filter widgets with history 2026-08-15 19:43:08 +02:00
history Split food_bank_screen; share the filter widgets with history 2026-08-15 19:43:08 +02:00
autocomplete_suggestion_list.dart Compact LogMealScreen so it fits without scrolling on-screen keyboard 2026-07-04 05:19:23 +02:00
average_summary_row.dart Show weekly and monthly average intake on both devices 2026-08-09 14:59:40 +02:00
day_status_calendar.dart Make the meal gate usable without a pointer on a 1366x768 screen 2026-07-30 16:21:27 +02:00
log_meal_actions_row.dart fix: clear every macro field before a prefill, add the phone's delivery button 2026-08-23 09:34:47 +02:00
macro_input_row.dart fix: clear every macro field before a prefill, add the phone's delivery button 2026-08-23 09:34:47 +02:00
slot_selector_row.dart Read the meal schedule from a forward-only history (Dart) 2026-08-16 14:41:37 +02:00
streak_summary_row.dart Add budget-adherence calendar, streaks, and freely-editable synced budget 2026-07-13 21:31:45 +02:00
sync_health_banner.dart Make the phone publish on every tick, and fail closed on Firebase errors 2026-08-10 14:35:37 +02:00
today_progress_card.dart Pin meal pills to one row; drop the "Logged" restatement 2026-08-16 14:18:39 +02:00