aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/preact/src/vdom/functional-component.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-10-04 11:50:26 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-10-04 11:50:26 +0200
commit133a8c672c26609e9d56d4e184b779ca26971a8c (patch)
treef3aa4779a75279c95553cd68dd2a3bbe5e5b9dde /thirdparty/preact/src/vdom/functional-component.js
parent0697c987c5314232056a86fa128b518c866d2f12 (diff)
parent30b577138dda685f65a8529be1866afa6e321845 (diff)
downloadwallet-core-133a8c672c26609e9d56d4e184b779ca26971a8c.tar.xz
Merge commit '30b577138dda685f65a8529be1866afa6e321845' as 'thirdparty/preact'
Diffstat (limited to 'thirdparty/preact/src/vdom/functional-component.js')
-rw-r--r--thirdparty/preact/src/vdom/functional-component.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/thirdparty/preact/src/vdom/functional-component.js b/thirdparty/preact/src/vdom/functional-component.js
new file mode 100644
index 000000000..04bc5a464
--- /dev/null
+++ b/thirdparty/preact/src/vdom/functional-component.js
@@ -0,0 +1,25 @@
+import { EMPTY } from '../constants';
+import { getNodeProps } from './index';
+import { isFunction } from '../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
+ */
+export function isFunctionalComponent(vnode) {
+ let nodeName = vnode && vnode.nodeName;
+ return nodeName && 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
+ */
+export function buildFunctionalComponent(vnode, context) {
+ return vnode.nodeName(getNodeProps(vnode), context || EMPTY);
+}