Skip to content

Commit 5d22e5f

Browse files
committed
fix: editorLoader merge
1 parent 8b0e8cf commit 5d22e5f

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/**
2+
* WordPress dependencies
3+
*/
4+
import { useSelect } from '@wordpress/data'
5+
import { useEffect, useState } from '@wordpress/element'
6+
7+
/**
8+
* External dependencies
9+
*/
10+
import { compact } from 'lodash'
11+
12+
const PRESET_MAPPING = {
13+
fontSizes: {
14+
prefix: 'font-size',
15+
},
16+
spacingSizes: {
17+
prefix: 'spacing-size',
18+
},
19+
blockHeights: {
20+
prefix: 'block-height',
21+
},
22+
borderRadius: {
23+
prefix: 'border-radius',
24+
},
25+
}
26+
27+
const renderGlobalStyles = ( customPresets, setStyles ) => {
28+
let css = ''
29+
30+
Object.entries( customPresets ).forEach( ( [ key, presets ] ) => {
31+
const styleRules = presets?.map( preset => {
32+
return preset && ( ! preset?.isDiscarded )
33+
? `--stk--preset--${ PRESET_MAPPING[ key ]?.prefix }--${ preset?.slug || '' }: ${ preset?.size || '' };`
34+
: ''
35+
} )
36+
css += compact( styleRules ).join( '' )
37+
} )
38+
39+
css = `:root { ${ css } }`
40+
setStyles( css )
41+
}
42+
43+
export const GlobalPresetControlsStyles = () => {
44+
const { customPresets } = useSelect( select => {
45+
const _customPresetControls = select( 'stackable/global-preset-controls.custom' )?.getCustomPresetControls()
46+
return { customPresets: { ..._customPresetControls } ?? [] }
47+
}, [] )
48+
const [ styles, setStyles ] = useState( '' )
49+
50+
useEffect( () => {
51+
if ( customPresets && typeof customPresets === 'object' ) {
52+
renderGlobalStyles( customPresets, setStyles )
53+
}
54+
}, [ JSON.stringify( customPresets ) ] )
55+
56+
return styles
57+
}

0 commit comments

Comments
 (0)