kea-react
Version:
Componentes comunes de react
49 lines (48 loc) • 2.09 kB
TypeScript
/// <reference types="react" />
import * as rx from "rxjs";
/**Props generales para una fila de una tabla */
export interface ListRowProps<T> {
/**Elemento que representa esta fila */
item: T;
/**Función que se debe de ejecutar cuando el usuario quiera borrar esta fila, si no esta especificado significa que el usuario no puede borrar filas */
onDelete?: () => void;
}
/**Props para un editor de un valor */
export interface ControlledValueProps<TIn, TOut> {
/**Valor que se esta editando */
value?: TIn;
/**Se dispara cuando el usuario ha modificado el valor del campo */
onChange?: (newValue: TOut) => void;
}
/**Props para un editor que soporta valores asíncronos */
export interface AsyncControlledValueProps<TIn, TOut> extends ControlledValueProps<TIn | PromiseLike<TIn>, TOut> {
}
export interface FormFieldDefaultProps {
/**True para mostrar un valor de solo lectura */
isReadOnly?: boolean;
/**Label del selector */
label?: string | JSX.Element;
/**True para mostrar que este campo tiene un error */
error?: boolean | string | rx.Observable<boolean | string | undefined> | PromiseLike<boolean | string | undefined>;
}
/**Props para un editor de un valor */
export interface EditorProps<TIn, TOut> extends ControlledValueProps<TIn, TOut> {
/**True para que el elemento sea de solo lectura */
isReadOnly?: boolean;
}
/**Props para un editor con un label */
export interface FormEditProps<TIn, TOut> extends EditorProps<TIn, TOut>, FormFieldDefaultProps {
}
export interface AsyncFormEditProps<TIn, TOut> extends FormFieldDefaultProps, ControlledValueProps<TIn | PromiseLike<TIn>, TOut> {
/**True para que el elemento sea de solo lectura */
isReadOnly?: boolean;
}
/**Interfaz base para los state de un catalogo */
export interface CatalogListState<T> {
/**Elementos que se van a mostrar */
Items?: T[];
/**Elemento seleccionado para borrar */
SelectedItem?: T;
/**True si se esta mostrado el modal para borrar */
BorrarModal?: boolean;
}