react-torch
Version:
A lib to server-side render with react.
21 lines (20 loc) • 1.06 kB
TypeScript
import React from 'react';
import { Initializer, Model, InitializerState, InitializerActions } from '../core';
export declare type ReactModel<I extends Initializer = any> = {
isReactModel: boolean;
useState: <TSelected = InitializerState<I>>(selector?: (state: InitializerState<I>) => TSelected, compare?: (curr: TSelected, prev: TSelected) => boolean) => TSelected;
useActions: () => InitializerActions<I>;
Provider: React.FC<{
model?: Model<InitializerState<I>>;
preloadedState?: InitializerState<I>;
}>;
preload: (preloadedState?: InitializerState<I>) => Promise<{
Provider: React.FC;
state: InitializerState<I>;
model: Model<InitializerState<I>>;
}>;
create: I;
};
export declare type ReactModelInitilizer<RM extends ReactModel> = RM extends ReactModel<infer I> ? I : never;
export declare type ReactModelState<RM extends ReactModel> = InitializerState<ReactModelInitilizer<RM>>;
export declare const createReactModel: <I extends Initializer<any>>(initilizer: I) => ReactModel<I>;