Skip to content

Commit 9a39347

Browse files
committed
improve code readability
1 parent 2cd3450 commit 9a39347

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

src/hooks/use-preset-controls.js

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,26 @@ import { __ } from '@wordpress/i18n'
77
const PRESET_MAPPING = {
88
fontSizes: {
99
settings: [ 'typography', 'fontSizes' ],
10-
defaultEnabled: [ 'typography', 'defaultFontSizes' ],
10+
defaultSizes: 'typography.fontSizes.default',
11+
defaultEnabled: 'typography.defaultFontSizes',
1112
prefix: 'font-size',
1213
},
1314
spacingSizes: {
1415
settings: [ 'spacing', 'spacingSizes' ],
15-
defaultEnabled: [ 'typography', 'defaultSpacingSizes' ],
16+
defaultSizes: 'spacing.spacingSizes.default',
17+
defaultEnabled: 'spacing.defaultSpacingSizes',
1618
prefix: 'spacing',
1719
},
1820
blockHeights: {
1921
settings: [ 'blockHeights' ],
20-
defaultEnabled: [],
22+
defaultSizes: '',
23+
defaultEnabled: '',
2124
prefix: 'block-height',
2225
},
2326
borderRadius: {
2427
settings: [ 'borderRadius' ],
25-
defaultEnabled: [],
28+
defaultSizes: '',
29+
defaultEnabled: '',
2630
prefix: 'border-radius',
2731
},
2832
}
@@ -36,7 +40,7 @@ const nonePreset = {
3640
export const usePresetControls = property => {
3741
// Get the theme presets for the property
3842
const [
39-
themePresets,
43+
_themePresets,
4044

4145
/**
4246
* Dev note:
@@ -45,14 +49,14 @@ export const usePresetControls = property => {
4549
* will use default presets, and theme presets with the same slugs will be ignored.
4650
* Therefore, we also need to get the default presets if the `defaultSizesEnabled` is `true` and merge it with the theme presets.
4751
*
48-
* https://make.wordpress.org/core/2024/06/19/theme-json-version-3/#:~:text=Breaking%20changes%20in%20version%203
52+
* See: https://make.wordpress.org/core/2024/06/19/theme-json-version-3/#:~:text=Breaking%20changes%20in%20version%203
4953
* */
5054
wpDefaultPresets,
5155
defaultSizesEnabled,
5256
] = useSettings(
5357
PRESET_MAPPING[ property ].settings.join( '.' ),
54-
[ ...PRESET_MAPPING[ property ].settings, 'default' ].join( '.' ),
55-
PRESET_MAPPING[ property ].defaultEnabled.join( '.' )
58+
PRESET_MAPPING[ property ].defaultSizes,
59+
PRESET_MAPPING[ property ].defaultEnabled
5660
)
5761

5862
// Get all custom presets
@@ -61,14 +65,19 @@ export const usePresetControls = property => {
6165
return { allCustomPresets: { ..._customPresetControls } }
6266
}, [] )
6367

68+
let themePresets = _themePresets
6469
const hasThemePresets = Array.isArray( themePresets ) && themePresets.length > 0
6570

71+
// Merge theme presets with default presets when default sizes are enabled.
72+
// This happens when settings like `typography.defaultFontSizes` or `spacing.defaultSpacingSizes`
73+
// are not explicitly set to `false` in theme.json v3.
74+
if ( hasThemePresets && wpDefaultPresets && defaultSizesEnabled !== false ) {
75+
themePresets = [ ..._themePresets, ...wpDefaultPresets ]
76+
}
77+
6678
// Get the theme/default presets if the user have one, else return the stackable presets
6779
const basePresets = hasThemePresets
68-
? ( wpDefaultPresets && defaultSizesEnabled !== false
69-
? [ ...themePresets, ...wpDefaultPresets ] // merge theme and default preset sizes
70-
: themePresets
71-
)
80+
? themePresets
7281
: PRESET_MAPPING[ property ].settings.reduce( ( acc, key ) => acc?.[ key ], DEFAULT_PRESETS.settings )
7382

7483
// Returns the base presets overriden by the custom presets

0 commit comments

Comments
 (0)