diff --git a/src/mocked-types/index.ts b/src/mocked-types/index.ts index 6807ae6..8b9e584 100644 --- a/src/mocked-types/index.ts +++ b/src/mocked-types/index.ts @@ -1,5 +1,55 @@ -export interface FiberNode { +import * as React from "react"; + +export type FiberNode = FiberNodeForComponentClass | FiberNodeForFunctionComponent | FiberNodeForInstrinsicElement | FiberNodeForTextNode; + +export interface FiberNodeForFunctionComponent { child: FiberNode | null; sibling: FiberNode | null; - // Add type + + elementType: React.FunctionComponent; + type: React.FunctionComponent; + + stateNode: null; } + +export interface FiberNodeForComponentClass { + child: FiberNode | null; + sibling: FiberNode | null; + + elementType: React.ComponentClass; + type: React.ComponentClass; + + stateNode: React.Component; +} + +export interface FiberNodeForInstrinsicElement { + child: FiberNode | null; + sibling: FiberNode | null; + + elementType: keyof JSX.IntrinsicElements; + type: keyof JSX.IntrinsicElements; + + stateNode: HTMLElement; +} + +export interface FiberNodeForInstrinsicElement { + child: FiberNode | null; + sibling: FiberNode | null; + + elementType: keyof JSX.IntrinsicElements; + type: keyof JSX.IntrinsicElements; + + stateNode: HTMLElement; +} + +export interface FiberNodeForTextNode { + child: null; + sibling: FiberNode | null; + + elementType: null; + type: null; + + stateNode: Text; +} + +export type FiberNodeisHTMLLike = FiberNodeForInstrinsicElement | FiberNodeForTextNode; \ No newline at end of file