From 2e83540bec5e037b7cb46a957c8646f55c22368c Mon Sep 17 00:00:00 2001 From: Josh Trotter <6855626+maflaven@users.noreply.github.com> Date: Sat, 23 Aug 2025 19:24:43 -0600 Subject: [PATCH] prevent on-page nav links from opening another window; prevent related resources menu link from causing scroll to top of page --- vesta/vesta_ui/src/components/nav/dl-nav.tsx | 34 ++++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/vesta/vesta_ui/src/components/nav/dl-nav.tsx b/vesta/vesta_ui/src/components/nav/dl-nav.tsx index e08a373e73..3bea0ce24b 100644 --- a/vesta/vesta_ui/src/components/nav/dl-nav.tsx +++ b/vesta/vesta_ui/src/components/nav/dl-nav.tsx @@ -38,21 +38,27 @@ export default function DLNav({ const elId = href.split('#')[1] const el = document.getElementById(elId) - if (href.startsWith('/')) router.push(href, { scroll: false }) - else window.open(href, '_blank'); - - if (el) { - window.scrollTo({ - top: el.offsetTop - NavBarHeights[breakpoint].condensed, - behavior: 'smooth', - }) + if (!el) { + // no element to scroll to, so it's a normal link + window.open(href, '_blank'); + return } + router.push(href, { scroll: false }) + window.scrollTo({ + top: el.offsetTop - NavBarHeights[breakpoint].condensed, + behavior: 'smooth', + }) + onClickNavLink && onClickNavLink() } - const [anchorEl, setAnchorEl] = React.useState(null); - const handleClick = (event: React.MouseEvent) => setAnchorEl(event.currentTarget); + const [anchorEl, setAnchorEl] = React.useState(null); + const handleClick = (event: React.MouseEvent) => { + // prevent scrolling to the top of the page + event.preventDefault() + setAnchorEl(event.currentTarget); + } const handleClose = () => setAnchorEl(null); const aboutSearchParams: AboutSearchParamsState = { index: 0 } @@ -102,10 +108,10 @@ export default function DLNav({ typography={linkTypography} /> )