Skip to content
Prev Previous commit
Next Next commit
Update global styles panel
  • Loading branch information
stacimc committed Aug 11, 2021
commit 48724db457c0c1af7bfdba11200093e25c53049f
22 changes: 21 additions & 1 deletion packages/edit-site/src/components/sidebar/dimensions-panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import { __experimentalUseCustomSides as useCustomSides } from '@wordpress/block
*/
import { useSetting } from '../editor/utils';

const AXIAL_SIDES = [ 'horizontal', 'vertical' ];

export function useHasDimensionsPanel( context ) {
const hasPadding = useHasPadding( context );
const hasMargin = useHasMargin( context );
Expand Down Expand Up @@ -42,7 +44,17 @@ function filterValuesBySides( values, sides ) {

// Only include sides opted into within filtered values.
const filteredValues = {};
sides.forEach( ( side ) => ( filteredValues[ side ] = values[ side ] ) );
sides.forEach( ( side ) => {
if ( side === 'vertical' ) {
filteredValues.top = values.top;
filteredValues.bottom = values.bottom;
}
if ( side === 'horizontal' ) {
filteredValues.left = values.left;
filteredValues.right = values.right;
}
filteredValues[ side ] = values[ side ];
} );

return filteredValues;
}
Expand Down Expand Up @@ -78,6 +90,9 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {

const paddingValues = splitStyleValue( getStyle( name, 'padding' ) );
const paddingSides = useCustomSides( name, 'padding' );
const isAxialPadding =
paddingSides &&
paddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );

const setPaddingValues = ( newPaddingValues ) => {
const padding = filterValuesBySides( newPaddingValues, paddingSides );
Expand All @@ -89,6 +104,9 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {

const marginValues = splitStyleValue( getStyle( name, 'margin' ) );
const marginSides = useCustomSides( name, 'margin' );
const isAxialMargin =
marginSides &&
marginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );

const setMarginValues = ( newMarginValues ) => {
const margin = filterValuesBySides( newMarginValues, marginSides );
Expand Down Expand Up @@ -123,6 +141,7 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
sides={ paddingSides }
units={ units }
allowReset={ false }
splitOnAxis={ isAxialPadding }
/>
</ToolsPanelItem>
) }
Expand All @@ -140,6 +159,7 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
sides={ marginSides }
units={ units }
allowReset={ false }
splitOnAxis={ isAxialMargin }
/>
</ToolsPanelItem>
) }
Expand Down