Add Form preview rudimentary component

[MAILPOET-2602]
This commit is contained in:
Pavel Dohnal
2020-02-06 09:18:13 +01:00
committed by Jack Kitterhing
parent 8439b8cb2e
commit 176ecef4f7
2 changed files with 67 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
import React from 'react';
import PropTypes from 'prop-types';
function Preview({
children,
}) {
return (
<>
{children}
</>
);
}
Preview.propTypes = {
children: PropTypes.node.isRequired,
};
export default Preview;

View File

@@ -0,0 +1,48 @@
import React, { useEffect, useState } from 'react';
import { Modal, Spinner } from '@wordpress/components';
import { useDispatch, useSelect } from '@wordpress/data';
import Preview from '../../common/preview.jsx';
const FormPreview = () => {
const [form, setForm] = useState(null);
const { hidePreview } = useDispatch('mailpoet-form-editor');
const isPreview = useSelect(
(select) => select('mailpoet-form-editor').getIsPreviewShown(),
[]
);
function loadFormPreviewFromServer() {
}
useEffect(() => {
if (isPreview) {
loadFormPreviewFromServer();
}
}, [isPreview]);
if (!isPreview) return null;
return (
<Modal
isDismissible
shouldCloseOnEsc
shouldCloseOnClickOutside
title="Form Preview"
onRequestClose={hidePreview}
>
<Preview>
{form === null && (
<Spinner />
)}
{form !== null && (
<div dangerouslySetInnerHTML={form} />
)}
</Preview>
</Modal>
);
};
export default FormPreview;