mirror of
https://github.com/bendtherules/react-fiber-traverse.git
synced 2026-08-18 13:52:36 +00:00
20 lines
850 B
TypeScript
20 lines
850 B
TypeScript
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;
|
|
}
|
|
|
|
function isNodeNotHtmlLike(node: FiberNode): node is Exclude<FiberNode, FiberNodeisHTMLLike> {
|
|
return !isNodeHtmlLike(node);
|
|
}
|
|
|
|
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 }; |