fix(next): uses correct global slug in getViewsFromConfig

This commit is contained in:
Jacob Fletcher
2024-03-06 09:53:59 -05:00
parent 78bf9e5993
commit aaa2b204ba
2 changed files with 15 additions and 12 deletions

View File

@@ -38,8 +38,6 @@ export const getViewsFromConfig = async ({
let DefaultView: EditViewComponent = null let DefaultView: EditViewComponent = null
let CustomView: EditViewComponent = null let CustomView: EditViewComponent = null
const [entityType, entitySlug, createOrID, tabViewName, segmentFive] = routeSegments
const views = const views =
(collectionConfig && collectionConfig?.admin?.components?.views) || (collectionConfig && collectionConfig?.admin?.components?.views) ||
(globalConfig && globalConfig?.admin?.components?.views) (globalConfig && globalConfig?.admin?.components?.views)
@@ -51,6 +49,9 @@ export const getViewsFromConfig = async ({
config?.admin?.livePreview?.globals?.includes(globalConfig?.slug) config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)
if (collectionConfig) { if (collectionConfig) {
const [collectionEntity, collectionSlug, createOrID, nestedViewSlug, segmentFive] =
routeSegments
const { const {
admin: { hidden }, admin: { hidden },
} = collectionConfig } = collectionConfig
@@ -60,7 +61,7 @@ export const getViewsFromConfig = async ({
} }
// `../:id`, or `../create` // `../:id`, or `../create`
if (!tabViewName) { if (!nestedViewSlug) {
switch (createOrID) { switch (createOrID) {
case 'create': { case 'create': {
if ('create' in docPermissions && docPermissions?.create?.permission) { if ('create' in docPermissions && docPermissions?.create?.permission) {
@@ -79,10 +80,10 @@ export const getViewsFromConfig = async ({
} }
} }
if (tabViewName) { if (nestedViewSlug) {
// `../:id/versions/:version`, etc // `../:id/versions/:version`, etc
if (segmentFive) { if (segmentFive) {
if (tabViewName === 'versions') { if (nestedViewSlug === 'versions') {
if (docPermissions?.readVersions?.permission) { if (docPermissions?.readVersions?.permission) {
CustomView = getCustomViewByKey(views, 'Version') CustomView = getCustomViewByKey(views, 'Version')
DefaultView = DefaultVersionView DefaultView = DefaultVersionView
@@ -92,7 +93,7 @@ export const getViewsFromConfig = async ({
// `../:id/api`, `../:id/preview`, `../:id/versions`, etc // `../:id/api`, `../:id/preview`, `../:id/versions`, etc
if (routeSegments?.length === 4) { if (routeSegments?.length === 4) {
switch (tabViewName) { switch (nestedViewSlug) {
case 'api': { case 'api': {
if (collectionConfig?.admin?.hideAPIURL !== true) { if (collectionConfig?.admin?.hideAPIURL !== true) {
CustomView = getCustomViewByKey(views, 'API') CustomView = getCustomViewByKey(views, 'API')
@@ -117,7 +118,7 @@ export const getViewsFromConfig = async ({
} }
default: { default: {
const path = `/${tabViewName}` const path = `/${nestedViewSlug}`
CustomView = getCustomViewByPath(views, path) CustomView = getCustomViewByPath(views, path)
break break
} }
@@ -127,6 +128,8 @@ export const getViewsFromConfig = async ({
} }
if (globalConfig) { if (globalConfig) {
const [globalEntity, globalSlug, nestedViewSlug] = routeSegments
const { const {
admin: { hidden }, admin: { hidden },
} = globalConfig } = globalConfig
@@ -135,14 +138,14 @@ export const getViewsFromConfig = async ({
return null return null
} }
if (!routeSegments?.length) { if (routeSegments?.length === 2) {
if (docPermissions?.read?.permission) { if (docPermissions?.read?.permission) {
CustomView = getCustomViewByKey(views, 'Default') CustomView = getCustomViewByKey(views, 'Default')
DefaultView = DefaultEditView DefaultView = DefaultEditView
} }
} else if (routeSegments?.length === 1) { } else if (routeSegments?.length === 3) {
// `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc
switch (tabViewName) { switch (nestedViewSlug) {
case 'api': { case 'api': {
if (globalConfig?.admin?.hideAPIURL !== true) { if (globalConfig?.admin?.hideAPIURL !== true) {
CustomView = getCustomViewByKey(views, 'API') CustomView = getCustomViewByKey(views, 'API')
@@ -176,7 +179,7 @@ export const getViewsFromConfig = async ({
} }
} else if (routeSegments?.length === 2) { } else if (routeSegments?.length === 2) {
// `../:slug/versions/:version`, etc // `../:slug/versions/:version`, etc
if (tabViewName === 'versions') { if (nestedViewSlug === 'versions') {
if (docPermissions?.readVersions?.permission) { if (docPermissions?.readVersions?.permission) {
CustomView = getCustomViewByKey(views, 'Version') CustomView = getCustomViewByKey(views, 'Version')
DefaultView = DefaultVersionView DefaultView = DefaultVersionView

View File

@@ -59,7 +59,7 @@ export const Document: React.FC<AdminViewProps> = async ({
const segments = Array.isArray(params?.segments) ? params.segments : [] const segments = Array.isArray(params?.segments) ? params.segments : []
const [entityType, entitySlug, createOrID] = segments const [entityType, entitySlug, createOrID] = segments
const collectionSlug = entityType === 'collections' ? entitySlug : undefined const collectionSlug = entityType === 'collections' ? entitySlug : undefined
const globalSlug = entitySlug === 'globals' ? entitySlug : undefined const globalSlug = entityType === 'globals' ? entitySlug : undefined
const isCreating = createOrID === 'create' const isCreating = createOrID === 'create'
const id = (collectionSlug && !isCreating && createOrID) || undefined const id = (collectionSlug && !isCreating && createOrID) || undefined