From e97042c916d106b4677417b56df6784394c04ea0 Mon Sep 17 00:00:00 2001 From: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Date: Thu, 26 Jan 2023 11:14:26 -0500 Subject: [PATCH] Scroll to top when last visit was more than 24 hours ago (#2457) * Scroll to top when last visit was more than 24 hours ago Signed-off-by: Fanit Kolchina * Changed localStorage to sessionStorage Signed-off-by: Fanit Kolchina Signed-off-by: Fanit Kolchina (cherry picked from commit 8565bb2adfaf630d4997315d0f723b53ad6249b0) --- assets/js/nav-scroll.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/assets/js/nav-scroll.js b/assets/js/nav-scroll.js index c45b215919b..6ffc181f228 100644 --- a/assets/js/nav-scroll.js +++ b/assets/js/nav-scroll.js @@ -1,12 +1,27 @@ let siteNav = document.querySelector('.site-nav'); +const key = 'scroll'; document.addEventListener('DOMContentLoaded', () => { - const scroll = localStorage.getItem('scroll'); - if (scroll !== null) { - siteNav.scrollTop = parseInt(scroll); + const scroll = JSON.parse(sessionStorage.getItem(key)); + + const currentDate = new Date(); + + if (scroll !== null && currentDate.getTime() < scroll.expiry) { + siteNav.scrollTop = parseInt(scroll.value); + } + else { + sessionStorage.removeItem(key); } }); window.addEventListener('beforeunload', () => { - localStorage.setItem('scroll', siteNav.scrollTop); -}); + const currentDate = new Date(); + + // add the scroll value that expires after one day + const scroll = { + value: siteNav.scrollTop, + expiry: currentDate.getTime() + 24 * 60 * 60 * 1000, + } + + sessionStorage.setItem(key, JSON.stringify(scroll)); +}); \ No newline at end of file