From b2734fa955f6901b415f197df384157221533364 Mon Sep 17 00:00:00 2001 From: Aki Hamano Date: Tue, 21 May 2024 21:53:47 +0900 Subject: [PATCH] Add deprecation --- packages/block-library/src/form/deprecated.js | 74 +++++++++++++++++++ packages/block-library/src/form/index.js | 2 + 2 files changed, 76 insertions(+) create mode 100644 packages/block-library/src/form/deprecated.js diff --git a/packages/block-library/src/form/deprecated.js b/packages/block-library/src/form/deprecated.js new file mode 100644 index 0000000000000..d626ad8cdef3c --- /dev/null +++ b/packages/block-library/src/form/deprecated.js @@ -0,0 +1,74 @@ +/** + * WordPress dependencies + */ +import { InnerBlocks, useBlockProps } from '@wordpress/block-editor'; + +const v1 = { + // The block supports here are deliberately empty despite this + // deprecated version of the block having adopted block supports. + // The attributes added by these supports have been manually + // added to this deprecated version's attributes definition so + // that the data isn't lost on migration. All this is so that the + // automatic application of block support classes doesn't occur + // as this version of the block had a bug that overrode those + // classes. If those block support classes are applied during the + // deprecation process, this deprecation doesn't match and won't + // run. + // @see https://github.com/WordPress/gutenberg/pull/55755 + supports: {}, + attributes: { + submissionMethod: { + type: 'string', + default: 'email', + }, + method: { + type: 'string', + default: 'post', + }, + action: { + type: 'string', + }, + email: { + type: 'string', + }, + // The following attributes have been added to match the block + // supports at the time of the deprecation. See above for details. + anchor: { + type: 'string', + }, + backgroundColor: { + type: 'string', + }, + textColor: { + type: 'string', + }, + gradient: { + type: 'string', + }, + style: { + type: 'object', + }, + fontFamily: { + type: 'string', + }, + fontSize: { + type: 'string', + }, + }, + save( { attributes } ) { + const blockProps = useBlockProps.save(); + const { submissionMethod } = attributes; + + return ( +
+ + + ); + }, +}; + +export default [ v1 ]; diff --git a/packages/block-library/src/form/index.js b/packages/block-library/src/form/index.js index 1e45c642b6d48..3f4bf4652c643 100644 --- a/packages/block-library/src/form/index.js +++ b/packages/block-library/src/form/index.js @@ -6,6 +6,7 @@ import edit from './edit'; import metadata from './block.json'; import save from './save'; import variations from './variations'; +import deprecated from './deprecated'; /** * WordPress dependencies @@ -19,6 +20,7 @@ export { metadata, name }; export const settings = { edit, save, + deprecated, variations, };