docs: fix mobile menu not closing when clicking a link (#13618)

This commit is contained in:
Shahed Nasser
2025-09-29 15:23:50 +03:00
committed by GitHub
parent 97cc8fdc15
commit 4bbec480a9
3 changed files with 23 additions and 3 deletions

View File

@@ -9,10 +9,12 @@ import { SelectedMenu } from ".."
type MainNavMobileMainMenu = {
setSelectedMenus: React.Dispatch<React.SetStateAction<SelectedMenu>>
onOpenLink?: () => void
}
export const MainNavMobileMainMenu = ({
setSelectedMenus: setSelectedMenu,
onOpenLink,
}: MainNavMobileMainMenu) => {
const { navItems } = useMainNav()
@@ -44,7 +46,11 @@ export const MainNavMobileMainMenu = ({
}}
>
{item.type === "link" && (
<Link href={item.link} className="block w-full">
<Link
href={item.link}
className="block w-full"
onClick={() => onOpenLink?.()}
>
{item.title}
</Link>
)}

View File

@@ -11,12 +11,14 @@ type MainNavMobileSubMenuProps = {
menu: MenuItem[]
title: string
setSelectedMenus: React.Dispatch<React.SetStateAction<SelectedMenu>>
onOpenLink?: () => void
}
export const MainNavMobileSubMenu = ({
menu,
title,
setSelectedMenus,
onOpenLink,
}: MainNavMobileSubMenuProps) => {
const filteredItems: (MenuItemLink | MenuItemSubMenu)[] = useMemo(() => {
return menu.filter(
@@ -38,7 +40,11 @@ export const MainNavMobileSubMenu = ({
)}
>
{item.type === "link" && (
<Link href={item.link} className="block w-full">
<Link
href={item.link}
className="block w-full"
onClick={() => onOpenLink?.()}
>
{item.title}
</Link>
)}

View File

@@ -20,6 +20,10 @@ export const MainNavMobileMenu = () => {
const [selectedMenus, setSelectedMenus] = useState<SelectedMenu>([])
const ref = useRef(null)
const handleOpenLink = () => {
setIsOpen(false)
}
return (
<div className="flex lg:hidden justify-center items-center">
<Button
@@ -57,7 +61,10 @@ export const MainNavMobileMenu = () => {
className="w-full px-docs_1.5 h-3/4 flex flex-col justify-center"
>
{selectedMenus.length === 0 && (
<MainNavMobileMainMenu setSelectedMenus={setSelectedMenus} />
<MainNavMobileMainMenu
setSelectedMenus={setSelectedMenus}
onOpenLink={handleOpenLink}
/>
)}
{selectedMenus.length > 0 && (
<>
@@ -82,6 +89,7 @@ export const MainNavMobileMenu = () => {
<MainNavMobileSubMenu
{...selectedMenus[selectedMenus.length - 1]}
setSelectedMenus={setSelectedMenus}
onOpenLink={handleOpenLink}
/>
</>
)}