File "index.js"
Full Path: /home/warrior1/public_html/languages/wp-content/plugins/astra-sites/inc/lib/onboarding/assets/src/steps/page-builder/index.js
File size: 4.05 KB
MIME-type: text/x-java
Charset: utf-8
import React, { useEffect } from 'react';
import { __ } from '@wordpress/i18n';
import { DefaultStep, PreviousStepLink } from '../../components/index';
import { useStateValue } from '../../store/store';
import './style.scss';
const { imageDir, isBrizyEnabled } = starterTemplates;
const PageBuilder = () => {
const [ { currentIndex }, dispatch ] = useStateValue();
useEffect( () => {
const startTime = localStorage.getItem( 'st-import-start' );
const endTime = localStorage.getItem( 'st-import-end' );
if ( startTime || endTime ) {
localStorage.removeItem( 'st-import-start' );
localStorage.removeItem( 'st-import-end' );
}
} );
const update = ( builder ) => {
const content = new FormData();
content.append( 'action', 'astra-sites-change-page-builder' );
content.append( '_ajax_nonce', astraSitesVars._ajax_nonce );
content.append( 'page_builder', builder );
fetch( ajaxurl, {
method: 'post',
body: content,
} );
dispatch( {
type: 'set',
builder,
currentIndex: currentIndex + 1,
} );
};
const handleKeyPress = ( e, value ) => {
e = e || window.event;
if ( e.keyCode === 37 ) {
//Left Arrow
if ( e.target.previousSibling ) {
e.target.previousSibling.focus();
}
} else if ( e.keyCode === 39 ) {
//Right Arrow
if ( e.target.nextSibling ) {
e.target.nextSibling.focus();
}
} else if ( e.key === 'Enter' ) {
//Enter
update( value );
}
};
return (
<DefaultStep
content={
<div className="page-builder-screen-wrap middle-content">
<h1>{ __( 'Select Page Builder', 'astra-sites' ) }</h1>
<p className="screen-description">
{ __(
'Please choose your preferred page builder from the list below.',
'astra-sites'
) }
</p>
<div className="page-builder-wrap ist-fadeinUp">
<div
className="page-builder-item d-flex-center-align"
onClick={ () => {
update( 'gutenberg' );
} }
tabIndex="0"
onKeyDown={ ( event ) =>
handleKeyPress( event, 'gutenberg' )
}
>
<div className="elementor-image-wrap image-wrap">
<img
src={ `${ imageDir }block-editor.svg` }
alt={ __( 'Block Editor', 'astra-sites' ) }
/>
</div>
<h6>{ __( 'Block Editor', 'astra-sites' ) }</h6>
</div>
<div
className="page-builder-item d-flex-center-align"
onClick={ () => {
update( 'elementor' );
} }
tabIndex="0"
onKeyDown={ ( event ) =>
handleKeyPress( event, 'elementor' )
}
>
<div className="elementor-image-wrap image-wrap">
<img
src={ `${ imageDir }elementor.svg` }
alt={ __( 'Elementor', 'astra-sites' ) }
/>
</div>
<h6>{ __( 'Elementor', 'astra-sites' ) }</h6>
</div>
<div
className="page-builder-item d-flex-center-align"
onClick={ () => {
update( 'beaver-builder' );
} }
tabIndex="0"
onKeyDown={ ( event ) =>
handleKeyPress( event, 'beaver-builder' )
}
>
<div className="beaver-builder-image-wrap image-wrap">
<img
src={ `${ imageDir }beaver-builder.svg` }
alt={ __(
'Beaver Builder',
'astra-sites'
) }
/>
</div>
<h6>{ __( 'Beaver Builder', 'astra-sites' ) }</h6>
</div>
{ isBrizyEnabled === '1' && (
<div
className="page-builder-item d-flex-center-align"
onClick={ () => {
update( 'brizy' );
} }
tabIndex="0"
onKeyDown={ ( event ) =>
handleKeyPress( event, 'brizy' )
}
>
<div className="brizy-image-wrap image-wrap">
<img
src={ `${ imageDir }brizy.svg` }
alt={ __( 'Brizy', 'astra-sites' ) }
/>
</div>
<h6>{ __( 'Brizy', 'astra-sites' ) }</h6>
</div>
) }
</div>
</div>
}
actions={
<>
<PreviousStepLink before>
{ __( 'Back', 'astra-sites' ) }
</PreviousStepLink>
</>
}
/>
);
};
export default PageBuilder;