Refactor block renderers to use wrapper renderer

[MAILPOET-2746]
This commit is contained in:
Rostislav Wolny
2020-03-12 15:53:15 +01:00
committed by Veljko V
parent 65afeca59e
commit 72a0afa75b
16 changed files with 124 additions and 53 deletions

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\WP\Functions as WPFunctions;
class Checkbox {
@@ -9,11 +10,15 @@ class Checkbox {
/** @var BlockRendererHelper */
private $rendererHelper;
/** @var BlockWrapperRenderer */
private $wrapper;
/** @var WPFunctions */
private $wp;
public function __construct(BlockRendererHelper $rendererHelper, WPFunctions $wp) {
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->wp = $wp;
}
@@ -23,8 +28,6 @@ class Checkbox {
$fieldName = 'data[' . $this->rendererHelper->getFieldName($block) . ']';
$fieldValidation = $this->rendererHelper->getInputValidation($block);
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$options = (!empty($block['params']['values'])
@@ -60,8 +63,6 @@ class Checkbox {
$html .= '<span class="mailpoet_error_' . $block['id'] . '"></span>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,23 +2,26 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
class Date {
/** @var BlockRendererHelper */
private $rendererHelper;
public function __construct(BlockRendererHelper $rendererHelper) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
}
public function render(array $block, array $formSettings): string {
$html = '';
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$html .= $this->renderDateSelect($block);
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
private function renderDateSelect(array $block = []): string {

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\WP\Functions as WPFunctions;
class Radio {
@@ -12,8 +13,12 @@ class Radio {
/** @var WPFunctions */
private $wp;
public function __construct(BlockRendererHelper $rendererHelper, WPFunctions $wp) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->wp = $wp;
}
@@ -23,8 +28,6 @@ class Radio {
$fieldName = 'data[' . $this->rendererHelper->getFieldName($block) . ']';
$fieldValidation = $this->rendererHelper->getInputValidation($block);
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$options = (!empty($block['params']['values'])
@@ -68,8 +71,6 @@ class Radio {
$html .= '<span class="mailpoet_error_' . $block['id'] . '"></span>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\WP\Functions as WPFunctions;
class Segment {
@@ -12,8 +13,12 @@ class Segment {
/** @var WPFunctions */
private $wp;
public function __construct(BlockRendererHelper $rendererHelper, WPFunctions $wp) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->wp = $wp;
}
@@ -23,8 +28,6 @@ class Segment {
$fieldName = 'data[' . $this->rendererHelper->getFieldName($block) . ']';
$fieldValidation = $this->rendererHelper->getInputValidation($block);
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$options = (!empty($block['params']['values'])
@@ -50,8 +53,6 @@ class Segment {
$html .= '<span class="mailpoet_error_' . $block['id'] . '"></span>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\WP\Functions as WPFunctions;
class Select {
@@ -12,8 +13,12 @@ class Select {
/** @var WPFunctions */
private $wp;
public function __construct(BlockRendererHelper $rendererHelper, WPFunctions $wp) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->wp = $wp;
}
@@ -23,7 +28,6 @@ class Select {
$fieldName = 'data[' . $this->rendererHelper->getFieldName($block) . ']';
$automationId = ($block['id'] == 'status') ? 'data-automation-id="form_status"' : '';
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$html .= '<select class="mailpoet_select" name="' . $fieldName . '" ' . $automationId . '>';
@@ -71,8 +75,6 @@ class Select {
}
$html .= '</select>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,19 +2,25 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
class Submit {
/** @var BlockRendererHelper */
private $rendererHelper;
public function __construct(BlockRendererHelper $rendererHelper) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
}
public function render(array $block): string {
$html = '';
$html .= '<div class="mailpoet_paragraph"><input type="submit" class="mailpoet_submit" ';
$html .= '<input type="submit" class="mailpoet_submit" ';
$html .= 'value="' . $this->rendererHelper->getFieldLabel($block) . '" ';
@@ -24,8 +30,6 @@ class Submit {
$html .= '<span class="mailpoet_form_loading"><span class="mailpoet_bounce1"></span><span class="mailpoet_bounce2"></span><span class="mailpoet_bounce3"></span></span>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,19 +2,27 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\Form\TextInputStylesRenderer;
class Text {
/** @var BlockRendererHelper */
private $rendererHelper;
/** @var TextInputStylesRenderer */
private $inputStylesRenderer;
public function __construct(BlockRendererHelper $rendererHelper, TextInputStylesRenderer $inputStylesRenderer) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(
BlockRendererHelper $rendererHelper,
TextInputStylesRenderer $inputStylesRenderer,
BlockWrapperRenderer $wrapper
) {
$this->rendererHelper = $rendererHelper;
$this->inputStylesRenderer = $inputStylesRenderer;
$this->wrapper = $wrapper;
}
public function render(array $block, array $formSettings): string {
@@ -34,7 +42,7 @@ class Text {
$automationId = 'data-automation-id="form_' . $block['id'] . '" ';
}
$html = '<div class="mailpoet_paragraph">';
$html = '';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
@@ -60,8 +68,6 @@ class Text {
$html .= '/>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\Form\TextInputStylesRenderer;
class Textarea {
@@ -11,17 +12,23 @@ class Textarea {
/** @var TextInputStylesRenderer */
private $inputStylesRenderer;
public function __construct(BlockRendererHelper $rendererHelper, TextInputStylesRenderer $inputStylesRenderer) {
/** @var BlockWrapperRenderer */
private $wrapper;
public function __construct(
BlockRendererHelper $rendererHelper,
TextInputStylesRenderer $inputStylesRenderer,
BlockWrapperRenderer $wrapper
) {
$this->rendererHelper = $rendererHelper;
$this->inputStylesRenderer = $inputStylesRenderer;
$this->wrapper = $wrapper;
}
public function render(array $block, array $formSettings): string {
$html = '';
$styles = $this->inputStylesRenderer->render($block['styles'] ?? []);
$html .= '<div class="mailpoet_paragraph">';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$lines = (isset($block['params']['lines']) ? (int)$block['params']['lines'] : 1);
@@ -42,8 +49,6 @@ class Textarea {
$html .= '>' . $this->rendererHelper->getFieldValue($block) . '</textarea>';
$html .= '</div>';
return $html;
return $this->wrapper->render($block, $html);
}
}