apollo-mantra
Version:
Tools for integration of apollo with Mantra
17 lines (16 loc) • 635 B
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { QueryProps, MutationFunc } from 'react-apollo';
export interface Options {
waitForAll?: boolean;
LoadingView?: React.StatelessComponent<any>;
AuthView?: React.StatelessComponent<any>;
contextTypes?: Object;
auth?: boolean;
roles?: string[];
}
export interface WaitData<D> {
data: QueryProps & D;
mutate: MutationFunc<D>;
}
export default function waitForData<C, D = {}>(keys?: string[], options?: Options): <P>(WrappedComponent: React.ComponentClass<P> | React.StatelessComponent<P>) => React.StatelessComponent<D & WaitData<C>>;