diff --git a/src/pages/Importers.jsx b/src/pages/Importers.jsx index 9768dcd..641105b 100644 --- a/src/pages/Importers.jsx +++ b/src/pages/Importers.jsx @@ -201,7 +201,12 @@ export default function Importers() { - {/* Modal moved outside table for valid JSX and Users.jsx style will be applied below */} - {/* MODALS: Styled like Users.jsx, rendered outside the table for valid JSX */} - {modalOpen && ( -
-
- {/* Modal Header */} -
-
-
-
- {modalMode === 'delete' ? ( - - - - ) : ( - - - - )} -
-
-

- {modalMode === 'delete' ? 'Eliminar Importador' : modalMode === 'edit' ? 'Editar Importador' : 'Ver Importador'} -

-

- {modalMode === 'delete' ? 'Esta acción no se puede deshacer.' : 'Sistema de Gestión de Importadores'} -

-
-
- -
-
- - {/* Modal Content */} -
- {modalMode === 'delete' ? ( -
-
- - - -
-

¿Eliminar Importador?

-
-

- ¿Estás seguro que deseas eliminar el importador {modalData.nombre} (RFC: {modalData.rfc})? -

-
-
-
- - - -
-
-

{modalData.nombre}

-

RFC: {modalData.rfc}

-
-
-
- {errorMsg &&
{errorMsg}
} -
-
- - -
-
- ) : ( -
{ - e.preventDefault(); - setModalLoading(true); - setErrorMsg(''); - try { - let res; - if (modalMode === 'edit') { - res = await fetchWithAuth(`${API_URL}/customs/importadores/${modalData.rfc}/`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ rfc: modalData.rfc, nombre: modalData.nombre, organizacion: modalData.organizacion }) - }); - if (!res.ok) throw new Error('Error al actualizar importador'); - } else if (modalMode === 'create') { - res = await fetchWithAuth(`${API_URL}/customs/importadores/`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ rfc: modalData.rfc, nombre: modalData.nombre, organizacion: modalData.organizacion }) - }); - if (!res.ok) throw new Error('Error al crear importador'); - } - // Refrescar lista - const res2 = await fetchWithAuth(`${API_URL}/customs/importadores/`); - if (!res2.ok) throw new Error('Error al obtener importadores'); - const data = await res2.json(); - setImporters(Array.isArray(data) ? data : []); - closeModal(); - } catch { - setErrorMsg(modalMode === 'create' ? 'Error al crear importador' : 'Error al actualizar importador'); - } finally { - setModalLoading(false); - } - }} className="space-y-5"> -
- - -
-
- - -
-
- - -
- {errorMsg &&
{errorMsg}
} -
- {modalMode !== 'view' && ( - - )} - {(modalMode === 'edit' || modalMode === 'create') && ( - - )} -
-
- )} -
-
-
- )} ))} + + {/* Modal rendering outside table and empty state, always available */} + {modalOpen && ( +
+
+ {/* Modal Header */} +
+
+
+
+ {modalMode === 'delete' ? ( + + + + ) : ( + + + + )} +
+
+

+ {modalMode === 'delete' ? 'Eliminar Importador' : modalMode === 'edit' ? 'Editar Importador' : 'Ver Importador'} +

+

+ {modalMode === 'delete' ? 'Esta acción no se puede deshacer.' : 'Sistema de Gestión de Importadores'} +

+
+
+ +
+
+ + {/* Modal Content */} +
+ {modalMode === 'delete' ? ( +
+
+ + + +
+

¿Eliminar Importador?

+
+

+ ¿Estás seguro que deseas eliminar el importador {modalData.nombre} (RFC: {modalData.rfc})? +

+
+
+
+ + + +
+
+

{modalData.nombre}

+

RFC: {modalData.rfc}

+
+
+
+ {errorMsg &&
{errorMsg}
} +
+
+ + +
+
+ ) : ( +
{ + e.preventDefault(); + setModalLoading(true); + setErrorMsg(''); + try { + let res; + if (modalMode === 'edit') { + res = await fetchWithAuth(`${API_URL}/customs/importadores/${modalData.rfc}/`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ rfc: modalData.rfc, nombre: modalData.nombre, organizacion: modalData.organizacion }) + }); + if (!res.ok) throw new Error('Error al actualizar importador'); + } else if (modalMode === 'create') { + res = await fetchWithAuth(`${API_URL}/customs/importadores/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ rfc: modalData.rfc, nombre: modalData.nombre, organizacion: modalData.organizacion }) + }); + if (!res.ok) throw new Error('Error al crear importador'); + } + // Refrescar lista + const res2 = await fetchWithAuth(`${API_URL}/customs/importadores/`); + if (!res2.ok) throw new Error('Error al obtener importadores'); + const data = await res2.json(); + setImporters(Array.isArray(data) ? data : []); + closeModal(); + } catch { + setErrorMsg(modalMode === 'create' ? 'Error al crear importador' : 'Error al actualizar importador'); + } finally { + setModalLoading(false); + } + }} className="space-y-5"> +
+ + +
+
+ + +
+
+ + +
+ {errorMsg &&
{errorMsg}
} +
+ {modalMode !== 'view' && ( + + )} + {(modalMode === 'edit' || modalMode === 'create') && ( + + )} +
+
+ )} +
+
+
+ )} @@ -543,7 +548,15 @@ export default function Importers() {

No se encontraron importadores

{searchTerm ? 'Intenta con otros términos de búsqueda.' : 'Comienza agregando un nuevo importador.'}

{!searchTerm && ( -