From 8196bd9bbd6fcc00592f62324825e31e40e2c2f9 Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Fri, 16 Jan 2026 16:11:09 -0500 Subject: [PATCH] refactor(web): routes (#25313) --- web/src/lib/actions/scroll-memory.ts | 6 +- web/src/lib/components/QueueCard.svelte | 7 +- .../QueueStorageMigrationDescription.svelte | 8 +- .../StorageTemplateSettings.svelte | 8 +- .../album-page/album-card-group.svelte | 5 +- .../album-page/albums-table-row.svelte | 6 +- .../asset-viewer/activity-viewer.svelte | 11 +- .../asset-viewer/asset-viewer-nav-bar.svelte | 8 +- .../asset-viewer/asset-viewer.svelte | 5 +- .../asset-viewer/detail-panel.svelte | 18 ++- .../components/layouts/AdminPageLayout.svelte | 12 +- .../memory-page/memory-viewer.svelte | 11 +- .../places-page/places-card-group.svelte | 5 +- .../individual-shared-viewer.svelte | 7 +- .../gallery-viewer/gallery-viewer.svelte | 7 +- .../navigation-bar/account-info-panel.svelte | 6 +- .../navigation-bar/navigation-bar.svelte | 6 +- .../search-bar/search-bar.svelte | 9 +- .../side-bar/purchase-info.svelte | 5 +- .../side-bar/recent-albums.svelte | 3 +- .../side-bar/user-sidebar.svelte | 26 ++--- .../upload-asset-preview.svelte | 10 +- .../sharedlinks-page/SharedLinkCard.svelte | 4 +- .../actions/TimelineKeyboardActions.svelte | 4 +- .../user-settings-list.svelte | 10 +- .../utilities-page/utilities-menu.svelte | 10 +- web/src/lib/constants.ts | 45 +------- web/src/lib/managers/auth-manager.svelte.ts | 4 +- web/src/lib/route.spec.ts | 36 ++++++ web/src/lib/route.ts | 105 ++++++++++++++++++ web/src/lib/services/album.service.ts | 6 +- web/src/lib/services/library.service.ts | 10 +- web/src/lib/services/queue.service.ts | 24 +--- web/src/lib/services/shared-link.service.ts | 4 +- web/src/lib/services/user-admin.service.ts | 6 +- web/src/lib/services/workflow.service.ts | 10 +- web/src/lib/utils/album-utils.ts | 4 +- web/src/lib/utils/asset-utils.ts | 4 +- web/src/lib/utils/auth.ts | 6 +- web/src/lib/utils/metadata-search.ts | 9 -- web/src/lib/utils/navigation.ts | 6 +- web/src/routes/(user)/albums/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 15 +-- web/src/routes/(user)/buy/+page.svelte | 4 +- web/src/routes/(user)/explore/+page.svelte | 10 +- .../[[assetId=id]]/+page.svelte | 5 +- .../[[photos=photos]]/[[assetId=id]]/+page.ts | 4 +- .../[[assetId=id]]/+page.svelte | 5 +- .../[[assetId=id]]/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 3 +- .../(user)/photos/[[assetId=id]]/+page.svelte | 5 +- .../[[assetId=id]]/+page.svelte | 9 +- .../(user)/shared-links/(list)/+layout.svelte | 18 +-- .../shared-links/(list)/[id]/+layout.ts | 7 +- .../(list)/[id]/edit/+page.svelte | 4 +- web/src/routes/(user)/sharing/+page.svelte | 6 +- .../(user)/sharing/sharedlinks/+page.ts | 6 +- .../[[assetId=id]]/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 33 ++---- .../geolocation/photos/[photoId]/+page.ts | 7 +- .../workflows/[workflowId]/+page.svelte | 4 +- web/src/routes/+layout.svelte | 11 +- web/src/routes/+page.svelte | 4 +- web/src/routes/+page.ts | 5 +- web/src/routes/admin/+page.ts | 6 +- web/src/routes/admin/jobs-status/+page.ts | 4 +- .../library-management/(list)/+layout.svelte | 10 +- .../(list)/new/+page.svelte | 6 +- .../library-management/[id]/+layout.svelte | 6 +- .../admin/library-management/[id]/+layout.ts | 4 +- .../library-management/[id]/edit/+page.svelte | 4 +- .../routes/admin/queues/[name]/+page.svelte | 4 +- web/src/routes/admin/queues/[name]/+page.ts | 5 +- web/src/routes/admin/user-management/+page.ts | 4 +- .../admin/users/(list)/new/+page.svelte | 6 +- .../routes/admin/users/[id]/+layout.svelte | 6 +- web/src/routes/admin/users/[id]/+layout.ts | 7 +- .../routes/admin/users/[id]/edit/+page.svelte | 6 +- web/src/routes/auth/change-password/+page.ts | 4 +- web/src/routes/auth/login/+page.svelte | 8 +- web/src/routes/auth/login/+page.ts | 6 +- web/src/routes/auth/onboarding/+page.svelte | 12 +- web/src/routes/auth/pin-prompt/+page.svelte | 4 +- web/src/routes/auth/pin-prompt/+page.ts | 4 +- web/src/routes/auth/register/+page.svelte | 4 +- web/src/routes/auth/register/+page.ts | 4 +- web/src/routes/link/+page.ts | 11 +- 87 files changed, 425 insertions(+), 383 deletions(-) create mode 100644 web/src/lib/route.spec.ts create mode 100644 web/src/lib/route.ts delete mode 100644 web/src/lib/utils/metadata-search.ts diff --git a/web/src/lib/actions/scroll-memory.ts b/web/src/lib/actions/scroll-memory.ts index 1c19fdd8ab..9953bf00fb 100644 --- a/web/src/lib/actions/scroll-memory.ts +++ b/web/src/lib/actions/scroll-memory.ts @@ -1,14 +1,12 @@ import { navigating } from '$app/stores'; -import { AppRoute, SessionStorageKey } from '$lib/constants'; +import { SessionStorageKey } from '$lib/constants'; import { handlePromiseError } from '$lib/utils'; interface Options { /** - * {@link AppRoute} for subpages that scroll state should be kept while visiting. - * * This must be kept the same in all subpages of this route for the scroll memory clearer to work. */ - routeStartsWith: AppRoute; + routeStartsWith: string; /** * Function to clear additional data/state before scrolling (ex infinite scroll). */ diff --git a/web/src/lib/components/QueueCard.svelte b/web/src/lib/components/QueueCard.svelte index f57fb984a2..b98c732348 100644 --- a/web/src/lib/components/QueueCard.svelte +++ b/web/src/lib/components/QueueCard.svelte @@ -2,7 +2,8 @@ import QueueCardBadge from '$lib/components/QueueCardBadge.svelte'; import QueueCardButton from '$lib/components/QueueCardButton.svelte'; import Badge from '$lib/elements/Badge.svelte'; - import { asQueueItem, getQueueDetailUrl } from '$lib/services/queue.service'; + import { Route } from '$lib/route'; + import { asQueueItem } from '$lib/services/queue.service'; import { locale } from '$lib/stores/preferences.store'; import { QueueCommand, type QueueCommandDto, type QueueResponseDto } from '@immich/sdk'; import { Icon, IconButton, Link } from '@immich/ui'; @@ -50,7 +51,7 @@ {/if}
- +