File "import-plugins-activation.js"
Full Path: /home/warrior1/public_html/wp-content/plugins/elementor/app/modules/import-export/assets/js/pages/import/import-plugins-activation/import-plugins-activation.js
File size: 2.36 KB
MIME-type: text/x-java
Charset: utf-8
import { useContext, useEffect } from 'react';
import { useNavigate } from '@reach/router';
import { ImportContext } from '../../../context/import-context/import-context-provider';
import { SharedContext } from '../../../context/shared-context/shared-context-provider';
import Layout from '../../../templates/layout';
import FileProcess from '../../../shared/file-process/file-process';
import PluginStatusItem from './components/plugin-status-item/plugin-status-item';
import Grid from 'elementor-app/ui/grid/grid';
import List from 'elementor-app/ui/molecules/list';
import './import-plugins-activation.scss';
import useInstallPlugins from './hooks/use-install-plugins';
export default function ImportPluginsActivation() {
const importContext = useContext( ImportContext ),
sharedContext = useContext( SharedContext ),
navigate = useNavigate(),
{ bulk, ready, isDone } = useInstallPlugins( { plugins: importContext.data.plugins } );
// In case there are no plugins to import.
useEffect( () => {
if ( ! importContext.data.plugins.length ) {
navigate( '/import/' );
}
}, [ importContext.data.plugins ] );
// When import plugins process is done.
useEffect( () => {
if ( isDone ) {
importContext.dispatch( { type: 'SET_IMPORTED_PLUGINS', payload: ready } );
importContext.dispatch( { type: 'SET_PLUGINS_STATE', payload: 'success' } );
sharedContext.dispatch( { type: 'SET_CURRENT_PAGE_NAME', payload: ImportPluginsActivation.name } );
}
}, [ isDone ] );
// Once the imported plugins data was updated.
useEffect( () => {
if ( importContext.data.importedPlugins.length ) {
navigate( '/import/process' );
}
}, [ importContext.data.importedPlugins ] );
return (
<Layout type="import">
<section className="e-app-import-plugins-activation">
<FileProcess info={ __( 'Activating plugins:', 'elementor' ) } />
<Grid container justify="center">
<Grid item className="e-app-import-plugins-activation__installing-plugins">
{
! ! bulk?.length &&
<List>
{
bulk.map( ( plugin ) => (
<List.Item className="e-app-import-plugins-activation__plugin-status-item" key={ plugin.name }>
<PluginStatusItem
name={ plugin.name }
status={ plugin.status }
/>
</List.Item>
) )
}
</List>
}
</Grid>
</Grid>
</section>
</Layout>
);
}