Skip to content

image saving feedback (#141)#154

Merged
chizberg merged 2 commits into
mainfrom
saving-feedback
Jul 19, 2026
Merged

image saving feedback (#141)#154
chizberg merged 2 commits into
mainfrom
saving-feedback

Conversation

@chizberg

Copy link
Copy Markdown
Owner

No description provided.

@chizberg
chizberg requested a review from Copilot July 19, 2026 18:36
@chizberg chizberg linked an issue Jul 19, 2026 that may be closed by this pull request

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR enhances the image-save UX in the image details fullscreen preview by surfacing save feedback (banner + icon state), and refactors the model state from a boolean “saved” flag to a save counter so repeated saves can re-trigger feedback.

Changes:

  • Add savesCount plumbing into ZoomableImageScreen and show save feedback UI.
  • Refactor ImageDetailsState from isImageSaved: Bool to imageSaveCount: Int (with a computed isImageSaved for compatibility).
  • Make SavedBanner reusable across screens by widening its access level.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
Rewind/Screens/ImageDetails/ZoomableImageScreen.swift Adds savesCount, shows a saved banner, and updates the save button icon based on save count.
Rewind/Screens/ImageDetails/ImageDetailsView.swift Passes imageSaveCount into ZoomableImageScreen when presenting fullscreen preview.
Rewind/Screens/ImageDetails/ImageDetailsModel.swift Replaces isImageSaved with imageSaveCount and increments on successful save; reintroduces isImageSaved as a derived property.
Rewind/Screens/Comparison/ComparisonScreen.swift Makes SavedBanner non-private so it can be reused from other screens.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 27 to 31

SavedBanner(savesCount: savesCount)

ZoomableImageView(
image: image,
Comment on lines 161 to 164
struct SavedBanner: View {
var savesCount: Int

var body: some View {
chizberg and others added 2 commits July 19, 2026 21:05
RewindTests is a hosted target, so the app fully starts inside the test
process: AppGraph builds the URLSession performer, CLLocationManager and
remotes, and RootView forces a live RewindMapImpl with tile loading and
annotation requests. All of it is @mainactor and competes with the tests
for the main actor, which makes the timer-dependent MapModelTests blow
their 2s eventually() deadline on CI.

Pick the entry point instead of gating inside RewindApp, so the app type
itself stays unaware of tests. Debug-only: tests always build Debug.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

@chizberg
chizberg merged commit 64a2588 into main Jul 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Image saving feedback on a fullscreen image preview

2 participants