redux-modal
Version:
Redux based modal
47 lines (46 loc) • 1.26 kB
TypeScript
/// <reference types="react" />
import { Action, Store } from 'redux';
export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export interface ReduxContext {
store: Store<any>;
}
export interface ModalAction extends Action {
payload?: {
modal: string;
props?: any;
};
}
export declare type ReduxModalState = {
[name: string]: ModalState;
};
export declare type ModalState = {
[key: string]: any;
show?: boolean;
props?: any;
};
export interface ResolveParameter {
props: any;
}
export interface ModalConfig {
name: string;
resolve?: (parameter: ResolveParameter) => any;
getModalState?: (state: any) => ModalState;
destroyOnHide?: boolean;
}
export interface InjectedProps {
show: boolean;
handleHide: () => void;
handleDestroy: () => void;
}
export interface ConnectModalProps {
hide: (name: string) => ModalAction;
show: (name: string) => ModalAction;
destroy: (name: string) => ModalAction;
modal: ModalState;
}
export interface ConnectModalState {
show?: boolean;
}
export interface InjectedWrapperComponent {
<P extends InjectedProps>(component: React.ComponentType<P>): React.ComponentClass<Omit<P, keyof InjectedProps> & any>;
}