import {useEffect} from 'react'; import {useBlockProps} from '@wordpress/block-editor'; import {BlockEditProps} from '@wordpress/blocks'; import {__} from '@wordpress/i18n'; import BlockInspectorControls from './components/BlockInspectorControls'; import type {BlockPreviewProps} from './components/BlockPreview'; import BlockPreview from './components/BlockPreview'; import useFormOptions from '../../shared/hooks/useFormOptions'; import CampaignSelector from '../../shared/components/CampaignSelector'; import '../../shared/components/EntitySelector/styles/index.scss'; import './styles.scss'; /** * @since 4.3.0 * * @see 'class-give-block-donation-form.php' */ type CampaignFormBlockAttributes = { campaignId: number; id: number; prevId: number; blockId: string; displayStyle: BlockPreviewProps['displayStyle']; continueButtonTitle: string; showTitle: boolean; showGoal: boolean; showContent: boolean; contentDisplay: string; useDefaultForm: boolean; }; /** * @since 4.3.0 */ export default function Edit({attributes, isSelected, setAttributes, className, clientId}: BlockEditProps) { const { id, blockId, displayStyle, continueButtonTitle = __('Donate now', 'give'), } = attributes as CampaignFormBlockAttributes; const {formOptions, isResolving} = useFormOptions(attributes?.campaignId); useEffect(() => { if (!blockId) { setAttributes({blockId: clientId}); } if (!isLegacyForm && displayStyle === 'reveal') { setAttributes({displayStyle: 'modal'}); } }, []); const [isLegacyForm, isLegacyTemplate, link] = (() => { const form = formOptions.find((form) => form.value === id); return [form?.isLegacyForm, form?.isLegacyTemplate, form?.link]; })(); return (
setAttributes({campaignId: Number(campaignId)})} > {id && ( )}
); }