@wordpress/block-editor
Version:
39 lines (37 loc) • 1.35 kB
JavaScript
/**
* WordPress dependencies
*/
import { forwardRef } from '@wordpress/element';
import { children as childrenSource } from '@wordpress/blocks';
import { __unstableCreateElement } from '@wordpress/rich-text';
import deprecated from '@wordpress/deprecated';
/**
* Internal dependencies
*/
import RichTextMultiline from './multiline';
import { jsx as _jsx } from "react/jsx-runtime";
export function withDeprecations(Component) {
return forwardRef((props, ref) => {
let value = props.value;
let onChange = props.onChange;
// Handle deprecated format.
if (Array.isArray(value)) {
deprecated('wp.blockEditor.RichText value prop as children type', {
since: '6.1',
version: '6.3',
alternative: 'value prop as string',
link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/'
});
value = childrenSource.toHTML(props.value);
onChange = newValue => props.onChange(childrenSource.fromDOM(__unstableCreateElement(document, newValue).childNodes));
}
const NewComponent = props.multiline ? RichTextMultiline : Component;
return /*#__PURE__*/_jsx(NewComponent, {
...props,
value: value,
onChange: onChange,
ref: ref
});
});
}
//# sourceMappingURL=with-deprecations.js.map