Skip to content

Commit 9ef6156

Browse files
Jeff MorrisonJeff Morrison
authored andcommitted
Merge pull request #760 from syranide/jsxns
Support for JSX tag namespaces <React:DOM:div />
2 parents f9ad17d + aa044c6 commit 9ef6156

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

vendor/fbtransform/transforms/react.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,23 @@ function visitReactTag(traverse, object, path, state) {
5757

5858
utils.catchup(openingElement.range[0], state, trimLeft);
5959

60-
if (nameObject.namespace) {
61-
throw new Error(
62-
'Namespace tags are not supported. ReactJSX is not XML.');
60+
var isFallbackTag = false;
61+
62+
if (nameObject.type === Syntax.XJSIdentifier) {
63+
if (nameObject.namespace) {
64+
throw new Error(
65+
'Namespace tags are not supported. ReactJSX is not XML.');
66+
}
67+
68+
isFallbackTag = FALLBACK_TAGS.hasOwnProperty(nameObject.name);
6369
}
6470

65-
var isFallbackTag = FALLBACK_TAGS.hasOwnProperty(nameObject.name);
66-
utils.append(
67-
(isFallbackTag ? jsxObjIdent + '.' : '') + (nameObject.name) + '(',
68-
state
69-
);
71+
utils.append(isFallbackTag ? jsxObjIdent + '.' : '', state);
72+
73+
utils.move(nameObject.range[0], state);
74+
utils.catchup(nameObject.range[1], state);
7075

71-
utils.move(nameObject.range[1], state);
76+
utils.append('(', state);
7277

7378
var hasAttributes = attributesObject.length;
7479

0 commit comments

Comments
 (0)