123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- // TypeScript Version: 3.0
-
- declare module '@restart/context/mapContextToProps' {
- import * as React from 'react';
-
- type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
-
- type GetProps<C> = C extends React.ComponentType<infer P> ? P : never;
-
- export interface ContextInjectedComponent<
- TComponent,
- TInjectedProps,
- TExtraProps
- >
- extends React.ForwardRefExoticComponent<
- Omit<GetProps<TComponent>, TInjectedProps> & TExtraProps
- > {}
-
- // Single Context
- function mapContextToProps<TComponent, TContext, TContextProps, TOwnProps>(
- context: React.Context<TContext> | [React.Context<TContext>],
- mapToProps: (ctxValue: TContext, props: TOwnProps) => TContextProps,
- Component: TComponent,
- ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
- function mapContextToProps<TContext, TContextProps, TOwnProps>(
- context: React.Context<TContext> | [React.Context<TContext>],
- mapToProps: (ctxValue: TContext, props: TOwnProps) => TContextProps,
- ): <TComponent>(
- component: TComponent,
- ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
-
- // 2 Contexts
- function mapContextToProps<
- TComponent,
- TContext1,
- TContext2,
- TContextProps,
- TOwnProps
- >(
- context: [React.Context<TContext1>, React.Context<TContext2>],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- props: TOwnProps,
- ) => TContextProps,
- Component: TComponent,
- ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
- function mapContextToProps<TContext1, TContext2, TContextProps, TOwnProps>(
- context: [React.Context<TContext1>, React.Context<TContext2>],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- props: TOwnProps,
- ) => TContextProps,
- ): <TComponent>(
- component: TComponent,
- ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
-
- // 3 Contexts
- function mapContextToProps<
- TComponent,
- TContext1,
- TContext2,
- TContext3,
- TContextProps,
- TOwnProps
- >(
- context: [
- React.Context<TContext1>,
- React.Context<TContext2>,
- React.Context<TContext3>
- ],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- c3: TContext3,
- props: TOwnProps,
- ) => TContextProps,
- Component: TComponent,
- ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
- function mapContextToProps<
- TContext1,
- TContext2,
- TContext3,
- TContextProps,
- TOwnProps
- >(
- context: [
- React.Context<TContext1>,
- React.Context<TContext2>,
- React.Context<TContext3>
- ],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- c3: TContext3,
- props: TOwnProps,
- ) => TContextProps,
- ): <TComponent>(
- component: TComponent,
- ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
-
- // 4 Contexts
- function mapContextToProps<
- TComponent,
- TContext1,
- TContext2,
- TContext3,
- TContext4,
- TContextProps,
- TOwnProps
- >(
- context: [
- React.Context<TContext1>,
- React.Context<TContext2>,
- React.Context<TContext3>,
- React.Context<TContext4>
- ],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- c3: TContext3,
- c4: TContext4,
- props: TOwnProps,
- ) => TContextProps,
- Component: TComponent,
- ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
- function mapContextToProps<
- TContext1,
- TContext2,
- TContext3,
- TContext4,
- TContextProps,
- TOwnProps
- >(
- context: [
- React.Context<TContext1>,
- React.Context<TContext2>,
- React.Context<TContext3>,
- React.Context<TContext4>
- ],
- mapToProps: (
- c1: TContext1,
- c2: TContext2,
- c3: TContext3,
- c4: TContext4,
- props: TOwnProps,
- ) => TContextProps,
- ): <TComponent>(
- component: TComponent,
- ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
-
- export default mapContextToProps;
- }
|