@plone/volto
Version:
Volto
30 lines (24 loc) • 864 B
JSX
import React from 'react';
import { InlineForm } from '@plone/volto/components/manage/Form';
import { withVariationSchemaEnhancer } from '@plone/volto/helpers/Extensions';
const EnhancedBlockDataForm = withVariationSchemaEnhancer(InlineForm);
export default function BlockDataForm(props) {
const { onChangeBlock, block, applySchemaEnhancers = true } = props;
if (!onChangeBlock) {
// eslint-disable-next-line no-console
console.warn(
'BlockDataForm component is used without passing down onChangeBlock as props',
);
}
const onChangeFormData = React.useCallback(
(data) => onChangeBlock(block, data),
[block, onChangeBlock],
);
const Form = applySchemaEnhancers ? EnhancedBlockDataForm : InlineForm;
return (
<Form
{...props}
onChangeFormData={onChangeBlock ? onChangeFormData : undefined}
/>
);
}