Render raw html in checkbox label
[MAILPOET-2803]
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable react/no-danger */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {
|
import {
|
||||||
Panel,
|
Panel,
|
||||||
@@ -109,6 +110,7 @@ const CustomCheckboxEdit = ({ attributes, setAttributes, clientId }) => {
|
|||||||
if (attributes.mandatory) {
|
if (attributes.mandatory) {
|
||||||
checkboxLabel += ' *';
|
checkboxLabel += ' *';
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ParagraphEdit className={attributes.className}>
|
<ParagraphEdit className={attributes.className}>
|
||||||
{inspectorControls}
|
{inspectorControls}
|
||||||
@@ -121,7 +123,7 @@ const CustomCheckboxEdit = ({ attributes, setAttributes, clientId }) => {
|
|||||||
checked={isChecked()}
|
checked={isChecked()}
|
||||||
className="mailpoet_checkbox"
|
className="mailpoet_checkbox"
|
||||||
/>
|
/>
|
||||||
{checkboxLabel}
|
<span dangerouslySetInnerHTML={{ __html: checkboxLabel }} />
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</ParagraphEdit>
|
</ParagraphEdit>
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
|
||||||
|
|
||||||
class Checkbox {
|
class Checkbox {
|
||||||
|
|
||||||
@@ -13,13 +12,9 @@ class Checkbox {
|
|||||||
/** @var BlockWrapperRenderer */
|
/** @var BlockWrapperRenderer */
|
||||||
private $wrapper;
|
private $wrapper;
|
||||||
|
|
||||||
/** @var WPFunctions */
|
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
|
||||||
private $wp;
|
|
||||||
|
|
||||||
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
|
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
$this->wp = $wp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@@ -56,7 +51,7 @@ class Checkbox {
|
|||||||
|
|
||||||
$html .= $fieldValidation;
|
$html .= $fieldValidation;
|
||||||
|
|
||||||
$html .= ' /> ' . $this->wp->escAttr($option['value']);
|
$html .= ' /> ' . $option['value'];
|
||||||
|
|
||||||
$html .= '</label>';
|
$html .= '</label>';
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,6 @@ use MailPoet\Form\Block\BlockRendererHelper;
|
|||||||
use MailPoet\Form\Block\Checkbox;
|
use MailPoet\Form\Block\Checkbox;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
@@ -15,9 +14,6 @@ class CheckboxTest extends \MailPoetUnitTest {
|
|||||||
/** @var Checkbox */
|
/** @var Checkbox */
|
||||||
private $checkbox;
|
private $checkbox;
|
||||||
|
|
||||||
/** @var MockObject & WPFunctions */
|
|
||||||
private $wpMock;
|
|
||||||
|
|
||||||
/** @var MockObject & BlockRendererHelper */
|
/** @var MockObject & BlockRendererHelper */
|
||||||
private $rendererHelperMock;
|
private $rendererHelperMock;
|
||||||
|
|
||||||
@@ -47,12 +43,10 @@ class CheckboxTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->wpMock = $this->createMock(WPFunctions::class);
|
|
||||||
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
|
|
||||||
$this->rendererHelperMock = $this->createMock(BlockRendererHelper::class);
|
$this->rendererHelperMock = $this->createMock(BlockRendererHelper::class);
|
||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$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();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user