Mert
b554664791
chore!: duration in milliseconds ( #28003 )
...
* server changes
* openapi
* web changes
* mobile changes
* assume 3.0 client
* deprecate
* review feedback
* update medium tests
* linting
2026-04-30 09:44:27 -04:00
Mees Frensel
081c75bb21
fix(web): refresh memories hourly ( #28114 )
2026-04-28 11:18:51 -04:00
Min Idzelis
45ccdb37fb
refactor(web): replace asset-viewer listener based face hover with overlay elements ( #27400 )
2026-04-27 12:08:34 +02:00
Jason Rasmussen
a16d233a0c
chore(web): sort imports ( #27922 )
...
* feat: sort imports
* fix: something?
2026-04-21 14:51:38 -04:00
Freddie Floydd
b9ca68f6e4
chore(web): rename components to PascalCase ( #28013 )
...
chore: rename components to PascalCase
2026-04-21 12:29:42 -04:00
Min Idzelis
c78b1d8ab4
fix(web): prevent interaction with detail panel behind person side panel ( #27309 )
2026-04-20 15:26:06 +02:00
Min Idzelis
9d33853544
fix(web): respect abort signal after timeline bucket fetches ( #27563 )
...
Change-Id: I4bf7c7458883b50bd21484b1029d62526a6a6964
2026-04-17 16:18:14 -04:00
Mees Frensel
8fbeb64c59
fix(web): use event for zooming out after opening face editor ( #27789 )
2026-04-17 12:14:24 +02:00
Jason Rasmussen
6aadb7b5bd
feat: dynamic languages ( #27869 )
...
Co-authored-by: xantin <github@xantin.be >
2026-04-16 12:37:37 -04:00
Min Idzelis
d5d2ebd9bf
fix(web): close edit faces panel on Escape key press ( #27519 )
...
Move `showEditFaces` state to `assetViewerManager` so the edit faces
panel open/close state is globally accessible. Add Escape key handling
to `PersonSidePanel` that closes the assign-face sub-panel first, then
the edit faces panel. Guard the asset viewer's global Escape-to-close
action so it doesn't fire while either face panel is open.
Change-Id: I0c947fe0758aef0eac473f4cc72f6a3b6a6a6964
2026-04-15 20:22:20 -05:00
Jason Rasmussen
4ffa26c969
feat: auth logout page ( #27831 )
...
* feat: auth logout page
* feat: skip login if already logged in
2026-04-15 16:33:52 -04:00
Jason Rasmussen
fed5cc1ae1
feat: upgrade immich/ui ( #27792 )
2026-04-14 16:18:12 +00:00
Jason Rasmussen
1ba0989e15
refactor: auth manager ( #27638 )
2026-04-14 08:49:24 -04:00
Andreas Heinz
bfcf34d8b5
feat(web): persist state of file path information in details panel ( #27770 )
...
feat(enhancement): persist state of file path info in details panel
2026-04-13 12:18:34 -05:00
renovate[bot]
921c8a8de3
chore(deps): update dependency typescript to v6 ( #27577 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-07 17:15:55 +02:00
Min Idzelis
649d14822a
refactor(web): rename MonthGroup to TimelineMonth ( #27447 )
...
Rename MonthGroup class to TimelineMonth to better convey that it represents a single month within the timeline. Updates the file, class, and all references across 16 files.
Change-Id: Id50fd6d4b7d0e431571b67c0f81c0e316a6a6964
2026-04-03 13:27:12 -04:00
Min Idzelis
2166f07b1f
refactor(web): rename DayGroup to TimelineDay ( #27446 )
...
Rename DayGroup class to TimelineDay to better convey that it represents
a single day within the timeline. Updates the file, class, and all
references across 13 files.
Change-Id: I9faef9bad73cd5b11f40daaf5eb140dd6a6a6964
2026-04-01 19:30:54 -04:00
Michel Heusschen
4eb531197e
fix(web): prevent AssetUpdate from adding unrelated timeline assets ( #27369 )
2026-04-01 08:14:28 -04:00
Jason Rasmussen
17d4941089
refactor: asset select manager ( #27330 )
2026-03-30 15:45:57 +01:00
Jason Rasmussen
5889c42eb6
refactor: asset select manager ( #27329 )
2026-03-27 14:23:33 -04:00
Jason Rasmussen
14cce0cba3
refactor: asset select manager ( #27327 )
2026-03-27 13:48:51 -04:00
Jason Rasmussen
9b80ffd9c6
refactor: selection mananger ( #27325 )
2026-03-27 12:41:52 -04:00
Min Idzelis
2d950db940
refactor(web): replace intersection booleans with enum ( #27306 )
...
Change-Id: I0c9703d5960031142ae47fef23805e0a6a6a6964
2026-03-27 08:37:12 -04:00
Min Idzelis
4b9ebc2cff
refactor(web): migrate isFaceEditMode from standalone store to assetViewerManager ( #27307 )
2026-03-27 13:20:15 +01:00
Jason Rasmussen
7d58d5be12
refactor: memory manager ( #27206 )
2026-03-26 17:36:25 +00:00
Jason Rasmussen
7877097b3f
refactor: asset viewing store ( #27204 )
2026-03-26 13:22:40 -04:00
Jason Rasmussen
940a1d4ab8
refactor: change location ( #27201 )
2026-03-26 13:22:14 -04:00
Jason Rasmussen
f2445ecab1
fix(web): stop in-progress uploads on logout ( #27021 )
2026-03-19 13:05:11 -04:00
Jason Rasmussen
48e6e17829
feat: primary notifications ( #26988 )
2026-03-17 17:54:11 -04:00
rthrth-svg
2c6d4f3fe1
fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset ( #26890 )
...
Co-authored-by: Min Idzelis <min123@gmail.com >
2026-03-13 22:27:08 +01:00
Mees Frensel
9996ee12d0
refactor(web): crop area tool ( #26843 )
2026-03-11 18:58:26 +01:00
Min Idzelis
8764a1894b
feat: adaptive progressive image loading for photo viewer ( #26636 )
...
* feat(web): adaptive progressive image loading for photo viewer
Replace ImageManager with a new AdaptiveImageLoader that progressively
loads images through quality tiers (thumbnail → preview → original).
New components and utilities:
- AdaptiveImage: layered image renderer with thumbhash, thumbnail,
preview, and original layers with visibility managed by load state
- AdaptiveImageLoader: state machine driving the quality progression
with per-quality callbacks and error handling
- ImageLayer/Image: low-level image elements with load/error lifecycle
- PreloadManager: preloads adjacent assets for instant navigation
- AlphaBackground/DelayedLoadingSpinner: loading state UI
Zoom is handled via a derived CSS transform applied to the content
wrapper in AdaptiveImage, with the zoom library (zoomTarget: null)
only tracking state without manipulating the DOM directly.
Also adds scaleToCover to container-utils and getAssetUrls to utils.
* fix: don't partially render images in firefox
* add passive loading indicator to asset-viewer
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-03-11 09:48:46 -05:00
Michel Heusschen
45eff1c663
fix(web): prevent unrelated assets from appearing in tag view ( #26816 )
2026-03-10 17:43:30 +01:00
Min Idzelis
8e50d25f45
feat(web): animate zoom toggle with cubicOut easing ( #26731 )
2026-03-10 10:42:02 -05:00
Snowknight26
4791d9c0c3
fix(web): show the correct cursor at crop bounds when editing an asset ( #26748 )
2026-03-09 19:39:01 +01:00
Michel Heusschen
a47b232235
fix(web): refresh recent albums sidebar after album changes ( #26757 )
2026-03-09 17:11:32 +01:00
Timon
011ecbb43d
refactor(web): remove replaceAsset action ( #26444 )
2026-03-04 09:05:44 -06:00
Paul Makles
f94e0fbc39
fix(maintenance mode): wait for valid server config on restart ( #26456 )
...
Signed-off-by: izzy <me@insrt.uk >
2026-03-04 11:16:21 +00:00
Mees Frensel
a284e38890
fix(web): timeline and asset viewer RTL support ( #26513 )
2026-03-03 09:01:54 +01:00
Min Idzelis
062546c168
refactor: rename image cancel method ( #26381 )
2026-03-02 09:23:20 -05:00
Michel Heusschen
771816f601
feat(web): map timeline sidepanel ( #26532 )
...
* feat(web): map timeline panel
* update openapi
* remove #key
* add index on lat/lng
2026-02-26 12:03:23 -05:00
Daniel Dietzler
55ee9f76da
chore: eslint 10 ( #26490 )
2026-02-24 08:24:18 -05:00
Brandon Wees
e5722c525b
feat: getAssetEdits respond with edit IDs ( #26445 )
...
* feat: getAssetEdits respond with edit IDs
* chore: cleanup typings for edit API
* chore: cleanup types with jason
* fix: openapi sync
* fix: factory
2026-02-23 20:57:57 +00:00
Jason Rasmussen
1d11106dd0
refactor: add to album ( #26366 )
2026-02-19 15:27:30 -05:00
Michel Heusschen
ceef65154d
fix(web): clear cache when asset changes ( #26257 )
...
* fix(web): clear cache when asset changes
* formatting
2026-02-17 11:43:08 +01:00
Michel Heusschen
9ab887d5d2
perf(web): speed up multi asset operations ( #26217 )
2026-02-14 15:24:47 -05:00
Jason Rasmussen
5bf4e9595c
refactor: purchase store ( #25734 )
2026-02-12 13:32:17 -05:00
dolfje
5f18110e97
fix(web): removing a person in an asset, doesn't remove the asset in … ( #26068 )
...
* fix(web): removing a person in an asset, doesn't remove the asset in the persons view (without refresh)
* prettier
---------
Co-authored-by: Nikos Verschore <nikos@uwsoftware.be >
2026-02-09 11:51:02 -06:00
Michel Heusschen
211dc3c056
fix: add missing translations for image editor ( #25957 )
2026-02-06 13:08:24 +01:00
Michel Heusschen
57e0835b46
fix: ensure theme stays in sync with @immich/ui ( #25922 )
2026-02-05 08:36:20 -05:00