index.js (1387B)
1 const {compose} = wp.compose; 2 const {withSelect} = wp.data; 3 import {useEffect, useState} from '@wordpress/element'; 4 import PreviewImportButton from '../preview-import-button'; 5 import DependentPlugins from '../dependent-plugins'; 6 import './style.scss' 7 8 function ButtonGroup (props) { 9 const {importingTemplate, showDependencyBlock, index, data, pageData} = props; 10 const [rootClassName, setRootClassName] = useState('redux-templates-import-button-group'); 11 12 // When some action is in progress, disable the button groups 13 useEffect(() => { 14 if (importingTemplate === null && rootClassName !== 'redux-templates-import-button-group') 15 setRootClassName('redux-templates-import-button-group') 16 if (importingTemplate !== null && rootClassName === 'redux-templates-import-button-group') 17 setRootClassName('redux-templates-import-button-group disabled'); 18 }, [importingTemplate]) 19 return ( 20 <div className={rootClassName}> 21 <PreviewImportButton index={index} data={data} pageData={pageData} /> 22 <DependentPlugins showDependencyBlock={showDependencyBlock} data={data} /> 23 </div> 24 ) 25 } 26 27 28 29 export default compose([ 30 withSelect((select) => { 31 const {getImportingTemplate} = select('redux-templates/sectionslist'); 32 return {importingTemplate: getImportingTemplate()}; 33 }) 34 ])(ButtonGroup);