UNPKG

class-based-react-hooks

Version:

Create React hooks using classes - with hookDidMount, hookWillUpdate, etc.

32 lines (31 loc) 1.59 kB
declare type Rerender = (func: (num: number) => number) => void; declare type Callback = () => void; export declare abstract class ReactHook<Args extends any[], State extends {}, Return> { constructor(args: Args, state: State); protected state: State; protected args: Args; protected forceUpdate(callback?: Callback): void; protected setState(update: Partial<State>, callback?: Callback): void; protected abstract render(): Return; protected hookWillMount(): void; protected hookDidMount(): void; protected hookWillUpdate(nextArgs: Args, nextState: State): void; protected hookDidUpdate(prevArgs: Args, prevState: State): void; protected hookWillUnmount(): void; protected getDerivedStateFromArgs(this: {}, nextArgs: Args, prevState: State): null | Partial<State>; private _prevState; private _prevArgs; private _nextState; private _didMountRan; private _updateCallbacks; private _updater; __internal_beforeFirstRender(updater: Rerender): void; __internal_beforeSubsequentRender(nextArgs: Args): void; __internal_deriveStateAndRender(): Return; __internal_afterRender: () => void; __internal_unmountEffect: () => (() => void); } declare type HookClass<Args extends any[], State extends {}, Return> = new (args: Args) => ReactHook<Args, State, Return>; declare type HookFunction<Args extends any[], Return> = (...args: Args) => Return; export declare function createHook<Args extends any[], State extends {}, Return>(Class: HookClass<Args, State, Return>): HookFunction<Args, Return>; export {};