@rxreact/context
Version:
Dependency-inject an RxJS signal graph into your React components
15 lines (14 loc) • 1.13 kB
TypeScript
import * as React from "react";
import { Observable, Subscription } from "rxjs";
import { ViewModel, Difference, ActionMap } from "@rxreact/core";
declare type NonSignalGraphProps<Props, Selectors, Actions, OwnProps> = Difference<Props, Selectors & ActionMap<Actions>> & OwnProps;
export declare type ConnectViewModel<Selectors, Actions> = ViewModel<Selectors, Actions> & {
unsubscribe?: Subscription[];
};
export declare function connect<SignalGraph, Selectors, Actions, OwnProps>(context: React.Context<SignalGraph>, viewModelFactory: (signalGraph: SignalGraph, ownProps: Observable<OwnProps>) => ConnectViewModel<Selectors, Actions>): <Props extends Selectors & ActionMap<Actions> & OwnProps>(Component: React.ComponentType<Props>) => React.FunctionComponent<NonSignalGraphProps<Props, Selectors, Actions, OwnProps>>;
/**
* Generate a SignalGraph context and provider to serve connected components.
* @param createSignalGraph - A function to generate the signal graph
*/
export declare function createSignalGraphContext<T>(createSignalGraph: () => T): [React.Context<T>, React.FunctionComponent];
export {};