diff --git a/packages/richtext-lexical/src/field/Field.tsx b/packages/richtext-lexical/src/field/Field.tsx index 98a4fbeb7..3b10ed529 100644 --- a/packages/richtext-lexical/src/field/Field.tsx +++ b/packages/richtext-lexical/src/field/Field.tsx @@ -68,8 +68,7 @@ const RichTextComponent: React.FC< const { customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {}, - formInitializing, - formProcessing, + disabled: disabledFromField, initialValue, setValue, showError, @@ -79,7 +78,7 @@ const RichTextComponent: React.FC< validate: memoizedValidate, }) - const disabled = readOnlyFromProps || formProcessing || formInitializing + const disabled = readOnlyFromProps || disabledFromField const [isSmallWidthViewport, setIsSmallWidthViewport] = useState(false) const [rerenderProviderKey, setRerenderProviderKey] = useState() diff --git a/packages/richtext-slate/src/field/RichText.tsx b/packages/richtext-slate/src/field/RichText.tsx index 03a0ca15c..1effc7eb0 100644 --- a/packages/richtext-slate/src/field/RichText.tsx +++ b/packages/richtext-slate/src/field/RichText.tsx @@ -95,7 +95,7 @@ const RichTextField: React.FC = (props) => { const { customComponents: { Description, Error, Label } = {}, - formInitializing, + disabled: disabledFromField, initialValue, setValue, showError, @@ -105,7 +105,7 @@ const RichTextField: React.FC = (props) => { validate: memoizedValidate, }) - const disabled = readOnlyFromProps || formInitializing + const disabled = readOnlyFromProps || disabledFromField const editor = useMemo(() => { let CreatedEditor = withEnterBreakOut(withHistory(withReact(createEditor()))) diff --git a/packages/ui/src/elements/DocumentFields/index.tsx b/packages/ui/src/elements/DocumentFields/index.tsx index 303f6ba67..bf65c01cd 100644 --- a/packages/ui/src/elements/DocumentFields/index.tsx +++ b/packages/ui/src/elements/DocumentFields/index.tsx @@ -29,7 +29,7 @@ export const DocumentFields: React.FC = ({ docPermissions, fields, forceSidebarWrap, - readOnly: readOnlyProp, + readOnly, schemaPathSegments, }) => { const { hasSidebarFields, mainFields, sidebarFields } = useMemo(() => { @@ -53,11 +53,6 @@ export const DocumentFields: React.FC = ({ ) }, [fields]) - const formInitializing = useFormInitializing() - const formProcessing = useFormProcessing() - - const readOnly = readOnlyProp || formInitializing || formProcessing - return (
{ const { customComponents: { AfterInput, BeforeInput, Description, Error, Label, RowLabels } = {}, + disabled, errorPaths, rows: rowsData = [], showError, @@ -197,7 +198,7 @@ export const ArrayFieldComponent: ArrayFieldClientComponent = (props) => { const fieldErrorCount = errorPaths.length const fieldHasErrors = submitted && errorPaths.length > 0 - const showRequired = readOnly && rowsData.length === 0 + const showRequired = (readOnly || disabled) && rowsData.length === 0 const showMinRows = rowsData.length < minRows || (required && rowsData.length === 0) return ( @@ -285,7 +286,11 @@ export const ArrayFieldComponent: ArrayFieldClientComponent = (props) => { ).length return ( - + {(draggableSortableItemProps) => ( { parentPath={path} path={rowPath} permissions={permissions} - readOnly={readOnly} + readOnly={readOnly || disabled} removeRow={removeRow} row={rowData} rowCount={rowsData?.length} diff --git a/packages/ui/src/fields/Blocks/index.tsx b/packages/ui/src/fields/Blocks/index.tsx index e0904f650..8b68ebf6d 100644 --- a/packages/ui/src/fields/Blocks/index.tsx +++ b/packages/ui/src/fields/Blocks/index.tsx @@ -54,6 +54,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { schemaPath: schemaPathFromProps, validate, } = props + const schemaPath = schemaPathFromProps ?? name const minRows = (minRowsProp ?? required) ? 1 : 0 @@ -98,6 +99,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { const { customComponents: { AfterInput, BeforeInput, Description, Error, Label, RowLabels } = {}, + disabled, errorPaths, rows = [], showError, @@ -276,7 +278,11 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { ).length return ( - + {(draggableSortableItemProps) => ( { parentPath={path} path={rowPath} permissions={permissions} - readOnly={readOnly} + readOnly={readOnly || disabled} removeRow={removeRow} row={row} rowCount={rows.length} @@ -335,12 +341,12 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => {