InstallingModal.js (1450B)
1 import { __ } from '@wordpress/i18n' 2 import { Modal, Button } from '@wordpress/components' 3 import { useState, render } from '@wordpress/element' 4 import { Plugins } from '../../api/Plugins' 5 import { useWantedTemplateStore } from '../../state/Importing' 6 import ErrorInstalling from './ErrorInstalling' 7 import ReloadRequiredModal from '../ReloadRequiredModal' 8 9 export default function InstallingModal() { 10 const [errorMessage, setErrorMessage] = useState('') 11 const wantedTemplate = useWantedTemplateStore(store => store.wantedTemplate) 12 13 // Hardcoded temporarily to not force EP install 14 // const required = wantedTemplate?.fields?.required_plugins 15 const required = wantedTemplate?.fields?.required_plugins.filter(p => p !== 'editorplus') 16 17 Plugins.installAndActivate(required).then(() => { 18 useWantedTemplateStore.setState({ 19 importOnLoad: true, 20 }) 21 render(<ReloadRequiredModal />, document.getElementById('extendify-root')) 22 }) 23 .catch(({ message }) => { 24 setErrorMessage(message) 25 }) 26 27 if (errorMessage) { 28 return <ErrorInstalling msg={errorMessage}/> 29 } 30 31 return <Modal 32 title={__('Installing plugins', 'extendify-sdk')} 33 isDismissible={false}> 34 <Button style={{ 35 width: '100%', 36 }} disabled isPrimary isBusy onClick={() => {}}> 37 {__('Installing...', 'extendify-sdk')} 38 </Button> 39 </Modal> 40 }