Merge pull request #5551 from payloadcms/fix/nav

fix: misc.
This commit is contained in:
Jacob Fletcher
2024-03-29 13:58:22 -04:00
committed by GitHub
13 changed files with 153 additions and 93 deletions

View File

@@ -1,26 +1,30 @@
'use client'
import type { ClientUser } from 'payload/auth'
import type { ClientCollectionConfig } from 'payload/types'
import type { ClientCollectionConfig, VisibleEntities } from 'payload/types'
import { useAuth } from '@payloadcms/ui/providers/Auth'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'
import * as React from 'react'
type options = {
type Options = {
uploads: boolean
user: ClientUser
visibleEntities: VisibleEntities
}
type FilteredCollectionsT = (
collections: ClientCollectionConfig[],
options?: options,
options?: Options,
) => ClientCollectionConfig[]
const filterRichTextCollections: FilteredCollectionsT = (collections, options) => {
return collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload }) => {
if (hidden === true || (typeof hidden === 'function' && hidden({ user: options.user }))) {
return collections.filter(({ slug, admin: { enableRichTextRelationship }, upload }) => {
if (!options.visibleEntities.collections.includes(slug)) {
return false
}
if (options?.uploads) {
return enableRichTextRelationship && Boolean(upload) === true
}
@@ -33,8 +37,12 @@ export const EnabledRelationshipsCondition: React.FC<any> = (props) => {
const { children, uploads = false, ...rest } = props
const { collections } = useConfig()
const { user } = useAuth()
const { visibleEntities } = useEntityVisibility()
const [enabledCollectionSlugs] = React.useState(() =>
filterRichTextCollections(collections, { uploads, user }).map(({ slug }) => slug),
filterRichTextCollections(collections, { uploads, user, visibleEntities }).map(
({ slug }) => slug,
),
)
if (!enabledCollectionSlugs.length) {