UNPKG

@rxreact/context

Version:

Dependency-inject an RxJS signal graph into your React components

15 lines (14 loc) 1.13 kB
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 {};