diff --git a/assets/js/src/form_editor/components/preview.jsx b/assets/js/src/form_editor/components/preview.jsx index 787640108f..9e9f0ea6c1 100644 --- a/assets/js/src/form_editor/components/preview.jsx +++ b/assets/js/src/form_editor/components/preview.jsx @@ -33,7 +33,6 @@ function getFormType(settings) { const getPreviewType = () => (window.localStorage.getItem('mailpoet_form_preview_last_preview_type') || 'desktop'); const FormPreview = () => { - const [formPersisted, setFormPersisted] = useState(false); const [iframeLoaded, setIframeLoaded] = useState(false); const formBlocks = useSelect( @@ -48,11 +47,15 @@ const FormPreview = () => { (select) => select('mailpoet-form-editor').getFormData(), [] ); - const { hidePreview } = useDispatch('mailpoet-form-editor'); + const { hidePreview, savePreviewData } = useDispatch('mailpoet-form-editor'); const isPreview = useSelect( (select) => select('mailpoet-form-editor').getIsPreviewShown(), [] ); + const previewDataSaved = useSelect( + (select) => select('mailpoet-form-editor').getPreviewDataSaved(), + [] + ); const editorSettings = useSelect( (select) => select('core/block-editor').getSettings(), @@ -65,18 +68,11 @@ const FormPreview = () => { editorSettings.fontSizes, customFields ); - MailPoet.Ajax.post({ - api_version: window.mailpoet_api_version, - endpoint: 'forms', - action: 'previewEditor', - data: { - ...mapFormDataBeforeSaving(formData), - body: blocksToFormBody(formBlocks), - }, - }).done(() => { - setFormPersisted(true); + savePreviewData({ + ...mapFormDataBeforeSaving(formData), + body: blocksToFormBody(formBlocks), }); - }, [formBlocks, customFields, formData, editorSettings.colors, editorSettings.fontSizes]); + }, [formBlocks, customFields, formData, editorSettings, savePreviewData]); useEffect(() => { if (isPreview) { @@ -87,11 +83,6 @@ const FormPreview = () => { if (!isPreview) return null; - function onClose() { - setFormPersisted(false); - hidePreview(); - } - function setFormType(type) { setIframeLoaded(false); window.localStorage.setItem('mailpoet_form_preview_last_form_type', type); @@ -114,16 +105,16 @@ const FormPreview = () => { } return ( - {!formPersisted && ( + {!previewDataSaved && (
)} - {formPersisted && ( + {previewDataSaved && ( <>