immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
44.63k stars 2.17k forks source link

Returning to Albums ends at the top #11346

Open dodg3r opened 1 month ago

dodg3r commented 1 month ago

The bug

I have a lot of albums in the library "Album".

When I scroll down and select an album and then go back to albums, I end up at the top of the page again. This only happens in web and not in the app.

I think it´s be better to stay at the scrollingpoint as it is in the app.

The OS that Immich Server is running on

Ubuntu 22.10

Version of Immich Server

v1.109.2

Version of Immich Mobile App

v1.109.0

Platform with the issue

Your docker-compose.yml content

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - pictures:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:
  pictures:
    driver_opts:
      type: nfs
      o: addr=,nfsvers=3
      device: :/mnt/Backup/Immich_pictures

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
# UPLOAD_LOCATION=./library

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
TZ=Europe/Stockholm

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=***

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=./postgres

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Enter Albums
2. Scroll down and choose an ablum
3. Choose back

Relevant log output

No response

Additional information

No response

caburum commented 1 month ago

This also happens on the person page, when going back it goes to the top making it annoying to deal with a large number of people. A fix for this could also be useful for that page, or really any list page. I don't know if there's a browser of svelte feature that could do it automatically.

fayeinmay commented 1 month ago

Same issue for the search. You open an image, you close it, you end up on top of the search results. Really annoying. (Do tell if I should open a separate issue for that.)

caburum commented 1 month ago

It looks like each page calls goto(previousRoute) which causes SvelteKit to always go to the top of the page. Accoring to this, setting noscroll: true should fix it, though I don't know if that will cause any other issues. There's also window.history.back() which seems like it should work with SvelteKit, but that's not compatible with setting arbitrary back pages through the query parameter.

caburum commented 1 month ago

I'm going to try and fix this for the people page first, and then it should be simple to fix the others too. The way immich handles the sidebar and top nav seems to be the reason it's a little difficult, as the main scrolling area is not the body, but a smaller div inside.

hermesespinola commented 1 month ago

This also happens on iOS

eacunha commented 1 week ago

It is happening on Android app too. Very annoying.