useCssVarPath.js
2 years ago
useJetStyle.js
2 years ago
useJetStyleSupports.js
2 years ago
useStyle.js
2 years ago
useJetStyle.js
44 lines
| 1 | import useJetStyleSupports from './useJetStyleSupports'; |
| 2 | import compileDeclarations from '../helpers/compileDeclarations'; |
| 3 | |
| 4 | const { |
| 5 | useMemo, |
| 6 | } = wp.element; |
| 7 | |
| 8 | const { |
| 9 | useBlockAttributes, |
| 10 | } = JetFBHooks; |
| 11 | |
| 12 | /** |
| 13 | * @since 3.1.0 |
| 14 | * |
| 15 | * @param style |
| 16 | * @param className |
| 17 | * @param props |
| 18 | * @returns {{style: (*), className: string}} |
| 19 | */ |
| 20 | function useJetStyle( { style, className, ...props } = {} ) { |
| 21 | const jetStyle = useJetStyleSupports(); |
| 22 | const [ attributes ] = useBlockAttributes(); |
| 23 | |
| 24 | const compiled = useMemo( |
| 25 | () => compileDeclarations( attributes?.style, jetStyle ), |
| 26 | [ attributes?.style, jetStyle ], |
| 27 | ); |
| 28 | |
| 29 | return { |
| 30 | style: { |
| 31 | ...compiled.style, |
| 32 | ...( |
| 33 | style ?? {} |
| 34 | ), |
| 35 | }, |
| 36 | className: [ className, compiled.className ]. |
| 37 | filter( Boolean ). |
| 38 | join( ' ' ), |
| 39 | ...props, |
| 40 | }; |
| 41 | |
| 42 | } |
| 43 | |
| 44 | export default useJetStyle; |