Immich Web - Main screen window scrolling up (changing the scrolling position) after exiting full screen image preview #4051

Closed
opened 2026-02-20 02:59:16 -05:00 by deekerman · 2 comments
Owner

Originally created by @psla on GitHub (Oct 10, 2024).

The bug

  1. Open main immich web page
  2. Click on the picture
  3. Click escape

Observe: window scrolls (it looks like it scrolls by roughly the height of the "X years ago" bar height). Actually, I think it scrolls so that the picture that was selected is in the first row.

https://github.com/user-attachments/assets/19e62999-fe99-40fa-9798-7acdbe129e3f

I would expect that the underlying canvas with images would not change after entering a picture and then hitting escape.

The OS that Immich Server is running on

Linux 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux

Version of Immich Server

v1.117.0

Version of Immich Mobile App

n/a

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

version: "3.3"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - /mnt/nas/public/wspolne/Fotografie:/mnt/media/Fotografie:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always

  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      PG_DATA: /var/lib/postgresql/data
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always
  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      SCHEDULE: "@daily"
      BACKUP_NUM_KEEP: 2
      BACKUP_DIR: /db_dumps
    volumes:
      - /mnt/newhome/unprivileged-docker/immich/db_dumps:/db_dumps
    depends_on:
      - database

volumes:
  pgdata:
  model-cache:

Your .env content

➜  immich cat .env | grep -v '#'

DB_HOSTNAME=immich_postgres
DB_USERNAME=XXX
DB_PASSWORD=XXXX
DB_DATABASE_NAME=immich



REDIS_HOSTNAME=immich_redis






UPLOAD_LOCATION=/mnt/nas/srv/immich/pictures
THUMB_LOCATION=/mnt/nvmesrv/immich/pictures/thumbs


TYPESENSE_API_KEY=




PUBLIC_LOGIN_PAGE_MESSAGE=


IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003


IMMICH_API_URL_EXTERNAL=https://immich.....

Reproduction steps

  1. Open main immich web page
  2. Click on the picture
  3. Click escape

Relevant log output

No response

Additional information

No response

Originally created by @psla on GitHub (Oct 10, 2024). ### The bug 1. Open main immich web page 2. Click on the picture 3. Click escape Observe: window scrolls (it looks like it scrolls by roughly the height of the "X years ago" bar height). Actually, I think it scrolls so that the picture that was selected is in the first row. https://github.com/user-attachments/assets/19e62999-fe99-40fa-9798-7acdbe129e3f I would expect that the underlying canvas with images would not change after entering a picture and then hitting escape. ### The OS that Immich Server is running on Linux 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux ### Version of Immich Server v1.117.0 ### Version of Immich Mobile App n/a ### Platform with the issue - [ ] Server - [X] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML version: "3.3" services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs - /mnt/nas/public/wspolne/Fotografie:/mnt/media/Fotografie:ro env_file: - .env ports: - 2283:3001 depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache:/cache env_file: - .env restart: always redis: container_name: immich_redis image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: always database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} PG_DATA: /var/lib/postgresql/data volumes: - pgdata:/var/lib/postgresql/data restart: always backup: container_name: immich_db_dumper image: prodrigestivill/postgres-backup-local env_file: - .env environment: POSTGRES_HOST: database POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_USER: ${DB_USERNAME} POSTGRES_PASSWORD: ${DB_PASSWORD} SCHEDULE: "@daily" BACKUP_NUM_KEEP: 2 BACKUP_DIR: /db_dumps volumes: - /mnt/newhome/unprivileged-docker/immich/db_dumps:/db_dumps depends_on: - database volumes: pgdata: model-cache: ``` ### Your .env content ```Shell ➜ immich cat .env | grep -v '#' DB_HOSTNAME=immich_postgres DB_USERNAME=XXX DB_PASSWORD=XXXX DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis UPLOAD_LOCATION=/mnt/nas/srv/immich/pictures THUMB_LOCATION=/mnt/nvmesrv/immich/pictures/thumbs TYPESENSE_API_KEY= PUBLIC_LOGIN_PAGE_MESSAGE= IMMICH_WEB_URL=http://immich-web:3000 IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 IMMICH_API_URL_EXTERNAL=https://immich..... ``` ### Reproduction steps 1. Open main immich web page 2. Click on the picture 3. Click escape ### Relevant log output _No response_ ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (Oct 10, 2024):

This is working as intended for the mechanism of jumping to any point on the timeline. The "cursor" seeks for the asset and put the asset on the top row of the screen.

You can see the same thing when scrolling to any point on the timeline, click on the asset and then escape the viewer screen.

Granted that keeping the offset would be nicer but it adds a lot of complexity in the already complicated mechanism

@alextran1502 commented on GitHub (Oct 10, 2024): This is working as intended for the mechanism of jumping to any point on the timeline. The "cursor" seeks for the asset and put the asset on the top row of the screen. You can see the same thing when scrolling to any point on the timeline, click on the asset and then escape the viewer screen. Granted that keeping the offset would be nicer but it adds a lot of complexity in the already complicated mechanism
Author
Owner

@Snowknight26 commented on GitHub (Nov 7, 2024):

To revive this potentially.. any consideration for being able to turn this behavior off?

Imagine you're in the main photos view and your mouse is hovering on an image that you want to click on, knowing that after clicking on this one, you want to click on the one just above.

So you attempt to do just that. Halfway down the photos page you click on your first photo, then when you're finished viewing it you close that image (escape, back arrow, whatever), and then you move the mouse to where the next image should have been.. but because the photos page changed the scroll position, it's no longer there. Now you need to visually realign yourself, scan the page, realize the image you want isn't there (because it scrolled up).. and now you've lost time. So you scroll up a tad and click on the 2nd image, look at it, finish viewing it, go back to the photos page, and realize you have to go through that whole process for the remaining 10 photos you wanted to casually view.

It's not a very user friendly behavior.

@Snowknight26 commented on GitHub (Nov 7, 2024): To revive this potentially.. any consideration for being able to turn this behavior off? Imagine you're in the main photos view and your mouse is hovering on an image that you want to click on, knowing that after clicking on this one, you want to click on the one just above. So you attempt to do just that. Halfway down the photos page you click on your first photo, then when you're finished viewing it you close that image (escape, back arrow, whatever), and then you move the mouse to where the next image _should_ have been.. but because the photos page changed the scroll position, it's no longer there. Now you need to visually realign yourself, scan the page, realize the image you want isn't there (because it scrolled up).. and now you've lost time. So you scroll up a tad and click on the 2nd image, look at it, finish viewing it, go back to the photos page, and realize you have to go through that whole process for the remaining 10 photos you wanted to casually view. It's not a very user friendly behavior.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#4051
No description provided.