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 {
|
||||
return (typeof node.type === "string") || node.type === null;
|
||||
@@ -8,4 +9,12 @@ function isNodeNotHtmlLike(node: FiberNode): node is Exclude<FiberNode, FiberNod
|
||||
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