Fix react/no-danger eslint problem

[MAILPOET-976]
This commit is contained in:
Pavel Dohnal
2017-08-03 10:44:10 +02:00
parent c466e53681
commit 3a0669e1a2
5 changed files with 17 additions and 24 deletions

View File

@@ -5,22 +5,9 @@ define('helpTooltip', ['mailpoet', 'React', 'react-dom', 'help-tooltip.jsx'],
MailPoet.helpTooltip = { MailPoet.helpTooltip = {
show: function (domContainerNode, opts) { show: function (domContainerNode, opts) {
var tooltipText = React.createElement(
"span",
{
style: {
pointerEvents: "all",
},
"dangerouslySetInnerHTML": {
__html: opts.tooltip,
},
},
null
);
ReactDOM.render(React.createElement( ReactDOM.render(React.createElement(
TooltipComponent, { TooltipComponent, {
tooltip: tooltipText, tooltip: opts.tooltip,
tooltipId: opts.tooltipId, tooltipId: opts.tooltipId,
} }
), domContainerNode); ), domContainerNode);

View File

@@ -1,13 +1,19 @@
import React from 'react'; import React from 'react';
import ReactTooltip from 'react-tooltip'; import ReactTooltip from 'react-tooltip';
import ReactHtmlParser from 'react-html-parser';
function Tooltip(props) { function Tooltip(props) {
let tooltipId = props.tooltipId; let tooltipId = props.tooltipId;
let tooltip = props.tooltip;
// tooltip ID must be unique, defaults to tooltip text // tooltip ID must be unique, defaults to tooltip text
if(!props.tooltipId && typeof props.tooltip === "string") { if(!props.tooltipId && typeof props.tooltip === "string") {
tooltipId = props.tooltip; tooltipId = props.tooltip;
} }
if(typeof props.tooltip === "string") {
tooltip = ReactHtmlParser(props.tooltip);
}
return ( return (
<span> <span>
<span <span
@@ -26,7 +32,7 @@ function Tooltip(props) {
id={tooltipId} id={tooltipId}
efect="solid" efect="solid"
> >
{props.tooltip} {tooltip}
</ReactTooltip> </ReactTooltip>
</span> </span>
); );

View File

@@ -217,11 +217,6 @@ define(
return true; return true;
}, },
render: function () { render: function () {
const tooltip = (<span
dangerouslySetInnerHTML={{
__html: MailPoet.I18n.t('helpTooltipSendEmail'),
}}
/>);
return ( return (
<div> <div>
<h1>{MailPoet.I18n.t('finalNewsletterStep')}</h1> <h1>{MailPoet.I18n.t('finalNewsletterStep')}</h1>
@@ -259,7 +254,7 @@ define(
</a>. </a>.
</p> </p>
<HelpTooltip <HelpTooltip
tooltip={tooltip} tooltip={MailPoet.I18n.t('helpTooltipSendEmail')}
tooltipId="helpTooltipSendEmail" tooltipId="helpTooltipSendEmail"
/> />
</Form> </Form>

View File

@@ -25,6 +25,7 @@
"parsleyjs": "^2.1.2", "parsleyjs": "^2.1.2",
"react": "~15.4.2", "react": "~15.4.2",
"react-dom": "~15.4.2", "react-dom": "~15.4.2",
"react-html-parser": "^1.0.3",
"react-router": "~3.0.2", "react-router": "~3.0.2",
"react-string-replace": "^0.3.2", "react-string-replace": "^0.3.2",
"react-tooltip": "^3.2.10", "react-tooltip": "^3.2.10",
@@ -38,10 +39,10 @@
"amd-inject-loader": "~0.5.0", "amd-inject-loader": "~0.5.0",
"babel-core": "^5.8.22", "babel-core": "^5.8.22",
"babel-loader": "^5.3.2", "babel-loader": "^5.3.2",
"clean-webpack-plugin": "^0.1.16",
"cross-env": "^5.0.1",
"chai": "2.2.0", "chai": "2.2.0",
"chai-jq": "0.0.8", "chai-jq": "0.0.8",
"clean-webpack-plugin": "^0.1.16",
"cross-env": "^5.0.1",
"eslint": "^3.19.0", "eslint": "^3.19.0",
"eslint-config-airbnb": "^15.0.1", "eslint-config-airbnb": "^15.0.1",
"eslint-plugin-import": "^2.3.0", "eslint-plugin-import": "^2.3.0",
@@ -53,6 +54,7 @@
"imports-loader": "~0.7.1", "imports-loader": "~0.7.1",
"jquery": "2.1.4", "jquery": "2.1.4",
"jsdom": "3.1.2", "jsdom": "3.1.2",
"json-loader": "^0.5.7",
"mocha": "2.2.1", "mocha": "2.2.1",
"nib": "~1.1.2", "nib": "~1.1.2",
"sinon": "1.14.1", "sinon": "1.14.1",
@@ -62,4 +64,4 @@
"webpack-manifest-plugin": "^1.1.0", "webpack-manifest-plugin": "^1.1.0",
"webpack-md5-hash": "0.0.5" "webpack-md5-hash": "0.0.5"
} }
} }

View File

@@ -50,6 +50,9 @@ var baseConfig = {
]) ])
], ],
module: { module: {
preLoaders: [
{ test: /\.json$/, loader: "json-loader" },
],
loaders: [ loaders: [
{ {
test: /\.jsx$/, test: /\.jsx$/,