diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js index 238077610f..8d3351bfa9 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -59,6 +59,9 @@ export default function () { if (path.parentPath.isCallExpression({ callee: path.node })) { path.replaceWith(t.sequenceExpression([t.numericLiteral(0), remap])); + } else if (path.isJSXIdentifier() && t.isMemberExpression(remap)) { + const { object, property } = remap; + path.replaceWith(t.JSXMemberExpression(t.JSXIdentifier(object.name), t.JSXIdentifier(property.name))); } else { path.replaceWith(remap); } diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/actual.js b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/actual.js new file mode 100644 index 0000000000..322b407c90 --- /dev/null +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/actual.js @@ -0,0 +1,2 @@ +import { Modal } from "react-bootstrap"; +export default CustomModal = () => foobar; diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/expected.js b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/expected.js new file mode 100644 index 0000000000..6ef0c7a8e7 --- /dev/null +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/expected.js @@ -0,0 +1,9 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactBootstrap = require("react-bootstrap"); + +exports.default = CustomModal = () => babelHelpers.jsx(_reactBootstrap.Modal.Header, {}, void 0, "foobar"); \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json new file mode 100644 index 0000000000..64873e2e87 --- /dev/null +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json @@ -0,0 +1,9 @@ +{ + "plugins": [ + "external-helpers", + "syntax-jsx", + "transform-react-inline-elements", + "transform-react-jsx", + "transform-es2015-modules-commonjs" + ] +}