1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | 'use strict';
|
12 |
|
13 | var _prodInvariant = require('./reactProdInvariant');
|
14 |
|
15 | var ReactChildren = require('./ReactChildren');
|
16 | var ReactElement = require('./ReactElement');
|
17 |
|
18 | var emptyFunction = require('fbjs/lib/emptyFunction');
|
19 | var invariant = require('fbjs/lib/invariant');
|
20 | var warning = require('fbjs/lib/warning');
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | var numericPropertyRegex = /^\d+$/;
|
31 |
|
32 | var warnedAboutNumeric = false;
|
33 |
|
34 | var ReactFragment = {
|
35 | |
36 |
|
37 |
|
38 |
|
39 |
|
40 | create: function (object) {
|
41 | if (typeof object !== 'object' || !object || Array.isArray(object)) {
|
42 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment only accepts a single object. Got: %s', object) : void 0;
|
43 | return object;
|
44 | }
|
45 | if (ReactElement.isValidElement(object)) {
|
46 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment does not accept a ReactElement ' + 'without a wrapper object.') : void 0;
|
47 | return object;
|
48 | }
|
49 |
|
50 | !(object.nodeType !== 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.') : _prodInvariant('0') : void 0;
|
51 |
|
52 | var result = [];
|
53 |
|
54 | for (var key in object) {
|
55 | if (process.env.NODE_ENV !== 'production') {
|
56 | if (!warnedAboutNumeric && numericPropertyRegex.test(key)) {
|
57 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment(...): Child objects should have ' + 'non-numeric keys so ordering is preserved.') : void 0;
|
58 | warnedAboutNumeric = true;
|
59 | }
|
60 | }
|
61 | ReactChildren.mapIntoWithKeyPrefixInternal(object[key], result, key, emptyFunction.thatReturnsArgument);
|
62 | }
|
63 |
|
64 | return result;
|
65 | }
|
66 | };
|
67 |
|
68 | module.exports = ReactFragment; |
\ | No newline at end of file |