diff --git a/packages/theme-default/src/components/Nav/NavMenuGroup.tsx b/packages/theme-default/src/components/Nav/NavMenuGroup.tsx
index 641a2ff38..ce1fba560 100644
--- a/packages/theme-default/src/components/Nav/NavMenuGroup.tsx
+++ b/packages/theme-default/src/components/Nav/NavMenuGroup.tsx
@@ -1,14 +1,13 @@
import {
matchNavbar,
type NavItem,
- type NavItemWithChildren,
type NavItemWithLink,
- type NavItemWithLinkAndChildren,
} from '@rspress/shared';
import { Link, Tag } from '@theme';
import Down from '@theme-assets/down';
import { useRef, useState } from 'react';
import { SvgWrapper } from '../SvgWrapper';
+import * as styles from './index.module.scss';
import { NavMenuSingleItem } from './NavMenuSingleItem';
export interface NavMenuGroupItem {
@@ -42,21 +41,26 @@ function ActiveGroupItem({ item }: { item: NavItemWithLink }) {
}
function NormalGroupItem({ item }: { item: NavItemWithLink }) {
+ const content = (
+
+
+ {item.tag && }
+ {item.text}
+
+
+ );
return (
-
-
-
- {item.tag && }
- {item.text}
-
-
-
+ {item.link ? (
+
{content}
+ ) : (
+
{content}
+ )}
);
}
@@ -96,21 +100,21 @@ export function NavMenuGroup(item: NavMenuGroupItem) {
}
return ;
};
- const renderGroup = (
- item: NavItemWithChildren | NavItemWithLinkAndChildren,
- ) => {
- return (
-
- {'link' in item ? (
- renderLinkItem(item as NavItemWithLink)
- ) : (
-
- {item.text}
-
- )}
- {item.items.map(renderLinkItem)}
-
- );
+ const renderGroup = (items: NavItem[]) => {
+ return items.map(item => {
+ return (
+
+ {'items' in item ? (
+ <>
+ {renderLinkItem(item as NavItemWithLink)}
+ {renderGroup(item.items)}
+ >
+ ) : (
+ renderLinkItem(item)
+ )}
+
+ );
+ });
};
return (
{
return (
- {'items' in item ? renderGroup(item) : renderLinkItem(item)}
+ {'items' in item ? (
+ <>
+ {renderLinkItem(item as NavItemWithLink)}
+ {renderGroup(item.items)}
+ >
+ ) : (
+ renderLinkItem(item)
+ )}
);
})}
diff --git a/packages/theme-default/src/components/Nav/NavMenuSingleItem.tsx b/packages/theme-default/src/components/Nav/NavMenuSingleItem.tsx
index 89ade67eb..2174f7bdb 100644
--- a/packages/theme-default/src/components/Nav/NavMenuSingleItem.tsx
+++ b/packages/theme-default/src/components/Nav/NavMenuSingleItem.tsx
@@ -19,19 +19,23 @@ export function NavMenuSingleItem(
) {
const { pathname } = item;
const isActive = new RegExp(item.activeMatch || item.link).test(pathname);
-
- return (
+ const content = (
+
+
+ {item.text}
+ {item.rightIcon}
+
+ );
+ return item.link ? (
-
-
- {item.text}
- {item.rightIcon}
-
+ {content}
+ ) : (
+ content
);
}
diff --git a/packages/theme-default/src/components/Nav/index.module.scss b/packages/theme-default/src/components/Nav/index.module.scss
index f2db3c6c3..f582c02a5 100644
--- a/packages/theme-default/src/components/Nav/index.module.scss
+++ b/packages/theme-default/src/components/Nav/index.module.scss
@@ -55,6 +55,9 @@
.rightNav {
display: none;
}
+.navGroup {
+ padding-left: 1em;
+}
.singleItem {
word-break: keep-all;