1 | import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2 | import Children from '../children';
|
3 |
|
4 | function renderJSXElement(element, context, updater) {
|
5 | if (!element) return element;
|
6 |
|
7 | var _element = element,
|
8 | type = _element.type,
|
9 | key = _element.key,
|
10 | ref = _element.ref,
|
11 | props = _element.props,
|
12 | _element$_cache = _element._cache,
|
13 | _cache = _element$_cache === void 0 ? {} : _element$_cache;
|
14 |
|
15 |
|
16 | var children = Children.map(props.children, function (child) {
|
17 | return renderJSXElement(child, context, updater);
|
18 | });
|
19 | element = {
|
20 | type: type,
|
21 | key: key,
|
22 | ref: ref,
|
23 | _cache: _cache,
|
24 | props: _objectSpread(_objectSpread({}, props), {}, {
|
25 | children: children
|
26 | })
|
27 | };
|
28 |
|
29 | if (typeof type === 'function') {
|
30 |
|
31 | var newElement = type(element.props, context, updater);
|
32 | if (!newElement) return newElement;
|
33 |
|
34 | return renderJSXElement(_objectSpread(_objectSpread({}, newElement), {}, {
|
35 |
|
36 | key: key !== undefined ? key : newElement.key,
|
37 | ref: ref !== undefined ? ref : newElement.ref
|
38 | }), context, updater);
|
39 | }
|
40 |
|
41 |
|
42 | return element;
|
43 | }
|
44 |
|
45 | export default (function (element, context, updater) {
|
46 | return renderJSXElement(element, context, updater);
|
47 | }); |
\ | No newline at end of file |