import { useState, useEffect } from '@wordpress/element'; import { useHistory } from 'react-router-dom'; import { RadioGroup } from '@headlessui/react'; import { __ } from '@wordpress/i18n'; import { useStateValue } from '../utils/StateProvider'; import Elementor from '@WizardImages/elementor.svg'; import BeaverBuilder from '@WizardImages/beaver-builder.svg'; import BlockEditor from '@WizardImages/block-editor.png'; import otherPageBuilders from '@WizardImages/other.svg'; import Bricks from '@WizardImages/bricks.png'; import { ArrowRightIcon } from '@heroicons/react/24/outline'; const mailingLists = [ { id: 1, slug: 'gutenberg', title: 'Block Builder', image: BlockEditor, }, { id: 2, slug: 'elementor', title: 'Elementor', image: Elementor, }, { id: 3, slug: 'bricks-builder', title: 'Bricks', image: Bricks, }, { id: 4, slug: 'beaver-builder', title: 'Beaver Builder', image: BeaverBuilder, }, { id: 5, slug: 'other', title: 'Other', image: otherPageBuilders, }, ]; function classNames( ...classes ) { return classes.filter( Boolean ).join( ' ' ); } function PageBuilderStep() { const [ selectedMailingLists, setSelectedMailingLists ] = useState( cartflows_wizard?.active_page_builder || mailingLists[ 0 ].slug ); const [ { action_button }, dispatch ] = useStateValue(); const history = useHistory(); const handleChange = ( value ) => { setSelectedMailingLists( value ); dispatch( { status: 'SET_WIZARD_PAGE_BUILDER', selected_page_builder: value, } ); }; useEffect( () => { dispatch( { status: 'SET_NEXT_STEP', action_button: { button_text: __( 'Save & Continue', 'cartflows' ), button_class: 'install-page-builder-plugins', }, } ); const installPbPluginsProcess = function () { dispatch( { status: 'SET_NEXT_STEP', action_button: { button_text: __( 'Saving', 'cartflows' ), button_class: 'install-page-builder-plugins is-loading', }, } ); dispatch( { status: 'PROCESSING', } ); }; document.addEventListener( 'wcf-page-builder-plugins-install-processing', installPbPluginsProcess, false ); const installPbPluginsSuccess = function () { // Stop the processing. dispatch( { status: 'RESET', } ); history.push( { pathname: 'index.php', search: `?page=cartflow-setup&step=plugin-install`, } ); }; document.addEventListener( 'wcf-page-builder-plugins-install-success', installPbPluginsSuccess, false ); return () => { document.removeEventListener( 'wcf-page-builder-plugins-install-processing', installPbPluginsProcess ); document.removeEventListener( 'wcf-page-builder-plugins-install-success', installPbPluginsSuccess ); }; }, [] ); return (
{ __( 'Step 2 of 6', 'cartflows' ) }

{ __( 'Hi there! Tell us which page builder you use.', 'cartflows' ) }

{ __( "CartFlows works with all page builders, so don't worry if your page builder is not in the list. ", 'cartflows' ) }
{ mailingLists.map( ( mailingList ) => ( classNames( 'wcf-pb-list--option relative border rounded shadow-sm flex justify-center cursor-pointer h-[9rem] w-[130px] transition-all duration-300 focus:outline-none hover:drop-shadow-lg hover:translate-y-[-1px] hover:shadow-[0px 4px 8px -2px rgb(9 30 66 / 25%), 0px 0px 1px rgb(9 30 66 / 31%)]', checked ? 'border-transparent' : 'border-gray-300', active ? '' : '' ) } > { ( { checked, active } ) => ( <>
{ mailingList.title }
{ action_button.button_text }
); } export default PageBuilderStep;