'use strict';
exports.__esModule = true;
exports.isFunctionalComponent = isFunctionalComponent;
exports.buildFunctionalComponent = buildFunctionalComponent;
var _constants = require('../constants');
var _ = require('.');
var _util = require('../util');
/** Check if a VNode is a reference to a stateless functional component.
* A function component is represented as a VNode whose `nodeName` property is a reference to a function.
* If that function is not a Component (ie, has no `.render()` method on a prototype), it is considered a stateless functional component.
* @param {VNode} vnode A VNode
* @private
*/
function isFunctionalComponent(_ref) {
var nodeName = _ref.nodeName;
return _util.isFunction(nodeName) && !(nodeName.prototype && nodeName.prototype.render);
}
/** Construct a resultant VNode from a VNode referencing a stateless functional component.
* @param {VNode} vnode A VNode with a `nodeName` property that is a reference to a function.
* @private
*/
function buildFunctionalComponent(vnode, context) {
return vnode.nodeName(_.getNodeProps(vnode), context || _constants.EMPTY) || _constants.EMPTY_BASE;
}
|