Make WordPress Core

Changeset 54311


Ignore:
Timestamp:
09/26/2022 02:56:41 PM (4 years ago)
Author:
hellofromTonya
Message:

Editor: Fix spacing property generation in flow layout type.

Fixes a bug of invalid CSS value when applying block spacing to a block as reported in Gutenberg issue 44435.

Adds logic to convert preset values (i.e. $gap_value) into valid CSS custom properties for the flow ('default') layout type. See the original fix in Gutenberg PR 3324.

Also adds a test dataset that fails before the bugfix and passes after the bugix.

Follow-up to [54274].

Props ndiego, isabel_brison, ramonopoly, andrewserong, hellofromTonya.
See #56467.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/block-supports/layout.php

    r54275 r54311  
    5757                        }
    5858                        if ( null !== $gap_value && ! $should_skip_gap_serialization ) {
     59                                // Get spacing CSS variable from preset value if provided.
     60                                if ( is_string( $gap_value ) && str_contains( $gap_value, 'var:preset|spacing|' ) ) {
     61                                        $index_to_splice = strrpos( $gap_value, '|' ) + 1;
     62                                        $slug            = _wp_to_kebab_case( substr( $gap_value, $index_to_splice ) );
     63                                        $gap_value       = "var(--wp--preset--spacing--$slug)";
     64                                }
     65
    5966                                array_push(
    6067                                        $layout_styles,
  • trunk/tests/phpunit/tests/block-supports/wpGetLayoutStyle.php

    r54274 r54311  
    249249                                'expected_output' => '.wp-layout{flex-wrap:nowrap;flex-direction:column;align-items:flex-start;}',
    250250                        ),
     251                        'default layout with blockGap to verify converting gap value into valid CSS' => array(
     252                                'args'            => array(
     253                                        'selector'              => '.wp-block-group.wp-container-6',
     254                                        'layout'                => array(
     255                                                'type' => 'default',
     256                                        ),
     257                                        'has_block_gap_support' => true,
     258                                        'gap_value'             => 'var:preset|spacing|70',
     259                                        'block_spacing'         => array(
     260                                                'blockGap' => 'var(--wp--preset--spacing--70)',
     261                                        ),
     262                                ),
     263                                'expected_output' => '.wp-block-group.wp-container-6 > *{margin-block-start:0;margin-block-end:0;}.wp-block-group.wp-container-6.wp-block-group.wp-container-6 > * + *{margin-block-start:var(--wp--preset--spacing--70);margin-block-end:0;}',
     264                        ),
    251265                );
    252266        }
Note: See TracChangeset for help on using the changeset viewer.