balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

ActivatePluginsModal.js (2399B)


      1 import { __, sprintf } from '@wordpress/i18n'
      2 import {
      3     Modal, Button, ButtonGroup,
      4 } from '@wordpress/components'
      5 import { render } from '@wordpress/element'
      6 import ActivatingModal from './ActivatingModal'
      7 import ExtendifyLibrary from '../../ExtendifyLibrary'
      8 import { useWantedTemplateStore } from '../../state/Importing'
      9 import { getPluginDescription } from '../../util/general'
     10 import { useUserStore } from '../../state/User'
     11 import NeedsPermissionModal from '../NeedsPermissionModal'
     12 
     13 export default function ActivatePluginsModal(props) {
     14     const wantedTemplate = useWantedTemplateStore(store => store.wantedTemplate)
     15     const closeModal = () => render(<ExtendifyLibrary show={true}/>, document.getElementById('extendify-root'))
     16     const installPlugins = () => render(<ActivatingModal />, document.getElementById('extendify-root'))
     17     const requiredPlugins = wantedTemplate?.fields?.required_plugins || []
     18 
     19     if (!useUserStore.getState()?.canActivatePlugins) {
     20         return <NeedsPermissionModal/>
     21     }
     22 
     23     return <Modal
     24         title={__('Activate required plugins', 'extendify-sdk')}
     25         isDismissible={false}
     26     >
     27         <div>
     28             <p style={{
     29                 maxWidth: '400px',
     30             }}>
     31                 {props.message ?? __(sprintf('There is just one more step. This %s requires the following plugins to be installed and activated:',
     32                     wantedTemplate?.fields?.type ?? 'template'),
     33                 'extendify-sdk')}
     34             </p>
     35             <ul>
     36                 {
     37                     // Hardcoded temporarily to not force EP install
     38                     // requiredPlugins.map((plugin) =>
     39                     requiredPlugins.filter((p) => p !== 'editorplus').map((plugin) =>
     40                         <li key={plugin}>
     41                             {getPluginDescription(plugin)}
     42                         </li>)
     43                 }
     44             </ul>
     45             <ButtonGroup>
     46                 <Button isPrimary onClick={installPlugins}>
     47                     {__('Activate Plugins', 'extendify-sdk')}
     48                 </Button>
     49                 {props.showClose && <Button isTertiary onClick={closeModal} style={{
     50                     boxShadow: 'none', margin: '0 4px',
     51                 }}>
     52                     {__('No thanks, return to library', 'extendify-sdk')}
     53                 </Button>}
     54             </ButtonGroup>
     55         </div>
     56     </Modal>
     57 }