kea-react
Version:
Componentes comunes de react
122 lines (121 loc) • 4.65 kB
TypeScript
/// <reference types="react" />
import React = require('react');
import { Rxfy } from "react-rxk";
import * as rx from "rxjs";
/**Propiedades del botón */
export interface BaseButtonProps {
/**Accion que se ejecuta cuando el usuario presiona el botón guardar */
onClick?: () => PromiseLike<void> | void;
disabled?: boolean | Promise<boolean> | rx.Observable<boolean>;
tooltip?: string;
block?: boolean;
}
export interface PromiseActionProps {
onClick?: () => PromiseLike<void> | void;
buttonFactory: (onClick?: () => void) => JSX.Element | null;
cargandoComponent?: JSX.Element | null;
errorFactory?: (error: string | number, onClick?: () => void) => JSX.Element | null;
}
export interface PromiseButtonState {
Promise?: PromiseLike<void> | void;
}
/**Boton que acepta un metodo asíncrono en el on-click y que se deshabilita mientras se esta
* ejecutando la promesa
*/
export declare class PromiseAction extends React.PureComponent<PromiseActionProps, PromiseButtonState> {
constructor(props: any);
click(): Promise<void>;
handleRequest: () => Promise<void>;
map: () => JSX.Element | null;
render(): JSX.Element;
}
export declare type BootstrapButtonStyle = "default" | "primary" | "success" | "info" | "warning" | "danger" | "link";
export interface ButtonProps extends BaseButtonProps {
/**Estilo del botón de bootstrap. Por default es "default" */
style?: BootstrapButtonStyle;
/**True para poner el estilo de block en el botón, lo que hace que ocupe todo el espacio de la celda */
block?: boolean;
/**Clase del icono o indefinido para no mostrar un icono */
iconClass?: string;
}
export declare const Button: (props: Rxfy<ButtonProps>) => JSX.Element;
export declare class BootstrapButton extends React.PureComponent<ButtonProps, {}> {
constructor(props: any);
render(): React.SFCElement<Rxfy<ButtonProps>>;
}
/**Botón de agregar*/
export declare class AgregarButton extends React.PureComponent<BaseButtonProps, {}> {
render(): JSX.Element;
}
/**Boton de guardar*/
export declare class GuardarButton extends React.PureComponent<BaseButtonProps, {}> {
render(): JSX.Element;
}
/**Boton de borrar*/
export declare class BorrarButton extends React.PureComponent<BaseButtonProps, {}> {
render(): JSX.Element;
}
/**Boton de cancelar*/
export declare class CancelarButton extends React.PureComponent<BaseButtonProps, {}> {
render(): JSX.Element;
}
/**Botón para buscar */
export declare class BuscarButton extends React.PureComponent<BaseButtonProps> {
render(): JSX.Element;
}
/**Boton para ir hacia atras en la navegación, si no se establece el on click, viaja hacia atras en la navegación
* por default
*/
export declare class RegresarButton extends React.PureComponent<{
onClick?: () => void | Promise<void>;
block?: boolean;
}, {}> {
handleOnClick: () => void;
render(): JSX.Element;
}
/**Un botón con forma de un icono */
export declare class Link extends React.PureComponent<ButtonProps, {}> {
static colors: {
default: undefined;
primary: string;
success: string;
info: string;
warning: string;
danger: string;
link: string;
};
buttonFactory: (onClick: (() => void) | undefined, cargando: boolean) => JSX.Element;
errorFactory: (error: any, onClick: () => void) => JSX.Element;
render(): JSX.Element;
}
export declare class IconButton extends React.PureComponent<ButtonProps, {}> {
constructor(props: any);
render(): React.ComponentElement<ButtonProps, Link>;
}
/**Boton para borrar un elemento de un listado. Tiene el icono del bote de basura */
export declare class BorrarIcon extends React.PureComponent<{
onClick: () => void;
}, {}> {
render(): JSX.Element;
}
/**Boton para editar un elemento de un listado. Tiene el icono del lapiz */
export declare class EditButton extends React.PureComponent<{
onClick: () => void;
}, {}> {
render(): JSX.Element;
}
/**Botón para ver un elemento de un listado. Tiene el icono del ojo */
export declare class VerButton extends React.PureComponent<{
onClick: () => void;
}> {
render(): JSX.Element;
}
/**Propiedades de los botones por default de una fila */
export interface RowButtonProps {
onEdit?: () => void;
onDelete?: () => void;
}
/**Botones de una fila de un catalogo, que son el de editar y el de borrar */
export declare class RowButtons extends React.PureComponent<RowButtonProps, {}> {
render(): JSX.Element;
}