UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

28 lines (27 loc) 1 kB
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); }