Remove styles data added to templates REST API response

We no longer need to send CSS for every template because we use global styles
live from the editor.
[MAILPOET-6335]
This commit is contained in:
Rostislav Wolny
2024-12-12 14:08:12 +01:00
committed by Aschepikov
parent bc10ae7216
commit c64e4caf27
6 changed files with 0 additions and 144 deletions

View File

@@ -350,7 +350,6 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Renderer\Renderer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Templates::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Templates\Templates::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Utils::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Templates\Utils::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Template_Preview::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Patterns\Patterns::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Patterns\Patterns::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry::class)->setPublic(true);

View File

@@ -1,77 +0,0 @@
<?php
/**
* This file is part of the MailPoet Email Editor package.
*
* @package MailPoet\EmailEditor
*/
declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Templates;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoet\EmailEditor\Validator\Builder;
/**
* Template_Preview class.
*/
class Template_Preview {
/**
* Provides the theme controller.
*
* @var Theme_Controller
*/
private Theme_Controller $theme_controller;
/**
* Provides the settings controller.
*
* @var Settings_Controller
*/
private Settings_Controller $settings_controller;
/**
* Template_Preview constructor.
*
* @param Theme_Controller $theme_controller Theme controller.
* @param Settings_Controller $settings_controller Theme controller.
*/
public function __construct(
Theme_Controller $theme_controller,
Settings_Controller $settings_controller
) {
$this->theme_controller = $theme_controller;
$this->settings_controller = $settings_controller;
}
/**
* Initializes the class.
*/
public function initialize(): void {
register_rest_field(
'wp_template',
'email_theme_css',
array(
'get_callback' => array( $this, 'get_email_theme_preview_css' ),
'update_callback' => null,
'schema' => Builder::string()->to_array(),
)
);
}
/**
* Generates CSS for preview of email theme
* They are applied in the preview BLockPreview in template selection
*/
public function get_email_theme_preview_css(): string {
$editor_theme = clone $this->theme_controller->get_theme();
$editor_settings = $this->settings_controller->get_settings();
$additional_css = '';
foreach ( $editor_settings['styles'] as $style ) {
$additional_css .= $style['css'];
}
// Set proper content width for previews.
$layout_settings = $this->theme_controller->get_layout_settings();
$additional_css .= ".is-root-container { width: {$layout_settings['contentSize']}; margin: 0 auto; }";
return $editor_theme->get_stylesheet() . $additional_css;
}
}

View File

@@ -14,8 +14,6 @@ use WP_Block_Template;
* Templates class. * Templates class.
*/ */
class Templates { class Templates {
const MAILPOET_TEMPLATE_EMPTY_THEME = array( 'version' => 3 ); // The version 3 is important to merge themes correctly.
/** /**
* Provides the utils. * Provides the utils.
* *

View File

@@ -10,7 +10,6 @@ namespace MailPoet\EmailEditor\Engine;
use MailPoet\EmailEditor\Engine\Patterns\Patterns; use MailPoet\EmailEditor\Engine\Patterns\Patterns;
use MailPoet\EmailEditor\Engine\PersonalizationTags\Personalization_Tags_Registry; use MailPoet\EmailEditor\Engine\PersonalizationTags\Personalization_Tags_Registry;
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
use MailPoet\EmailEditor\Engine\Templates\Templates; use MailPoet\EmailEditor\Engine\Templates\Templates;
use WP_Post; use WP_Post;
use WP_Theme_JSON; use WP_Theme_JSON;
@@ -36,12 +35,6 @@ class Email_Editor {
* @var Templates Templates. * @var Templates Templates.
*/ */
private Templates $templates; private Templates $templates;
/**
* Property for the template preview.
*
* @var Template_Preview Template preview.
*/
private Template_Preview $template_preview;
/** /**
* Property for the patterns. * Property for the patterns.
* *
@@ -74,7 +67,6 @@ class Email_Editor {
* *
* @param Email_Api_Controller $email_api_controller Email API controller. * @param Email_Api_Controller $email_api_controller Email API controller.
* @param Templates $templates Templates. * @param Templates $templates Templates.
* @param Template_Preview $template_preview Template preview.
* @param Patterns $patterns Patterns. * @param Patterns $patterns Patterns.
* @param Settings_Controller $settings_controller Settings controller. * @param Settings_Controller $settings_controller Settings controller.
* @param Send_Preview_Email $send_preview_email Preview email controller. * @param Send_Preview_Email $send_preview_email Preview email controller.
@@ -83,7 +75,6 @@ class Email_Editor {
public function __construct( public function __construct(
Email_Api_Controller $email_api_controller, Email_Api_Controller $email_api_controller,
Templates $templates, Templates $templates,
Template_Preview $template_preview,
Patterns $patterns, Patterns $patterns,
Settings_Controller $settings_controller, Settings_Controller $settings_controller,
Send_Preview_Email $send_preview_email, Send_Preview_Email $send_preview_email,
@@ -91,7 +82,6 @@ class Email_Editor {
) { ) {
$this->email_api_controller = $email_api_controller; $this->email_api_controller = $email_api_controller;
$this->templates = $templates; $this->templates = $templates;
$this->template_preview = $template_preview;
$this->patterns = $patterns; $this->patterns = $patterns;
$this->settings_controller = $settings_controller; $this->settings_controller = $settings_controller;
$this->send_preview_email = $send_preview_email; $this->send_preview_email = $send_preview_email;
@@ -129,7 +119,6 @@ class Email_Editor {
// Since we cannot currently disable blocks in the editor for specific templates, disable templates when viewing site editor. @see https://github.com/WordPress/gutenberg/issues/41062. // Since we cannot currently disable blocks in the editor for specific templates, disable templates when viewing site editor. @see https://github.com/WordPress/gutenberg/issues/41062.
if ( strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) ), 'site-editor.php' ) === false ) { if ( strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) ), 'site-editor.php' ) === false ) {
$this->templates->initialize(); $this->templates->initialize();
$this->template_preview->initialize();
} }
} }

View File

@@ -1,42 +0,0 @@
<?php
/**
* This file is part of the MailPoet plugin.
*
* @package MailPoet\EmailEditor
*/
declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Templates;
/**
* Integration test for the Template Preview class
*/
class Template_Preview_Test extends \MailPoetTest {
/**
* Template preview.
*
* @var Template_Preview
*/
private Template_Preview $template_preview;
/**
* Set up before each test
*/
public function _before() {
parent::_before();
$this->template_preview = $this->di_container->get( Template_Preview::class );
}
/**
* Test it Generates CSS for preview of email theme
*
* @return void
*/
public function testItCanGetThemePreviewCss(): void {
$result = $this->template_preview->get_email_theme_preview_css();
verify( $result )->stringContainsString( 'Styles for the email editor.' );
verify( $result )->stringContainsString( 'is-layout-email-flex' );
verify( $result )->stringContainsString( '.is-root-container { width: 660px; margin: 0 auto; }' ); // Styles for both the email editor and renderer.
}
}

View File

@@ -24,7 +24,6 @@ use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typograph
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager; use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager;
use MailPoet\EmailEditor\Engine\Renderer\Renderer; use MailPoet\EmailEditor\Engine\Renderer\Renderer;
use MailPoet\EmailEditor\Engine\Settings_Controller; use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
use MailPoet\EmailEditor\Engine\Templates\Templates; use MailPoet\EmailEditor\Engine\Templates\Templates;
use MailPoet\EmailEditor\Engine\Templates\Utils; use MailPoet\EmailEditor\Engine\Templates\Utils;
use MailPoet\EmailEditor\Engine\Theme_Controller; use MailPoet\EmailEditor\Engine\Theme_Controller;
@@ -203,15 +202,6 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
return new Templates( $container->get( Utils::class ) ); return new Templates( $container->get( Utils::class ) );
} }
); );
$container->set(
Template_Preview::class,
function ( $container ) {
return new Template_Preview(
$container->get( Theme_Controller::class ),
$container->get( Settings_Controller::class ),
);
}
);
$container->set( $container->set(
Patterns::class, Patterns::class,
function () { function () {
@@ -314,7 +304,6 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
return new Email_Editor( return new Email_Editor(
$container->get( Email_Api_Controller::class ), $container->get( Email_Api_Controller::class ),
$container->get( Templates::class ), $container->get( Templates::class ),
$container->get( Template_Preview::class ),
$container->get( Patterns::class ), $container->get( Patterns::class ),
$container->get( Settings_Controller::class ), $container->get( Settings_Controller::class ),
$container->get( Send_Preview_Email::class ), $container->get( Send_Preview_Email::class ),