diff --git a/docs/reference-guides/core-blocks.md b/docs/reference-guides/core-blocks.md index fa84686d82d32..1bdab5acf3788 100644 --- a/docs/reference-guides/core-blocks.md +++ b/docs/reference-guides/core-blocks.md @@ -680,7 +680,7 @@ Give quoted text visual emphasis. "In quoting others, we cite ourselves." — Ju - **Name:** core/quote - **Category:** text -- **Supports:** anchor, typography (fontSize, lineHeight) +- **Supports:** anchor, color (background, gradients, link, text), typography (fontSize, lineHeight) - **Attributes:** align, citation, value ## Read More diff --git a/packages/block-editor/src/components/block-list/block.native.js b/packages/block-editor/src/components/block-list/block.native.js index 2ee69691ab5a0..33317778e66b2 100644 --- a/packages/block-editor/src/components/block-list/block.native.js +++ b/packages/block-editor/src/components/block-list/block.native.js @@ -47,6 +47,7 @@ function BlockForType( { onDeleteBlock, onReplace, parentWidth, + parentBlockAlignment, wrapperProps, blockWidth, baseGlobalStyles, @@ -95,6 +96,7 @@ function BlockForType( { contentStyle={ contentStyle } onDeleteBlock={ onDeleteBlock } blockWidth={ blockWidth } + parentBlockAlignment={ parentBlockAlignment } /> diff --git a/packages/block-library/src/index.native.js b/packages/block-library/src/index.native.js index e155be94edbaf..984e5c290135d 100644 --- a/packages/block-library/src/index.native.js +++ b/packages/block-library/src/index.native.js @@ -179,6 +179,14 @@ const devOnly = ( block ) => ( !! __DEV__ ? block : null ); const iOSOnly = ( block ) => Platform.OS === 'ios' ? block : devOnly( block ); +// To be removed once Quote V2 is released on the web editor. +function quoteCheck( quoteBlock, blocksFlags ) { + if ( blocksFlags?.__experimentalEnableQuoteBlockV2 ) { + quoteBlock.settings = quoteBlock?.settingsV2; + } + return quoteBlock; +} + // Hide the Classic block and SocialLink block addFilter( 'blocks.registerBlockType', @@ -230,8 +238,10 @@ addFilter( * * registerCoreBlocks(); * ``` + * @param {Object} [blocksFlags] Experimental flags + * */ -export const registerCoreBlocks = () => { +export const registerCoreBlocks = ( blocksFlags ) => { // When adding new blocks to this list please also consider updating /src/block-support/supported-blocks.json in the Gutenberg-Mobile repo [ paragraph, @@ -244,7 +254,7 @@ export const registerCoreBlocks = () => { nextpage, separator, list, - quote, + quoteCheck( quote, blocksFlags ), mediaText, preformatted, gallery, diff --git a/packages/block-library/src/paragraph/edit.native.js b/packages/block-library/src/paragraph/edit.native.js index 65b0b0fac14fc..98662ba21c884 100644 --- a/packages/block-library/src/paragraph/edit.native.js +++ b/packages/block-library/src/paragraph/edit.native.js @@ -14,6 +14,8 @@ import { useSelect } from '@wordpress/data'; const name = 'core/paragraph'; +const allowedParentBlockAlignments = [ 'left', 'center', 'right' ]; + function ParagraphBlock( { attributes, mergeBlocks, @@ -21,6 +23,7 @@ function ParagraphBlock( { setAttributes, style, clientId, + parentBlockAlignment, } ) { const isRTL = useSelect( ( select ) => { return !! select( blockEditorStore ).getSettings().isRTL; @@ -40,6 +43,15 @@ function ParagraphBlock( { const onAlignmentChange = useCallback( ( nextAlign ) => { setAttributes( { align: nextAlign } ); }, [] ); + + const parentTextAlignment = allowedParentBlockAlignments.includes( + parentBlockAlignment + ) + ? parentBlockAlignment + : undefined; + + const textAlignment = align || parentTextAlignment; + return ( <> @@ -82,7 +94,7 @@ function ParagraphBlock( { onReplace={ onReplace } onRemove={ onReplace ? () => onReplace( [] ) : undefined } placeholder={ placeholder || __( 'Start writing…' ) } - textAlign={ align } + textAlign={ textAlignment } __unstableEmbedURLOnPaste /> diff --git a/packages/block-library/src/quote/block.json b/packages/block-library/src/quote/block.json index 28eb25f93d21b..74b72078c5c45 100644 --- a/packages/block-library/src/quote/block.json +++ b/packages/block-library/src/quote/block.json @@ -41,6 +41,14 @@ "fontSize": true, "fontAppearance": true } + }, + "color": { + "gradients": true, + "link": true, + "__experimentalDefaultControls": { + "background": true, + "text": true + } } }, "styles": [ diff --git a/packages/block-library/src/quote/index.js b/packages/block-library/src/quote/index.js index 13876d46974b9..1021e06f4e756 100644 --- a/packages/block-library/src/quote/index.js +++ b/packages/block-library/src/quote/index.js @@ -16,7 +16,7 @@ import settingsV2 from './v2'; const { name } = metadata; -export { metadata, name }; +export { metadata, name, settingsV2 }; export const settingsV1 = { icon, diff --git a/packages/block-library/src/quote/style.scss b/packages/block-library/src/quote/style.scss index 23b5f8dd36932..835dc56afaf5e 100644 --- a/packages/block-library/src/quote/style.scss +++ b/packages/block-library/src/quote/style.scss @@ -1,4 +1,5 @@ .wp-block-quote { + box-sizing: border-box; overflow-wrap: break-word; // Break long strings of text without spaces so they don't overflow the block. // .is-style-large and .is-large are kept for backwards compatibility. The :not pseudo-class is used to enable switching styles. See PR #37580. &.is-style-large:not(.is-style-plain), diff --git a/packages/block-library/src/quote/v2/edit.js b/packages/block-library/src/quote/v2/edit.js index 9bbb72ea47737..4d9edb0758adc 100644 --- a/packages/block-library/src/quote/v2/edit.js +++ b/packages/block-library/src/quote/v2/edit.js @@ -74,6 +74,7 @@ export default function QuoteEdit( { insertBlocksAfter, clientId, className, + style, } ) { const { citation, align } = attributes; @@ -88,6 +89,7 @@ export default function QuoteEdit( { className: classNames( className, { [ `has-text-align-${ align }` ]: align, } ), + ...( ! isWebPlatform && { style } ), } ); const innerBlocksProps = useInnerBlocksProps( blockProps, { template: TEMPLATE, @@ -128,6 +130,7 @@ export default function QuoteEdit( { __unstableOnSplitAtEnd={ () => insertBlocksAfter( createBlock( 'core/paragraph' ) ) } + { ...( ! isWebPlatform ? { textAlign: align } : {} ) } /> ) } diff --git a/packages/block-library/src/spacer/controls.native.js b/packages/block-library/src/spacer/controls.native.js index 73d69e5ea7b4a..7c48be32a2d5c 100644 --- a/packages/block-library/src/spacer/controls.native.js +++ b/packages/block-library/src/spacer/controls.native.js @@ -14,7 +14,7 @@ import { __ } from '@wordpress/i18n'; /** * Internal dependencies */ -import { MIN_SPACER_SIZE } from './edit'; +import { MIN_SPACER_SIZE } from './edit.js'; import styles from './style.scss'; const DEFAULT_VALUES = { px: 100, em: 10, rem: 10, vw: 10, vh: 25 }; diff --git a/packages/block-library/src/spacer/test/__snapshots__/index.native.js.snap b/packages/block-library/src/spacer/test/__snapshots__/index.native.js.snap new file mode 100644 index 0000000000000..61e51af766f8c --- /dev/null +++ b/packages/block-library/src/spacer/test/__snapshots__/index.native.js.snap @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Spacer block decrements height 1`] = ` +" +
+" +`; + +exports[`Spacer block increments height 1`] = ` +" +
+" +`; + +exports[`Spacer block inserts block 1`] = ` +" +
+" +`; + +exports[`Spacer block updates height to 25vh 1`] = ` +" +
+" +`; + +exports[`Spacer block updates height to 50px 1`] = ` +" +
+" +`; diff --git a/packages/block-library/src/spacer/test/index.native.js b/packages/block-library/src/spacer/test/index.native.js new file mode 100644 index 0000000000000..cbd5b4c034f7c --- /dev/null +++ b/packages/block-library/src/spacer/test/index.native.js @@ -0,0 +1,180 @@ +/** + * External dependencies + */ +import { + fireEvent, + getEditorHtml, + initializeEditor, + waitFor, +} from 'test/helpers'; + +/** + * WordPress dependencies + */ +import { getBlockTypes, unregisterBlockType } from '@wordpress/blocks'; +import { registerCoreBlocks } from '@wordpress/block-library'; + +beforeAll( () => { + // Register all core blocks + registerCoreBlocks(); +} ); + +afterAll( () => { + // Clean up registered blocks + getBlockTypes().forEach( ( block ) => { + unregisterBlockType( block.name ); + } ); +} ); + +describe( 'Spacer block', () => { + it( 'inserts block', async () => { + const { + getByA11yLabel, + getByTestId, + getByText, + } = await initializeEditor(); + + fireEvent.press( getByA11yLabel( 'Add block' ) ); + + const blockList = getByTestId( 'InserterUI-Blocks' ); + // onScroll event used to force the FlatList to render all items + fireEvent.scroll( blockList, { + nativeEvent: { + contentOffset: { y: 0, x: 0 }, + contentSize: { width: 100, height: 100 }, + layoutMeasurement: { width: 100, height: 100 }, + }, + } ); + + fireEvent.press( await waitFor( () => getByText( 'Spacer' ) ) ); + + expect( getByA11yLabel( /Spacer Block\. Row 1/ ) ).toBeVisible(); + expect( getEditorHtml() ).toMatchSnapshot(); + } ); + + it( 'updates height to 50px', async () => { + const initialHtml = ` + + `; + const { + getByA11yLabel, + getByDisplayValue, + getByTestId, + getByText, + } = await initializeEditor( { + initialHtml, + } ); + + // Select Spacer block + const spacerBlock = getByA11yLabel( /Spacer Block\. Row 1/ ); + fireEvent.press( spacerBlock ); + + // Open block settings + fireEvent.press( getByA11yLabel( 'Open Settings' ) ); + await waitFor( + () => getByTestId( 'block-settings-modal' ).props.isVisible + ); + + // Update height attribute + fireEvent.press( getByText( '100' ) ); + const heightTextInput = getByDisplayValue( '100' ); + fireEvent.changeText( heightTextInput, '50' ); + + expect( getEditorHtml() ).toMatchSnapshot(); + } ); + + it( 'updates height to 25vh', async () => { + const initialHtml = ` + + `; + const { + getByA11yLabel, + getByDisplayValue, + getByTestId, + getByText, + } = await initializeEditor( { + initialHtml, + } ); + + // Select Spacer block + const spacerBlock = getByA11yLabel( /Spacer Block\. Row 1/ ); + fireEvent.press( spacerBlock ); + + // Open block settings + fireEvent.press( getByA11yLabel( 'Open Settings' ) ); + await waitFor( + () => getByTestId( 'block-settings-modal' ).props.isVisible + ); + + // Set vh unit + fireEvent.press( getByText( 'px' ) ); + fireEvent.press( getByText( 'Viewport height (vh)' ) ); + + // Update height attribute + fireEvent.press( getByText( '100' ) ); + const heightTextInput = getByDisplayValue( '100' ); + fireEvent.changeText( heightTextInput, '25' ); + + expect( getEditorHtml() ).toMatchSnapshot(); + } ); + + it( 'increments height', async () => { + const initialHtml = ` + + `; + const { getByA11yLabel, getByTestId } = await initializeEditor( { + initialHtml, + } ); + + // Select Spacer block + const spacerBlock = getByA11yLabel( /Spacer Block\. Row 1/ ); + fireEvent.press( spacerBlock ); + + // Open block settings + fireEvent.press( getByA11yLabel( 'Open Settings' ) ); + await waitFor( + () => getByTestId( 'block-settings-modal' ).props.isVisible + ); + + // Increment height + fireEvent( + getByA11yLabel( /Height\. Value is 100 Pixels \(px\)/ ), + 'accessibilityAction', + { + nativeEvent: { actionName: 'increment' }, + } + ); + + expect( getEditorHtml() ).toMatchSnapshot(); + } ); + + it( 'decrements height', async () => { + const initialHtml = ` + + `; + const { getByA11yLabel, getByTestId } = await initializeEditor( { + initialHtml, + } ); + + // Select Spacer block + const spacerBlock = getByA11yLabel( /Spacer Block\. Row 1/ ); + fireEvent.press( spacerBlock ); + + // Open block settings + fireEvent.press( getByA11yLabel( 'Open Settings' ) ); + await waitFor( + () => getByTestId( 'block-settings-modal' ).props.isVisible + ); + + // Increment height + fireEvent( + getByA11yLabel( /Height\. Value is 100 Pixels \(px\)/ ), + 'accessibilityAction', + { + nativeEvent: { actionName: 'decrement' }, + } + ); + + expect( getEditorHtml() ).toMatchSnapshot(); + } ); +} ); diff --git a/packages/edit-post/src/test/editor.native.js b/packages/edit-post/src/test/editor.native.js index 5293cf35c12ab..b1eee7eb1234b 100644 --- a/packages/edit-post/src/test/editor.native.js +++ b/packages/edit-post/src/test/editor.native.js @@ -28,7 +28,9 @@ const unsupportedBlock = ` jest.useFakeTimers( 'legacy' ); describe( 'Editor', () => { - beforeAll( registerCoreBlocks ); + beforeAll( () => { + registerCoreBlocks(); + } ); it( 'detects unsupported block and sends hasUnsupportedBlocks true to native', () => { RNReactNativeGutenbergBridge.editorDidMount = jest.fn(); diff --git a/packages/primitives/src/block-quotation/index.native.js b/packages/primitives/src/block-quotation/index.native.js index 8f97ed8dc43d8..01e8b7cdb4c50 100644 --- a/packages/primitives/src/block-quotation/index.native.js +++ b/packages/primitives/src/block-quotation/index.native.js @@ -5,24 +5,26 @@ import { View } from 'react-native'; /** * WordPress dependencies */ -import { Children, cloneElement } from '@wordpress/element'; -import { withPreferredColorScheme } from '@wordpress/compose'; +import { Children, cloneElement, forwardRef } from '@wordpress/element'; +import { usePreferredColorSchemeStyle } from '@wordpress/compose'; /** * Internal dependencies */ import styles from './style.scss'; -export const BlockQuotation = withPreferredColorScheme( ( props ) => { - const { getStylesFromColorScheme, style } = props; +export const BlockQuotation = forwardRef( ( { ...props }, ref ) => { + const { style } = props; const blockQuoteStyle = [ - getStylesFromColorScheme( + usePreferredColorSchemeStyle( styles.wpBlockQuoteLight, styles.wpBlockQuoteDark ), style?.color && { borderLeftColor: style.color, }, + style, + style?.backgroundColor && styles.paddingWithBackground, ]; const colorStyle = style?.color ? { color: style.color } : {}; @@ -43,5 +45,9 @@ export const BlockQuotation = withPreferredColorScheme( ( props ) => { } return child; } ); - return { newChildren }; + return ( + + { newChildren } + + ); } ); diff --git a/packages/primitives/src/block-quotation/style.native.scss b/packages/primitives/src/block-quotation/style.native.scss index 76dba07c13247..a755027cb9845 100644 --- a/packages/primitives/src/block-quotation/style.native.scss +++ b/packages/primitives/src/block-quotation/style.native.scss @@ -1,7 +1,8 @@ %wpBlockQuote-shared { border-left-width: 4px; border-left-style: solid; - padding-left: 8px; + padding-left: $block-edge-to-content; + padding-top: $dashed-border-space; margin-left: 0; } @@ -19,3 +20,7 @@ margin-top: 16px; font-size: 14px; } + +.paddingWithBackground { + padding-top: $block-edge-to-content - $block-selected-margin; +} diff --git a/packages/react-native-aztec/package.json b/packages/react-native-aztec/package.json index 09e7663b40231..07ce5dd3a305d 100644 --- a/packages/react-native-aztec/package.json +++ b/packages/react-native-aztec/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-aztec", - "version": "1.72.1", + "version": "1.73.2", "description": "Aztec view for react-native.", "private": true, "author": "The WordPress Contributors", diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/GutenbergProps.kt b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/GutenbergProps.kt index 33ca536e49b07..80ca12c370ca3 100644 --- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/GutenbergProps.kt +++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/GutenbergProps.kt @@ -50,6 +50,8 @@ data class GutenbergProps @JvmOverloads constructor( ?.let { putSerializable(PROP_IS_FSE_THEME, it) } theme.getSerializable(PROP_GALLERY_WITH_IMAGE_BLOCKS) ?.let { putSerializable(PROP_GALLERY_WITH_IMAGE_BLOCKS, it) } + theme.getSerializable(PROP_QUOTE_BLOCK_V2) + ?.let { putSerializable(PROP_QUOTE_BLOCK_V2, it) } } } @@ -90,6 +92,7 @@ data class GutenbergProps @JvmOverloads constructor( private const val PROP_FEATURES = "rawFeatures" private const val PROP_IS_FSE_THEME = "isFSETheme" private const val PROP_GALLERY_WITH_IMAGE_BLOCKS = "galleryWithImageBlocks" + private const val PROP_QUOTE_BLOCK_V2 = "quoteBlockV2" const val PROP_LOCALE = "locale" const val PROP_CAPABILITIES = "capabilities" diff --git a/packages/react-native-bridge/ios/Gutenberg.swift b/packages/react-native-bridge/ios/Gutenberg.swift index 8ff1455862159..167d2f194e7bf 100644 --- a/packages/react-native-bridge/ios/Gutenberg.swift +++ b/packages/react-native-bridge/ios/Gutenberg.swift @@ -204,6 +204,10 @@ public class Gutenberg: UIResponder { settingsUpdates["galleryWithImageBlocks"] = galleryWithImageBlocks } + if let quoteBlockV2 = editorSettings?.quoteBlockV2 { + settingsUpdates["quoteBlockV2"] = quoteBlockV2 + } + if let rawStyles = editorSettings?.rawStyles { settingsUpdates["rawStyles"] = rawStyles } diff --git a/packages/react-native-bridge/ios/GutenbergBridgeDataSource.swift b/packages/react-native-bridge/ios/GutenbergBridgeDataSource.swift index d2cb398a36bc9..1671abb11383c 100644 --- a/packages/react-native-bridge/ios/GutenbergBridgeDataSource.swift +++ b/packages/react-native-bridge/ios/GutenbergBridgeDataSource.swift @@ -78,6 +78,7 @@ public extension GutenbergBridgeDataSource { public protocol GutenbergEditorSettings { var isFSETheme: Bool { get } var galleryWithImageBlocks: Bool { get } + var quoteBlockV2: Bool { get } var rawStyles: String? { get } var rawFeatures: String? { get } var colors: [[String: String]]? { get } diff --git a/packages/react-native-bridge/package.json b/packages/react-native-bridge/package.json index 5ec902c73bcfd..712a3e04d4bff 100644 --- a/packages/react-native-bridge/package.json +++ b/packages/react-native-bridge/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-bridge", - "version": "1.72.1", + "version": "1.73.2", "description": "Native bridge library used to integrate the block editor into a native App.", "private": true, "author": "The WordPress Contributors", diff --git a/packages/react-native-editor/CHANGELOG.md b/packages/react-native-editor/CHANGELOG.md index 3b1372dda29c1..9e50680335f5c 100644 --- a/packages/react-native-editor/CHANGELOG.md +++ b/packages/react-native-editor/CHANGELOG.md @@ -11,6 +11,20 @@ For each user feature we should also add a importance categorization label to i ## Unreleased +## 1.73.2 + +- [**] [Quote block] Adds support for V2 behind a feature flag [#40133] + +## 1.73.1 + +- [*] [Spacer block] Fix crash when changing the height value using the text input [#40053] + +## 1.73.0 + +- [*] Update react-native-reanimated version to 2.4.1 [#39430] +- [*] Upgrade Gradle to 7.4 & AGP to 7.1.1 [#39508] +- [*] Add waits to fix editor test flakiness [#39668] + ## 1.72.1 - [*] Detect GIF badge during render [#39882] diff --git a/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj b/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj index 65506b8af1e28..a08280d71e173 100644 --- a/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj +++ b/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj @@ -764,7 +764,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -808,7 +808,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; diff --git a/packages/react-native-editor/ios/Podfile.lock b/packages/react-native-editor/ios/Podfile.lock index 64597da3be543..165fbbf66719e 100644 --- a/packages/react-native-editor/ios/Podfile.lock +++ b/packages/react-native-editor/ios/Podfile.lock @@ -13,7 +13,7 @@ PODS: - ReactCommon/turbomodule/core (= 0.66.2) - fmt (6.2.1) - glog (0.3.5) - - Gutenberg (1.72.1): + - Gutenberg (1.73.2): - React-Core (= 0.66.2) - React-CoreModules (= 0.66.2) - React-RCTImage (= 0.66.2) @@ -337,7 +337,7 @@ PODS: - React-Core - RNSVG (9.13.6): - React-Core - - RNTAztecView (1.72.1): + - RNTAztecView (1.73.2): - React-Core - WordPress-Aztec-iOS (~> 1.19.8) - WordPress-Aztec-iOS (1.19.8) @@ -503,7 +503,7 @@ SPEC CHECKSUMS: FBReactNativeSpec: 18438b1c04ce502ed681cd19db3f4508964c082a fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 5337263514dd6f09803962437687240c5dc39aa4 - Gutenberg: bf1ec0f78562515216d0631f5ce21341e761a72c + Gutenberg: d4f2aeeb584486622bfceb3ef2986a7adb71c215 RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9 RCTRequired: 5e9e85f48da8dd447f5834ce14c6799ea8c7f41a RCTTypeSafety: aba333d04d88d1f954e93666a08d7ae57a87ab30 @@ -542,7 +542,7 @@ SPEC CHECKSUMS: RNReanimated: ae78e43201015a3fb2982a6e3ffe3507ee7f2d81 RNScreens: 953633729a42e23ad0c93574d676b361e3335e8b RNSVG: 36a7359c428dcb7c6bce1cc546fbfebe069809b0 - RNTAztecView: ccaa997033b4ea947224062f042b1ca2edb3f4e9 + RNTAztecView: b3b398195ed9a8280eaa5af6d229463c8723134d WordPress-Aztec-iOS: 7d11d598f14c82c727c08b56bd35fbeb7dafb504 Yoga: 9a08effa851c1d8cc1647691895540bc168ea65f diff --git a/packages/react-native-editor/package.json b/packages/react-native-editor/package.json index 8d6024181c42b..a13ed1637d23d 100644 --- a/packages/react-native-editor/package.json +++ b/packages/react-native-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-editor", - "version": "1.72.1", + "version": "1.73.2", "description": "Mobile WordPress gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/react-native-editor/src/setup.js b/packages/react-native-editor/src/setup.js index b974fc530ab27..b55b9a4253cec 100644 --- a/packages/react-native-editor/src/setup.js +++ b/packages/react-native-editor/src/setup.js @@ -58,9 +58,13 @@ const gutenbergSetup = () => { const setupInitHooks = () => { addAction( 'native.pre-render', 'core/react-native-editor', ( props ) => { - registerBlocks(); - const capabilities = props.capabilities ?? {}; + const blocksFlags = { + __experimentalEnableQuoteBlockV2: props?.quoteBlockV2, + }; + + registerBlocks( blocksFlags ); + // Unregister non-supported blocks by capabilities if ( getBlockType( 'core/block' ) !== undefined && @@ -115,12 +119,12 @@ const setupInitHooks = () => { }; let blocksRegistered = false; -const registerBlocks = () => { +const registerBlocks = ( blocksFlags ) => { if ( blocksRegistered ) { return; } - registerCoreBlocks(); + registerCoreBlocks( blocksFlags ); blocksRegistered = true; };