diff --git a/package-lock.json b/package-lock.json index 1472304..426865d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ayco/cozy", - "version": "0.1.22", + "version": "0.1.23", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ayco/cozy", - "version": "0.1.22", + "version": "0.1.23", "dependencies": { "@astrojs/netlify": "^2.2.2", "@extractus/article-extractor": "^7.2.15", diff --git a/package.json b/package.json index 36dea39..30650b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ayco/cozy", - "version": "0.1.22", + "version": "0.1.23", "scripts": { "start": "astro dev", "build": "astro build" diff --git a/src/components/Library.astro b/src/components/Library.astro index 09af494..2144892 100644 --- a/src/components/Library.astro +++ b/src/components/Library.astro @@ -64,28 +64,36 @@ const {postDivSelector, skipSave = false} = Astro.props; link.href = url; link.onclick = async (e) => { e.preventDefault(); + localStorage.setItem('scrollPosition', window.scrollY.toString()); scroll(0,0); renderPost(responseText, url, postDivSelector?.value) } const item = document.createElement('li'); item.appendChild(link); list?.appendChild(item); - - }); }); window.addEventListener('popstate', async (data) => { let url = data.state?.url; + let isHome = false; if (!url) { url = window.location.href; + isHome = true; + } else { + // replace scrollPosition + localStorage.setItem('scrollPosition', window.scrollY.toString()); } const fullResponse = await cache.match(url) fullResponse?.text().then(data => { const responseText = data; renderPost(responseText, url, postDivSelector?.value, true); + if (isHome) { + const scrollPosition = localStorage.getItem('scrollPosition'); + scrollTo(0, scrollPosition ? parseInt(scrollPosition) : 0); + } }); }); }