diff --git a/packages/next/src/elements/Nav/index.client.tsx b/packages/next/src/elements/Nav/index.client.tsx
index 1bb703545e..cdc357758b 100644
--- a/packages/next/src/elements/Nav/index.client.tsx
+++ b/packages/next/src/elements/Nav/index.client.tsx
@@ -44,17 +44,19 @@ export const DefaultNavClient: React.FC<{
id = `nav-global-${slug}`
}
- const activeCollection =
- pathname.startsWith(href) && ['/', undefined].includes(pathname[href.length])
+ const isActive = pathname.startsWith(href)
const Label = (
- {getTranslation(label, i18n)}
+ <>
+ {isActive &&
}
+ {getTranslation(label, i18n)}
+ >
)
- if (activeCollection) {
+ // If the URL matches the link exactly
+ if (pathname === href) {
return (
-
-
+
{Label}
)
diff --git a/packages/next/src/elements/Nav/index.scss b/packages/next/src/elements/Nav/index.scss
index 636b6b103d..76ce29f562 100644
--- a/packages/next/src/elements/Nav/index.scss
+++ b/packages/next/src/elements/Nav/index.scss
@@ -121,6 +121,11 @@
}
}
+ &__link:has(.nav__link-indicator) {
+ font-weight: 600;
+ padding-left: 0;
+ }
+
&__link-indicator {
position: absolute;
display: block;
diff --git a/test/admin/e2e/general/e2e.spec.ts b/test/admin/e2e/general/e2e.spec.ts
index 6c84a828c8..e62eb98682 100644
--- a/test/admin/e2e/general/e2e.spec.ts
+++ b/test/admin/e2e/general/e2e.spec.ts
@@ -409,12 +409,21 @@ describe('General', () => {
test('should disable active nav item', async () => {
await page.goto(postsUrl.list)
await openNav(page)
- const activeItem = page.locator('.nav .nav__link.active')
+ const activeItem = page.locator('.nav .nav__link:has(.nav__link-indicator)')
await expect(activeItem).toBeVisible()
const tagName = await activeItem.evaluate((el) => el.tagName.toLowerCase())
expect(tagName).toBe('div')
})
+ test('should keep active nav item enabled in the edit view', async () => {
+ await page.goto(postsUrl.create)
+ await openNav(page)
+ const activeItem = page.locator('.nav .nav__link:has(.nav__link-indicator)')
+ await expect(activeItem).toBeVisible()
+ const tagName = await activeItem.evaluate((el) => el.tagName.toLowerCase())
+ expect(tagName).toBe('a')
+ })
+
test('breadcrumbs — should navigate from list to dashboard', async () => {
await page.goto(postsUrl.list)
await page.locator(`.step-nav a[href="${adminRoutes.routes.admin}"]`).click()
diff --git a/test/admin/payload-types.ts b/test/admin/payload-types.ts
index 08f3e7a75e..639d13eac3 100644
--- a/test/admin/payload-types.ts
+++ b/test/admin/payload-types.ts
@@ -64,7 +64,6 @@ export interface Config {
auth: {
users: UserAuthOperations;
};
- blocks: {};
collections: {
uploads: Upload;
posts: Post;