refire-react
Version:
React components and helpers for Refire
46 lines (45 loc) • 1.27 kB
TypeScript
/// <reference types="react" />
/// <reference types="react-redux" />
import * as React from "react";
import * as ReactRedux from "react-redux";
export interface Status {
errors: {
login: string;
};
processing: {
login: boolean;
};
completed: {
login: boolean;
};
}
export interface ExtraProps {
email?: string;
password?: string;
submit?: (event: React.FormEvent<HTMLElement>) => void;
updateEmail?: (event: React.FormEvent<HTMLInputElement>) => void;
updatePassword?: (event: React.FormEvent<HTMLInputElement>) => void;
validInput?: boolean;
error?: string;
processing?: boolean;
completed?: boolean;
}
export interface LoginOptions {
validator?: (state: LoginState) => boolean;
}
export interface LoginProps {
readonly _status: Status;
readonly dispatch?: ReactRedux.Dispatch<{}>;
}
export interface LoginState {
readonly email?: string;
readonly password?: string;
}
export default function (options?: LoginOptions): <P>(WrappedComponent: React.ComponentType<P>) => React.ComponentClass<Pick<LoginProps & P, ({
[P in keyof (LoginProps & P)]: P;
} & {
_status: never;
dispatch: never;
} & {
[x: string]: never;
})[keyof (LoginProps & P)]> & P>;