import React, { useEffect } from 'react'; import { PluginDocumentSettingPanel } from '@wordpress/edit-post'; import { CheckboxControl, SelectControl, } from '@wordpress/components'; import { useDispatch } from '@wordpress/data'; import { store as noticesStore } from '@wordpress/notices'; import withMetaboxValidation from './withMetaboxValidation'; import { OrderBumpsMeta, ValidationRules } from '../../Types/ValidationRules'; const getValidationRules: ( meta: OrderBumpsMeta ) => ValidationRules = ( meta ) => ( { } ); const OrderBumpsDisplayLocation = ( { meta, handleFieldChange } ) => { const { createNotice, removeNotice } = useDispatch( noticesStore ); useEffect( () => { if ( meta.cfw_ob_display_location !== 'complete_order' || ( meta.cfw_ob_full_screen !== 'yes' && meta.cfw_ob_display_location === 'complete_order' ) ) { createNotice( 'warning', 'Block Editor is only used for Full Screen Order Bumps (Configurable for After Checkout Submit Bumps). Blocks are ignored for other configurations.', { id: 'notice-cfw_ob_display_location', isDismissible: false }, ); } else { removeNotice( 'notice-cfw_ob_display_location' ); } return () => { removeNotice( 'notice-cfw_ob_display_location' ); }; }, [ meta.cfw_ob_display_location, meta.cfw_ob_full_screen ] ); return (
{ handleFieldChange( 'cfw_ob_display_location', newValue ); } } /> {meta.cfw_ob_display_location === 'complete_order' && { handleFieldChange( 'cfw_ob_full_screen', newValue ? 'yes' : 'no' ); } } /> }
); }; export default withMetaboxValidation( OrderBumpsDisplayLocation, getValidationRules );