UNPKG

@rxx/core

Version:

React MVI micro framework.

21 lines (20 loc) 930 B
import React from 'react'; import { Observable } from 'rxjs'; import { StateFactory } from './store/store'; export declare function makeView<P extends {} = any, U = React.ComponentClass<P>>(RootViewOrFactory: React.ReactElement<P> | React.ComponentClass<P> | React.StatelessComponent<P>, renderingFn?: (el: React.ComponentClass<P>) => U): (app: StateFactory, otherProps?: any) => U; export declare type InitialState<T> = { [P in keyof T]: T[P] extends ((a: any, b: infer X) => any) ? X : any; }; export declare type InitialStateFactory<T> = InitialState<T> | (() => InitialState<T>); export declare function makeApp<T extends { [key: string]: StateFactory<{ view: Observable<any>; [key: string]: Observable<any>; }>; }>(apps: T): (initialState: InitialStateFactory<T>) => StateFactory<{ view: { [P in keyof T]: ReturnType<T[P]>['view']; }; } & { [key: string]: Observable<any>; }>;