import { useEffect } from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter } from 'react-router-dom'; import { TopBarWithBeamer } from 'common/top_bar/top_bar'; import { Popover, SlotFillProvider } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; import { initializeApi, useMutation } from './api'; import { registerTranslations } from './i18n'; import { createStore, storeName } from './listing/store'; import { AutomationListing, AutomationListingHeader } from './listing'; import { registerApiErrorHandler } from './listing/api-error-handler'; import { Notices } from './listing/components/notices'; import { WorkflowListingNotices } from './listing/workflow-listing-notices'; import { BuildYourOwnSection, HeroSection, TemplatesSection } from './sections'; import { CreateEmptyWorkflowButton, CreateWorkflowFromTemplateButton, } from './testing'; function Content(): JSX.Element { const count = useSelect((select) => select(storeName).getWorkflowCount()); const content = count > 0 ? ( <> ) : ( ); // Hide notices on onboarding screen useEffect(() => { const onboardingClass = 'mailpoet-automation-is-onboarding'; const element = document.querySelector('body'); if (count === 0 && !element.classList.contains(onboardingClass)) { element.classList.add(onboardingClass); } if (count > 0 && element.classList.contains(onboardingClass)) { element.classList.remove(onboardingClass); } }, [count]); return ( <> {content} ); } function Workflows(): JSX.Element { return ( <> ); } function RecreateSchemaButton(): JSX.Element { const [createSchema, { loading, error }] = useMutation('system/database', { method: 'POST', }); return (
{error && (
{error?.data?.message ?? 'An unknown error occurred'}
)}
); } function DeleteSchemaButton(): JSX.Element { const [deleteSchema, { loading, error }] = useMutation('system/database', { method: 'DELETE', }); return (
{error && (
{error?.data?.message ?? 'An unknown error occurred'}
)}
); } function App(): JSX.Element { return (
Create testing workflow from template (welcome email) Create testing workflow from template (welcome sequence, only premium) Create testing workflow from template (advanced welcome sequence, only premium)
); } window.addEventListener('DOMContentLoaded', () => { createStore(); const root = document.getElementById('mailpoet_automation'); if (root) { registerTranslations(); registerApiErrorHandler(); initializeApi(); ReactDOM.render(, root); } });