Skip to content
Prev Previous commit
Next Next commit
Plumb through experimental flag so new gallery edit and save only loa…
…d if experiment enabled.
  • Loading branch information
Glen Davies committed Feb 15, 2021
commit 321f758c68ceaa132cea0ad78971c52f9cb2f9e5
16 changes: 16 additions & 0 deletions lib/experiments-page.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,19 @@ function gutenberg_display_experiment_section() {

<?php
}

/**
* Extends default editor settings with experiments settings.
*
* @param array $settings Default editor settings.
*
* @return array Filtered editor settings.
*/
function gutenberg_experiments_editor_settings( $settings ) {
$experiments_exist = get_option( 'gutenberg-experiments' );
$experiments_settings = array(
'__experimentalGalleryRefactor' => $experiments_exist ? array_key_exists( 'gutenberg-gallery-refactor', get_option( 'gutenberg-experiments' ) ) : false,
);
return array_merge( $settings, $experiments_settings );
}
add_filter( 'block_editor_settings', 'gutenberg_experiments_editor_settings' );
1 change: 1 addition & 0 deletions packages/block-editor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@ _Properties_
- _\_\_experimentalBlockDirectory_ `boolean`: Whether the user has enabled the Block Directory
- _\_\_experimentalBlockPatterns_ `Array`: Array of objects representing the block patterns
- _\_\_experimentalBlockPatternCategories_ `Array`: Array of objects representing the block pattern categories
- _\_\_experimentalGalleryRefactor_ `boolean`: Whether the user has enabled the refactored gallery block which uses InnerBlocks

<a name="SkipToSelectedBlock" href="#SkipToSelectedBlock">#</a> **SkipToSelectedBlock**

Expand Down
2 changes: 2 additions & 0 deletions packages/block-editor/src/store/defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export const PREFERENCES_DEFAULTS = {
* @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory
* @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns
* @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories
* @property {boolean} __experimentalGalleryRefactor Whether the user has enabled the refactored gallery block which uses InnerBlocks
*/
export const SETTINGS_DEFAULTS = {
alignWide: false,
Expand Down Expand Up @@ -151,6 +152,7 @@ export const SETTINGS_DEFAULTS = {
__experimentalBlockPatterns: [],
__experimentalBlockPatternCategories: [],
__experimentalSpotlightEntityBlocks: [],
__experimentalGalleryRefactor: false,

// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.
// The setting is only kept for backward compatibility purposes.
Expand Down
17 changes: 16 additions & 1 deletion packages/block-library/src/gallery/edit-wrapper.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/**
* WordPress dependencies
*/
import { store as blockEditorStore } from '@wordpress/block-editor';
import { useSelect } from '@wordpress/data';

/**
* Internal dependencies
*/
Expand All @@ -12,7 +18,16 @@ import GalleryEditV1 from './v1/edit';
export default function GalleryEditWrapper( props ) {
const { attributes } = props;

if ( attributes?.ids?.length > 0 || attributes?.images?.length > 0 ) {
const __experimentalGalleryRefactor = useSelect( ( select ) => {
const settings = select( blockEditorStore ).getSettings();
return settings.__experimentalGalleryRefactor;
}, [] );

if (
! __experimentalGalleryRefactor ||
attributes?.ids?.length > 0 ||
attributes?.images?.length > 0
) {
return <GalleryEditV1 { ...props } />;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ function useBlockEditorSettings( settings, hasTemplate ) {
'__experimentalGlobalStylesBaseStyles',
'__experimentalPreferredStyleVariations',
'__experimentalSetIsInserterOpened',
'__experimentalGalleryRefactor',
'alignWide',
'allowedBlockTypes',
'availableLegacyWidgets',
Expand Down