From a7df0d335cb6925c9db43d56aaf0c88235326769 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 12 Jun 2024 20:03:40 +0800 Subject: [PATCH] Return to previous library path after reading --- .../patterns/LibraryCards/LibraryGridCard.tsx | 1 + .../patterns/LibraryCards/LibraryListCard.tsx | 1 + packages/web/pages/[username]/[slug]/index.tsx | 12 +++++++++++- packages/web/pages/_app.tsx | 9 ++++++++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx b/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx index c5e388d81..fb2fd6502 100644 --- a/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx +++ b/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx @@ -93,6 +93,7 @@ export function LibraryGridCard(props: LinkedItemCardProps): JSX.Element { props.setIsChecked(props.item.id, !props.isChecked) return } + window.sessionStorage.setItem('nav-return', router.asPath) if (event.metaKey || event.ctrlKey) { window.open( `/${props.viewer.profile.username}/${props.item.slug}`, diff --git a/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx b/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx index 12b23f437..a7d277230 100644 --- a/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx +++ b/packages/web/components/patterns/LibraryCards/LibraryListCard.tsx @@ -100,6 +100,7 @@ export function LibraryListCard(props: LinkedItemCardProps): JSX.Element { props.setIsChecked(props.item.id, !props.isChecked) return } + window.sessionStorage.setItem('nav-return', router.asPath) if (event.metaKey || event.ctrlKey) { window.open( `/${props.viewer.profile.username}/${props.item.slug}`, diff --git a/packages/web/pages/[username]/[slug]/index.tsx b/packages/web/pages/[username]/[slug]/index.tsx index 2ba3318d3..1084ece99 100644 --- a/packages/web/pages/[username]/[slug]/index.tsx +++ b/packages/web/pages/[username]/[slug]/index.tsx @@ -89,9 +89,14 @@ export default function Home(): JSX.Element { // return // } // } + const navReturn = window.sessionStorage.getItem('nav-return') + if (navReturn) { + router.push(navReturn) + return + } + const query = window.sessionStorage.getItem('q') router.push(`/home?${query}`) - // router.push(`/home`) }, [router, viewerData, article]) const goPreviousOrHome = useCallback(() => { @@ -298,6 +303,11 @@ export default function Home(): JSX.Element { name: 'Return to library', shortcut: ['u'], perform: () => { + const navReturn = window.sessionStorage.getItem('nav-return') + if (navReturn) { + router.push(navReturn) + return + } const query = window.sessionStorage.getItem('q') if (query) { router.push(`/home?${query}`) diff --git a/packages/web/pages/_app.tsx b/packages/web/pages/_app.tsx index c9bbbb95a..e81880576 100644 --- a/packages/web/pages/_app.tsx +++ b/packages/web/pages/_app.tsx @@ -42,7 +42,14 @@ const generateActions = (router: NextRouter) => { name: 'Go to Home (Library) ', shortcut: ['g', 'h'], keywords: 'go home', - perform: () => router?.push('/home'), + perform: () => { + const navReturn = window.sessionStorage.getItem('nav-return') + if (navReturn) { + router.push(navReturn) + return + } + router?.push('/home') + }, }, { id: 'lightTheme',