From aaa2b204ba649c9ec4aa40902e171d5196a89eb6 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 6 Mar 2024 09:53:59 -0500 Subject: [PATCH] fix(next): uses correct global slug in getViewsFromConfig --- .../src/views/Document/getViewsFromConfig.tsx | 25 +++++++++++-------- packages/next/src/views/Document/index.tsx | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/next/src/views/Document/getViewsFromConfig.tsx b/packages/next/src/views/Document/getViewsFromConfig.tsx index ca3c713cf1..bd05055c17 100644 --- a/packages/next/src/views/Document/getViewsFromConfig.tsx +++ b/packages/next/src/views/Document/getViewsFromConfig.tsx @@ -38,8 +38,6 @@ export const getViewsFromConfig = async ({ let DefaultView: EditViewComponent = null let CustomView: EditViewComponent = null - const [entityType, entitySlug, createOrID, tabViewName, segmentFive] = routeSegments - const views = (collectionConfig && collectionConfig?.admin?.components?.views) || (globalConfig && globalConfig?.admin?.components?.views) @@ -51,6 +49,9 @@ export const getViewsFromConfig = async ({ config?.admin?.livePreview?.globals?.includes(globalConfig?.slug) if (collectionConfig) { + const [collectionEntity, collectionSlug, createOrID, nestedViewSlug, segmentFive] = + routeSegments + const { admin: { hidden }, } = collectionConfig @@ -60,7 +61,7 @@ export const getViewsFromConfig = async ({ } // `../:id`, or `../create` - if (!tabViewName) { + if (!nestedViewSlug) { switch (createOrID) { case 'create': { if ('create' in docPermissions && docPermissions?.create?.permission) { @@ -79,10 +80,10 @@ export const getViewsFromConfig = async ({ } } - if (tabViewName) { + if (nestedViewSlug) { // `../:id/versions/:version`, etc if (segmentFive) { - if (tabViewName === 'versions') { + if (nestedViewSlug === 'versions') { if (docPermissions?.readVersions?.permission) { CustomView = getCustomViewByKey(views, 'Version') DefaultView = DefaultVersionView @@ -92,7 +93,7 @@ export const getViewsFromConfig = async ({ // `../:id/api`, `../:id/preview`, `../:id/versions`, etc if (routeSegments?.length === 4) { - switch (tabViewName) { + switch (nestedViewSlug) { case 'api': { if (collectionConfig?.admin?.hideAPIURL !== true) { CustomView = getCustomViewByKey(views, 'API') @@ -117,7 +118,7 @@ export const getViewsFromConfig = async ({ } default: { - const path = `/${tabViewName}` + const path = `/${nestedViewSlug}` CustomView = getCustomViewByPath(views, path) break } @@ -127,6 +128,8 @@ export const getViewsFromConfig = async ({ } if (globalConfig) { + const [globalEntity, globalSlug, nestedViewSlug] = routeSegments + const { admin: { hidden }, } = globalConfig @@ -135,14 +138,14 @@ export const getViewsFromConfig = async ({ return null } - if (!routeSegments?.length) { + if (routeSegments?.length === 2) { if (docPermissions?.read?.permission) { CustomView = getCustomViewByKey(views, 'Default') DefaultView = DefaultEditView } - } else if (routeSegments?.length === 1) { + } else if (routeSegments?.length === 3) { // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc - switch (tabViewName) { + switch (nestedViewSlug) { case 'api': { if (globalConfig?.admin?.hideAPIURL !== true) { CustomView = getCustomViewByKey(views, 'API') @@ -176,7 +179,7 @@ export const getViewsFromConfig = async ({ } } else if (routeSegments?.length === 2) { // `../:slug/versions/:version`, etc - if (tabViewName === 'versions') { + if (nestedViewSlug === 'versions') { if (docPermissions?.readVersions?.permission) { CustomView = getCustomViewByKey(views, 'Version') DefaultView = DefaultVersionView diff --git a/packages/next/src/views/Document/index.tsx b/packages/next/src/views/Document/index.tsx index 3a2f64b5ca..91f7cc607f 100644 --- a/packages/next/src/views/Document/index.tsx +++ b/packages/next/src/views/Document/index.tsx @@ -59,7 +59,7 @@ export const Document: React.FC = async ({ const segments = Array.isArray(params?.segments) ? params.segments : [] const [entityType, entitySlug, createOrID] = segments const collectionSlug = entityType === 'collections' ? entitySlug : undefined - const globalSlug = entitySlug === 'globals' ? entitySlug : undefined + const globalSlug = entityType === 'globals' ? entitySlug : undefined const isCreating = createOrID === 'create' const id = (collectionSlug && !isCreating && createOrID) || undefined