Make send button independent on MailPoet
[MAILPOET-6429]
This commit is contained in:
@ -11,6 +11,7 @@ use MailPoet\EmailEditor\Engine\Settings_Controller;
|
||||
use MailPoet\EmailEditor\Engine\Theme_Controller;
|
||||
use MailPoet\EmailEditor\Engine\User_Theme;
|
||||
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as EditorInitController;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Settings\SettingsController as MailPoetSettings;
|
||||
use MailPoet\Settings\UserFlagsController;
|
||||
@ -77,6 +78,10 @@ class EditorPageRenderer {
|
||||
if (!$post instanceof \WP_Post || $post->post_type !== EditorInitController::MAILPOET_EMAIL_POST_TYPE) { // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||
return;
|
||||
}
|
||||
$newsletter = $this->newslettersRepository->findOneBy(['wpPost' => $postId]);
|
||||
if (!$newsletter instanceof NewsletterEntity) {
|
||||
return;
|
||||
}
|
||||
$this->dependencyNotice->checkDependenciesAndEventuallyShowNotice();
|
||||
|
||||
// load analytics (mixpanel) library
|
||||
@ -148,6 +153,7 @@ class EditorPageRenderer {
|
||||
'user_theme_post_id' => $this->userTheme->get_user_theme_post()->ID,
|
||||
'urls' => [
|
||||
'listings' => admin_url('admin.php?page=mailpoet-newsletters'),
|
||||
'send' => admin_url('admin.php?page=mailpoet-newsletters#/send/' . $newsletter->getId()),
|
||||
],
|
||||
]
|
||||
);
|
||||
|
@ -3,7 +3,6 @@
|
||||
*/
|
||||
import { __ } from '@wordpress/i18n';
|
||||
import { Button } from '@wordpress/components';
|
||||
import { useEntityProp } from '@wordpress/core-data';
|
||||
import { applyFilters } from '@wordpress/hooks';
|
||||
import { useSelect } from '@wordpress/data';
|
||||
import {
|
||||
@ -14,30 +13,26 @@ import {
|
||||
/**
|
||||
* Internal dependencies
|
||||
*/
|
||||
import { MailPoetEmailData, storeName } from '../../store';
|
||||
import { storeName } from '../../store';
|
||||
import { useEditorMode } from '../../hooks';
|
||||
import { recordEvent } from '../../events';
|
||||
|
||||
export function SendButton( { validateContent, isContentInvalid } ) {
|
||||
const [ mailpoetEmail ] = useEntityProp(
|
||||
'postType',
|
||||
'mailpoet_email',
|
||||
'mailpoet_data'
|
||||
);
|
||||
|
||||
const { isDirty } = useEntitiesSavedStatesIsDirty();
|
||||
|
||||
const { hasEmptyContent, isEmailSent } = useSelect(
|
||||
const { hasEmptyContent, isEmailSent, urls } = useSelect(
|
||||
( select ) => ( {
|
||||
hasEmptyContent: select( storeName ).hasEmptyContent(),
|
||||
isEmailSent: select( storeName ).isEmailSent(),
|
||||
urls: select( storeName ).getUrls(),
|
||||
} ),
|
||||
[]
|
||||
);
|
||||
|
||||
const mailpoetEmailData: MailPoetEmailData = mailpoetEmail;
|
||||
function sendAction() {
|
||||
window.location.href = `admin.php?page=mailpoet-newsletters#/send/${ mailpoetEmailData.id }`;
|
||||
if ( urls.send ) {
|
||||
window.location.href = urls.send;
|
||||
}
|
||||
}
|
||||
|
||||
const [ editorMode ] = useEditorMode();
|
||||
|
@ -166,6 +166,7 @@ export type EmailEditorLayout = {
|
||||
};
|
||||
|
||||
export type EmailEditorUrls = {
|
||||
send?: string;
|
||||
listings: string;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user