diff --git a/packages/payload/src/admin/components/views/API/index.tsx b/packages/payload/src/admin/components/views/API/index.tsx index 241c7963e7..24d6259f18 100644 --- a/packages/payload/src/admin/components/views/API/index.tsx +++ b/packages/payload/src/admin/components/views/API/index.tsx @@ -219,6 +219,10 @@ export const API: React.FC = (props) => { editConfig && 'API' in editConfig && 'actions' in editConfig.API ? editConfig.API.actions : [] setViewActions(apiActions) + + return () => { + setViewActions([]) + } }, [collection, global, setViewActions]) const localeOptions = diff --git a/packages/payload/src/admin/components/views/Global/Default.tsx b/packages/payload/src/admin/components/views/Global/Default.tsx index cf6f32df74..2ca891bc18 100644 --- a/packages/payload/src/admin/components/views/Global/Default.tsx +++ b/packages/payload/src/admin/components/views/Global/Default.tsx @@ -58,6 +58,10 @@ const DefaultGlobalView: React.FC = (props) => { : [] setViewActions(defaultActions) + + return () => { + setViewActions([]) + } }, [global.slug, location.pathname, global?.admin?.components?.views?.Edit, setViewActions]) return ( diff --git a/packages/payload/src/admin/components/views/LivePreview/index.tsx b/packages/payload/src/admin/components/views/LivePreview/index.tsx index 53824967b4..290fcf1dc1 100644 --- a/packages/payload/src/admin/components/views/LivePreview/index.tsx +++ b/packages/payload/src/admin/components/views/LivePreview/index.tsx @@ -193,6 +193,10 @@ export const LivePreviewView: React.FC< : [] setViewActions(livePreviewActions) + + return () => { + setViewActions([]) + } }, [collection, global, setViewActions]) const breakpoints: LivePreviewConfig['breakpoints'] = [ diff --git a/packages/payload/src/admin/components/views/Version/Version.tsx b/packages/payload/src/admin/components/views/Version/Version.tsx index 31a5c622c5..c724d395d1 100644 --- a/packages/payload/src/admin/components/views/Version/Version.tsx +++ b/packages/payload/src/admin/components/views/Version/Version.tsx @@ -184,6 +184,10 @@ const VersionView: React.FC = ({ collection, global }) => { : [] setViewActions(versionActions) + + return () => { + setViewActions([]) + } }, [collection, global, setViewActions]) let metaTitle: string diff --git a/packages/payload/src/admin/components/views/Versions/index.tsx b/packages/payload/src/admin/components/views/Versions/index.tsx index 1280aaa1da..32cbef626a 100644 --- a/packages/payload/src/admin/components/views/Versions/index.tsx +++ b/packages/payload/src/admin/components/views/Versions/index.tsx @@ -136,6 +136,10 @@ const VersionsView: React.FC = (props) => { : [] setViewActions(versionsActions) + + return () => { + setViewActions([]) + } }, [collection, global, setViewActions]) return ( diff --git a/packages/payload/src/admin/components/views/collections/Edit/Default.tsx b/packages/payload/src/admin/components/views/collections/Edit/Default.tsx index 002d4f2889..b1174d17f5 100644 --- a/packages/payload/src/admin/components/views/collections/Edit/Default.tsx +++ b/packages/payload/src/admin/components/views/collections/Edit/Default.tsx @@ -91,6 +91,10 @@ const DefaultEditView: React.FC = (props) => { : [] setViewActions(defaultActions) + + return () => { + setViewActions([]) + } }, [id, location.pathname, collection?.admin?.components?.views?.Edit, setViewActions]) return ( diff --git a/packages/payload/src/admin/components/views/collections/List/index.tsx b/packages/payload/src/admin/components/views/collections/List/index.tsx index 2776120bd0..ed0177d2d8 100644 --- a/packages/payload/src/admin/components/views/collections/List/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/index.tsx @@ -83,6 +83,10 @@ const ListView: React.FC = (props) => { if (CustomList && typeof CustomList === 'object' && 'actions' in CustomList) { setViewActions(CustomList.actions || []) } + + return () => { + setViewActions([]) + } }, [CustomList, setViewActions]) useEffect(() => { diff --git a/test/admin/e2e.spec.ts b/test/admin/e2e.spec.ts index a7a34bda2a..a4ff469574 100644 --- a/test/admin/e2e.spec.ts +++ b/test/admin/e2e.spec.ts @@ -310,6 +310,14 @@ describe('admin', () => { await page.goto(`${globalWithPreview.global(globalSlug)}/api`) await expect(page.locator('.app-header .global-api-button')).toHaveCount(1) }) + + test('should reset actions array when navigating from view with actions to view without actions', async () => { + await page.goto(geoUrl.list) + await expect(page.locator('.app-header .collection-list-button')).toHaveCount(1) + await page.locator('button.nav-toggler[aria-label="Open Menu"][tabindex="0"]').click() + await page.locator(`#nav-posts`).click() + await expect(page.locator('.app-header .collection-list-button')).toHaveCount(0) + }) }) describe('ui', () => {