Explorar el Código

no message

master
padre
commit
ea0311be73
Se han modificado 1 ficheros con 33 adiciones y 11 borrados
  1. +33
    -11
      src/pages/pdf/ConsultantSearchPage/ConsultantTable.js

+ 33
- 11
src/pages/pdf/ConsultantSearchPage/ConsultantTable.js Ver fichero

@@ -32,9 +32,17 @@ export default function ConsultantTable({recordList, applySearch}) {
});

useEffect(() => {
setPaginationModel({page: 0, pageSize: 10});
// Ensure each row has a unique 'id' field (required by DataGrid)
setRows(recordList.map(row => ({ ...row, id: row.id || row.someUniqueKey })));
setPaginationModel({ page: 0, pageSize: 10 });
// Map rows and ensure unique 'id'
const mappedRows = recordList.map(row => ({
...row,
id: row.id // assuming backend returns 'id' field
}));
setRows(mappedRows);

// Important: Reset all edit modes when new data comes in
setRowModesModel({});
}, [recordList]);

const handleRowEditStop = (params, event) => {
@@ -74,22 +82,36 @@ export default function ConsultantTable({recordList, applySearch}) {
};

const processRowUpdate = async (newRow) => {
// Optimistically update UI
const updatedRow = { ...newRow };

try {
const response = await axios.post(`${apiPath}/consultant/save`, newRow);

if (response.status === 200) {
// If backend returns updated data, use it
return response.data || updatedRow;
const savedRow = response.data || newRow;

// Exit edit mode
setRowModesModel((old) => ({
...old,
[newRow.id]: { mode: GridRowModes.View },
}));

// Optional: full refresh for consistency
applySearch();

return savedRow;
}
} catch (err) {
console.error("Save error:", err);
alert("Failed to save changes. Please try again.");
// On failure, you could revert, but here we keep the edited value
alert("Failed to save consultant.");

// Revert UI on error
setRowModesModel((old) => ({
...old,
[newRow.id]: { mode: GridRowModes.View, ignoreModifications: true },
}));
}

return updatedRow;
// Fallback (should not reach here)
return newRow;
};

const columns = [


Cargando…
Cancelar
Guardar