mirror of
https://github.com/bendtherules/react-fiber-traverse.git
synced 2026-08-18 13:52:36 +00:00
Add utils - Methods to check if a node corresponds to functional or class components
This commit is contained in:
+11
-2
@@ -1,4 +1,5 @@
|
|||||||
import { FiberNode, FiberNodeisHTMLLike } from './mocked-types';
|
import * as React from 'react';
|
||||||
|
import { FiberNode, FiberNodeisHTMLLike, FiberNodeForFunctionComponent, FiberNodeForComponentClass } from './mocked-types';
|
||||||
|
|
||||||
function isNodeHtmlLike(node: FiberNode): node is FiberNodeisHTMLLike {
|
function isNodeHtmlLike(node: FiberNode): node is FiberNodeisHTMLLike {
|
||||||
return (typeof node.type === "string") || node.type === null;
|
return (typeof node.type === "string") || node.type === null;
|
||||||
@@ -8,4 +9,12 @@ function isNodeNotHtmlLike(node: FiberNode): node is Exclude<FiberNode, FiberNod
|
|||||||
return !isNodeHtmlLike(node);
|
return !isNodeHtmlLike(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { isNodeHtmlLike, isNodeNotHtmlLike };
|
function isNodeFunctionComponent(node: FiberNode): node is FiberNodeForFunctionComponent {
|
||||||
|
return isNodeNotHtmlLike(node) && node.stateNode === null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNodeComponentClass(node: FiberNode): node is FiberNodeForComponentClass {
|
||||||
|
return isNodeNotHtmlLike(node) && (node.stateNode instanceof React.Component);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { isNodeHtmlLike, isNodeNotHtmlLike, isNodeFunctionComponent, isNodeComponentClass };
|
||||||
Reference in New Issue
Block a user