feat: preserve home scroll position (#52)
* feat: preserve home scroll position * 0.1.23
This commit is contained in:
parent
99a028a64f
commit
7c949d6030
3 changed files with 13 additions and 5 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -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",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@ayco/cozy",
|
||||
"version": "0.1.22",
|
||||
"version": "0.1.23",
|
||||
"scripts": {
|
||||
"start": "astro dev",
|
||||
"build": "astro build"
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue