@loona/react
Version:
App State Management done with GraphQL (react integration)
30 lines (29 loc) • 1.49 kB
TypeScript
import * as React from 'react';
import { MutationProps as ApolloMutationProps, MutationFn } from 'react-apollo';
import { ApolloError } from 'apollo-client';
import { DocumentNode } from 'graphql';
import { Loona } from '../client';
export interface MutationState<TData = any> {
called: boolean;
error?: ApolloError;
data?: TData;
loading: boolean;
}
export interface MutationProps extends ApolloMutationProps {
loona?: Loona;
}
export declare class Mutation extends React.Component<MutationProps, MutationState> {
static propTypes: {
mutation: import("prop-types").Validator<object>;
variables: import("prop-types").Requireable<object>;
optimisticResponse: import("prop-types").Requireable<object>;
refetchQueries: import("prop-types").Requireable<((...args: any[]) => any) | (string | object | null)[]>;
awaitRefetchQueries: import("prop-types").Requireable<boolean>;
update: import("prop-types").Requireable<(...args: any[]) => any>;
children: import("prop-types").Validator<(...args: any[]) => any>;
onCompleted: import("prop-types").Requireable<(...args: any[]) => any>;
onError: import("prop-types").Requireable<(...args: any[]) => any>;
};
render(): JSX.Element;
}
export declare function wrapMutation(loona: Loona | undefined, mutate: MutationFn, doc?: DocumentNode): (mutation: any) => Promise<void | import("react-apollo/Mutation").FetchResult<any, Record<string, any>>>;