= {
formSubmitted: boolean
initialValue?: T
path: string
+ permissions: FieldPermissions
readOnly?: boolean
rows?: Row[]
schemaPath: string
diff --git a/packages/ui/src/forms/withCondition/index.tsx b/packages/ui/src/forms/withCondition/index.tsx
index 6f0c33891..5b7da2647 100644
--- a/packages/ui/src/forms/withCondition/index.tsx
+++ b/packages/ui/src/forms/withCondition/index.tsx
@@ -1,7 +1,7 @@
'use client'
import React from 'react'
-import { useFieldPath } from '../FieldPathProvider/index.js'
+import { useFieldProps } from '../FieldPropsProvider/index.js'
import { WatchCondition } from './WatchCondition.js'
export const withCondition = >(
@@ -9,7 +9,7 @@ export const withCondition =
>(
): React.FC
=> {
const CheckForCondition: React.FC
= (props) => {
const { name } = props
- const { path: pathFromContext } = useFieldPath()
+ const { path: pathFromContext } = useFieldProps()
const path = pathFromContext || name
return (
diff --git a/packages/ui/src/utilities/buildComponentMap/index.tsx b/packages/ui/src/utilities/buildComponentMap/index.tsx
index 3660a9921..5fb7a087c 100644
--- a/packages/ui/src/utilities/buildComponentMap/index.tsx
+++ b/packages/ui/src/utilities/buildComponentMap/index.tsx
@@ -1,4 +1,3 @@
-import type { CollectionPermission, GlobalPermission, Permissions } from 'payload/auth'
import type { EditViewProps, SanitizedConfig } from 'payload/types'
import React from 'react'
@@ -14,7 +13,6 @@ export const buildComponentMap = (args: {
DefaultListView: React.FC
children: React.ReactNode
config: SanitizedConfig
- permissions?: Permissions
readOnly?: boolean
}): {
componentMap: ComponentMap
@@ -26,18 +24,13 @@ export const buildComponentMap = (args: {
DefaultListView,
children,
config,
- permissions,
readOnly: readOnlyOverride,
} = args
- let entityPermissions: CollectionPermission | GlobalPermission
-
// Collections
const collections = config.collections.reduce((acc, collectionConfig) => {
const { slug, fields } = collectionConfig
- entityPermissions = permissions?.collections?.[collectionConfig.slug]
-
const editViewFromConfig = collectionConfig?.admin?.components?.views?.Edit
const listViewFromConfig = collectionConfig?.admin?.components?.views?.List
@@ -113,7 +106,6 @@ export const buildComponentMap = (args: {
DefaultCell,
config,
fieldSchema: fields,
- permissions: entityPermissions?.fields,
readOnly: readOnlyOverride,
}),
}
@@ -128,8 +120,6 @@ export const buildComponentMap = (args: {
const globals = config.globals.reduce((acc, globalConfig) => {
const { slug, fields } = globalConfig
- entityPermissions = permissions?.globals?.[globalConfig.slug]
-
const editViewFromConfig = globalConfig?.admin?.components?.views?.Edit
const CustomEditView =
@@ -154,7 +144,6 @@ export const buildComponentMap = (args: {
DefaultCell,
config,
fieldSchema: fields,
- permissions: entityPermissions?.fields,
readOnly: readOnlyOverride,
}),
}
diff --git a/packages/ui/src/utilities/buildComponentMap/mapFields.tsx b/packages/ui/src/utilities/buildComponentMap/mapFields.tsx
index e429948d2..3d877ece0 100644
--- a/packages/ui/src/utilities/buildComponentMap/mapFields.tsx
+++ b/packages/ui/src/utilities/buildComponentMap/mapFields.tsx
@@ -1,4 +1,3 @@
-import type { CollectionPermission, FieldPermissions, GlobalPermission } from 'payload/auth'
import type { CellProps, Field, FieldWithPath, LabelProps, SanitizedConfig } from 'payload/types'
import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'
@@ -22,18 +21,9 @@ export const mapFields = (args: {
fieldSchema: FieldWithPath[]
filter?: (field: Field) => boolean
parentPath?: string
- permissions?: CollectionPermission['fields'] | GlobalPermission['fields']
readOnly?: boolean
}): FieldMap => {
- const {
- DefaultCell,
- config,
- fieldSchema,
- filter,
- parentPath,
- permissions,
- readOnly: readOnlyOverride,
- } = args
+ const { DefaultCell, config, fieldSchema, filter, parentPath, readOnly: readOnlyOverride } = args
const result: FieldMap = fieldSchema.reduce((acc, field): FieldMap => {
const fieldIsPresentational = fieldIsPresentationalOnly(field)
@@ -51,8 +41,6 @@ export const mapFields = (args: {
field.path || (isFieldAffectingData && 'name' in field ? field.name : '')
}`
- const fieldPermissions = isFieldAffectingData ? permissions?.[field.name] : undefined
-
const labelProps: LabelProps = {
// @ts-expect-error-next-line
label: 'label' in field ? field.label : null,
@@ -78,7 +66,6 @@ export const mapFields = (args: {
fieldSchema: field.fields,
filter,
parentPath: path,
- permissions,
readOnly: readOnlyOverride,
})
@@ -94,7 +81,6 @@ export const mapFields = (args: {
fieldSchema: tab.fields,
filter,
parentPath: path,
- permissions,
readOnly: readOnlyOverride,
})
@@ -119,7 +105,6 @@ export const mapFields = (args: {
fieldSchema: block.fields,
filter,
parentPath: `${path}.${block.slug}`,
- permissions,
readOnly: readOnlyOverride,
})
@@ -199,8 +184,8 @@ export const mapFields = (args: {
className:
'admin' in field && 'className' in field.admin ? field?.admin?.className : undefined,
date: 'admin' in field && 'date' in field.admin ? field.admin.date : undefined,
+ disabled: field?.admin && 'disabled' in field.admin ? field.admin?.disabled : false,
fieldMap: nestedFieldMap,
- fieldPermissions,
hasMany: 'hasMany' in field ? field.hasMany : undefined,
label: 'label' in field && typeof field.label === 'string' ? field.label : undefined,
max: 'max' in field ? field.max : undefined,
@@ -318,8 +303,8 @@ export const mapFields = (args: {
/>
),
blocks,
+ disabled: field?.admin && 'disabled' in field.admin ? field.admin?.disabled : false,
fieldIsPresentational,
- fieldPermissions,
hasMany: 'hasMany' in field ? field.hasMany : undefined,
isFieldAffectingData,
isSidebar: 'admin' in field && field.admin?.position === 'sidebar',
@@ -354,7 +339,6 @@ export const mapFields = (args: {
Field: ,
Heading: ,
fieldIsPresentational: false,
- fieldPermissions: {} as FieldPermissions,
isFieldAffectingData: true,
isSidebar: false,
label: 'ID',
diff --git a/packages/ui/src/utilities/buildComponentMap/types.ts b/packages/ui/src/utilities/buildComponentMap/types.ts
index ac7db4fdf..770ffa0c5 100644
--- a/packages/ui/src/utilities/buildComponentMap/types.ts
+++ b/packages/ui/src/utilities/buildComponentMap/types.ts
@@ -1,4 +1,3 @@
-import type { FieldPermissions } from 'payload/auth'
import type {
BlockField,
FieldBase,
@@ -35,13 +34,13 @@ export type MappedField = {
* On `block` fields only
*/
blocks?: ReducedBlock[]
+ disabled?: boolean
/**
* On `richText` fields only
*/
editor?: RichTextField['editor']
fieldIsPresentational: boolean
fieldMap?: FieldMap
- fieldPermissions: FieldPermissions
hasMany?: boolean
isFieldAffectingData: boolean
isSidebar: boolean
diff --git a/tsconfig.json b/tsconfig.json
index 6cab4e76d..0fa2bc28b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -88,7 +88,7 @@
"./packages/graphql/src"
],
"@payload-config": [
- "./test/admin/config.ts"
+ "./test/access-control/config.ts"
]
}
},