[PR #24902] feat: Pinch-zoom on memories photos #18019

Open
opened 2026-02-05 16:31:17 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/24902
Author: @FreddyFunk
Created: 12/28/2025
Status: 🔄 Open

Base: mainHead: feat/memory-zoom-controls


📝 Commits (3)

  • 17d8d04 feat: hide/show controls based on zoom state in memories
  • 1636484 Merge branch 'main' into feat/memory-zoom-controls
  • fb1903a Update web/src/lib/components/memory-page/memory-photo-viewer.svelte

📊 Changes

6 files changed (+148 additions, -77 deletions)

View changed files

📝 mobile/lib/pages/photos/memory.page.dart (+34 -23)
📝 mobile/lib/presentation/pages/drift_memory.page.dart (+34 -23)
📝 mobile/lib/presentation/widgets/memory/memory_card.widget.dart (+18 -13)
📝 mobile/lib/widgets/memories/memory_card.dart (+28 -14)
📝 web/src/lib/components/memory-page/memory-photo-viewer.svelte (+21 -2)
📝 web/src/lib/components/memory-page/memory-viewer.svelte (+13 -2)

📄 Description

Description

When viewing memories, users can zoom in on photos to see details. Previously, the navigation controls (tap areas for previous/next) remained active while zoomed, causing accidental navigation when trying to pan around a zoomed image.

This PR adds zoom state tracking to the memory viewer components. When a user zooms in on a photo:

  • Navigation tap overlays are hidden (mobile)
  • Slideshow auto-advancement is paused (web)
  • Controls reappear when the user zooms back out

Relates to discussion: https://github.com/immich-app/immich/discussions/21905

How Has This Been Tested?

  • Manual testing on web: verified zoom in pauses slideshow, zoom out resumes
  • Verified zoom state resets when navigating to a different asset
  • Mobile testing (not yet tested)

Screenshots (if appropriate)

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

A LLM was used to co-develop the code, create test images for manual testing, and prepare the PR submission.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/24902 **Author:** [@FreddyFunk](https://github.com/FreddyFunk) **Created:** 12/28/2025 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/memory-zoom-controls` --- ### 📝 Commits (3) - [`17d8d04`](https://github.com/immich-app/immich/commit/17d8d04099cf871dc033d32c6933c03e88d9168d) feat: hide/show controls based on zoom state in memories - [`1636484`](https://github.com/immich-app/immich/commit/1636484ddffbeb0659180d31fc8333fa6527057a) Merge branch 'main' into feat/memory-zoom-controls - [`fb1903a`](https://github.com/immich-app/immich/commit/fb1903aacf7d3eec5f0e66bea9d997957e8e9417) Update web/src/lib/components/memory-page/memory-photo-viewer.svelte ### 📊 Changes **6 files changed** (+148 additions, -77 deletions) <details> <summary>View changed files</summary> 📝 `mobile/lib/pages/photos/memory.page.dart` (+34 -23) 📝 `mobile/lib/presentation/pages/drift_memory.page.dart` (+34 -23) 📝 `mobile/lib/presentation/widgets/memory/memory_card.widget.dart` (+18 -13) 📝 `mobile/lib/widgets/memories/memory_card.dart` (+28 -14) 📝 `web/src/lib/components/memory-page/memory-photo-viewer.svelte` (+21 -2) 📝 `web/src/lib/components/memory-page/memory-viewer.svelte` (+13 -2) </details> ### 📄 Description ## Description When viewing memories, users can zoom in on photos to see details. Previously, the navigation controls (tap areas for previous/next) remained active while zoomed, causing accidental navigation when trying to pan around a zoomed image. This PR adds zoom state tracking to the memory viewer components. When a user zooms in on a photo: - Navigation tap overlays are hidden (mobile) - Slideshow auto-advancement is paused (web) - Controls reappear when the user zooms back out Relates to discussion: https://github.com/immich-app/immich/discussions/21905 ## How Has This Been Tested? - [x] Manual testing on web: verified zoom in pauses slideshow, zoom out resumes - [x] Verified zoom state resets when navigating to a different asset - [ ] Mobile testing (not yet tested) <details><summary><h2>Screenshots (if appropriate)</h2></summary> <!-- Add screenshots/recordings if you have them --> </details> ## Checklist: - [x] I have performed a self-review of my own code - [x] I have made corresponding changes to the documentation if applicable - [x] I have no unrelated changes in the PR. - [x] I have confirmed that any new dependencies are strictly necessary. - [ ] I have written tests for new code (if applicable) - [x] I have followed naming conventions/patterns in the surrounding code - [x] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc. - [x] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`) ## Please describe to which degree, if any, an LLM was used in creating this pull request. A LLM was used to co-develop the code, create test images for manual testing, and prepare the PR submission. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:31:17 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#18019