diff --git a/packages/babel-helper-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js index 3e6094c490..7d1301deb0 100644 --- a/packages/babel-helper-builder-react-jsx/src/index.js +++ b/packages/babel-helper-builder-react-jsx/src/index.js @@ -63,7 +63,7 @@ export default function (opts) { function convertAttribute(node) { let value = convertAttributeValue(node.value || t.booleanLiteral(true)); - if (t.isStringLiteral(value)) { + if (t.isStringLiteral(value) && !t.isJSXExpressionContainer(node.value)) { value.value = value.value.replace(/\n\s+/g, " "); } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/actual.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/actual.js new file mode 100644 index 0000000000..acecaa910f --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/expected.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/expected.js new file mode 100644 index 0000000000..8d44428e82 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-mangle-expressioncontainer-attribute-values/expected.js @@ -0,0 +1,5 @@ +React.createElement( + "button", + { "data-value": "a value\n with\nnewlines\n and spaces" }, + "Button" +);