Use AssetsLoader for enqueue css in formEditor

[MAILPOET-3556]
This commit is contained in:
Jan Lysý
2021-04-20 11:05:07 +02:00
committed by Veljko V
parent e79ff273fe
commit 5347714bbe
4 changed files with 58 additions and 23 deletions

View File

@ -0,0 +1,33 @@
<?php
namespace MailPoet\Config;
use MailPoet\WP\Functions as WPFunctions;
class AssetsLoader {
/** @var Renderer */
private $renderer;
/** @var WPFunctions */
private $wp;
public function __construct(RendererFactory $rendererFactory, WPFunctions $wp) {
$this->renderer = $rendererFactory->getRenderer();
$this->wp = $wp;
}
public function loadStyles(): void {
if (isset($_GET['page']) && $_GET['page'] === 'mailpoet-form-editor') {
$this->enqueueStyle('mailpoet-form-editor');
$this->enqueueStyle('mailpoet-public');
}
}
private function enqueueStyle(string $name): void {
$this->wp->wpEnqueueStyle(
$name,
Env::$assetsUrl . '/dist/css/' . $this->renderer->getCssAsset("{$name}.css")
);
}
}

View File

@ -73,6 +73,9 @@ class Initializer {
/** @var Localizer */ /** @var Localizer */
private $localizer; private $localizer;
/** @var AssetsLoader */
private $assetsLoader;
const INITIALIZED = 'MAILPOET_INITIALIZED'; const INITIALIZED = 'MAILPOET_INITIALIZED';
public function __construct( public function __construct(
@ -92,25 +95,27 @@ class Initializer {
WCTransactionalEmails $wcTransactionalEmails, WCTransactionalEmails $wcTransactionalEmails,
PostEditorBlock $postEditorBlock, PostEditorBlock $postEditorBlock,
WooCommerceHelper $wcHelper, WooCommerceHelper $wcHelper,
Localizer $localizer Localizer $localizer,
AssetsLoader $assetsLoader
) { ) {
$this->rendererFactory = $rendererFactory; $this->rendererFactory = $rendererFactory;
$this->accessControl = $accessControl; $this->accessControl = $accessControl;
$this->api = $api; $this->api = $api;
$this->activator = $activator; $this->activator = $activator;
$this->settings = $settings; $this->settings = $settings;
$this->router = $router; $this->router = $router;
$this->hooks = $hooks; $this->hooks = $hooks;
$this->changelog = $changelog; $this->changelog = $changelog;
$this->menu = $menu; $this->menu = $menu;
$this->cronTrigger = $cronTrigger; $this->cronTrigger = $cronTrigger;
$this->permanentNotices = $permanentNotices; $this->permanentNotices = $permanentNotices;
$this->shortcodes = $shortcodes; $this->shortcodes = $shortcodes;
$this->databaseInitializer = $databaseInitializer; $this->databaseInitializer = $databaseInitializer;
$this->wcTransactionalEmails = $wcTransactionalEmails; $this->wcTransactionalEmails = $wcTransactionalEmails;
$this->wcHelper = $wcHelper; $this->wcHelper = $wcHelper;
$this->postEditorBlock = $postEditorBlock; $this->postEditorBlock = $postEditorBlock;
$this->localizer = $localizer; $this->localizer = $localizer;
$this->assetsLoader = $assetsLoader;
} }
public function init() { public function init() {
@ -187,6 +192,7 @@ class Initializer {
$this->setupWidget(); $this->setupWidget();
$this->hooks->init(); $this->hooks->init();
$this->setupWoocommerceTransactionalEmails(); $this->setupWoocommerceTransactionalEmails();
$this->assetsLoader->loadStyles();
} catch (\Exception $e) { } catch (\Exception $e) {
$this->handleFailedInitialization($e); $this->handleFailedInitialization($e);
} }

View File

@ -93,6 +93,7 @@ class ContainerConfigurator implements IContainerConfigurator {
// Config // Config
$container->autowire(\MailPoet\Config\AccessControl::class)->setPublic(true); $container->autowire(\MailPoet\Config\AccessControl::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Activator::class)->setPublic(true); $container->autowire(\MailPoet\Config\Activator::class)->setPublic(true);
$container->autowire(\MailPoet\Config\AssetsLoader::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Populator::class)->setPublic(true); $container->autowire(\MailPoet\Config\Populator::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Changelog::class)->setPublic(true); $container->autowire(\MailPoet\Config\Changelog::class)->setPublic(true);
$container->autowire(\MailPoet\Config\DatabaseInitializer::class); $container->autowire(\MailPoet\Config\DatabaseInitializer::class);

View File

@ -1,10 +1,5 @@
<% extends 'layout.html' %> <% extends 'layout.html' %>
<% block after_css %>
<%= stylesheet('mailpoet-form-editor.css') %>
<%= stylesheet('mailpoet-public.css') %>
<% endblock %>
<% block container %> <% block container %>
<script type="text/javascript"> <script type="text/javascript">