Compare commits

...

2 commits

Author SHA1 Message Date
Ayo
9409b02d88 0.1.23 2023-06-14 23:30:06 +02:00
Ayo
185a671920 feat: preserve home scroll position 2023-06-14 23:29:55 +02:00
3 changed files with 13 additions and 5 deletions

4
package-lock.json generated
View file

@ -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",

View file

@ -1,6 +1,6 @@
{
"name": "@ayco/cozy",
"version": "0.1.22",
"version": "0.1.23",
"scripts": {
"start": "astro dev",
"build": "astro build"

View file

@ -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);
}
});
});
}