import { __ } from '@wordpress/i18n'; import { useBlockProps, InspectorControls } from '@wordpress/block-editor'; import { PanelBody, SelectControl, Placeholder, Spinner } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; import { store as coreStore } from '@wordpress/core-data'; import ServerSideRender from '@wordpress/server-side-render'; export default function Edit( { attributes, setAttributes } ) { const { campaignId } = attributes; const blockProps = useBlockProps(); const campaigns = useSelect( ( select ) => { return select( coreStore ).getEntityRecords( 'postType', 'bp_campaign', { per_page: 100, status: 'publish,draft', _fields: 'id,title', } ); }, [] ); const campaignOptions = campaigns ? [ { value: 0, label: __( '— Select a campaign —', 'better-payment' ) }, ...campaigns.map( ( c ) => ( { value: c.id, label: c.title?.rendered || c.title?.raw || String( c.id ) } ) ), ] : [ { value: 0, label: __( 'Loading campaigns…', 'better-payment' ) } ]; return ( <> setAttributes( { campaignId: parseInt( val, 10 ) } ) } /> { campaignId > 0 && (

{ __( 'Edit in Campaign Builder →', 'better-payment' ) }

) }
{ ! campaigns && } { campaigns && ! campaignId && ( ) } { campaignId > 0 && ( ) }
); }