UNPKG

react-fiber-keep-alive

Version:
62 lines (61 loc) 2.66 kB
import type { Fiber } from 'react-reconciler'; import type { ComponentClass, ComponentType, ComponentProps, EffectCallback } from 'react'; declare type Nullable<T> = T | null | undefined; interface TypedFiber<C extends ComponentType<any> = ComponentType<any>> extends Fiber { memoizedProps: ComponentProps<C>; } export declare const markEffectHookIsOnetime: (effect: React.EffectCallback) => EffectCallback; export declare const markClassComponentHasSideEffectRender: <T extends ComponentClass<any, any>>(Class: T) => T; declare type PropRestore = { current: boolean; }; export declare const FiberVisit: Readonly<{ readonly Child: 1; readonly Sibling: 2; readonly Return: 4; readonly Effect: 8; readonly SiblingFirst: 16; readonly Break: 64; readonly Continue: 32; }>; declare type FiberTraverseControl = (typeof FiberVisit.Break | typeof FiberVisit.Continue); export declare const FiberTag: Readonly<{ readonly FunctionComponent: 0; readonly ClassComponent: 1; readonly HostRoot: 3; readonly HostPortal: 4; readonly HostComponent: 5; readonly HostText: 6; readonly ForwardRef: 11; readonly MemoComponent: 14; readonly SimpleMemoComponent: 15; }>; export declare const FiberMode: Readonly<{ NoMode: number; ConcurrentMode: number; }>; export declare const FiberFlag: Readonly<{ NoFlags: number; Placement: number; Update: number; Ref: number; Passive: number; LifecycleEffectMask: number; PassiveMask: number; }>; export declare const HookEffectTag: Readonly<{ NoFlags: number; HasEffect: number; Insertion: number; Layout: number; Passive: number; }>; export declare const getElementFiber: (element: Nullable<HTMLElement>, prefix?: string) => undefined | Fiber; export declare const getRootFiber: (container: Nullable<void | HTMLElement>) => undefined | Fiber; export declare const findFiber: <T extends Fiber>(fiber: Nullable<Fiber>, predicate: (fiber: Fiber) => boolean | FiberTraverseControl, flags?: number) => T | null; export declare const findParentFiber: <T extends ComponentType<any>>(fiber: Nullable<Fiber>, Component: T) => TypedFiber<T> | null; export declare const traverseFiber: (fiber: Nullable<Fiber>, visit: (fiber: Fiber) => Nullable<void | FiberTraverseControl | (() => void)>, flags?: number) => void; export declare const appendFiberEffect: (rootFiber: Fiber, effectFiber: Fiber, renderFiber: Fiber, finishFiber: Fiber) => void; export declare const protectFiber: (fiber: Fiber) => PropRestore; export declare const replaceFiber: (oldFiber: Fiber, newFiber: Fiber, restore: PropRestore) => boolean; export {};