@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
28 lines (27 loc) • 1 kB
JavaScript
export function editOnChange({ value: c, grid, rowIndex, column, base, row, activeData, }) {
const field = column.field ?? column.id;
let next = structuredClone(activeData);
if (row.kind !== "branch" && typeof field === "number")
next[field] = c;
else if (row.kind !== "branch" && typeof field === "string")
next[field] = c;
else {
const setter = column.editSetter ?? base.editSetter;
if (!setter) {
console.error("A column with a non-trivial field must provide a corresponding editSetter to be editable.");
return;
}
next = setter({
column,
data: next,
grid: grid,
value: c,
row,
rowIndex,
});
}
const validator = grid.state.editRowValidatorFn.get();
const result = validator.fn({ grid: grid, rowIndex: rowIndex, data: next, row });
grid.internal.editData.set(next);
grid.internal.editValidation.set(result);
}