ActivatingModal.js (1625B)
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 ErrorActivating from './ErrorActivating' 7 import ReloadRequiredModal from '../ReloadRequiredModal' 8 9 export default function ActivatingModal() { 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 }).then(async () => { 22 await new Promise((resolve) => setTimeout(resolve, 1000)) 23 render(<ReloadRequiredModal />, document.getElementById('extendify-root')) 24 }) 25 .catch(({ response }) => { 26 setErrorMessage(response.data.message) 27 }) 28 29 if (errorMessage) { 30 return <ErrorActivating msg={errorMessage}/> 31 } 32 33 return <Modal 34 title={__('Activating plugins', 'extendify-sdk')} 35 isDismissible={false}> 36 <Button 37 style={{ 38 width: '100%', 39 }} 40 disabled 41 isPrimary 42 isBusy 43 onClick={() => {}}> 44 {__('Activating...', 'extendify-sdk')} 45 </Button> 46 </Modal> 47 }