403Webshell
Server IP : 172.67.158.161  /  Your IP : 52.15.224.97
Web Server : LiteSpeed
System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : giankuin ( 1871)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/thread-self/root/home/giankuin/sieuthiweb.com.vn/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/atomic/utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/root/home/giankuin/sieuthiweb.com.vn/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/atomic/utils/render-inner-blocks.js
/**
 * External dependencies
 */
import { Suspense, cloneElement, isValidElement } from '@wordpress/element';
import parse from 'html-react-parser';

/**
 * Internal dependencies
 */
import { getBlockMap } from './get-block-map';

/**
 * Replaces saved block HTML markup with Inner Block Components.
 *
 * @param {Object} props           Render props.
 * @param {Array}  props.children  Children/inner blocks to render.
 * @param {string} props.blockName Parent Block Name used to get the block map and for keys.
 * @param {number} [props.depth]   Depth of inner blocks being rendered.
 */
export const renderInnerBlocks = ( {
	children,
	blockName: parentBlockName,
	depth = 1,
} ) => {
	const blockMap = getBlockMap( parentBlockName );

	return Array.from( children ).map( ( el, index ) => {
		const componentProps = {
			...el.dataset,
			key: `${ parentBlockName }_${ depth }_${ index }`,
		};

		const componentChildren =
			el.children && el.children.length
				? renderInnerBlocks( {
						children: el.children,
						blockName: parentBlockName,
						depth: depth + 1,
				  } )
				: null;

		const LayoutComponent =
			componentProps.blockName && blockMap[ componentProps.blockName ]
				? blockMap[ componentProps.blockName ]
				: null;

		if ( ! LayoutComponent ) {
			const element = parse( el.outerHTML );

			if ( isValidElement( element ) ) {
				return componentChildren
					? cloneElement( element, componentProps, componentChildren )
					: cloneElement( element, componentProps );
			}
			return null;
		}

		return (
			<Suspense
				key={ `${ parentBlockName }_${ depth }_${ index }_suspense` }
				fallback={ <div className="wc-block-placeholder" /> }
			>
				<LayoutComponent { ...componentProps }>
					{ componentChildren }
				</LayoutComponent>
			</Suspense>
		);
	} );
};

Youez - 2016 - github.com/yon3zu
LinuXploit