diff --git a/web/src/lib/utils/navigation.ts b/web/src/lib/utils/navigation.ts index 145591db7f8e6..4d5660f1737ff 100644 --- a/web/src/lib/utils/navigation.ts +++ b/web/src/lib/utils/navigation.ts @@ -66,7 +66,7 @@ async function navigateAssetRoute(route: AssetRoute) { const { assetId } = route; const next = assetId ? currentUrlReplaceAssetId(assetId) : currentUrlWithoutAsset(); if (next !== currentUrl()) { - await goto(next, { replaceState: false, noScroll: true }); + await goto(next, { replaceState: false }); } } diff --git a/web/src/routes/(user)/albums/+page.svelte b/web/src/routes/(user)/albums/+page.svelte index 3761820023a8c..b2b6260904fb9 100644 --- a/web/src/routes/(user)/albums/+page.svelte +++ b/web/src/routes/(user)/albums/+page.svelte @@ -26,11 +26,12 @@ }); onMount(() => { let newScroll = sessionStorage.getItem(SessionStorageKey.SCROLL_POSITION); - if (newScroll) + if (newScroll) { scrollSlot.scroll({ - top: parseFloat(newScroll), + top: Number.parseFloat(newScroll), behavior: 'instant', }); + } sessionStorage.removeItem(SessionStorageKey.SCROLL_POSITION); }); diff --git a/web/src/routes/(user)/people/+page.svelte b/web/src/routes/(user)/people/+page.svelte index eda4893230450..a7a773211d102 100644 --- a/web/src/routes/(user)/people/+page.svelte +++ b/web/src/routes/(user)/people/+page.svelte @@ -65,7 +65,9 @@ beforeNavigate(({ to }) => { // Save current scroll information when going into a person page. if (to && to.url.pathname.startsWith(AppRoute.PEOPLE)) { - if (nextPage) sessionStorage.setItem(SessionStorageKey.INFINITE_SCROLL_PAGE, nextPage.toString()); + if (nextPage) { + sessionStorage.setItem(SessionStorageKey.INFINITE_SCROLL_PAGE, nextPage.toString()); + } sessionStorage.setItem(SessionStorageKey.SCROLL_POSITION, scrollSlot.scrollTop.toString()); } else { sessionStorage.removeItem(SessionStorageKey.INFINITE_SCROLL_PAGE); @@ -75,11 +77,12 @@ const restoreScrollPosition = () => { let newScroll = sessionStorage.getItem(SessionStorageKey.SCROLL_POSITION); - if (newScroll) + if (newScroll) { scrollSlot.scroll({ - top: parseFloat(newScroll), + top: Number.parseFloat(newScroll), behavior: 'instant', }); + } sessionStorage.removeItem(SessionStorageKey.SCROLL_POSITION); }; @@ -94,19 +97,19 @@ let newNextPage = sessionStorage.getItem(SessionStorageKey.INFINITE_SCROLL_PAGE); if (newNextPage && nextPage) { let startingPage = nextPage, - pagesToLoad = parseInt(newNextPage) - nextPage; + pagesToLoad = Number.parseInt(newNextPage) - nextPage; if (pagesToLoad) { handlePromiseError( Promise.all( - Array(pagesToLoad).map((_, i) => { + Array.from({ length: pagesToLoad }).map((_, i) => { return getAllPeople({ withHidden: true, page: startingPage + i }); }), ).then((pages) => { - pages.forEach((page) => { + for (const page of pages) { people = people.concat(page.people); - }); - nextPage = pages[pages.length - 1].hasNextPage ? startingPage + pagesToLoad : null; + } + nextPage = pages.at(-1)?.hasNextPage ? startingPage + pagesToLoad : null; restoreScrollPosition(); // wait until extra pages are loaded }), );