PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 2.0.0
GenerateBlocks v2.0.0
trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.3.0
generateblocks / src / components / portaled-styles / PortaledStyles.jsx
generateblocks / src / components / portaled-styles Last commit date
PortaledStyles.jsx 1 year ago index.js 1 year ago
PortaledStyles.jsx
32 lines
1 import { createPortal, useState, useEffect } from '@wordpress/element';
2
3 export function PortaledStyles( { css } ) {
4 const [ targetElement, setTargetElement ] = useState( null );
5
6 useEffect( () => {
7 const element = document.querySelector( '.editor-styles-wrapper' );
8
9 if ( element && css ) {
10 let insertedDiv = document.querySelector( '.gb-block-styles' );
11
12 if ( ! insertedDiv ) {
13 const newDiv = document.createElement( 'div' );
14 newDiv.className = 'gb-block-styles';
15 element.insertBefore( newDiv, element.firstChild );
16 insertedDiv = newDiv;
17 }
18
19 setTargetElement( insertedDiv );
20 }
21 }, [ css ] );
22
23 if ( ! targetElement ) {
24 return null;
25 }
26
27 return createPortal(
28 <style>{ css }</style>,
29 targetElement
30 );
31 }
32