diff --git a/src/pages/Datastage.jsx b/src/pages/Datastage.jsx
index 691f230..5591767 100644
--- a/src/pages/Datastage.jsx
+++ b/src/pages/Datastage.jsx
@@ -117,6 +117,8 @@ function downloadDatastageFile(id, filename) {
export default function Datastage() {
const focusKeeperRef = useRef(null);
const [datastages, setDatastages] = useState([]);
+ const [currentPage, setCurrentPage] = useState(1);
+ const [itemsPerPage, setItemsPerPage] = useState(10);
const [selected, setSelected] = useState(null);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
@@ -347,7 +349,7 @@ export default function Datastage() {
- {datastages.map(item => (
+ {datastages.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage).map(item => (
| {item.id} |
@@ -415,12 +417,12 @@ export default function Datastage() {
|
@@ -428,6 +430,40 @@ export default function Datastage() {
))}
+ {/* Paginación */}
+ {datastages.length > itemsPerPage && (
+
+
+ Mostrando {((currentPage - 1) * itemsPerPage) + 1} a {Math.min(currentPage * itemsPerPage, datastages.length)} de {datastages.length} registros
+
+
+
+ {Array.from({ length: Math.ceil(datastages.length / itemsPerPage) }, (_, i) => i + 1).map(pageNum => (
+
+ ))}
+
+
+
+
+ )}
{/* Tarjetas para móvil/tablet */}
@@ -497,7 +533,7 @@ export default function Datastage() {
disabled={item.procesado}
>
@@ -509,140 +545,140 @@ export default function Datastage() {
{/* Modales */}
- {/* Modal de creación - estilo Users/Importers */}
- {showCreateModal && (
-
- )}
-
-
- {/* Modal de edición - estilo Users/Importers */}
- {showEditModal && (
-
- )}
-
-
- {/* Modal de eliminación - estilo Users/Importers */}
- {showDeleteModal && (
-
-
- {/* Header */}
-
-
-
-
-
-
Eliminar Datastage
-
Esta acción no se puede deshacer.
-
-
-
-
-
- {/* Content */}
-
-
-
¿Eliminar este datastage?
-
¿Seguro que deseas eliminar este datastage? Esta acción no se puede deshacer.
-
-
-
-
-
+ {/* Modal de creación - estilo Users/Importers */}
+ {showCreateModal && (
+
+ )}
+
+
+ {/* Modal de edición - estilo Users/Importers */}
+ {showEditModal && (
+
+ )}
+
+
+ {/* Modal de eliminación - estilo Users/Importers */}
+ {showDeleteModal && (
+
+
+ {/* Header */}
+
+
+
+
+
+
Eliminar Datastage
+
Esta acción no se puede deshacer.
+
+
+
+
+
+ {/* Content */}
+
+
+
¿Eliminar este datastage?
+
¿Seguro que deseas eliminar este datastage? Esta acción no se puede deshacer.
+
+
+
+
+
+
+
+ )}
{/* Modal de detalle */}
{showDetailModal && selected && (