From 6a2bcbb08f90e258770d3654e126131712b338c5 Mon Sep 17 00:00:00 2001 From: Luna Ruan Date: Tue, 31 Mar 2020 18:53:04 -0700 Subject: [PATCH] fix auto import error with whitespace JSXText --- .../src/index.js | 6 +----- .../test/fixtures/nextReact/weird-symbols/input.js | 5 +++++ .../test/fixtures/nextReact/weird-symbols/output.mjs | 10 ++++++++++ .../fixtures/nextReactClassic/weird-symbols/input.js | 7 +++++++ .../fixtures/nextReactClassic/weird-symbols/output.js | 7 +++++++ .../test/fixtures/react/weird-symbols/input.js | 7 +++++++ .../test/fixtures/react/weird-symbols/output.js | 7 +++++++ 7 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js 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..b637892cb8fc --- /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}nbsp;; + } +} 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..71e93a72cf4c --- /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, "nbsp;"); + } + +} 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..b637892cb8fc --- /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}nbsp;; + } +} 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..71e93a72cf4c --- /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, "nbsp;"); + } + +}