immich/web
Eli Gao 5c80e8734b
feat: original-sized previews for non-web-friendly images (#14446)
* feat(server): extract full-size previews from RAW images

* feat(web): load fullsize preview for RAW images when zoomed in

* refactor: tweaks for code review

* refactor: rename "converted" preview/assets to "fullsize"

* feat(web/server): fullsize preview for non-web-friendly images

* feat: tweaks for code review

* feat(server): require ASSET_DOWNLOAD premission for fullsize previews

* test: fix types and interfaces

* chore: gen open-api

* feat(server): keep only essential exif in fullsize preview

* chore: regen openapi

* test: revert unnecessary timeout

* feat: move full-size preview config to standalone entry

* feat(i18n): update en texts

* fix: don't return fullsizePath when disabled

* test: full-size previews

* test(web): full-size previews

* chore: make open-api

* feat(server): redirect to preview/original URL when fullsize thumbnail not available

* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off

* refactor(server): AssetRepository.deleteFiles with Kysely

* fix(server): type of MediaRepository.writeExif

* minor simplification

* minor styling changes and condensed wording

* simplify

* chore: reuild open-api

* test(server): fix media.service tests

* test(web): fix photo-viewer test

* fix(server):  use fullsize image when requested

* fix file path extension

* formatting

* use fullsize when zooming back out or when "display original photos" is enabled

* simplify condition

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-31 13:24:28 -04:00
..
bin chore: web shutdown signal (#7114) 2024-02-14 08:57:02 -06:00
src feat: original-sized previews for non-web-friendly images (#14446) 2025-03-31 13:24:28 -04:00
static refactor: immich logo assets (#16850) 2025-03-13 18:05:08 -04:00
.dockerignore feat(web)!: SPA (#5069) 2023-11-17 22:13:36 -06:00
.gitignore Add ablum feature to web (#352) 2022-07-15 23:18:17 -05:00
.npmrc Add web interface with admin functionality (#167) 2022-05-21 02:23:55 -05:00
.nvmrc chore(deps): update node.js to v22.14.0 (#16132) 2025-02-15 21:29:33 -06:00
.prettierignore chore(web): fix weblate conflicts (#10071) 2024-06-10 13:59:54 +01:00
.prettierrc chore(web): enable prettier json key sorting recursively (#10120) 2024-06-11 12:52:20 +01:00
Dockerfile chore(deps): update node (#16538) 2025-03-03 14:31:34 -05:00
eslint.config.js chore(web): update typescript-eslint (#17093) 2025-03-28 00:04:31 -04:00
package-lock.json chore(web): update to newer persisted store package name (#17094) 2025-03-28 20:40:57 +01:00
package.json chore(web): update to newer persisted store package name (#17094) 2025-03-28 20:40:57 +01:00
postcss.config.cjs chore(web): prettier (#2821) 2023-06-30 23:50:47 -05:00
README.md fix(web): Updated web README.md (#12899) 2024-09-25 12:59:35 +00:00
svelte.config.js feat: map globe view, style hot reloading and load lag fixed (#17079) 2025-03-28 14:08:54 +00:00
tailwind.config.js feat(web): support long-press selection on mobile web (#16906) 2025-03-24 16:36:36 -05:00
tsconfig.json feat: timeline performance (#16446) 2025-03-18 09:14:46 -05:00
vite.config.js fix(web): fix lost scrollpos on deep link to timeline asset, scrub stop (#16305) 2025-03-04 20:34:53 -06:00

Immich web project

This project uses the SvelteKit web framework. Please refer to the SvelteKit docs for information on getting started as a contributor to this project. In particular, it will help you navigate the project's code if you understand the basics of SvelteKit routing.

When developing locally, you will run a SvelteKit Node.js server. When this project is deployed to production, it is built as a SPA and deployed as part of the server project.