diff --git a/packages/babel-helper-builder-react-jsx-experimental/src/index.js b/packages/babel-helper-builder-react-jsx-experimental/src/index.js index 9f795a72081d..d42d84c34063 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -303,12 +303,8 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, "JSXElement|JSXFragment"(path) { if (path.type === "JSXFragment") imports.add("Fragment"); const openingPath = path.get("openingElement"); - const validChildren = openingPath.parent.children.filter( - child => - !t.isJSXEmptyExpression(child) && - !(t.isJSXText(child) && child.value.trim() === ""), - ); + const validChildren = t.react.buildChildren(openingPath.parent); let importName; if (path.type === "JSXElement" && shouldUseCreateElement(path)) { importName = "createElement"; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js new file mode 100644 index 000000000000..e4bc0b7035e2 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js @@ -0,0 +1,5 @@ +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return  {this.props.value} ; + } +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs new file mode 100644 index 000000000000..65cfda12fc6a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs @@ -0,0 +1,10 @@ +import { jsxs as _jsxs } from "react/jsx-runtime"; + +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return /*#__PURE__*/_jsxs(Text, { + children: ["\xA0", this.props.value, "\xA0"] + }); + } + +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js new file mode 100644 index 000000000000..c0245177d289 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js @@ -0,0 +1,7 @@ +/** @jsxRuntime classic */ + +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return  {this.props.value} ; + } +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js new file mode 100644 index 000000000000..3f5b87cb2239 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js @@ -0,0 +1,7 @@ +/** @jsxRuntime classic */ +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0"); + } + +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js new file mode 100644 index 000000000000..c0245177d289 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js @@ -0,0 +1,7 @@ +/** @jsxRuntime classic */ + +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return  {this.props.value} ; + } +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js new file mode 100644 index 000000000000..3f5b87cb2239 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js @@ -0,0 +1,7 @@ +/** @jsxRuntime classic */ +class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { + render() { + return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0"); + } + +}