Skip to content

Dynamic Crud

DynamicCrud es un componente que mezcla DynamicTable y DynamicForm para crear un CRUD completo y configurable. Este componente permite mostrar y gestionar datos en una tabla, una columna de acciones para editar o eliminar registros, y un formulario para crear o editar registros que se muestra en un modal.

Además de más configuraciones y propiedades, como cambiar textos, iconos, colores, exportar a Excel los datos de la tabla, etc.

Ejemplos

App.tsx
const App = () => {
const fields: FormField[] = [
{
type: 'text',
name: 'name',
label: 'Nombre',
validations: [
{
required: {
value: true,
message: 'El nombre es requerido'
}
}
],
},
{
type: 'text',
name: 'lastName',
label: 'Apellido',
validations: [
{
required: {
value: true,
message: 'El apellido es requerido'
}
}
],
},
{
type: 'email',
name: 'email',
label: 'Correo',
validations: [
{
required: {
value: true,
message: 'El correo es requerido'
}
},
{
email: {
value: true,
message: 'El correo no es válido'
}
}
],
},
{
type: 'password',
name: 'password',
label: 'Contraseña',
validations: [
{
required: {
value: true,
message: 'La contraseña es requerida'
}
}
],
}
]
const columns: ColumnsProps[] = [
{
key: 'name',
title: 'Nombre',
dataIndex: 'name',
icon: <FaUser />,
},
{
key: 'lastName',
title: 'Apellido',
dataIndex: 'lastName',
icon: <FaUser />,
},
{
key: 'email',
title: 'Correo',
dataIndex: 'email',
icon: <FaUser />,
}
];
const data = [
{
name: 'Juan',
lastName: 'Perez',
email: 'juanperez@gmail.com'
},
{
name: 'Maria',
lastName: 'Lopez',
email: 'marialoopez@hotmail.com',
},
]
return (
<div>
<DynamicCrud
title='Crear Usuario'
description='Por favor, ingrese los datos del usuario'
icon={<FaUser />}
columns={columns}
data={data}
fields={fields}
submitButtonText='Crear Usuario'
/>
</div>
);
};
export default App;

API

PropiedadDescripciónTipoValor por defectoOpcional
titleTítulo que se aplica al formulario y a la tablastring-No
formTitleTítulo del formulariostring-
formTitlesTítulos del formulario, tanto para crear como para editarstring[]-
formDescriptionDescripción del formulariostring-
columnsColumnas de la tablaColumnsProps[]-No
dataDatos de la tablaunkwown[]-No
fieldsCampos del formularioFormField[]-No
showCreateButtonMuestra el botón de crearbooleantrue
createButtonTextTexto del botón de crearstring’Crear’
createButtonIconIcono del botón de crearReactElement-
submitButtonTextTexto del botón de submitstring’Guardar’
iconIcono que se aplica al formulario y a la tablaReactElement-
layoutLayout del formulario’horizontal’ | ‘vertical''horizontal’
actionConfigConfiguración de las acciones de la tablaActionConfig-
searchConfigConfiguración de la búsqueda de la tablaSearchConfig-
showRefreshButtonMuestra el botón de refrescarbooleanfalse
onRefreshFunción al hacer click en el botón de refrescar() => void-
headerDirectionDirección del header de la tabla’horizontal’ | ‘vertical''horizontal’
loadingEstado de carga de la tablabooleanfalse
createRedirectIndica si el botón de crear hará un redirect en vez de abrir la modal con el formularioboolean-
onEditFunción al hacer click en el botón de edición(record: unkwown) => void-
onDeleteFunción al hacer click en el botón de eliminación(record: unkwown) => void-
onViewFunción al hacer click en el botón de vista(record: unkwown) => void-
apiConfigConfiguración de la APIApiConfig-
initialDataDatos iniciales del formularioRecord<string, unknown>-
themeConfigConfiguración del temaThemeConfig-
moreActionsAcciones adicionalesMoreActions[]-
formColsColumnas del formularionumber1
formCustomColsColumnas personalizadas del formularioFormCustomCols-
showViewMuestra el botón de vistabooleanfalse
exportToExcelConfiguración para exportar a ExcelExportToExcel-