Skip to content

Show a freeze-on-arrival note on the shopping page - #36

Merged
guplem merged 1 commit into
mainfrom
28-freeze-on-arrival-note
Jul 23, 2026
Merged

Show a freeze-on-arrival note on the shopping page#36
guplem merged 1 commit into
mainfrom
28-freeze-on-arrival-note

Conversation

@guplem

@guplem guplem commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #28

The planner already decides which items must be frozen to last (the one-trip / freezer strategy tags each TripItem with freezeOnArrival). Until now that note showed up only in the copied text, not on the page.

  • Adds a "freeze on arrival" note (snowflake icon + text) on the shopping card for any ingredient the planner marks as needing freezing.
  • Reads the exact same source as the copy output, so page and clipboard always agree.
  • No model change: the flag already reached the widget through plannedTrips; nothing was reading it.

Test plan

  • flutter analyze passes
  • flutter test test/ passes (621 tests)
  • On a menu that forces freezing, the note appears on the right cards and matches the copied list
  • Cards that do not need freezing show no note

🤖 Generated with Claude Code

The one-trip freezer strategy tags items with TripItem.freezeOnArrival and
the copied list adds a " (freeze on arrival)" suffix, but the shopping page
itself showed nothing. Users who read the page instead of copying missed the
instruction to freeze the item.

Derive the flag per ingredient from the planned trips the card already
receives (same source the copy output reads), and render a note under the
ingredient name when set. The note uses the app freeze visual (snowflake +
blue, matching the menu page warning) and the exact "freeze on arrival"
wording, so screen and copy stay in sync.

Closes #28

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@guplem guplem added the waiting-for-human-check No human has verified this yet -- direct AI output label Jul 22, 2026
@guplem guplem self-assigned this Jul 22, 2026

@guplem guplem left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed by an automated pass. The change is clean and ready for a human check.

What is done well

  • The note reads the same TripItem.freezeOnArrival flag as the copied list, so the page and the clipboard can never disagree. No model change was needed.
  • The new _freezeOnArrival getter matches the existing derived-getter style in the same file, and the snowflake icon + blue color match the freeze indicator used elsewhere.
  • Good test coverage: three widget tests assert the note shows when marked, hides when unmarked, and (important) hides when only a different ingredient must be frozen.

Findings

  • None blocking. All acceptance criteria are met.
  • Minor, no change needed: the on-screen text is freeze on arrival while the copy suffix is (freeze on arrival) with parentheses. This is intentional (a styled icon+text vs an inline suffix); the issue only asks the wording to match, and it does.

Verdict: approved pending human review. CI analyze-and-test gate must be green before merge.

@guplem
guplem merged commit 1ff816e into main Jul 23, 2026
1 check passed
@guplem
guplem deleted the 28-freeze-on-arrival-note branch July 23, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-for-human-check No human has verified this yet -- direct AI output

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show a "freeze on arrival" note on the shopping page

1 participant