Min Idzelis
d6b39a464d
feat: improve performance: don't sort timeline buckets from server ( #24032 )
2025-11-24 17:26:52 +01:00
Jason Rasmussen
9a403d5886
refactor(web): user delete websocket event ( #24015 )
2025-11-20 07:54:29 -05:00
Jason Rasmussen
1a31faf1a2
fix: effect loop ( #24014 )
2025-11-20 07:52:37 -05:00
Daniel Dietzler
f59417cc77
chore(web): refactor replace asset ( #23972 )
2025-11-19 08:49:15 -06:00
Min Idzelis
11cec56e80
refactor(web): consolidate timeline API - merge addAssets/updateAssets into upsertAssets ( #23985 )
2025-11-19 08:48:16 -06:00
Min Idzelis
42dd3315f8
refactor(web): fix TimelineManager import - use value import instead of type-only ( #23983 )
2025-11-18 21:26:15 -06:00
Daniel Dietzler
d310c6f3cd
feat: library details page ( #23908 )
...
* feat: library details page
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2025-11-18 15:27:41 -05:00
Min Idzelis
237ddcb648
fix: incorrect header height calculation in estimated month height ( #23923 )
2025-11-17 14:14:06 -06:00
Min Idzelis
d64c339b4f
fix: null dereference when canceling bucket in album ( #23924 )
2025-11-17 14:12:28 -06:00
Min Idzelis
69880ee165
fix: deep link to last asset ( #23920 )
2025-11-17 14:12:07 -06:00
Daniel Dietzler
1200bfad13
refactor: server config and feature flags managers ( #23894 )
2025-11-14 14:10:44 -05:00
Daniel Dietzler
f1f203719d
refactor: admin settings ( #23843 )
2025-11-13 13:17:44 -05:00
Jason Rasmussen
2f40f5aad8
refactor: user admin service ( #23785 )
2025-11-11 07:42:33 -05:00
Jason Rasmussen
d5c5bdffcb
refactor: album delete ( #23773 )
2025-11-10 16:10:29 -05:00
Jason Rasmussen
dea95ac2e6
refactor: shared-link service ( #23770 )
2025-11-10 20:49:02 +00:00
Jason Rasmussen
8de6ec1a1b
refactor: album service ( #23768 )
2025-11-10 13:40:58 -05:00
Daniel Dietzler
dd393c8346
feat(web): event handler component ( #23763 )
2025-11-10 11:49:46 -05:00
Daniel Dietzler
c76324c611
fix(web): mobile scrubber on page load ( #23488 )
2025-11-01 22:15:33 -05:00
Min Idzelis
c666dc6c67
fix: back/forward navigation won't reset scroll in timeline ( #22838 )
...
* fix: back/forward navigation won't reset scroll in timeline
Fixes a bug where navigating to/from the asser-viewer from timeline causes the scroll position to be reset.
* Fix back after assetviewer next/prev navigation
* Bug fix from review
* review comments
2025-10-27 08:56:03 -05:00
Mert
3f03a88767
feat(web): wasm justified layout, sync edition ( #23194 )
...
* the invisible wasm
use npm version
* deterministic tests
* add todo
* linting
* bump library, add helpers
* use target height for unfilled rows
* update tests
2025-10-25 00:06:05 -05:00
Min Idzelis
04e2e42c88
refactor(web): improve date labels in scrubber ( #23046 )
...
refactor(web): improve timeline scrubber labeling logic
Refactor the segment calculation in the timeline scrubber to improve code clarity and fix label positioning. Process months in reverse order for more intuitive label selection, use descriptive variable names, and remove unnecessary index tracking.
2025-10-20 22:13:49 -05:00
Min Idzelis
3174a27902
refactor(web): Extract VirtualScrollManager base class from TimelineManager ( #23017 )
...
Extract common virtual scrolling functionality from TimelineManager into
a new abstract VirtualScrollManager base class. This refactoring improves
code organization and enables reuse of virtual scrolling logic.
Changes:
- Create new VirtualScrollManager abstract base class with common virtual
scrolling state and methods
- Refactor TimelineManager to extend VirtualScrollManager
- Rename 'assetsHeight' to 'bodySectionHeight' for semantic clarity
- Convert methods to use override keyword where appropriate
- Enable noImplicitOverride in tsconfig for better type safety
- Fix ApiError and AbortError class definitions with override keywords
2025-10-17 17:37:54 +00:00
Min Idzelis
2919ee4c65
fix: navigate to time action ( #20928 )
...
* fix: navigate to time action
* change-date -> DateSelectionModal; use luxon; use handle* for callback fn name
* refactor change-date dialogs
* Review comments
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2025-10-16 17:44:09 +00:00
Min Idzelis
b3055d2e94
refactor: TimelineManager is owned by Timeline.svelte ( #22839 )
...
feat: TimelineManager is owned by Timeline.svelte
2025-10-15 17:27:44 +00:00
Min Idzelis
f1e03d0022
fix(web): improve scrubber behavior on scroll-limited timelines ( #22917 )
...
Improves scroll indicator positioning when scrubbing through timelines with limited scrollable content (e.g., small albums). When a timeline's scrollable height is less than 50% of the viewport height, the scroll position is now properly distributed across the entire scrubber height, making the indicator more responsive and accurate.
Changes:
- Add `limitedScroll` state to detect scroll-constrained timelines (threshold: 50%)
- Introduce `ViewportTopMonth` type to handle lead-in/lead-out sections
- Calculate `totalViewerHeight` including top/bottom sections for accurate positioning
- Refactor scrubber to treat lead-in and lead-out as distinct scroll segments
- Update scroll position calculations to use relative percentages on constrained timelines
2025-10-15 13:13:05 -04:00
Min Idzelis
146973b072
fix: re-add scroll compensation (efficiently) ( #22848 )
...
* fix: re-add scroll compensation (efficient)
* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.
* Fix faulty logic, simplify
* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-10-14 02:16:05 +00:00
Min Idzelis
ce4e8fa6ba
feat: (perf) remove scroll compensation ( #22837 )
2025-10-10 15:48:29 -04:00
Pascal Sommer
6f3cb4f1bb
fix(web): Uniform random distribution during shuffle ( #19902 )
...
feat: better random distribution
2025-10-08 10:19:33 -04:00
Min Idzelis
b06b8ceef6
chore(web): upgrade ESLint and plugins ( #22495 )
...
* chore(web): upgrade ESLint and plugins, simplify linting configuration
- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
- eslint-plugin-svelte: ^3.9.0 → ^3.12.4
- eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
- svelte-eslint-parser: ^1.2.0 → ^1.3.3
- typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command
* pnpm dedupe
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com >
2025-10-06 12:41:28 -04:00
Jason Rasmussen
e52cc259d5
fix(web): cancel uploads on logout ( #21760 )
2025-09-10 08:15:03 -04:00
Johann
7a1c45c364
feat(web): use timeline in geolocation manager ( #21492 )
2025-09-09 21:26:26 -04:00
Jason Rasmussen
76eaee3657
fix: timeline scroll error handling ( #21324 )
2025-08-26 17:07:26 -05:00
Jason Rasmussen
d5a01c0310
fix(web): timeline time bucket issue ( #20438 )
2025-07-30 11:21:02 -05:00
Jed-Giblin
9b3718120b
feat: shared links custom URL ( #19999 )
...
* feat: custom url for shared links
* feat: use a separate route and query param
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2025-07-28 14:16:55 -04:00
Daimolean
a36840d7cc
fix(web): multi-select in ascending asset order ( #19461 )
2025-07-24 22:37:44 +01:00
Daniel Dietzler
f27bdf7523
chore: migrate to UI modal manager ( #20116 )
2025-07-23 17:27:09 -04:00
Daniel Dietzler
c1c9f30ea4
chore: migrate to immich/ui confirm modal ( #20114 )
2025-07-23 22:56:56 +02:00
renovate[bot]
250548dea6
fix(deps): update typescript-projects ( #19939 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com >
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2025-07-22 17:42:07 +00:00
Daimolean
53020852ec
fix(web): modal race condition ( #19625 )
...
* fix(web): modal race condition
* fix: translation
* fix: translation
2025-06-30 14:33:47 -05:00
Jason Rasmussen
30b4f334d8
feat: upload manager ( #19565 )
2025-06-27 09:13:43 -04:00
Jason Rasmussen
dd8969cb7d
fix: container padding ( #19316 )
2025-06-19 21:33:12 -05:00
Alex
c8a135a7ae
fix: .find() iterator api combat ( #19293 )
...
* fix: .find() iterator api combar
* Update web/src/lib/managers/timeline-manager/month-group.svelte.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2025-06-19 14:59:14 +00:00
Daniel Dietzler
caf11fbb96
fix: album asset viewer ( #19252 )
2025-06-19 09:09:23 -05:00
Zack Pollard
4c69511225
revert: "feat(web): wasm justified layout" ( #19226 )
2025-06-17 16:01:40 +00:00
Mert
bc062da11b
feat(web): wasm justified layout ( #19150 )
...
* wasm justified layout
* fix tests
* redundant layout generation
* raw position
2025-06-17 09:20:14 -05:00
Mert
5fc448bc97
chore(web): passive events ( #19179 )
2025-06-16 11:03:23 -04:00
Zack Pollard
e2dfbd66c3
ci: browser compatibility linting ( #19132 )
2025-06-13 10:54:59 -04:00
Alex
144cc8ab6d
chore: custom impl for set.difference api ( #19135 )
2025-06-12 11:41:19 -05:00
Robin Brisa
0322a8b1d9
fix(web): properly update activityManager when browsing assets ( #18909 )
2025-06-12 12:13:35 +01:00
Daniel Dietzler
22eef5f3c5
chore: more flexible modal manager types ( #19123 )
...
* fix: required argument in onClose modal function
* chore: more flexible modal manager types
2025-06-11 22:32:49 +00:00