Render raw html in checkbox label

[MAILPOET-2803]
This commit is contained in:
Pavel Dohnal
2020-04-30 13:03:40 +02:00
committed by Veljko V
parent 17545f1b79
commit 71106cc90e
3 changed files with 6 additions and 15 deletions

View File

@@ -1,3 +1,4 @@
/* eslint-disable react/no-danger */
import React from 'react';
import {
Panel,
@@ -109,6 +110,7 @@ const CustomCheckboxEdit = ({ attributes, setAttributes, clientId }) => {
if (attributes.mandatory) {
checkboxLabel += ' *';
}
return (
<ParagraphEdit className={attributes.className}>
{inspectorControls}
@@ -121,7 +123,7 @@ const CustomCheckboxEdit = ({ attributes, setAttributes, clientId }) => {
checked={isChecked()}
className="mailpoet_checkbox"
/>
{checkboxLabel}
<span dangerouslySetInnerHTML={{ __html: checkboxLabel }} />
</label>
</div>
</ParagraphEdit>

View File

@@ -3,7 +3,6 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\WP\Functions as WPFunctions;
class Checkbox {
@@ -13,13 +12,9 @@ class Checkbox {
/** @var BlockWrapperRenderer */
private $wrapper;
/** @var WPFunctions */
private $wp;
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->wp = $wp;
}
public function render(array $block, array $formSettings): string {
@@ -56,7 +51,7 @@ class Checkbox {
$html .= $fieldValidation;
$html .= ' /> ' . $this->wp->escAttr($option['value']);
$html .= ' /> ' . $option['value'];
$html .= '</label>';
}

View File

@@ -6,7 +6,6 @@ use MailPoet\Form\Block\BlockRendererHelper;
use MailPoet\Form\Block\Checkbox;
use MailPoet\Form\BlockWrapperRenderer;
use MailPoet\Test\Form\HtmlParser;
use MailPoet\WP\Functions as WPFunctions;
use PHPUnit\Framework\MockObject\MockObject;
require_once __DIR__ . '/../HtmlParser.php';
@@ -15,9 +14,6 @@ class CheckboxTest extends \MailPoetUnitTest {
/** @var Checkbox */
private $checkbox;
/** @var MockObject & WPFunctions */
private $wpMock;
/** @var MockObject & BlockRendererHelper */
private $rendererHelperMock;
@@ -47,12 +43,10 @@ class CheckboxTest extends \MailPoetUnitTest {
public function _before() {
parent::_before();
$this->wpMock = $this->createMock(WPFunctions::class);
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
$this->rendererHelperMock = $this->createMock(BlockRendererHelper::class);
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
$this->wrapperMock->method('render')->will($this->returnArgument(1));
$this->checkbox = new Checkbox($this->rendererHelperMock, $this->wrapperMock, $this->wpMock);
$this->checkbox = new Checkbox($this->rendererHelperMock, $this->wrapperMock);
$this->htmlParser = new HtmlParser();
}